/ / Eine Einführung in das Z File System (ZFS) für Linux

Eine Einführung in das Z File System (ZFS) für Linux

ZFS wird häufig von Datenhortern (NAS) verwendetLiebhaber und andere Geeks, die lieber auf ein eigenes redundantes Speichersystem als auf die Cloud vertrauen. Es ist ein großartiges Dateisystem für die Verwaltung mehrerer Datenträger und kann mit einigen der besten RAID-Konfigurationen mithalten.

Foto von Kenny Louie.

Was ist ZFS und warum sollte ich es verwenden?

Das Z-Dateisystem ist ein kostenloser und Open Source-Manager für logische Volumes, der von Sun Microsystems für die Verwendung in ihrem Solaris-Betriebssystem entwickelt wurde. Einige der attraktivsten Funktionen sind:

Endlose Skalierbarkeit

Nun, das ist es nicht technisch endlos, aber es handelt sich um ein 128-Bit-Dateisystem, mit dem Daten im Zettabyte-Bereich (eine Milliarde Terabyte) verwaltet werden können. Egal wie viel Festplattenspeicher Sie haben, ZFS ist für die Verwaltung geeignet.

Maximale Integrität

Alles, was Sie in ZFS tun, verwendet eine Prüfsummeum die Integrität der Datei zu gewährleisten. Sie können sicher sein, dass Ihre Dateien und ihre redundanten Kopien nicht unbeaufsichtigt sind. Auch wenn ZFS damit beschäftigt ist, Ihre Daten stillschweigend auf Integrität zu überprüfen, führt es automatische Reparaturen durch, wann immer dies möglich ist.

Laufwerkspooling

Die Macher von ZFS möchten, dass Sie sich das vorstellenSie ähneln der Art und Weise, wie Ihr Computer RAM verwendet. Wenn Sie mehr Speicher in Ihrem Computer benötigen, stecken Sie einen anderen Stick ein und fertig. Ähnliches gilt für ZFS: Wenn Sie mehr Festplattenspeicher benötigen, legen Sie eine andere Festplatte ein und fertig. Sie müssen keine Zeit damit verbringen, Ihre Festplatten zu partitionieren, zu formatieren, zu initialisieren oder irgendetwas anderes zu tun - wenn Sie einen größeren „Speicherpool“ benötigen, fügen Sie einfach Festplatten hinzu.

RAID

ZFS unterstützt viele verschiedene RAID-Levelbei einer Leistung, die mit der von Hardware-RAID-Controllern vergleichbar ist. Auf diese Weise können Sie Geld sparen, die Einrichtung vereinfachen und auf überlegene RAID-Level zugreifen, die ZFS verbessert hat.

ZFS installieren

Da wir hier nur die Grundlagen behandelnIn diesem Fall wird ZFS nicht als Root-Dateisystem installiert. In diesem Abschnitt wird davon ausgegangen, dass Sie ext4 oder ein anderes Dateisystem verwenden und ZFS für einige sekundäre Festplatten verwenden möchten. Hier sind die Befehle zum Installieren von ZFS auf einigen der beliebtesten Linux-Distributionen.

Solaris und FreeBSD sollten bereits mit installiertem und einsatzbereitem ZFS geliefert werden.

Ubuntu:

$ sudo add-apt-repository ppa:zfs-native/stable
$ sudo apt-get update
$ sudo apt-get install ubuntu-zfs

Debian:

$ su -
# wget http://archive.zfsonlinux.org/debian/pool/main/z/zfsonlinux/zfsonlinux_2%7Ewheezy_all.deb
# dpkg -i zfsonlinux_2~wheezy_all.deb
# apt-get update
# apt-get install debian-zfs

RHEL / CentOS:

$ sudo yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release-1-3.el6.noarch.rpm
$ sudo yum install zfs

Wenn Sie eine andere Distribution haben, besuchen Sie zfsonlinux.org und klicken Sie in der Liste "Packages" auf Ihre Distribution, um Anweisungen zur Installation von ZFS zu erhalten.

Im weiteren Verlauf dieses Handbuchs werden wirVerwenden Sie Ubuntu, da dies die erste Wahl für Linux-Geeks zu sein scheint. Sie sollten trotzdem in der Lage sein, zu verfolgen, egal was passiert, da sich die ZFS-Befehle nicht zwischen verschiedenen Distributionen ändern.

Die Installation dauert eine Weile, aber wenn sie abgeschlossen ist, führen Sie sie aus $ sudo zfs list um sicherzustellen, dass es richtig installiert ist. Sie sollten eine Ausgabe wie diese erhalten:

Wir verwenden derzeit eine Neuinstallation des Ubuntu-Servers mit nur einer Festplatte.

ZFS konfigurieren

Nehmen wir an, wir stecken sechs weitere Festplatten in unseren Computer.

$ sudo fdisk -l | grep Error zeigt uns die sechs Festplatten, die wir gerade installiert haben. Sie sind derzeit unbrauchbar, da sie keine Partitionstabelle enthalten.

