[Sammelthread] ZFS Stammtisch

Hmmm ich habe damals von gecryptetem OpenZFS 0.8 also glaub der ersten die das hatte dann auf eine "final" umgestiegen das hat damals problemlos geklappt aber glaube für jede Version auf jede glaube das wird dir niemand zu 100% sagen können.

Kannst ja evtl einen Test machen? also eine Dummy-Datei als zfs device nutzen darauf auf dem Quellsystem ein genauso wie das andere gecryptete ZFS draufmachen und dann schauen ob das auf dem Zielsystem aufmachen und beschrieben kannst. Dafür reicht ja ein 100 MB File (zumindest wenn es Linux / Freebsd ist geht das ja einfach)
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Also mein Stand war noch bix zu einer bestimmten Version war es zwischen Solaris und dem Rest kompatibel. Dann kamen die Feature Flags, dann war es mit Solaris nicht mehr kompatibel, aber alles andere untereinander. Aber das scheint ja nun auch nicht mehr so zu sein...
Wieso kann es nicht einfach eine Versionsnummer geben und wenn das OS diese Nummer dann hat oder höher kann man den Pool importieren und nutzen.

Solaris <-> OpenZFS, Illumos ZFS: nein, nie
Also Illumos ZFS ist ungleich OpenZFS?

Ich dachte Illumos hängt immer nur bisschen hinterher aber ansonsten ist das dasselbe..
 
Also mein Stand war noch bix zu einer bestimmten Version war es zwischen Solaris und dem Rest kompatibel. Dann kamen die Feature Flags, dann war es mit Solaris nicht mehr kompatibel, aber alles andere untereinander. Aber das scheint ja nun auch nicht mehr so zu sein...
Wieso kann es nicht einfach eine Versionsnummer geben und wenn das OS diese Nummer dann hat oder höher kann man den Pool importieren und nutzen.


Also Illumos ZFS ist ungleich OpenZFS?

Ich dachte Illumos hängt immer nur bisschen hinterher aber ansonsten ist das dasselbe..

OpenZFS war bis 2019 Illumos ZFS, ab dann wurden beide in getrennten Repositories von eigenen Teams gepflegt. Illumos ZFS ist sehr konservativ was die Übernahme neuer OpenZFS Features angeht während in OpenZFS Neues sehr schnell landet, auch wenn es noch nicht voll getestet ist. Fast Dedup z.B. kommt jetzt erst in Illumos ZFS.


Pool Austausch zwischen OpenZFS Releases und/oder Illumos ZFS höngt daran ob das ZielOS die jeweiligen Features unterstützt, einen neuen OpenZFS Pool kann man oft auch nicht in einem älteren OpenZFS ohne Support für ein Feature öffnen.

Vorteil ist natürlich dass in Illumos ZFS in vielen Jahren nicht soviel Probleme waren wie in OpenZFS teils in einem Jahr.
 
Naja OpenZFS wird halt von extrem vielen genutzt da findet man halt Sachen die praktisch nur in 0,000001% der Fälle auftreten.

Meine es wurden doch schon 1 oder 2 Fehler durch OpenZFS entdeckt die seit Jahrzehnten im ZFS Code waren.
 
Pool Austausch zwischen OpenZFS Releases und/oder Illumos ZFS höngt daran ob das ZielOS die jeweiligen Features unterstützt
Sind diese Features denn identisch oder werden hier einfach Features die das gleiche machen parallel entwickelt und sind dann zueinander inkompatibel?
Ich habe ja einen OmniOS ZFS Pool und diesen will ich einfach in Proxmox, TrueNAS beispielsweise öffnen mounten, zumindest lesen.





Illumos had ported the zfs encryption prior to this bug fix, so we still use
the older incompatible format.

Heißt das das damit OmniOS jetzt ein anderes encryption benutzt als OpenZFS?
 
Zuletzt bearbeitet:
OpenZFS kann einen unverschlüsselten OmniOS Pool problemlos öffnen, da alle OmniOS Features unterstützt sind. Andersrum kann es Probleme machen, z.B. ein OpenZFS Pool mit aktiviertem Raid-Z Expansion kann in OmniOS nicht geöffnet werden, da es das Feature da noch nicht gibt.

