Zusätzlich zu den nativen Eigenschaften unterstützt ZFS auch beliebige benutzerdefinierte Eigenschaften. Benutzerdefinierte Eigenschaften wirken sich nicht auf das ZFS-Verhalten aus, können jedoch zum Versehen von Datasets mit Informationen, die für Ihre lokalen Gegebenheiten wichtig sind, verwendet werden.
Namen benutzerdefinierter Eigenschaften müssen den folgenden Konventionen genügen:
Sie müssen einen Doppelpunkt (:) enthalten, damit sie von nativen Eigenschaften unterschieden werden können.
Sie dürfen Kleinbuchstaben, Zahlen und die folgenden Interpunktionszeichen enthalten: ':', '+', '.', '_'.
Der Name einer benutzerdefinierten Eigenschaft darf maximal 256 Zeichen lang sein.
Namen benutzerdefinierter Eigenschaften sollten generell in die folgenden beiden Komponenten aufgeteilt werden, obwohl dies für ZFS nicht obligatorisch ist:
module:property |
Bei der programmatischen Verwendung von Eigenschaften sollten Sie für die Komponente Modul einen umgekehrten DNS-Domänennamen verwenden. Dadurch wird die Wahrscheinlichkeit verringert, dass zwei unabhängig voneinander entwickelte Pakete die gleiche Eigenschaft für unterschiedliche Zwecke nutzen. Eigenschaftsnamen, die mit com.sun beginnen, sind für Oracle Corporation reserviert.
Die Werte benutzerdefinierter Eigenschaften müssen folgenden Konventionen entsprechen:
Sie müssen aus beliebigen Zeichenketten bestehen, die immer vererbt und niemals validiert werden.
Der Wert einer benutzerdefinierten Eigenschaft darf maximal 1024 Zeichen lang sein.
Beispiel:
# zfs set dept:users=finance userpool/user1 # zfs set dept:users=general userpool/user2 # zfs set dept:users=itops userpool/user3 |
Alle Befehle, die Eigenschaften verwenden (z. B. zfs list, zfs get, zfs set usw.) können native und benutzerdefinierte Eigenschaften nutzen.
Beispiel:
zfs get -r dept:users userpool NAME PROPERTY VALUE SOURCE userpool dept:users all local userpool/user1 dept:users finance local userpool/user2 dept:users general local userpool/user3 dept:users itops local |
Benutzerdefinierte Eigenschaften können mit dem Befehl zfs inherit gelöscht werden. Beispiel:
# zfs inherit -r dept:users userpool |
Wenn die betreffende Eigenschaft nicht in einem übergeordneten Dataset definiert wurde, wird sie komplett entfernt.