GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So richten Sie das ZFS-Dateisystem unter Linux mit zpool-Befehlsbeispielen ein

ZFS hat Volume-Manager und Dateisystem mit mehreren erweiterten Funktionen kombiniert.

Dies ist der erste Teil einer Reihe von Artikeln über ZFS.

In diesem Artikel bieten wir eine allgemeine Einführung in ZFS, erklären die Installation von ZFS unter Linux, das Erstellen eines ZFS-Pools und mehrere ZFS-zpool-Befehle.

1. Einführung in ZFS

Im Folgenden sind einige der Funktionen des ZFS-Dateisystems aufgeführt:

  • Schutz vor Datenkorruption
  • Unterstützung für hohe Speicherkapazitäten
  • Effiziente Datenkomprimierung
  • Machen Sie Snapshots des Dateisystems
  • Copy-on-Write-Klone
  • RAID Z-Unterstützung
  • Integritätsprüfung
  • Automatische Reparatur und Unterstützung für native NFSV4-ACL

Diese wurde ursprünglich von Sun Microsystems für die Solaris-Plattform entwickelt. Im Jahr 2010 erwarb Oracle Sun Microsystems und hat viele Verbesserungen am ZFS-Dateisystem vorgenommen.

ZFS wird in letzter Zeit unter Linux immer beliebter, da es stabiler geworden ist.

Die Portierung von ZFS auf Linux wird vom Lawrence Livermore National Laboratory (LLNL) erstellt.

ZFS unter Linux ist ein Kernelmodul, das Sie herunterladen, kompilieren und installieren können. Sie müssen Ihren Kernel nicht patchen oder neu kompilieren.

Sie können die Quellpakete für Ihre jeweilige OS-Distribution hier herunterladen.

2. ZFS unter Linux installieren

In diesem Artikel installieren wir ZFS auf dem CentOS-Server. Aber die unten erwähnten zfs-Befehle sind für fast alle Distributionen auf Linux-Distributionen gleich, mit Ausnahme des Installationsteils.

Führen Sie die folgenden yum-Befehle aus, um ZFS auf Redhat / CentOS zu installieren.

# yum localinstall --nogpgcheck https://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

# yum localinstall --nogpgcheck http://archive.zfsonlinux.org/epel/zfs-release.el6.noarch.rpm

# yum install kernel-devel zfs

Bitte stellen Sie sicher, dass alle Abhängigkeiten erfüllt sind. Eine der Abhängigkeiten, bei denen die Installation normalerweise fehlschlägt, wäre die Anforderung, den GCC-Compiler zu installieren. Installieren Sie in diesem Fall bitte den GCC-Compiler, bevor Sie ZFS installieren.

Stellen Sie sicher, dass die ZFS-Module wie unten gezeigt mit dem Befehl lsmod geladen werden:

# lsmod | grep zfs
zfs                  1188621  0
zcommon                45591  1 zfs
znvpair                81046  2 zfs,zcommon
zavl                    6900  1 zfs
zunicode              323051  1 zfs
spl                   264548  5 zfs,zcommon,znvpair,zavl,zunicode

In einem ähnlichen Zusammenhang möchten Sie vielleicht etwas über die Grundlagen lesen, wie ladbare Linux-Kernel-Module erstellt werden.

Wir haben einige Festplatten auf diesem Server hinzugefügt (/dev/sdb bis /dev/sdf), um die ZFS-Funktionalität zu testen.

# ls -l /dev/sd*
brw-rw----. 1 root disk 8,  0 Jul 15 15:52 /dev/sda
brw-rw----. 1 root disk 8,  1 Jul 15 15:52 /dev/sda1
brw-rw----. 1 root disk 8,  2 Jul 15 15:52 /dev/sda2
brw-rw----. 1 root disk 8,  3 Jul 15 15:52 /dev/sda3
brw-rw----. 1 root disk 8, 16 Jul 16 10:57 /dev/sdb
brw-rw----. 1 root disk 8, 32 Jul 16 10:57 /dev/sdc
brw-rw----. 1 root disk 8, 48 Jul 16 10:58 /dev/sdd
brw-rw----. 1 root disk 8, 64 Jul 16 11:27 /dev/sde
brw-rw----. 1 root disk 8, 80 Jul 16 11:27 /dev/sdf

3. Erstellen Sie einen zpool

Zpool-Befehl zum Konfigurieren der Speicherpools in ZFS. Speicherpool ist eine Sammlung von Geräten, die physischen Speicher und Datenreplikation für zfs-Datensätze bereitstellen.

Folgendes erstellt einen zpool.

# zpool create -f mypool raidz sdb sdc sdd sde sdf

Im obigen Beispiel:

  • create steht für das Erstellen eines neuen Pools.
  • Die Option -f dient dazu, Plattenpartitionsbezeichnungen zu ignorieren, da es sich um neue Platten handelt
  • raidz ist Raid-Level. RAIDZ ist nichts anderes als die Variante von RAID-5, die eine bessere Verteilung der Parität ermöglicht und das „RAID-5“-Schreibloch (Daten- und Paritätsinkonsistenz nach einem Stromausfall) beseitigt.
  • Eine raidz-Gruppe kann einfache, doppelte oder Tribe-Parität haben, was bedeutet, dass sie einen, zwei oder drei Fehler aushalten kann, ohne Daten zu verlieren. Daten und Parität werden über alle Laufwerke innerhalb einer raidz-Gruppe verteilt.

