After creating a storage pool to store your data, you can create your file system hierarchy. Hierarchies are simple yet powerful mechanisms for organizing information. They are also very familiar to anyone who has used a file system.
ZFS allows file systems to be organized into arbitrary hierarchies, where each file system has only a single parent. The root of the hierarchy is always the pool name. ZFS leverages this hierarchy by supporting property inheritance so that common properties can be set quickly and easily on entire trees of file systems.
Determining the ZFS File System Hierarchy
Pick the file system granularity.
ZFS file systems are the central point of administration. They are lightweight and can be created easily. A good model to use is a file system per user or project, as this model allows properties, snapshots, and backups to be controlled on a per-user or per-project basis.
Two ZFS file systems, bonwick
and billm
, are created in Creating ZFS File Systems.
For more information on managing file systems, see Chapter 5, Managing ZFS File Systems.
Group similar file systems.
ZFS allows file systems to be organized into hierarchies so that similar file systems can be grouped. This model provides a central point of administration for controlling properties and administering file systems. Similar file systems should be created under a common name.
For the example in Creating ZFS File Systems, the two file systems are placed under a file system
named home
.
Choose the file system properties.
Most file system characteristics are controlled by using simple properties. These properties control a variety of behavior, including where the file systems are mounted, how they are shared, if they use compression, and if any quotas are in effect.
For the example in Creating ZFS File Systems,
all home directories are mounted at /export/zfs/
user
, are shared by using NFS, and with compression enabled.
In addition, a quota of 10 Gbytes on bonwick
is enforced.
For more information about properties, see ZFS Properties.
Creating ZFS File Systems
Become root or assume an equivalent role with the appropriate ZFS rights profile.
For more information about the ZFS rights profiles, see ZFS Rights Profiles.
Create the desired hierarchy.
In this example, a file system that acts as a container for individual file systems is created.
# zfs create tank/home
Next, individual file systems are grouped under the home
file
system in the pool tank
.
Set the inherited properties.
After the file system hierarchy is established, set up any properties that should be shared among all users:
#zfs set mountpoint=/export/zfs tank/home
#zfs set sharenfs=on tank/home
#zfs set compression=on tank/home
#zfs get compression tank/home
NAME PROPERTY VALUE SOURCE tank/home compression on local
For more information about properties and property inheritance, see ZFS Properties.
Create the individual file systems.
Note that the
file systems could have been created and then the properties could have been
changed at the home
level. All properties can be changed
dynamically while file systems are in use.
#zfs create tank/home/bonwick
#zfs create tank/home/billm
These file systems inherit their property settings from their parent,
so they are automatically mounted at /export/zfs/
user
and are NFS shared. You do not need to edit the /etc/vfstab
or /etc/dfs/dfstab
file.
For more information about creating file systems, see Creating a ZFS File System.
For more information about mounting and sharing file systems, see Mounting and Sharing ZFS File Systems.
Set the file system-specific properties.
In this example,
user bonwick
is assigned a quota of 10 Gbytes. This property
places a limit on the amount of space he can consume, regardless of how much
space is available in the pool.
# zfs set quota=10G tank/home/bonwick
View the results.
View available file system information by using the zfs list command:
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
tank 92.0K 67.0G 9.5K /tank
tank/home 24.0K 67.0G 8K /export/zfs
tank/home/billm 8K 67.0G 8K /export/zfs/billm
tank/home/bonwick 8K 10.0G 8K /export/zfs/bonwick
Note that the user bonwick
only has 10 Gbytes of
space available, while the user billm
can use the full
pool (67 Gbytes).
For more information about viewing file system status, see Querying ZFS File System Information.
For more information about how space is used and calculated, see ZFS Space Accounting.