For more information about the ZFS rights profiles, see Hardware and Software Requirements.
# zpool create pool keyword devices [keyword devices]
Name of the ZFS pool. The pool name must satisfy the naming requirements in Naming ZFS Components
Further specifies the pool configuration such as type of redundancy, or whether log devices or cache will be used.
For the redundancy type, you use either the keyword mirror for a mirrored configuration or one of the following keywords for a RAID-Z configuration, depending on the parity you want: raidz or raidz1 for single parity, raidz2 for double parity, and raidz3 for triple parity.
Specify the devices that are allocated for the pool. The devices cannot be in use or contain another file system. Otherwise, pool creation fails.
For more information about how device usage is determined, see Devices Actively Being Used.
# zpool list
# zpool status pool
The basic file system acts as a container for the individual file systems that are subsequently created.
# zfs create pool/filesystem
where filesystem is the name of the file system.
When used in a command, the file system name must always include the full path of the hierarchy: pool/filesystem. This rule also applies to subsequent children file systems that you create.
# zfs set property=value pool/filesystem
You can set multiple system properties.
# zfs create -o property=value [-o property=value] pool/filesystem
# zfs create pool/filesystem/fs1 # zfs create pool/filesystem/fs2 ...
where fs1, fs2, and so on are individual file systems.
# zfs set property=value pool/filesystem/fs1
# zpool list
For more information about viewing pool status, see Querying ZFS Storage Pool Status.
In the following example, a basic ZFS configuration is created on the system with the following specifications:
Two disks are allocated to the ZFS file system: c1t0d0 and c2t0d0.
The pool system1 uses mirroring.
The file system home is created over the pool.
The following properties are set for home: mountpoint, share.nfs, and compression.
Two children file systems, user1 and user2 are created on home.
A quota is set for user2. This property restricts the disk space available for user2 regardless of the available disk space of the entire pool.
The command zfs get used example displays file system properties.
# zpool create system1 mirror c1t0d0 c2t0d0
# zpool list
NAME SIZE ALLOC FREE CAP HEALTH ALTROOT
system1 80G 137K 80G 0% ONLINE -
# zpool status system1
pool: system1
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
system1 ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
c1t0d0 ONLINE 0 0 0
c2t0d0 ONLINE 0 0 0
errors: No known data errors
# zfs create system1/home
# zfs set mountpoint=/export/zfs system1/home
# zfs set share.nfs=on system1/home
# zfs set compression=on system1/home
# zfs get compression system1/home
NAME PROPERTY VALUE SOURCE
system1/home compression on local
# zfs create system1/home/user1
# zfs create system1/home/user2
# zfs set quota=10G system1/home/user2
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
system1 92.0K 67.0G 9.5K /system1
system1/home 24.0K 67.0G 8K /export/zfs
system1/home/user1 8K 67.0G 8K /export/zfs/user1
system1/home/user2 8K 10.0G 8K /export/zfs/user2
Example 2 Configuring a RAID-Z ZFS File System
This example creates a RAID-Z file system and shows how you can specify disks by using either their shorthand device names or their full device names: the disk c6t0d0 is the same as /dev/dsk/c6t0d0.
Three disks are allocated to the ZFS file system: c4t0d0, c5t0d0, and c6t0d0.
The pool rdpool uses a RAID-Z single-parity configuration.
The file system base is created over the pool.
# zpool create rdpool raidz c4t0d0 c5t0d0 /dev/dsk/c6t0d0
# zpool list
NAME SIZE ALLOC FREE CAP HEALTH ALTROOT
rdpool 120G 205K 120G 0% ONLINE -
# zpool status -v rdpool
pool: rdpool
state: ONLINE
scrub: none requested
config:
NAME STATE READ WRITE CKSUM
rdpool ONLINE 0 0 0
raidz-0 ONLINE 0 0 0
c4t0d0 ONLINE 0 0 0
c5t0d0 ONLINE 0 0 0
c6t0d0 ONLINE 0 0 0
errors: No known data errors
# zfs create rdpool/base
# zfs set mountpoint=/export/zfs rdpool/base
# zfs set share.nfs=on rdpool/base
# zfs set compression=on rdpool/base
# zfs get compression rdpool/base
NAME PROPERTY VALUE SOURCE
rdpool/base compression on local
# zfs create rdpool/base/user1
# zfs create rdpool/base/user2
# zfs set quota=10G rdpool/base/user2
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
rdpool 92.0K 67.0G 9.5K /rdpool
rdpool/base 24.0K 67.0G 8K /export/zfs
rdpool/base/user1 8K 67.0G 8K /export/zfs/user1
rdpool/base/user2 8K 10.0G 8K /export/zfs/user2