Eine Einführung in das Z File System (ZFS) für Linux
ZFS wird häufig von Datenherstellern, NAS-Liebhabern und anderen Freaks eingesetzt, die lieber auf ein eigenes redundantes Speichersystem als auf die Cloud vertrauen. Es ist ein großartiges Dateisystem, das zum Verwalten mehrerer Datenträger verwendet werden kann und mit einigen der besten RAID-Setups konkurrieren kann.
Foto von Kenny Louie.
Was ist ZFS und warum sollte ich es verwenden??
Das Z-Dateisystem ist ein kostenloser, von Sun Microsystems entwickelter Open Source-Manager für logische Datenträger für die Verwendung in seinem Solaris-Betriebssystem. Einige der attraktivsten Funktionen sind:
Endlose Skalierbarkeit
Gut ist es nicht technisch endlos, aber es ist ein 128-Bit-Dateisystem, das Zettabyte (eine Milliarde Terabyte) von Daten verwalten kann. Egal wie viel Speicherplatz Sie auf Ihrer Festplatte haben, ZFS eignet sich für die Verwaltung.
Maximale Integrität
Alles, was Sie in ZFS tun, verwendet eine Prüfsumme, um die Integrität der Dateien sicherzustellen. Sie können sich darauf verlassen, dass Ihre Dateien und ihre redundanten Kopien nicht im Hintergrund beschädigt werden. Während ZFS damit beschäftigt ist, Ihre Daten leise auf Integrität zu überprüfen, führt es automatisch automatische Reparaturen aus, wann immer dies möglich ist.
Fahren Sie Pooling
Die Ersteller von ZFS möchten, dass Sie davon ausgehen, dass Ihr Computer RAM verwendet. Wenn Sie mehr Speicherplatz in Ihrem Computer benötigen, setzen Sie einen anderen Stick ein und fertig. Ähnlich wie bei ZFS, wenn Sie mehr Festplattenspeicher benötigen, legen Sie eine weitere Festplatte ein und sind fertig. Sie müssen keine Zeit für das Partitionieren, Formatieren, Initialisieren oder andere Vorgänge bei Ihren Festplatten aufwenden. Wenn Sie einen größeren Speicherpool benötigen, fügen Sie einfach Festplatten hinzu.
RAID
ZFS ist in der Lage, viele verschiedene RAID-Level zu nutzen und bietet eine Leistung, die mit der von Hardware-RAID-Controllern vergleichbar ist. Auf diese Weise können Sie Geld sparen, die Einrichtung vereinfachen und auf übergeordnete RAID-Stufen zugreifen, die mit ZFS verbessert wurden.
ZFS installieren
Da in diesem Handbuch nur die Grundlagen behandelt werden, 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 ZFS installiert und einsatzbereit sein.
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 unter "Pakete" auf Ihre Distribution, um Anweisungen zur Installation von ZFS zu erhalten.
Wenn wir mit diesem Handbuch fortfahren, werden wir Ubuntu verwenden, da dies für Linux-Geeks die erste Wahl zu sein scheint. Sie sollten trotzdem in der Lage sein, mitzuverfolgen, da sich die ZFS-Befehle in verschiedenen Distributionen nicht ändern.
Die Installation dauert einige Zeit, aber sobald sie fertig ist, starten Sie $ sudo zfs liste
um sicherzustellen, dass es richtig installiert ist. Sie sollten eine Ausgabe wie diese erhalten:
Wir verwenden gerade eine Neuinstallation des Ubuntu-Servers mit nur einer Festplatte.
ZFS konfigurieren
Nehmen wir an, wir haben sechs weitere Festplatten in unseren Computer eingebaut.
$ sudo fdisk -l | grep Fehler
zeigt uns die sechs Festplatten, die wir gerade installiert haben. Sie sind derzeit unbrauchbar, da sie keine Art von Partitionstabelle enthalten.
Wie bereits erwähnt, ist das Schöne an ZFS, dass wir uns nicht mit Partitionen beschäftigen müssen (obwohl Sie das können, wenn Sie möchten). Beginnen wir, indem Sie drei unserer Festplatten in einen Speicherpool legen, indem Sie den folgenden Befehl ausführen:
$ sudo zpool erstellt -f geek1 / dev / sdb / dev / sdc / dev / sdd
zpool erstellen
ist der Befehl, mit dem ein neuer Speicherpool erstellt wird, -f
überschreibt alle auftretenden Fehler (z. B. wenn die Datenträger bereits Informationen enthalten), 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 sehen können df
Befehl oder sudo zfs liste
:
Wie Sie sehen, wurde / geek1 bereits eingehängt und kann verwendet werden.
Wenn Sie sehen möchten, welche drei Festplatten Sie für Ihren Pool ausgewählt haben, können Sie ihn ausführen Sudo Zpool Status
:
Was wir bisher gemacht haben, ist das Erstellen eines 9-TB-Pools für dynamische Stripe (effektiv RAID 0). Wenn Sie nicht wissen, was das bedeutet, stellen Sie sich vor, wir hätten eine 3-KB-Datei auf / geek1 erstellt. 1 KB würde automatisch zu SDB gehen, 1 KB zu SDC und 1 KB zu SDD. Wenn wir dann die 3-KB-Datei lesen, stellt uns jede Festplatte 1 KB dar und kombiniert die Geschwindigkeit der drei Festplatten. Dies macht das Schreiben und Lesen von Daten schnell, bedeutet aber auch, dass wir einen einzelnen Fehlerpunkt haben. Wenn nur eine Festplatte ausfällt, verlieren wir unsere 3-KB-Datei.
Wenn Sie davon ausgehen, dass der Schutz Ihrer Daten wichtiger ist als ein schneller Zugriff, werfen Sie einen Blick auf andere beliebte Setups. Zuerst löschen wir den von uns erstellten Zpool, sodass wir diese Festplatten in einem redundanteren Setup verwenden können:
$ sudo zpool zerstöre geek1
Bam, unser Zpool ist weg. Diesmal verwenden wir unsere drei Festplatten, um einen RAID-Z-Pool zu erstellen. Bei RAID-Z handelt es sich im Wesentlichen um eine verbesserte Version von RAID 5, da mit Copy-on-Write Schreibfehler vermieden werden. RAID-Z erfordert ein Minimum von drei Festplatten und stellt eine Art Kompromiss zwischen RAID 0 und RAID 1 dar. In einem RAID-Z-Pool erhalten Sie immer noch die Geschwindigkeit des Striping auf Blockebene, aber auch eine verteilte Parität. Wenn ein einzelner Datenträger in Ihrem Pool ausfällt, tauschen Sie diesen Datenträger einfach aus, und ZFS erstellt die Daten basierend auf den Paritätsinformationen der anderen Datenträger automatisch neu. Um alle Informationen in Ihrem Speicherpool zu verlieren, müssten zwei Festplatten sterben. Um die Dinge noch redundanter zu gestalten, können Sie RAID 6 (RAID-Z2 bei ZFS) verwenden und doppelte Parität haben.
Um dies zu erreichen, können wir dasselbe verwenden zpool erstellen
Befehl wie zuvor, aber angeben Raidz
nach dem Namen des Pools:
$ sudo zpool erstellt -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 für Paritätsinformationen verwendet werden. Mit dem zpool status
Kommando sehen wir, dass unser Pool größtenteils derselbe ist wie zuvor, aber jetzt RAID-Z verwendet.
Um zu zeigen, wie einfach es ist, weitere Festplatten zu unserem Speicherpool hinzuzufügen, fügen Sie die anderen drei Festplatten (weitere 9 TB) zu unserem geek1-Speicherpool als eine weitere RAID-Z-Konfiguration hinzu:
$ sudo zpool add -f geek1 raidz / dev / sde / dev / sdf / dev / sdg
Wir enden mit:
Die Saga geht weiter ...
Wir haben die Oberfläche von ZFS und seine Funktionen kaum zerkratzt, aber mit den in diesem Artikel beschriebenen Ergebnissen sollten Sie jetzt in der Lage sein, redundante Speicherpools Ihrer Daten zu erstellen. Besuchen Sie uns für zukünftige Artikel über ZFS, besuchen Sie die Manpages und suchen Sie nach endlosen Nischen-Guides und Youtube-Videos, in denen ZFS-Funktionen beschrieben werden.