Verschlüssellung ist ein Sonderfall. Da gab es in OpenZFS ein Update das nicht rückwärtskompatibel war und einen Pool move mit Illumos ZFS oder älterem OpenZFS verhindern kann. Normales zfs send ist dann der Workaround.

Insgesamt ist ZFS egal auf welcher Plattform nur aufwärtskompatibel (neues liest älteres). Migration benötigt ansonst zfs send.
Beitrag automatisch zusammengeführt:

Naja OpenZFS wird halt von extrem vielen genutzt da findet man halt Sachen die praktisch nur in 0,000001% der Fälle auftreten.

Meine es wurden doch schon 1 oder 2 Fehler durch OpenZFS entdeckt die seit Jahrzehnten im ZFS Code waren.

Prinzipiell richtig, dennoch gab es in den letzten Jahren mehrfach Fälle von Datenverlust in OpenZFS durch neuere Features die in Illumos ZFS keine Auswirkung hatten - weil es das auslösende Feature nicht gab oder weil das Problem nur mit einer bestimten Kombination OpenZFS Release auf einem der vielen Linux Distributionen auftrat. OpenZFS gleicht da mehr einem Zoo mit den vielen Distributionen, jede mit einem anderen ZFS Stand und niemand weiss, ist dieses oder jenes das Zuverlässigere, hilft ein Update oder nicht.

Bei Illumos gibt es halt genau ein ZFS auf genau einem OS das vom Anbeginn der Zeit nur auf ZFS ausgelegt war, gepflegt von einem Kern-Team das nur Code integriert der mehrere extra Tests durchlaufen hat. Ist ähnlich bei Solaris und darum sind beide auch so stabil auf Kosten der schnellen Weiterentwicklung oder Integration von Features.
 
Zuletzt bearbeitet:
Da gab es in OpenZFS ein Update das nicht rückwärtskompatibel war und einen Pool move mit Illumos ZFS oder älterem OpenZFS verhindern kann. Normales zfs send ist dann der Workaround.
Das heißt doch dann übersetzt aktuelles Illumos und aktuellen OpenZFS ist zueinander nicht kompatibel wenn ich einen verschlüsseltes Dataset habe.
Für mich ist nur aktuelles Illumos und aktuellens OpenZFS relevant. Alles andere nicht.
Also ich übersätze das jetzt so dass ich dazwischen wenn ich verschlüsselung einsetze nicht kompatibel bin.

Wird diese Inkompatbilität denn erkannt beim Import oder kann man sich da einfach die Daten zerschießen?


Prinzipiell richtig, dennoch gab es in den letzten Jahren mehrfach Fälle von Datenverlust in OpenZFS durch neuere Features die in Illumos ZFS keine Auswirkung hatten - weil es das auslösende Feature nicht gab oder weil das Problem nur mit einer bestimten Kombination OpenZFS Release auf einem der vielen Linux Distributionen auftrat. OpenZFS gleicht da mehr einem Zoo mit den vielen Distributionen, jede mit einem anderen ZFS Stand und niemand weiss, ist dieses oder jenes das Zuverlässigere, hilft ein Update oder nicht.
Diese Entwicklung untergräbt dann aber irgendwie so den Sinn wieso viele ZFS einsetzen.
Beitrag automatisch zusammengeführt:

Normales zfs send ist dann der Workaround.
Wenn ich aber nur einen Pool habe heißt es ich muss 2mal zfs send machen, weil ich dann einen zwischenschritt über ein nicht verschlüsseltes Dataset machen muss wenn ich am Ende wieder einen verschlüsselten dataset haben will?
 
Zuletzt bearbeitet:
Das heißt doch dann übersetzt aktuelles Illumos und aktuellen OpenZFS ist zueinander nicht kompatibel wenn ich einen verschlüsseltes Dataset habe.
Für mich ist nur aktuelles Illumos und aktuellens OpenZFS relevant. Alles andere nicht.
Also ich übersätze das jetzt so dass ich dazwischen wenn ich verschlüsselung einsetze nicht kompatibel bin.

