Oracle Solaris ZFS Administration Guide

ProcedureHow to Create ZFS File Systems

  1. 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.

  2. 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
  3. Set the inherited properties.

    After the file system hierarchy is established, set up any properties to 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

    You can set file system properties when the file system is created. For example:

    # zfs create -o mountpoint=/export/zfs -o sharenfs=on -o compression=on tank/home

    For more information about properties and property inheritance, see Introducing ZFS Properties.

    Next, individual file systems are grouped under the home file system in the pool tank.

  4. Create the individual file systems.

    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 values 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.

  5. Set the file system-specific properties.

    In this example, user bonwick is assigned a quota of 10 GBs. 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
  6. 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 user bonwick only has 10 GB of space available, while user billm can use the full pool (67 GB).

    For more information about viewing file system status, see Querying ZFS File System Information.

    For more information about how disk space is used and calculated, see ZFS Disk Space Accounting.