First, create a pool using 'zpool'. Then use 'zfs' to make the filesystems.
Create a pool called pool1. The -m is optional. If given, it specifies a mount point for zfs filesystems created from the specified pool. The mount point should be empty or nonexistant. If the -m argument is omitted, mount point is "/".
# zpool create -m /export/data01 pool1 mirror c2t0d0 c4t0d0 # zpool status pool: pool1 state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool1 ONLINE 0 0 0 mirror ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c4t0d0 ONLINE 0 0 0To list about pools:
# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT pool1 136G 18.2G 118G 13% ONLINE -To create a zfs filesystem:
# zfs create pool1/fs.001To set filesystem size:
# zfs set quota=24g pool1/fs.001The "zfs share -a" command makes all zfs filesystems that have the "sharenfs" property turned on automatically shared. It only has to be issued once and persists over a reboot. Alternatively, one can issue individual "zfs share" commands for specific filesystems:
# zfs share -aTo make a filesystem sharable:
# zfs set sharenfs=on pool1/fs.001To list existing zfs filesystems:
# zfs list NAME USED AVAIL REFER MOUNTPOINT pool1 18.2G 116G 26.5K /export/data01 pool1/fs.001 18.2G 5.85G 18.2G /export/data01/fs.001To list all properties of a specific filesystem:
# zfs get all pool1/fs.001 NAME PROPERTY VALUE SOURCE pool1/fs.001 type filesystem - pool1/fs.001 creation Wed Sep 13 16:34 2006 - pool1/fs.001 used 18.2G - pool1/fs.001 available 5.85G - pool1/fs.001 referenced 18.2G - pool1/fs.001 compressratio 1.00x - pool1/fs.001 mounted yes - pool1/fs.001 quota 24G local pool1/fs.001 reservation none default pool1/fs.001 recordsize 128K default pool1/fs.001 mountpoint /export/data01/fs.001 inherited from pool1 pool1/fs.001 sharenfs on local pool1/fs.001 checksum on default pool1/fs.001 compression off default pool1/fs.001 atime on default pool1/fs.001 devices on default pool1/fs.001 exec on default pool1/fs.001 setuid on default pool1/fs.001 readonly off default pool1/fs.001 zoned off default pool1/fs.001 snapdir hidden default pool1/fs.001 aclmode groupmask default pool1/fs.001 aclinherit secure defaultHere's an example of 'df':
# df -k -Fzfs Filesystem kbytes used avail capacity Mounted_on pool1 140378112 26 121339726 1% /export/data01 pool1/fs.001 25165824 19036649 6129174 76% /export/data01/fs.001You can increase the size of a pool by adding a mirrored pair of disk drives:
# zpool add pool1 mirror c2t1d0 c4t1d0 # zpool status pool: pool1 state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool1 ONLINE 0 0 0 mirror ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c4t0d0 ONLINE 0 0 0 mirror ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 c4t1d0 ONLINE 0 0 0 # zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT pool1 272G 18.2G 254G 6% ONLINE -Note that "zpool attach" is a completely different command that adds multiway mirrors to increase redundancy but does not add extra space.
Make some more filesystems:
# zfs create pool1/fs.002 # zfs set quota=20g pool1/fs.002 # zfs set sharenfs=on pool1/fs.002 # zfs create pool1/fs.003 # zfs set quota=30g pool1/fs.003 # zfs set sharenfs=on pool1/fs.003 # zfs create pool1/fs.004 # zfs set quota=190G pool1/fs.004 # zfs set sharenfs=on pool1/fs.004They show up in 'df':
# df -k -Fzfs -h Filesystem size used avail capacity Mounted on pool1 268G 29K 250G 1% /export/data01 pool1/fs.001 24G 18G 5.8G 76% /export/data01/fs.001 pool1/fs.002 30G 24K 30G 1% /export/data01/fs.002 pool1/fs.003 20G 24K 20G 1% /export/data01/fs.003 pool1/fs.004 190G 24K 190G 1% /export/data01/fs.004But don't look for them in /etc/vfstab:
# cat /etc/vfstab #device device mount FS fsck mount mount #to_mount to_fsck point type pass at_boot options # fd - /dev/fd fd - no - /proc - /proc proc - no - /dev/dsk/c0t0d0s1 - - swap - no - /dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 / ufs 1 no - /dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /var ufs 1 no - /devices - /devices devfs - no - ctfs - /system/contract ctfs - no - objfs - /system/object objfs - no - swap - /tmp tmpfs - yes -Note that they are all shared because the share -a is in effect:
# share - /export/data01/fs.001 rw "" - /export/data01/fs.002 rw "" - /export/data01/fs.003 rw "" - /export/data01/fs.004 rw ""You can list zfs pools with:
# zfs list NAME USED AVAIL REFER MOUNTPOINT pool1 18.2G 250G 29.5K /export/data01 pool1/fs.001 18.2G 5.85G 18.2G /export/data01/gdos.001 pool1/fs.002 24.5K 30.0G 24.5K /export/data01/gdos.002 pool1/fs.003 24.5K 20.0G 24.5K /export/data01/gdos.003 pool1/fs.004 24.5K 190G 24.5K /export/data01/gdos.004The disks are labeled and partitioned automatically by 'zpool':
# format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c0t0d0Note that Solaris 10 cannot boot from a zfs filesystem. You may want to have a look at this tutorial on Mirroring system disks with Solaris Volume Manager / Disksuite./pci@0,0/pcie11,4080@1/sd@0,0 1. c2t0d0 /pci@6,0/pci13e9,1300@3/sd@0,0 2. c2t1d0 /pci@6,0/pci13e9,1300@3/sd@1,0 3. c4t0d0 /pci@6,0/pci13e9,1300@4/sd@0,0 4. c4t1d0 /pci@6,0/pci13e9,1300@4/sd@1,0 Specify disk (enter its number): partition> p Current partition table (original): Total disk sectors available: 286733069 + 16384 (reserved sectors) Part Tag Flag First Sector Size Last Sector 0 usr wm 34 136.72GB 286733069 1 unassigned wm 0 0 0 2 unassigned wm 0 0 0 3 unassigned wm 0 0 0 4 unassigned wm 0 0 0 5 unassigned wm 0 0 0 6 unassigned wm 0 0 0 8 reserved wm 286733070 8.00MB 286749453