In addition to the native properties, ZFS supports arbitrary user properties. User properties have no effect on ZFS behavior, but you can use them to annotate datasets with information that is meaningful in your environment.
User property names must conform to the following conventions:
They must contain a colon (':') character to distinguish them from native properties.
They must contain lowercase letters, numbers, or the following punctuation characters: ':', '+','.', '_'.
The maximum length of a user property name is 256 characters.
The expected convention is that the property name is divided into the following two components but this namespace is not enforced by ZFS:
module:property |
When making programmatic use of user properties, use a reversed DNS ___domain name for the module component of property names to reduce the chance that two independently developed packages will use the same property name for different purposes. Property names that begin with com.sun. are reserved for use by Oracle Corporation.
The values of user properties must conform to the following conventions:
They must consist of arbitrary strings that are always inherited and are never validated.
The maximum length of the user property value is 1024 characters.
For example:
# zfs set dept:users=finance userpool/user1 # zfs set dept:users=general userpool/user2 # zfs set dept:users=itops userpool/user3 |
All of the commands that operate on properties, such as zfs list, zfs get, zfs set, and so on, can be used to manipulate both native properties and user properties.
For example:
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 |
To clear a user property, use the zfs inherit command. For example:
# zfs inherit -r dept:users userpool |
If the property is not defined in any parent dataset, it is removed entirely.