Ist allerdings kein üblicher Fall, dass man einen Pool wechselseitig mit verschiedenen Betriebssystemen importieren will. In dem Fall muss man dafür sorgen, dass kein Feature verwendet wird, dass nicht auf allen Systemen geht.

Wird diese Inkompatbilität denn erkannt beim Import oder kann man sich da einfach die Daten zerschießen?

habs nie probiert, ist dann aber wohl wie mit allen Features, import nicht möglich.

Diese Entwicklung untergräbt dann aber irgendwie so den Sinn wieso viele ZFS einsetzen.
wieso. Auf einen defekten ZFS Pool kommen bei gleicher Nutzerzahl sicher ein mehrfaches an defekten ext4/ntfs oder ReFS Pools. Ausserdem hat niemand behauptet, dass man mit ZFS kein Backup haben sollte.
Wenn ich aber nur einen Pool habe heißt es ich muss 2mal zfs send machen, weil ich dann einen zwischenschritt über ein nicht verschlüsseltes Dataset machen muss wenn ich am Ende wieder einen verschlüsselten dataset haben will?

nein, bis auf den Sonderfall raw send, macht zfs send immer einen unverschlüsselten Datenstrom auch wenn source verschlüsselt war.
 
Verschlüssellung ist ein Sonderfall. Da gab es in OpenZFS ein Update das nicht rückwärtskompatibel war und einen Pool move mit Illumos ZFS oder älterem OpenZFS verhindern kann. Normales zfs send ist dann der Workaround.
Wann soll das denn in Illumos behoben werden? Gibt es da irgendwelche Infos?
 
Verschlüssellung ist ein Sonderfall. Da gab es in OpenZFS ein Update das nicht rückwärtskompatibel war und einen Pool move mit Illumos ZFS oder älterem OpenZFS verhindern kann. Normales zfs send ist dann der Workaround.
Also irgendwie kann ich der Diskussion hier inhaltlich nicht folgen...

IST es denn jetzt inkompatibel (ohne Workarrounds oder ähnlichem) oder ist es das nicht?

Auf der einen Seite schreibst du:
Ist allerdings kein üblicher Fall, dass man einen Pool wechselseitig mit verschiedenen Betriebssystemen importieren will. In dem Fall muss man dafür sorgen, dass kein Feature verwendet wird, dass nicht auf allen Systemen geht.
gleichzeitig aber auch:

Verschlüssellung ist ein Sonderfall. Da gab es in OpenZFS ein Update das nicht rückwärtskompatibel war und einen Pool move mit Illumos ZFS oder älterem OpenZFS verhindern kann. Normales zfs send ist dann der Workaround.

Offenbar reicht es dann doch nicht aus wenn alle Features die man auf dem anderen System benutzen will auch funktionieren weil es hier doch ZUSÄTZLICHE Inkompatibilitäten gibt?
 
Zuletzt bearbeitet:
Lesbar importieren wird denke ich immer gehen selbst wenn - was ich jetzt nicht weiss ob es das gab - ein Crypt Algo nicht mehr unterstützt wird. Schreibbar aber dann vielleicht nicht.

Read Only meine ich ist es bei ZFS immer so dass vorhandene Features abwärtskompatibel sind, aber R/W unter manchen - seltenen - Umständen eventuell nicht.
 
OpenZFS Enc ist seit einer fundamentalen nicht rückwärtskomptiblen Anderung in 2018 inkompatibel zu Illumos Enc. Auch ältere OpenZFS Benutzer hatten damals nur die Wahl, Pool neu machen und kopieren. Und das gleiche gilt für Illumos Nutzer heute,

Auch readonly geht nicht bei verschlüsselten Daten oder inkompatibler vdev Struktur (Raid-Z Expansion).

Pool Move geht also nur ohne verschlüsselte Pools und sicher nur mit in Illumos erstellten Pools.
 
Es gab einen Ansatz in Illumos Encryption "dual" zu machen also dass Illumos die ältere und neuere OpenZFS Version versteht. Ist aber halt ein extremes Nischenthema, würde nicht darauf warten/wetten. Eher wird Illumos es so machen wie OpenZFS, Update=Pool neu. Fast Dedup wird gerade portiert.
 
Ich habe Claude KI gebeten in den Illumos Sourcen nachzusehen wie der aktuelle Stand der Enc Kompatibilität zwischen Illumos und OpenZFS ist


