|
ZFS - zpool administration Create 7 files using mkfile command to perform all zpool related activities. [root@geekyfacts]# mkdir /pool [root@geekyfacts]# cd /pool
[root@geekyfacts]# ls
[root@geekyfacts]# mkfile 100m disk1 disk2 disk3 disk4 disk5 disk6
[root@geekyfacts]# mkfile 50m disk7
[root@geekyfacts]# ls -l total 1332048 -rw------T 1 root root 104857600 Dec 22 23:59 disk1 -rw------T 1 root root 104857600 Dec 22 23:59 disk2 -rw------T 1 root root 104857600 Dec 22 23:59 disk3 -rw------T 1 root root 104857600 Dec 22 23:59 disk4 -rw------T 1 root root 104857600 Dec 22 23:59 disk5 -rw------T 1 root root 104857600 Dec 22 23:59 disk6 -rw------T 1 root root 52428800 Dec 23 00:00 disk7 [root@geekyfacts]#
zpool create zpool create - dry run without creating the pool [root@geekyfacts]# zpool create -n testpool /pool/disk1 /pool/disk2 would create 'testpool' with the following layout: testpool /pool/disk1 /pool/disk2 [root@geekyfacts]#
zpool create with two disks in the pool [root@geekyfacts]# zpool create testpool /pool/disk1 /pool/disk2 [root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]# [root@geekyfacts]# zpool destroy testpool
zpool create with pool properties configured during creation [root@geekyfacts]# zpool create -o autoreplace=on testpool /pool/disk1 /pool/disk2
[root@geekyfacts]# zpool get autoreplace testpool NAME PROPERTY VALUE SOURCE testpool autoreplace on local [root@geekyfacts]#
[root@geekyfacts]# zpool destroy testpool
zpool create with custom mount point configuration [root@geekyfacts]# zpool create -m /poolmnt testpool /pool/disk1 /pool/disk2
[root@geekyfacts]# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT testpool 191M 103K 191M 0% ONLINE -
[root@geekyfacts]# df /poolmnt /poolmnt (testpool ): 325435 blocks 325435 files [root@geekyfacts]#
[root@geekyfacts]# zpool destroy testpool
zpool create with mirror configuration [root@geekyfacts]# zpool create testpool mirror /pool/disk1 /pool/disk2 [root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]# [root@geekyfacts]# zpool destroy testpool
zpool create with mirror + striping configuration [root@geekyfacts]# zpool create testpool mirror /pool/disk1 /pool/disk2 mirror /pool/disk3 /pool/disk4
[root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 /pool/disk4 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]# [root@geekyfacts]# zpool destroy testpool
zpool create with raidz1 configuration [root@geekyfacts]# zpool create testpool raidz /pool/disk1 /pool/disk2 /pool/disk3
[root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 raidz1 ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]# zpool destroy testpool
zpool create with raidz + striping configuration [root@geekyfacts]# zpool create testpool raidz /pool/disk1 /pool/disk2 /pool/disk3 raidz /pool/disk4 /pool/disk5 /pool/disk6
[root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 raidz1 ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 raidz1 ONLINE 0 0 0 /pool/disk4 ONLINE 0 0 0 /pool/disk5 ONLINE 0 0 0 /pool/disk6 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]# zpool destroy testpool [root@geekyfacts]#
zpool create with raidz2 configuration [root@geekyfacts]# zpool create testpool raidz2 /pool/disk1 /pool/disk2 /pool/disk3
[root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 raidz2 ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 [root@geekyfacts]# zpool destroy testpool
zpool create with hot spare disks [root@geekyfacts]# zpool create testpool /pool/disk1 /pool/disk2 spare /pool/disk3 [root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 spares /pool/disk3 AVAIL errors: No known data errors [root@geekyfacts]# zpool destroy testpool
zpool create with mismatched replication levels( not recommended , use -f to force the creation) [root@geekyfacts]# zpool create testpool mirror /pool/disk1 /pool/disk2 raidz /pool/disk4 /pool/disk5 /pool/disk6 invalid vdev specification use '-f' to override the following errors: mismatched replication level: both mirror and raidz vdevs are present [root@geekyfacts]#
zpool create with mirroring disks of different sizes( not recommended, use -f to force the creation) [root@geekyfacts]# zpool create testpool mirror /pool/disk1 /pool/disk7 invalid vdev specification use '-f' to override the following errors: mirror contains devices of different sizes [root@geekyfacts]#
zpool add [root@geekyfacts]# zpool create testpool /pool/disk1 /pool/disk2 [root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]# zpool add testpool /pool/disk3
[root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]#
zpool remove
zpool remove can be used only to remove the hot spare devices.
[root@geekyfacts]# zpool create testpool /pool/disk1 /pool/disk2 spare /pool/disk3 [root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 spares /pool/disk3 AVAIL errors: No known data errors [root@geekyfacts]# zpool remove testpool /pool/disk3
[root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]#
zpool list [root@geekyfacts]# zpool create testpool /pool/disk1 /pool/disk2 /pool/disk3 [root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]# zpool list NAME SIZE USED AVAIL CAP HEALTH ALTROOT testpool 286M 97K 286M 0% ONLINE -
[root@geekyfacts]#
List zpool details in script mode
[root@geekyfacts]# zpool list -H testpool 286M 97K 286M 0% ONLINE - [root@geekyfacts]#
List only specified zpool parameters [root@geekyfacts]# zpool list -o size,health SIZE HEALTH 286M ONLINE [root@geekyfacts]#
zpool destroy [root@geekyfacts]# zpool create testpool /pool/disk1 /pool/disk2
[root@geekyfacts]# zpool destroy testpool
zpool iostat [root@geekyfacts]# zpool iostat capacity operations bandwidth pool used avail read write read write ---------- ----- ----- ----- ----- ----- ----- testpool 114K 286M 0 1 1.84K 26.3K [root@geekyfacts]# List iostat of each disks involved in the pool [root@geekyfacts]# zpool iostat -v capacity operations bandwidth pool used avail read write read write ------------- ----- ----- ----- ----- ----- ----- testpool 114K 286M 0 0 815 11.3K /pool/disk1 41K 95.5M 0 0 272 3.79K /pool/disk2 32K 95.5M 0 0 271 3.76K /pool/disk3 41K 95.5M 0 0 272 3.79K ------------- ----- ----- ----- ----- ----- ----- [root@geekyfacts]#
List iostat of pool in specific intervals [root@geekyfacts]# zpool iostat 1 5 capacity operations bandwidth pool used avail read write read write ---------- ----- ----- ----- ----- ----- ----- testpool 114K 286M 0 0 867 12.1K testpool 114K 286M 0 0 0 0 testpool 114K 286M 0 0 0 0 testpool 114K 286M 0 0 0 0 testpool 114K 286M 0 0 0 0 [root@geekyfacts]#
zpool status [root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]#
Display status of pool which is not healthy [root@geekyfacts]# zpool status -x all pools are healthy [root@geekyfacts]#
zpool offline
[root@geekyfacts]# zpool create testpool mirror /pool/disk1 /pool/disk2 /pool/disk3
[root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 errors: No known data errors
[root@geekyfacts]# zpool offline testpool /pool/disk3
[root@geekyfacts]# zpool status pool: testpool state: DEGRADED status: One or more devices has been taken offline by the administrator. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Online the device using 'zpool online' or replace the device with 'zpool replace'. scrub: none requested config: NAME STATE READ WRITE CKSUM testpool DEGRADED 0 0 0 mirror DEGRADED 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk3 OFFLINE 0 0 0 errors: No known data errors [root@geekyfacts]# Make disks offline temporarily [root@geekyfacts]# zpool offline -t testpool /pool/disk3
zpool online
[root@geekyfacts]# zpool online testpool /pool/disk3 [root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Tue Dec 23 00:42:39 2008 config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]#
zpool clear It clears the device errors in the pool [root@geekyfacts]# zpool clear testpool
zpool attach [root@geekyfacts]# zpool create testpool mirror /pool/disk1 /pool/disk2 /pool/disk3
[root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]# zpool attach testpool /pool/disk3 /pool/disk4
[root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Tue Dec 23 00:46:48 2008 config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 /pool/disk4 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]#
zpool detach [root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Tue Dec 23 00:46:48 2008 config: NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 /pool/disk4 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]# zpool detach testpool /pool/disk4
[root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Tue Dec 23 00:46:48 2008 config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]#
zpool replace [root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Tue Dec 23 00:46:48 2008 config: NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]# zpool replace testpool /pool/disk3 /pool/disk4
[root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Tue Dec 23 00:49:38 2008 config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 replacing ONLINE 0 0 0 /pool/disk3 ONLINE 0 0 0 /pool/disk4 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: resilver completed after 0h0m with 0 errors on Tue Dec 23 00:49:38 2008 config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk4 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]#
zpool scrub [root@geekyfacts]# zpool scrub testpool
[root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: scrub completed after 0h0m with 0 errors on Tue Dec 23 00:50:57 2008 config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk4 ONLINE 0 0 0 [root@geekyfacts]# Stop the running scrub operation [root@geekyfacts]# zpool scrub -s testpool
zpool export [root@geekyfacts]# zpool export testpool
[root@geekyfacts]# zpool status no pools available
[root@geekyfacts]#
zpool import Displays the list of pools which can be imported [root@geekyfacts]# zpool import -d /pool pool: testpool id: 3250275846513037638 state: ONLINE action: The pool can be imported using its name or numeric identifier. config:
testpool ONLINE mirror ONLINE /pool/disk1 ONLINE /pool/disk2 ONLINE /pool/disk4 ONLINE [root@geekyfacts]# Import pool based on the ID [root@geekyfacts]# zpool import -d /pool 3250275846513037638
[root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk4 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]# Display the list of pools destryed [root@geekyfacts]# zpool import -D -d /pool pool: testpool id: 3250275846513037638 state: ONLINE (DESTROYED) action: The pool can be imported using its name or numeric identifier. config: testpool ONLINE mirror ONLINE /pool/disk1 ONLINE /pool/disk2 ONLINE /pool/disk4 ONLINE [root@geekyfacts]#
Import destroyed pool based on the ID [root@geekyfacts]# zpool import -D -d /pool 3250275846513037638 [root@geekyfacts]# zpool status pool: testpool state: ONLINE scrub: none requested config:
NAME STATE READ WRITE CKSUM testpool ONLINE 0 0 0 mirror ONLINE 0 0 0 /pool/disk1 ONLINE 0 0 0 /pool/disk2 ONLINE 0 0 0 /pool/disk4 ONLINE 0 0 0 errors: No known data errors [root@geekyfacts]#
zpool upgrade Display the pool formatted version [root@geekyfacts]# zpool upgrade This system is currently running ZFS pool version 10.
All pools are formatted using this version. [root@geekyfacts]#
Display the supported pool version [root@geekyfacts]# zpool upgrade -v This system is currently running ZFS pool version 10. The following versions are supported: VER DESCRIPTION --- -------------------------------------------------------- 1 Initial ZFS version 2 Ditto blocks (replicated metadata) 3 Hot spares and double parity RAID-Z 4 zpool history 5 Compression using the gzip algorithm 6 bootfs pool property 7 Separate intent log devices 8 Delegated administration 9 refquota and refreservation properties 10 Cache devices For more information on a particular version, including supported releases, see: http://www.opensolaris.org/os/community/zfs/version/N Where 'N' is the version number. [root@geekyfacts]#
zpool get Display all parameter values set for the pool [root@geekyfacts]# zpool get all testpool NAME PROPERTY VALUE SOURCE testpool size 95.5M - testpool used 114K - testpool available 95.4M - testpool capacity 0% - testpool altroot - default testpool health ONLINE - testpool guid 3250275846513037638 - testpool version 10 default testpool bootfs - default testpool delegation on default testpool autoreplace off default testpool cachefile - default testpool failmode wait default [root@geekyfacts]# zpool get delegation testpool NAME PROPERTY VALUE SOURCE testpool delegation on default [root@geekyfacts]#
zfs set [root@geekyfacts]# zpool set autoreplace=on testpool
[root@geekyfacts]# zpool get autoreplace testpool NAME PROPERTY VALUE SOURCE testpool autoreplace on local [root@geekyfacts]#
|