Solaris 10 10/09 und Oracle Solaris 10 9/10: Diese Versionen enthalten folgende Verbesserungen des ZFS-Dateisystems.
Verbesserung der Eigenschaften von ZFS-Snapshot-Datenströmen – Sie können eine empfangene Eigenschaft setzen, die sich von ihrer lokalen Einstellung unterscheidet. Sie empfangen beispielsweise einen Datenstrom, dessen Komprimierungseigenschaft deaktiviert ist, möchten aber, dass die Komprimierung im Dateisystem, das die Daten empfängt, aktiviert ist. Der empfangene Datenstrom weist den empfangenen Komprimierungswert off und den lokalen Komprimierungswert on auf. Da der lokale Wert den empfangenen Wert übersteuert, müssen Sie sich nicht darum kümmern, dass die Einstellung auf der Sendeseite den Wert auf der Empfangsseite ersetzt. Der Befehl zfs get zeigt den effektiven Wert der Komprimierungseigenschaft in der Spalte VALUE.
Es folgen neue ZFS-Befehlsoptionen und Eigenschaften, die gesendete und lokale Eigenschaftswerte unterstützen:
Verwenden Sie zfs inherit -S, um einen lokalen Eigenschaftswert auf den empfangenen Wert (sofern vorhanden) zurückzusetzen. Wenn eine Eigenschaft keinen empfangenen Wert aufweist, ist das Verhalten des Befehls zfs inherit - S dasselbe wie das des Befehls zfs inherit ohne die Option -S. Wenn die Eigenschaft einen empfangenen Wert aufweist, maskiert der Befehl zfs inherit den empfangenen Wert mit dem vererbten Wert, bis dieser durch Ausgabe des Befehls zfs inherit -S auf den empfangenen Wert zurückgesetzt wird.
Sie können den Befehl zfs get -o verwenden, um die neue nicht standardmäßige Spalte RECEIVED einzubeziehen. Sie können aber auch den Befehl zfs get -o all verwenden, um alle Spalten einschließlich RECEIVED einzubeziehen.
Sie können die Option zfs send -p verwenden, um Eigenschaften in zu sendenden Datenstrom ohne die Option -R einzubeziehen.
Außerdem können Sie die Option zfs send -e verwenden, um mithilfe des letzten Elements des gesendeten Snapshot-Namens den Namen des neuen Snapshots festzulegen. Im folgenden Beispiel wird der Snapshot poola/bee/cee@1 an das Dateisystem poold/eee gesendet, und nur das letzte Element (cee@1) des Snapshot-Namens wird verwendet, um das Dateisystem und den Snapshot zu erstellen.
# zfs list -rt all poola NAME USED AVAIL REFER MOUNTPOINT poola 134K 134G 23K /poola poola/bee 44K 134G 23K /poola/bee poola/bee/cee 21K 134G 21K /poola/bee/cee poola/bee/cee@1 0 - 21K - # zfs send -R poola/bee/cee@1 | zfs receive -e poold/eee # zfs list -rt all poold NAME USED AVAIL REFER MOUNTPOINT poold 134K 134G 23K /poold poold/eee 44K 134G 23K /poold/eee poold/eee/cee 21K 134G 21K /poold/eee/cee poold/eee/cee@1 0 - 21K - |
Einstellung der Eigenschaften von ZFS-Dateisystemen zum Zeitpunkt der Erstellung eines Pools – Sie können die Eigenschaften des ZFS-Dateisystems bei der Erstellung eines Speicher-Pool einstellen. Im folgenden Beispiel ist die Komprimierung auf dem ZFS-Dateisystem, das bei Erstellung des Pools eingerichtet wird, aktiviert:
# zpool create -O compression=on pool mirror c0t1d0 c0t2d0 |
Einstellung von Cache-Eigenschaften für ein ZFS-Dateisystem – Zwei neue Eigenschaften von ZFS-Dateisystemen werden zur Verfügung gestellt, mit denen Sie kontrollieren können, was im primären Cache (ARC) und im sekundären Cache (L2ARC) gespeichert wird. Die Cache-Eigenschaften sind folgendermaßen eingestellt:
primarycache – Kontrolliert, was im ARC gespeichert wird.
secondarycache – Kontrolliert, was im L2ARC gespeichert wird.
Mögliche Werte für beide Eigenschaften – all, none und metadata. Ist diese Eigenschaft auf all gesetzt, werden sowohl Benutzerdaten als auch Metadaten im Cache gespeichert. Ist diese Eigenschaft auf none gesetzt, werden weder Benutzerdaten noch Metadaten im Cache gespeichert. Ist diese Eigenschaft auf metadata gesetzt, werden nur Metadaten im Cache gespeichert. Die Standardeinstellung ist all.
Sie können diese Eigenschaften für ein bereits vorhandenes Dateisystem oder bei der Erstellung eines Dateisystems einstellen. Beispiel:
# zfs set primarycache=metadata tank/datab # zfs create -o primarycache=metadata tank/newdatab |
Sobald diese Eigenschaften für bereits vorhandene Dateisysteme eingestellt werden, werden nur neue E/A-Vorgänge auf der Basis des Werts dieser Eigenschaften im Cache gespeichert.
Bei einigen Datenbank-Umgebungen kann es von Vorteil sein, Benutzerdaten nicht im Cache zu speichern. Sie müssen selbst bestimmen, ob das Einstellen von Cache-Eigenschaften für Ihre Umgebung sinnvoll ist.
Anzeigen von Eigenschaften zur Berechnung von Festplattenkapazität – Mit neuen schreibgeschützten Dateisystem-Eigenschaften können Sie die Festplattenkapazitätsbelegung für Klone, Dateisysteme, Volumes und Snapshots bestimmen. Folgende Eigenschaften stehen zur Verfügung:
usedbychildren – Gibt Festplattenkapazität an, die von untergeordneten Objekten dieses Datasets beansprucht wird und die beim Löschen dieser untergeordneten Objekte frei werden würde. Die Abkürzung für die Eigenschaft lautet usedchild
usedbydataset – Gibt Festplattenkapazität an, die vom Dataset selbst beansprucht wird und die beim Löschen des Datasets und vorherigem Löschen aller Snapshots sowie Entfernen aller Reservierungen frei werden würde. Die Abkürzung für die Eigenschaft lautet usededds
usedbyrefreservation – Gibt die von einem refreservation-Set dieses Datasets beanspruchte Festplattenkapazität an, die beim Entfernen der Reservierung frei werden würde. Die Abkürzung für die Eigenschaft lautet usedrefreserv
usedbysnapshots – Gibt Festplattenkapazität an, die von Snapshots dieses Datasets beansprucht wird und die beim Löschen dieser Snapshots frei werden würde. Beachten Sie, dass es sich dabei nicht um die Summe der used-Eigenschaften der Snapshots handelt, da Festplattenkapazität von mehreren Snapshots gemeinsam genutzt werden kann. Die Abkürzung für die Eigenschaft lautet usedsnap
Diese neuen Eigenschaften teilen den Wert der used Eigenschaft in die verschiedenen Elemente auf, die Festplattenkapazität beanspruchen. Genauer betrachtet wird der Wert der used Eigenschaft folgendermaßen aufgeteilt:
used property = usedbychildren + usedbydataset + usedbyrefreservation + usedbysnapshots |
Sie können diese Eigenschaften mit dem Befehl zfs list - o space genauer betrachten. Beispiel:
$ zfs list -o space NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD rpool 25.4G 7.79G 0 64K 0 7.79G rpool/ROOT 25.4G 6.29G 0 18K 0 6.29G rpool/ROOT/snv_98 25.4G 6.29G 0 6.29G 0 0 rpool/dump 25.4G 1.00G 0 1.00G 0 0 rpool/export 25.4G 38K 0 20K 0 18K rpool/export/home 25.4G 18K 0 18K 0 0 rpool/swap 25.8G 512M 0 111M 401M 0 |
Der obige Befehl entspricht dem Befehl zfs list - o name,avail,used,usedsnap,usedds,usedrefreserv,usedchild -t filesystem,volume.
Snapshots auflisten– Die Pool-Eigenschaft listsnapshots steuert, ob Snapshot-Informationen mit dem Befehl zfs list angezeigt werden. Der Standardwert ist on, Snapshot-Informationen werden also standardmäßig angezeigt.
Wenn in Ihrem System viele ZFS-Snapshots vorhanden sind und Sie verhindern möchten, dass Snapshot-Informationen mithilfe des Befehls zfs list angezeigt werden, deaktivieren Sie die Eigenschaft listsnapshots wie folgt:
# zpool get listsnapshots pool NAME PROPERTY VALUE SOURCE pool listsnapshots on default # zpool set listsnaps=off pool |
Wenn Sie die Eigenschaft listsnapshots deaktivieren, können Sie den Befehl zfs list -t snapshots verwenden, um Snapshot-Informationen anzuzeigen. Beispiel:
# zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT pool/home@today 16K - 22K - pool/home/user1@today 0 - 18K - pool/home/user2@today 0 - 18K - pool/home/user3@today 0 - 18K - |