Überprüfen Sie als Nächstes den Status des soeben erstellten Zpools.

# zpool status
  pool: mypool
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        mypool      ONLINE       0     0     0
          raidz1-0  ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0
            sdf     ONLINE       0     0     0

errors: No known data errors

Sobald der Pool erstellt ist, sehen Sie, wenn Sie df –h ausführen, dass der neu erstellte Pool automatisch auf dem Einhängepunkt gemountet wird.

# df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/vglocal-rootlv   14G  2.4G   11G  18% /
tmpfs                       939M     0  939M   0% /dev/shm
/dev/sda1                   504M   46M  433M  10% /boot
mypool                      3.9G     0  3.9G   0% /mypool

4. Erstellen Sie einen gespiegelten Pool

Verwenden Sie zum Erstellen eines gespiegelten Pools den Befehl zpool create mit den folgenden Optionen.

Wenn eine der Festplatten in der jeweiligen Spiegelgruppe ausfällt, enthält die andere Festplatte immer noch die Daten. Sobald die ausgefallene Festplatte ersetzt wird, werden die Inhalte auf die neu ersetzte Festplatte zurückgespiegelt (auch Resilvering genannt).

# zpool create -f mypool mirror sdb sdc mirror sdd sde

Überprüfen Sie als Nächstes den Status des gespiegelten Zpools, den wir gerade erstellt haben:

# zpool status -v
  pool: mypool
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        mypool      ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
          mirror-1  ONLINE       0     0     0
            sdd     ONLINE       0     0     0
            sde     ONLINE       0     0     0

errors: No known data errors

5. Zpool-Import und -Export

Es gibt einige Fälle, in denen Sie zfs-Pools zwischen Systemen migrieren müssen.

ZFS macht dies möglich, indem ein Pool von einem System exportiert und in ein anderes System importiert wird.

Um einen beliebigen Pool zu exportieren, verwenden Sie den Befehl zpool export und der Befehl zpool import wird zum Importieren des Pools verwendet, wie im folgenden Beispiel gezeigt:

# zpool export mypool

# zpool import mypool

6. E/A-Statistiken des ZFS-Pools anzeigen

Um die E/A-Statistiken von zpool anzuzeigen, verwenden Sie den Befehl zpool iostat wie unten gezeigt:

# zpool iostat -v mypool
               capacity     operations    bandwidth
pool        alloc   free   read  write   read  write
----------  -----  -----  -----  -----  -----  -----
mypool       147K  4.95G      0      0     33    252
  mirror      54K  3.97G      0      0     10     84
    sdb         -      -      0      0    536    612
    sdc         -      -      0      0    282    612
  mirror      93K  1008M      0      0     23    168
    sdd         -      -      0      0    288    696
    sde         -      -      0      0    294    696
----------  -----  -----  -----  -----  -----  -----

7. Einen ZFS-Pool löschen

Verwenden Sie zum Zerstören eines Pools den Befehl zpool Destroy wie unten gezeigt:

# zpool destroy mypool

8. Beschädigte Festplatte im ZFS-Pool ersetzen

Um eine Festplatte nach einem Fehler oder einer Beschädigung zu ersetzen, verwenden Sie den folgenden Befehl:

# zpool replace mypool sde sdf

9. ZFS-Pool mit neuer Festplatte erweitern

Um den zpool durch Hinzufügen einer neuen Festplatte zu erweitern, verwenden Sie den unten angegebenen zpool-Befehl:

# zpool add -f mypool sde

10. Hinzufügen einer Ersatzfestplatte zum ZFS-Pool

Sie können dem zfs-Pool auch mit dem folgenden Befehl eine Ersatzfestplatte hinzufügen, indem Sie einem zfs-Pool ein Ersatzgerät hinzufügen.

Die ausgefallenen Festplatten werden automatisch durch das Ersatzgerät ersetzt und der Administrator kann die ausgefallenen Festplatten zu einem späteren Zeitpunkt ersetzen.

Bitte beachten Sie, dass Sie das Ersatzgerät auch für mehrere ZFS-Pools freigeben können.

# zpool add -f mypool spare sde

Im nächsten Teil des Artikels erklären wir, wie Sie die ZFS-Pools verwenden, um ein ZFS-Dateisystem zu erstellen, das ZFS-Dateisystem zu mounten und es über die Befehlszeile zu manipulieren.


Linux
  1. Verwendung des Linux-Hexdump-Befehls mit praktischen Beispielen

  2. Linux DD-Befehl - 15 Beispiele mit allen Optionen

  3. SCP-Befehl in Linux:Verwendung mit Beispielen

  4. JQ-Befehl in Linux mit Beispielen

  5. So erstellen Sie ein ZFS-Dateisystem mit Dateikomprimierung unter Linux

So klonen Sie Festplatten mit dem Linux-Befehl dd

15 Linux-PS-Befehl mit Beispielen

So verwenden Sie den Gunzip-Befehl unter Linux mit Beispielen

So verwenden Sie den Linux-rm-Befehl mit Beispielen

So installieren Sie Dig unter Linux mit Befehlszeilenbeispielen

So verwenden Sie den Sleep-Befehl unter Linux:Erklärt mit Beispielen