Wie wir bereits erwähnt haben, eines der schönen DingeBei ZFS müssen wir uns nicht um Partitionen kümmern (obwohl Sie das können, wenn Sie möchten). Beginnen wir damit, drei unserer Festplatten in einen Speicherpool zu legen, indem Sie den folgenden Befehl ausführen:

$ sudo zpool create -f geek1 /dev/sdb /dev/sdc /dev/sdd

zpool create ist der Befehl zum Erstellen eines neuen Speicherpools, -f Überschreibt alle aufgetretenen Fehler (z. B. wenn auf den Datenträgern bereits Informationen vorhanden sind). geek1 ist der Name des Speicherpools und /dev/sdb /dev/sdc /dev/sdd sind die Festplatten, die wir in den Pool legen.

Nachdem Sie Ihren Pool erstellt haben, sollten Sie ihn mit dem Symbol sehen können df befehl oder sudo zfs list:

Wie Sie sehen, wurde / geek1 bereits gemountet und ist einsatzbereit.

Wenn Sie sehen möchten, welche drei Datenträger Sie für Ihren Pool ausgewählt haben, können Sie ausführen sudo zpool status:

Bisher haben wir eine 9-TB-Dynamik erstelltStripe-Pool (effektiv RAID 0). Wenn Sie nicht wissen, was das bedeutet, stellen Sie sich vor, wir haben eine 3-KB-Datei auf / geek1 erstellt. 1 KB wird automatisch an SDB, 1 KB an SDC und 1 KB an SDD übergeben. Wenn wir dann die 3-KB-Datei lesen, zeigt uns jede Festplatte 1 KB an und kombiniert die Geschwindigkeit der drei Laufwerke. Dies macht das Schreiben und Lesen von Daten schnell, bedeutet aber auch, dass wir nur eine einzige Fehlerquelle haben. Wenn nur eine Festplatte ausfällt, verlieren wir unsere 3-KB-Datei.

Angenommen, der Schutz Ihrer Daten ist mehrwichtig, als schnell darauf zuzugreifen, werfen wir einen Blick auf andere beliebte Setups. Zuerst löschen wir den von uns erstellten Zpool, damit wir diese Datenträger in einem redundanteren Setup verwenden können:

$ sudo zpool destroy geek1

Bam, unser Pool ist weg. Verwenden wir diesmal unsere drei Festplatten, um einen RAID-Z-Pool zu erstellen. RAID-Z ist im Grunde eine verbesserte Version von RAID 5, da es die "Schreiblücke" durch Copy-on-Write vermeidet. RAID-Z erfordert mindestens drei Festplatten und stellt einen Kompromiss zwischen RAID 0 und RAID 1 dar. In einem RAID-Z-Pool erhalten Sie weiterhin die Geschwindigkeit des Block-Level-Stripings, verfügen jedoch auch über verteilte Parität. Wenn eine einzelne Festplatte in Ihrem Pool ausfällt, ersetzen Sie einfach diese Festplatte, und ZFS erstellt die Daten basierend auf den Paritätsinformationen der anderen Festplatten automatisch neu. Um alle Informationen in Ihrem Speicherpool zu verlieren, müssten zwei Festplatten ausfallen. Um die Redundanz zu erhöhen, können Sie RAID 6 (RAID-Z2 im Fall von ZFS) und doppelte Parität verwenden.

Um dies zu erreichen, können wir dasselbe verwenden zpool create Befehl wie zuvor, aber spezifizieren raidz Nach dem Namen des Pools:

$ sudo zpool create -f geek1 raidz /dev/sdb /dev/sdc /dev/sdd

Wie du siehst, df -h zeigt, dass unser 9-TB-Pool jetzt auf 6 TB reduziert wurde, da 3 TB zum Speichern von Paritätsinformationen verwendet werden. Mit dem zpool status Befehl sehen wir, dass unser Pool größtenteils derselbe wie zuvor ist, aber jetzt RAID-Z verwendet.

Um zu zeigen, wie einfach es ist, unserem Speicherpool weitere Festplatten hinzuzufügen, fügen wir die anderen drei Festplatten (weitere 9 TB) unserem geek1-Speicherpool als weitere RAID-Z-Konfiguration hinzu:

$ sudo zpool add -f geek1 raidz /dev/sde /dev/sdf /dev/sdg

Wir haben am Ende:

Die Saga geht weiter ...

Wir haben die Oberfläche von ZFS und seinen Produkten kaum geschabtMit den Funktionen, die Sie in diesem Artikel kennengelernt haben, sollten Sie nun in der Lage sein, redundante Speicherpools für Ihre Daten zu erstellen. Besuchen Sie uns für zukünftige Artikel über ZFS, lesen Sie die Manpages und suchen Sie nach den endlosen Nischenführern und Youtube-Videos, die sich mit ZFS-Funktionen befassen.