ZFS Cheatsheet
This is a quick and dirty cheatsheet on Sun's ZFS
Directories and Files |
|
| error messages | /var/adm/messages console |
States |
|
| DEGRADED | One or more top-level devices is in the degraded state because they have become offline. Sufficient replicas exist to keep functioning |
| FAULTED | One or more top-level devices is in the faulted state because they have become offline. Insufficient replicas exist to keep functioning |
| OFFLINE | The device was explicity taken offline by the "zpool offline" command |
| ONLINE | The device is online and functioning |
| REMOVED | The device was physically removed while the system was running |
| UNAVAIL | The device could not be opened |
Storage Pools |
|
| displaying | zpool list zpool list -o name,size,altroot Note: there are a number of properties that you can select, the default is: name, size, used, available, capacity, health, altroot |
| status | zpool status ## Show only errored pools with more verbosity zpool status -xv |
| statistics | zpool iostat -v 5 5 Note: use this command like you would iostat |
| history | zpool history -il |
| creating | ## performing a dry run but don't actual perform the creation zpool create -n data01 c1t0d0s0 # you can persume that I created two files called /zfs1/disk01 and /zfs1/disk02 using mkfile zpool create data01 /zfs1/disk01 /zfs1/disk02 # using a standard disk slice zpool create data01 c1t0d0s0 ## using a different mountpoint than the default /<pool name> zpool create -m /zfspool data01 c1t0d0s0 # mirror and hot spare disks examples zpool create data01 mirror c1t0d0 c2t0d0 mirror c1t0d1 c2t0d1 zpool create data01 mirror c1t0d0 c2t0d0 spare c3t0d0 ## setting up a log device and mirroring it zpool create data01 mirror c1t0d0 c2t0d0 log mirror c3t0d0 c4t0d0 ## setting up a cache device zpool create data 01 mirror c1t0d0 c2t0d0 cache c3t0d0 c3t1d0 |
| destroying | zpool destroy /zfs1/data01 ## in the event of a disaster you can re-import a destroyed pool zpool import -f -D -d /zfs1 data031 |
| adding | zpool add data01 c2t0d0 Note: make sure that you get this right as zpool only supports the removal of hot spares and cache disks |
| removing | zpool remove data01 c2t0d0 Note: zpool only supports the removal of hot spares and cache disks |
| clearing faults | zpool clear data01 ## Clearing a specific disk fault zpool clear data01 c2t0d0 |
| attaching | ## c2t0d0 is an existing disk that is not mirrored, by attaching c3t0d0 both disks will become a mirror pair zpool attach data01 c2t0d0 c3t0d0 |
| detaching | zpool detach data01 c2t0d0 Note: see above notes is attaching |
| onlining | zpool online data01 c2t0d0 |
| offlining | zpool offline data01 c2t0d0 |
| Replacing | ## replacing like for like zpool replace data03 c2t0d0 ## replacing with another disk zpool replace data03 c2t0d0 c3t0d0 |
| scrubbing | zpool scrub data01 Note: Only one of scrubbing or resilvering can be running at the sametime |
| exporting | zpool export data01 |
| importing | ## when using standard disk devices i.e c2t0d0 ## importing a destroyed pool |
| getting parameters | zpool get all data01 Note: the source column denotes if the value has been change from it default value, a dash in this column means it is a read-only value |
| setting parameters | zpool set autoreplace=on data01 Note: use the command "zpool get all <pool>" to obtain list of current setting |
| upgrade | ## List upgrade paths zpool upgrade -v ## upgrade all pools zpool upgrade -a ## upgrade specific pool, use "zpool get all <pool>" to obtain version number of a pool zpool upgrade data01 ## upgrade to a specific version zpool upgrade -V 10 data01 |
Filesystem |
|
| displaying | zfs list ## list different types zfs list -t filesystem zfs list -t snapshot zfs list -t volume ## recursive display zfs list -r data01/oracle ## complex listing zfs list -o name,sharenfs,mountpoint Note: there are a number of attributes that you can use in a complex listing, so use the man page to see them all |
| creating | ## persuming i have a pool called data01 create a /data01/apache filesystem Note: don't use a zfs volume as a dump device it is not supported |
| destroying | zfs destroy data01/oracle ## using the recusive options -r = all children, -R = all dependants zfs destroy -r data01/oracle zfs destroy -R data01/oracle |
| mounting | zfs mount data01 Note: there are all the normal mount options that you can apply i.e ro/rw, setuid |
| unmounting | zfs umount data01 |
| share | zfs share data01 |
| unshare | zfs unshare data01 ## persist over reboots zfs set sharenfs=off data01 |
| snapshotting | ## creating a snapshot zfs snapshot data01@10022010 ## destroying a snapshot zfs destroy data01@10022010 |
| rollback | zfs rollback data01@10022010 |
| cloning/promoting | zfs clone data01@10022010 data03/clone ## promoting a clone zfs promote data03/clone Note: the clone must reside in the same pool |
| renaming | ## the dataset must be kept within the same pool Note: you have two options |
| getting parameters | ## List all the properties Note: the source column denotes if the value has been change from it default value, a dash in this column means it is a read-only value |
| setting parameters | ## set and unset a quota Note: use the command "zfs get all <dataset> " to obtain list of current settings |
| inherit | ## set back to the default value zfs inherit compression data03/oracle |
| upgrade | ## List the upgrade paths ## List all the datasets that are not at the current level |
| send/receive | ## here is a complete example of a send and receive with incremental update ## create some test files ## create the data filesystem ## set the slave to read-only because you can cause data corruption, make sure if do this before accessing anything the --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ## using SSH ## using a tape drive, you can also use cpio ## Using gzip to compress the snapshot |
| allow/unallow | ## dislay the permissions set zfs allow master ## create permission set zfs allow -s @permset1 create,mount,snapshot,clone,promote master ## grant a user permissions zfs allow vallep @permset1 master ## revoke a user permissions zfs unallow vallep @permset1 master Note: there are many permissions that you can set so see the man page or just use the "zfs allow" command |