Noch eine Verständnisfrage analog zum gegebenen Beispiel:
Angenommen ich nehme nun als VolBlocksize 64kb, sodass die Daten von ZFS in 64kb-Blöcken bearbeitet werden. Jetzt wird so ein 64kb-Block ebenfalls auf 4 HDDs aufgeteilt, also soll jede HDD 16kb aufnehmen. Jetzt ist das kleinste, was die HDD schreiben kann, wieder 4kb, sie wird also für die 16kb 4x4kb schreiben, richtig? Wenn ich nun viele kleine Textdateien habe, von denen viele nichtmal 10KB Größe haben, belegen die dann nicht alle min. 64kb, sodass sich das Problem dann nur verlagert?
Parity sind die Extra-Daten die du haben willst, damit nichts verloren geht, wenn dir eine HDD ausfällt. Padding ist der Overhead den du hast, weil die Daten aus der VM ja irgendwie auf 4 HDDs aufgeteilt werden müssen und weil die Blockgrößen zwischen LBA von der HDD, Volblocksize und ashift von ZFS sowie die Blockgröße des Dateisystems innerhalb der VM sich ja meistens unterscheiden. Mal ein vereinfachtes Beispiel zum groben Verständnis:
Hast du den Pool mit ashift 12 angelegt ist das Kleinste, was die HDDs speichern können, 4kb. Wenn du die Volblocksize beim Erstellen der virtuellen Festplatten nicht vom Standardwert von 8kb abgeändert hast, dann werden Daten von ZFS in 8kb Blocken bearbeitet. Dieser 8kb Block wird dann auf deine 4 HDDs aufgeteilt also soll jede HDD 2kb schreiben. Das kleinste was die schreiben können ist 4kb, also schreiben die 4x 4kb = 16kb. So werden deine 8kb zu 16kb und alle Daten nehmen also den doppelten Platz weg.
Angenommen ich nehme nun als VolBlocksize 64kb, sodass die Daten von ZFS in 64kb-Blöcken bearbeitet werden. Jetzt wird so ein 64kb-Block ebenfalls auf 4 HDDs aufgeteilt, also soll jede HDD 16kb aufnehmen. Jetzt ist das kleinste, was die HDD schreiben kann, wieder 4kb, sie wird also für die 16kb 4x4kb schreiben, richtig? Wenn ich nun viele kleine Textdateien habe, von denen viele nichtmal 10KB Größe haben, belegen die dann nicht alle min. 64kb, sodass sich das Problem dann nur verlagert?
Last edited: