Mit ZFS hat FreeBSD ein Dateisystem bekommen, das seinesgleichen sucht. Es ist extrem flexibel und sorgt gleichzeitig für hohe Datensicherheit. Durch seine Features erspart es dem Administrator auch eine Menge Arbeit, wie das Beispiel mit den Jails gezeigt hat. Für FreeBSD ist es ein Quantensprung.
Leider hat der neue Lizenzinhaber Oracle ab Version 28 alle weiteren Ergänzungen an ZFS nicht mehr der Open-Source-Szene zur Verfügung gestellt. Für die Zukunft bleibt zu hoffen, dass Oracle seine Politik überdenkt und die Weiterentwicklung der FreeBSD-Version mit weiterem freigegebenen Code unterstützt.
ZFS auf Festplatten mit 4K-Sektoren
Seit einiger Zeit sind Festplatten auf dem Markt, deren Sektorgröße 4096 Bytes (4K) statt 512 Bytes beträgt. Leider haben die Hersteller der Datenträger geschlampt und eine automatische Erkennung beinahe unmöglich gemacht.
Bei Windows wird dieses Problem durch einen zusätzlichen Treiber ausgebügelt. Unter FreeBSD erfragt der Befehl
zdb | grep ashift
ob die Sektorgröße korrekt erkannt wurde. Falls die Ausgabe »ashift: 12
«
lautet, ist alles gut. Andernfalls muss man etwas zusätzliche Zeit investieren, wobei ein bestehender ZPool leider verloren geht. Löschen lässt sich ein Pool mit »zfs destroy zpool
«
. Vor dem Neuanlegen hilft das GEOM-Plugin GNOP, die 4K-Sektoren zu aktivieren:
gnop create -S 4096 ada0 gnop create -S 4096 ada1
Damit erzeugt man ein neues Gerät namens »ada0.nop
«
beziehungsweise »ada1.nop
«
, das die Festplatte »ada0
«
mit aktivierten 4K-Sektoren repräsentiert. Das muss man für alle Festplatten im System machen, die ZFS verwalten soll. Anschließend kann man wie im Artikel beschrieben einen neuen ZPool anlegen.
Die Boot-Festplatte darf man damit nicht behandeln, weil der Bootloader »gptzfsboot
«
damit noch nicht umgehen kann.
zpool create fbsd mirror ada0.nop ada1.nop
Ob die Sektorgröße korrekt eingetragen ist, verrät »zdb | grep ashift
«
. Das Ergebnis sollte »ashift: 12
«
sein.
Fallstricke
Zu einem Pool lassen sich auch Festplatten unterschiedlicher Kapazität hinzufügen. Beachten sollte man allerdings folgende Punkte: Die Kapazität der neuen Festplatten sollte mindestens so groß sein, wie die Kapazität der kleinsten Platte in Pool. Wenn die Kapazität des neuen Datenträgers kleiner ist, dann führt das eventuell zu Datenverlust. Wenn der Pool vom Typ mirrored ist, dann müssen eine gerade Anzahl von Datenträgern zum Pool hinzugefügt werden. Die Sektorgröße aller Festplatten muss gleich sein.
Tabelle 1
Fehlererkennung
Fehlerart | Herkömmliches Dateisystem | ZFS |
---|---|---|
Bit-Fäule ("Bitdreher") |
+ |
+ |
Phantom-Schreiboperationen |
- |
+ |
Verirrte Lese/Schreib-Operationen |
- |
+ |
DMA-Paritäts-Fehler |
- |
+ |
Treiber-Bugs |
- |
+ |
Versehentliches Überschreiben |
- |
+ |
Infos