ZFS Speicher Pool unter Ubuntu erstellen

PUBLISHED ON 31 MARCH 2009 / 2 MIN READ

Wie ich bereits geschreiben hatte, hab ich mir jetzt ein ZFS Pool aufgesetzt. Mehrere Gründe haben mich dazu bewogen. Ein reines RAID System wäre für mich nicht in frage gekommen, da es zum einen zu unflexibel ist, das heißt man kann Platten nicht einfach nachschieben wenn einem der Speicher ausgeht (zumindest nicht ohne Tricks). Außerdem ist man bei einem RAID entweder auf sauteure Hardware Controller angewiesen die meißt immer schlecht in einen Laptop passen. Man ist dann auf den Computer angewiesen. Geht der Controller kaputt, sind meist auch die Daten futsch.
Alternative wäre noch nen Software RAID gewesen, aber auch da ist man auf ein spezielles Betriebssystem festgelegt.

ZFS hat also in diesen Bereichen nur Vorteile.
Die ganzen anderen tollen Features muss ich  ja hier nicht nochmal runterbeten, unterstreichen aber noch die Vorteile.

Das ZFS betreibe ich im Moment an einem alten Laptop mit Ubuntu 8.10 und dem im letzten Artikel vorgestellten Fantec Gehäuse. Ich betreibe das ganze unter Ubuntu (Linux), da ein MacMini leider kein eSATA hat und ich auch Mac OS X nicht so als Server OS sehe. FreeBSD und Solaris find ich auch schwierig, da ich nicht das ganze OS nur wegen des Filesystems umstellen möchte. Immerhin laufen an dem Teil noch Scanner, Drucker, AFP-Fileserver und einige andere Sachen die unter FreeBSD und Solaris für mich schwieriger einzurichten wären. Hat man aber die möglichkeit eines der anderen Betriebssysteme einzusetzten wäre das empfehlenswert.

Mit ZFS unter Linux ist das nur leider so eine Sache mit den Lizenzen. Da ZFS unter der CDDL und Linux unter der GPL steht kann ZFS leider nicht direkt in den Kernel integriert werden. Doch zum Glück gibt es ja FUSE mit dem sich das ganze sehr leicht installieren lässt (auf kosten von etwas Performance).

Für die installation habe ich hier einen kleinen Wiki Artikel erstellt

http://wiki.ubuntuusers.de/Baustelle/ZFS

Nachdem man zfs-on-fuse stehen einem die wichtigsten Features von ZFS auch schon zur verfügung.

Bevor man nun aber den ZFS Pool aufsetzt sollte man die Platten (oder Flashspeicher) vorher noch mit einer Partitionstabelle ausstatten. Das ist wichtig, damit das Betriebssystem weiß, das es sich um eine formatierte Platte handelt und nicht versehentlich wichtige Daten überschreibt.

Ich habe mich für die GPT entschieden da ich damit nicht in die begrenzung von 2TB der MBR Partitionierten reinfalle und ich die Platten eh nur an Betriebssystemen verwende die mit der GPT Tabelle umgehen können.

Dazu unter Mac OS X  für alle Platten:

wobei X durch die Laufwerke zu ersetzten ist.

Anschließend kann man den Pool relativ einfach mit

erstellen. Wichtig ist auch hier die richtigen Platten auszuwählen und immer die zweite Partition zu nehemen.
Das wars eigentlich auch schon.

Zeigt den Status des Pool an und weist auf Checksummenfehler hin

Zeigt die Größe und den freien Speicherplatz aller Dateisysteme an.

Wird der Speicher mal knapp ersetzt man einfach die  kleinste Platte mit

Anschließend kopiert das ZFS alle Daten von der einen Platte auf die andere und hängt die alte aus dem System raus. Dabei dürfte das System sogar abstürzen (aufm Mac noch experimentell und führt daher oft zu Kernelpanics) ohne das dabei Datenverlust entsteht.

Anschließend steht der neue Speicherplatz zur Verfügung.

P.S.: Mit spindown kann man seine USB, Firewire oder sonsteige Platten auch noch bei nichtgebrauch abschalten.