A previous tech-recipe demonstrated the command to create a ZFS pool using zpool. While this created a mounted filesystem, the fun does not stop there. The pool can be used in additional ways. This tech-recipe shows how to create more filesystems out of an existing pool.
Filesystems with ZFS are fundamentally different from those using UFS. The analogous structure to a UFS filesystem (configured on a disk slice) is a ZFS pool which can occupy a slice of a disk, but it can also be used with a whole disk. Multiple ZFS filesystems can then be created within a single ZFS pool. This is possible because attributes such as encryption, quotas, and space reservations can be set on individual filesystems or filesystem trees in a ZFS pool providing flexibility impossible with UFS.
Given the pool techrx (mounted at /techrx), a new filesystem ‘logs’ can be created using the command:
zfs create techrx/logs
At this point, there is now a new filesystem mounted at /techrx/logs which we can see with a df -h command:
# df -h /techrx/logs
Filesystem size used avail capacity Mounted on
techrx/logs 19G 24K 19G 1% /techrx/logs
Additional filesystems can be created under the new logs filesystem:
zfs create techrx/logs/httpd
zfs create techrx/logs/mail
These newly created filesystems share the same space as techrx/logs as seen in this df output:
# df -h /techrx/logs/*
Filesystem size used avail capacity Mounted on
techrx/logs/httpd 19G 24K 19G 1% /techrx/logs/httpd
techrx/logs/mail 19G 24K 19G 1% /techrx/logs/mail
techrx/logs 19G 24K 19G 1% /techrx/logs