Dataset-Eigenschaften werden mithilfe der Unterbefehle set, inherit und get des Befehls zfs verwaltet.
Sie können konfigurierbare Dataset-Eigenschaften mit dem Befehl zfs set setzen. Bei der Erstellung eines Datasets können Eigenschaften auch mit dem Befehl zfs create gesetzt werden. Eine Liste der konfigurierbaren Dataset-Eigenschaften finden Sie unter Konfigurierbare native ZFS-Eigenschaften.
Der Befehl zfs set verwendet ein Eigenschaft-Wert-Paar im Format Eigenschaft=Wert, dem ein Dataset-Name folgt. Während eines Aufrufs von zfs set kann nur eine Eigenschaft gesetzt oder geändert werden.
Im folgenden Beispiel wird die Eigenschaft atime von tank/home auf off gesetzt.
# zfs set atime=off tank/home |
Darüber hinaus können bei der Erstellung eines Dateisystems beliebige Dateisystemeigenschaften gesetzt werden. Beispiel:
# zfs create -o atime=off tank/home |
Spezielle nummerische Eigenschaftswerte können durch Verwendung der folgenden verständlichen Suffixe (in ansteigender Größenordnung) angegeben werden: BKMGTPEZ. Allen diesen Suffixen außer dem Suffix B, das für Byte steht, kann ein b (für „Byte”) nachgestellt werden. In den folgenden vier Beispielen des Befehls zfs set werden entsprechende nummerische Ausdrücke angegeben, mit denen die Eigenschaft quota gesetzt wird. Damit werden Kontingente im Dateisystem tank/home/marks auf 50 GB gesetzt:
# zfs set quota=50G tank/home/marks # zfs set quota=50g tank/home/marks # zfs set quota=50GB tank/home/marks # zfs set quota=50gb tank/home/marks |
Bei Zeichenkettenwerten wird Groß- und Kleinschreibung unterschieden. Diese Werte dürfen nur Kleinbuchstaben enthalten. Ausnahmen bilden die Werte der Eigenschaften mountpoint und sharenfs; die Werte dieser Eigenschaften dürfen sowohl Groß- als auch Kleinbuchstaben enthalten.
Weitere Informationen zum Befehl zfs set finden Sie in der Man Page zfs(1M).
Alle konfigurierbaren Eigenschaften mit der Ausnahme von Kontingenten und Reservierungen erben ihren Wert von ihrem übergeordneten Dataset, es sei denn, diese Werte sind im untergeordneten Dataset explizit gesetzt. Wenn das entsprechende übergeordnete Dateisystem für eine vererbte Eigenschaft keinen Wert besitzt, wird der Standardwert für die betreffende Eigenschaft verwendet. Mit dem Befehl zfs inherit können Sie Eigenschaftswerte zurücksetzen, was zur Folge hat, dass der vom übergeordneten Dateisystem vererbte Wert verwendet wird.
Im folgenden Beispiel wird mithilfe des Befehls zfs set die Komprimierung für das Dateisystem tank/home/bonwick aktiviert. Danach wird zfs inherit verwendet, um die Eigenschaft compression zu löschen, wodurch die Eigenschaft den Standardwert (off) des erbt. Da weder bei home noch bei tank der Wert der Eigenschaft compression lokal gesetzt wurde, wird der Standardwert verwendet. Wäre bei beiden die Komprimierung aktiviert, würde der Wert des direkten übergeordneten Dateisystems (in diesem Beispiel home) verwendet werden.
# zfs set compression=on tank/home/bonwick # zfs get -r compression tank NAME PROPERTY VALUE SOURCE tank compression off default tank/home compression off default tank/home/bonwick compression on local # zfs inherit compression tank/home/bonwick # zfs get -r compression tank NAME PROPERTY VALUE SOURCE tank compression off default tank/home compression off default tank/home/bonwick compression off default |
Der Unterbefehl inherit wird bei Angabe der Option -r rekursiv ausgeführt. Im folgenden Beispiel wird durch den Befehl der Wert für die Eigenschaft compression von tank/home und allen eventuell vorhandenen untergeordneten Dateisystemen geerbt:
# zfs inherit -r compression tank/home |
Bitte beachten Sie, dass die Option -r die Eigenschaftswerte aller untergeordneten Datasets zurücksetzt.
Weitere Informationen zum Befehl zfs inherit finden Sie in der Man Page zfs(1M).
Am Einfachsten können Eigenschaftswerte mit dem Befehl zfs list abgefragt werden. Weitere Informationen dazu finden Sie unter Auflisten grundlegender ZFS-Informationen. Für komplexere Abfragen und Skripten sollten Sie den Befehl zfs get verwenden, da dieser ausführlichere Informationen in einem anpassbaren Format anzeigt.
Sie können Dataset-Eigenschaften mit dem Befehl zfs get abrufen. Das folgende Beispiel zeigt, wie ein Eigenschaftswert eines Datasets abgerufen werden kann:
# zfs get checksum tank/ws NAME PROPERTY VALUE SOURCE tank/ws checksum on default |
In der vierten Spalte SOURCE wird der Ursprung des betreffende Eigenschaftswerts angezeigt. In der folgenden Tabelle werden die möglichen Ursprungswerte erläutert.
Tabelle 6–3 Mögliche SOURCE-Werte (Befehl zfs get)
SOURCE-Wert |
Beschreibung |
---|---|
default |
Dieser Eigenschaftswert wurde für dieses Dataset bzw. seine übergeordneten Datasets nie explizit gesetzt. Es wird der Standardwert für diese Eigenschaft verwendet. |
inherited from Dataset-Name |
Dieser Eigenschaftswert wurde vom übergeordneten Dataset geerbt, das in dataset-name angegeben ist. |
local |
Dieser Eigenschaftswert wurde mithilfe von zfs set für dieses Dataset explizit gesetzt. |
temporary |
Dieser Eigenschaftswert wurde mithilfe von zfs mount - o gesetzt und gilt nur solange, wie das Dateisystem eingehängt ist. Weitere Informationen zu temporären Eigenschaften von Einhängepunkten finden Sie unter Verwenden temporärer Einhängepunkte. |
- (keiner) |
Diese Eigenschaft ist schreibgeschützt. Ihr Wert wird von ZFS bereitgestellt. |
Sie können alle Dataset-Eigenschaftswerte mit dem speziellen Schlüsselwort all abrufen. In den folgenden Beispielen wird das Schlüsselwort all verwendet:
# zfs get all tank/home NAME PROPERTY VALUE SOURCE tank/home type filesystem - tank/home creation Tue Jun 29 11:44 2010 - tank/home used 21K - tank/home available 66.9G - tank/home referenced 21K - tank/home compressratio 1.00x - tank/home mounted yes - tank/home quota none default tank/home reservation none default tank/home recordsize 128K default tank/home mountpoint /tank/home default tank/home sharenfs off default tank/home checksum on default tank/home compression off default tank/home atime on default tank/home devices on default tank/home exec on default tank/home setuid on default tank/home readonly off default tank/home zoned off default tank/home snapdir hidden default tank/home aclmode groupmask default tank/home aclinherit restricted default tank/home canmount on default tank/home shareiscsi off default tank/home xattr on default tank/home copies 1 default tank/home version 4 - tank/home utf8only off - tank/home normalization none - tank/home casesensitivity sensitive - tank/home vscan off default tank/home nbmand off default tank/home sharesmb off default tank/home refquota none default tank/home refreservation none default tank/home primarycache all default tank/home secondarycache all default tank/home usedbysnapshots 0 - tank/home usedbydataset 21K - tank/home usedbychildren 0 - tank/home usedbyrefreservation 0 - tank/home logbias latency default |
Die Eigenschaften casesensitivity, nbmand, normalization, sharesmb, utf8only und vscan sind in Oracle Solaris 10 nicht voll funktionsfähig, da der Oracle Solaris SMB-Service nicht von Oracle Solaris 10 unterstützt wird.
Mit der Option -s des Befehls zfs get können Sie die anzuzeigenden Eigenschaften nach Ursprungstyp angeben. Diese Option liest eine kommagetrennte Liste der gewünschten Ursprungstypen ein. Es werden nur Eigenschaften des gewünschten Ursprungstyps angezeigt. Zulässige Ursprungstypen sind local, default, inherited, temporary und none. Das folgende Beispiel zeigt alle Eigenschaften, die in pool lokal gesetzt wurden.
# zfs get -s local all pool NAME PROPERTY VALUE SOURCE pool compression on local |
Alle der o. g. Optionen können zusammen mit der Option -r verwendet werden, um die angegebenen Eigenschaften aller untergeordneten Datasets rekursiv anzuzeigen. Im folgenden Beispiel werden alle temporären Eigenschaften aller Datasets in tank rekursiv angezeigt:
# zfs get -r -s temporary all tank NAME PROPERTY VALUE SOURCE tank/home atime off temporary tank/home/bonwick atime off temporary tank/home/marks atime off temporary |
Mithilfe des Befehls zfs get können Sie Eigenschaftswerte abfragen ohne ein Zieldateisystem anzugeben, was bedeutet, dass alle Pools bzw. Dateisysteme abgefragt werden. Beispiel:
# zfs get -s local all tank/home atime off local tank/home/bonwick atime off local tank/home/marks quota 50G local |
Weitere Informationen zum Befehl zfs get finden Sie in der Man Page zfs(1M).
Der Befehl zfs get unterstützt die Optionen -H und - o, die speziell für die Verwendung dieses Befehl in Skripten vorgesehen sind. Sie können die Option -H verwenden, um die Kopfzeileninformationen zu unterdrücken und Leerzeichen durch Tabulatorzeichen zu ersetzen. Dadurch können Daten einfach analysiert werden. Sie können die Option -o verwenden, um die Ausgabe wie folgt anzupassen:
Das Literal name kann zusammen mit einer kommagetrennten Liste von Eigenschaften verwendet werden (siehe Abschnitt ZFS-Eigenschaften.
Eine kommagetrennte Liste von Literalfeldern, name, value, property und source, wird ausgegeben, der ein Leerzeichen und ein Argument folgt. Diese Liste ist eine kommagetrennte Liste von Eigenschaften.
Das folgende Beispiel zeigt, wie mithilfe der Optionen -H und -o des Befehls zfs get ein einzelner Wert abgerufen werden kann.
# zfs get -H -o value compression tank/home on |
Die Option -p gibt nummerische Werte exakt aus. 1 MB wird beispielsweise als 1000000 ausgegeben. Diese Option lässt sich wie folgt verwenden:
# zfs get -H -o value -p used tank/home 182983742 |
Mit der Option -r und allen der o. g. Optionen können Sie Werte für alle untergeordneten Datasets rekursiv abrufen. Im folgenden Beispiel werden die Optionen -H, -o und - r verwendet, um den Dataset-Namen sowie der Wert der Eigenschaft used für export/home und die untergeordneten Objekte abzurufen, während die Kopfzeile der Befehlsausgabe unterdrückt wird:
# zfs get -H -o name,value -r used export/home export/home 5.57G export/home/marks 1.43G export/home/maybee 2.15G |