Das ZFS-Dateisystem erhält unter Linux eine breitere Anerkennung.
In ZFS können Sie die Komprimierung auf Dateisystemebene aktivieren. Dadurch werden die Daten in komprimiertem Format gespeichert, wodurch viel Speicherplatz gespart wird.
In diesem Artikel erklären wir, wie Sie das Dateisystem aus dem ZFS-Speicherpool erstellen und die Komprimierung auf ZFS aktivieren.
Dies ist der zweite Artikel in der ZFS-Dateisystemserie.
Im ersten Teil dieser Serie haben wir die Grundlagen von ZFS und die Installation von ZFS unter Linux erklärt. Wir haben auch einen ZFS-Pool erstellt.
ZFS-Dateisystem erstellen
Zeigen Sie zunächst alle aktuellen ZFS-Dateisysteme mit dem Befehl zfs list an, wie unten gezeigt. In diesem Beispiel haben wir derzeit ein ZFS-Dateisystem.
# zfs list NAME USED AVAIL REFER MOUNTPOINT mypool 296K 5.84G 30K /mypool
Erstellen Sie nun ein neues ZFS-Dateisystem mit dem Befehl zfs create.
# zfs create mypool/fs1
Wie wir unten sehen, wurde das neue ZFS-Dateisystem nun erfolgreich erstellt.
# zfs list NAME USED AVAIL REFER MOUNTPOINT mypool 170K 5.84G 30K /mypool mypool/fs1 30K 5.84G 30K /mypool/fs1
ZFS-Angebot und -Reservierung festlegen
Wenn Sie ein ZFS-Dateisystem erstellen, verbraucht es standardmäßig den gesamten Speicherplatz im Pool. Sie müssen also ein Kontingent und eine Reservierung für das Dateisystem angeben.
Um ein Zitat festzulegen, verwenden Sie den Befehl zfs set wie unten gezeigt. Hier geben wir das Kontingent für dieses Dateisystem mit 1 GB an.
# zfs set quota=1G mypool/fs1
Legen Sie als Nächstes die Reservierung für das Dateisystem fest. In diesem Beispiel sind fs1 256 MB von 5,59 GB reserviert, sodass niemand diesen Speicherplatz nutzen kann, und er kann auch auf bis zu 1 GB erweitert werden, basierend auf der von uns festgelegten Quote, wenn freier Speicherplatz verfügbar ist.
# zfs set reservation=256M mypool/fs1 # zfs list NAME USED AVAIL REFER MOUNTPOINT mypool 256M 5.59G 32.5K /mypool mypool/fs1 30K 1024M 30K /mypool/fs1
Alternativen ZFS-Einhängepunkt erstellen
Anstatt es mit dem Namen „mypool/fs1“ einzuhängen, können Sie auch einen alternativen Einhängepunkt mit einem beliebigen Namen für ein Dateisystem festlegen.
Beispielsweise setzt der folgende Befehl den Einhängepunkt auf „/testmnt“ anstelle von „mypool/fs1“.
# zfs set mountpoint=/testmnt mypool/fs1
Wie wir aus der folgenden Ausgabe sehen, gibt die erste Spalte NAME den echten Namen des ZFS-Dateisystems an. Die letzte Spalte MOUNTPOINT gibt den alternativen Einhängepunkt an, den wir oben erstellt haben.
# zfs list NAME USED AVAIL REFER MOUNTPOINT mypool 256M 5.59G 32.5K /mypool mypool/fs1 30K 1024M 30K /testmnt
Wenn Sie den Befehl df ausführen, sehen Sie den alternativen Einhängepunkt wie unten gezeigt.
# df -h Filesystem Size Used Avail Use% Mounted on .. mypool 5.6G 128K 5.6G 1% /mypool mypool/fs1 1.0G 128K 1.0G 1% /testmnt
Komprimierung im ZFS-Dateisystem aktivieren
Um die Komprimierung für ein ZFS-Dataset festzulegen, können Sie die Komprimierungseigenschaft wie unten gezeigt festlegen. Sobald diese Eigenschaft gesetzt ist, werden alle großen Dateien, die in diesem ZFS-Dateisystem gespeichert sind, komprimiert.
# zfs set compression=lzjb mypool/fs1
Die folgenden sind die gültigen Komprimierungseigenschaften:
- an
- aus
- lzjb
- gzip
- gzip[1-9]
- zle
Sie können die Komprimierung auch für ein vorhandenes Dateisystem aktivieren. In diesem Fall wird die Komprimierung nur auf die neuen und geänderten Daten angewendet; und alle vorhandenen Daten bleiben unkomprimiert.
ZFS-Komprimierung überprüfen
Im folgenden Beispiel haben wir die 61M-tar-Datei in das unter /testmnt gemountete ZFS-Dateisystem mypool/fs1 kopiert.
# ls -lh /testmnt/test.tar -rw-r--r--. 1 root root 61M Nov 11 09:44 /testmnt/test.tar
Wenn Sie sich die Gesamtgröße des VERWENDETEN Speicherplatzes aus dem Befehl zfs list ansehen, werden Sie sehen, dass nur 20,9 MB Speicherplatz verbraucht werden, was darauf hinweist, dass die Komprimierung aktiviert ist und funktioniert.
# zfs list NAME USED AVAIL REFER MOUNTPOINT mypool 256M 5.59G 32.5K /mypool mypool/fs1 20.9M 1003M 20.9M /testmnt
Sie können das Komprimierungsverhältnis auch mit dem folgenden Befehl abrufen.
# zfs get compressratio mypool/fs1 NAME PROPERTY VALUE SOURCE mypool/fs1 compressratio 2.90x -
Abgesehen von der Komprimierung verfügt das ZFS-Dateisystem über mehrere erweiterte Funktionen. Im nächsten Artikel der ZFS-Reihe besprechen wir, wie ZFS-Klone und -Snapshots erstellt werden.