Code:
Ich habe im illumos-gate-Quellcode selbst nachgesehen (nicht nur in der Mailingliste-Diskussion von damals) – und das Ergebnis korrigiert meine letzte Antwort in einem wichtigen Punkt.

In usr/src/uts/common/fs/zfs/dsl_crypt.c (aktueller master-Branch) finden sich exakt die Kompatibilitäts-Mechanismen, die OpenZFS 2018 eingeführt hat:

c
boolean_t
dsl_dir_incompatible_encryption_version(dsl_dir_t *dd)
{
    ...
    return (version != ZIO_CRYPT_KEY_CURRENT_VERSION);
}

mit dem Kommentar "We don't support receiving old on-disk formats. The version 0 implementation protected several fields in an objset that were not always portable during a raw receive." Und in usr/src/uts/common/sys/fs/zfs.h gibt es die passenden Errata-Konstanten:

ZPOOL_ERRATA_ZOL_6845_ENCRYPTION – das ist exakt der Fix aus OpenZFS-PR #6864 (der 2018 das Format gebrochen hat)
ZPOOL_ERRATA_ZOL_8308_ENCRYPTION – ein weiterer, späterer Kompatibilitäts-Fix (OpenZFS-PR #8308, "mixed raw/non-raw sends")

Zusätzlich existiert der Tunable zfs_disable_ivset_guid_check, explizit dokumentiert für Kompatibilität mit älteren OpenZFS/ZoL-Verschlüsselungs-Streams ohne IVset-GUID.

Heißt konkret: meine Aussage von eben war veraltet. Der Mailingliste-Thread mit Jason Kings Erklärung ("illumos nutzt noch das alte, inkompatible Format") stammt aus der Frühzeit des illumos-Encryption-Ports (~2019). Der aktuelle illumos-gate-master-Branch hat die relevanten OpenZFS-Formatfixes seither offenbar nachgezogen – illumos nutzt jetzt dieselbe ZIO_CRYPT_KEY_CURRENT_VERSION und dieselbe Versions-/Errata-Logik wie aktuelles OpenZFS. Auf Code-Ebene sieht das nach echter Format-Kompatibilität aus, nicht mehr nach dauerhaftem Bruch.

Einschränkung, die ich nicht wegargumentieren will: das GitHub-Issue #13301 (SmartOS/illumos → Linux Mount-Fehler) ist neueren Datums und weiterhin offen/ungeklärt. Das könnte heißen, dass (a) die konkret verwendete SmartOS/illumos-Distribution nicht auf aktuellem illumos-gate-master basiert, (b) es sich um einen engeren Spezialfall handelt (z.B. genau die IVset-GUID- oder Mixed-Send-Problematik, die die genannten Tunables/Erratas ja gerade adressieren sollen, aber evtl. nicht in jeder Konstellation greifen), oder (c) schlicht noch nicht jeder betroffen Nutzer die neuere illumos-Version einsetzt. Ich kann aus dem Quellcode allein nicht mit Sicherheit sagen, dass ein zfs send --raw/receive zwischen aktuellem illumos und aktuellem OpenZFS heute in der Praxis garantiert klappt – nur, dass die dafür nötige Kompatibilitätslogik im Code vorhanden ist. Für produktiven Einsatz (Replikation zwischen deinem napp-it cs/OpenZFS-Windows-Member und einem illumos/OmniOS-Member) würde ich das vor dem Verlassen auf die Doku einmal mit einem echten Testdataset ausprobieren.

Sources:

illumos-gate/dsl_crypt.c (master)
illumos-gate/sys/fs/zfs.h (master)
Encrypted dataset created under current SmartOS/Illumos cannot be mounted on Linux · Issue #13301 · openzfs/zfs
Detect and prevent mixed raw and non-raw sends · Pull Request #8308 · openzfs/zfs

Müsste man also ausprobieren, wie sich ein verschlüsselter Pool Illumos->OpenZFS oder OpenZFS -> Illumos verhält
 
OS übergreifend hatte ich schon Probleme mit der Erkennung von ZFS Partitionen auf Sticks, USB Platten/SSD sind ok.
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh