Monday, February 14, 2011

ZFS : Basic administration guide

ZFS Pool:

ZFS organizes physical devices into logical pools called storage pools. Both individual disks and array logical unit numbers (LUNs) that are visible to the operating system can be included in a ZFS pools. These pools can be created as disks striped together with no redundancy (RAID 0), mirrored disks (RAID 1), striped mirror sets (RAID 1 + 0), or striped with parity (RAID Z). Additional disks can be added to pools at any time but they must be added with the same RAID level.

ZFS Filesystem :

ZFS offers a POSIX-compliant file system interface to the Solaris/OpenSolaris operating system. ZFS file systems must be built in one and only one storage pool, but a storage pool may have more than one defined file system. ZFS file systems are managed & mounted through /etc/vfstab file. The common way to mount a ZFS file system is to simply define it against a pool. All defined ZFS file systems automatically mount at boot time unless otherwise configured.

Here are the basic commands for getting started with ZFS

Creating Storage pool using "zpool create" :

bash-3.00# zpool create demovol raidz c2t1d0 c2t2d0
bash-3.00# zpool status
pool: demovol
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
demovol ONLINE 0 0 0
raidz1 ONLINE 0 0 0
c2t1d0 ONLINE 0 0 0
c2t2d0 ONLINE 0 0 0

errors: No known data errors
bash-3.00#

"zfs list" will give the details of the pool and other zfs filesytems.

bash-3.00# zfs list
NAME USED AVAIL REFER MOUNTPOINT
demovol 1.00G 900G 38.1K /demovol
bash-3.00#

Creating File Systems : "zfs create" is used to create zfs filesytem.

bash-3.00# zfs create demovol/testing
bash-3.00# zfs list
NAME USED AVAIL REFER MOUNTPOINT
demovol 1.00G 900G 38.1K /demovol
demovol/testing 32.6K 900G 32.6K /demovol/testing
bash-3.00#

bash-3.00# ls /dev/zvol/dsk/demovol -- This should show you the disk file.

Setting Quota for the filesytem : Until Quota is set, the filesytem shows the total available space of the containter zfs pool.

bash-3.00# zfs set quota=10G emspool3/testing
bash-3.00# zfs list
NAME USED AVAIL REFER MOUNTPOINT
demovol 1.00G 900G 39.9K /demovol
demovol/testing 32.6K 10.0G 32.6K /demovol/testing

Creating a snapshot :

bash-3.00# zfs snapshot demovol/testing@snap21
bash-3.00# zfs list
NAME USED AVAIL REFER MOUNTPOINT
demovol 1.00G 900G 39.9K /demovol
demovol/testing 32.6K 10.0G 32.6K /demovol/testing
demovol/testing@snap21 0 - 32.6K -
bash-3.00#

Get all properties of a ZFS filesytem :

bash-3.00# zfs get all demovol/testing
NAME PROPERTY VALUE SOURCE
demovol/testing type filesystem -
demovol/testing creation Mon Feb 9 9:05 2009 -
demovol/testing used 32.6K -
demovol/testing available 10.0G -
demovol/testing referenced 32.6K -
demovol/testing compressratio 1.00x -
demovol/testing mounted yes -
demovol/testing quota 10G local
demovol/testing reservation none default
demovol/testing recordsize 128K default
demovol/testing mountpoint /demovol/testing default
..


Cloning a ZFS filesystem from a snapshot :

bash-3.00# zfs clone demovol/testing@snap21 demovol/clone22
bash-3.00# zfs list
NAME USED AVAIL REFER MOUNTPOINT
demovol 1.00G 900G 39.9K /demovol
demovol/clone22 0 900G 32.6K /demovol/clone22
demovol/testing 32.6K 10.0G 32.6K /demovol/testing
demovol/testing@snap21 0 - 32.6K -
bash-3.00#

Performance IO Monitoring the ZFS storage pool:

bash-3.00# zpool iostat 1
capacity operations bandwidth
pool used avail read write read write
---------- ----- ----- ----- ----- ----- -----
demovol 4.95M 900G 0 0 0 35
demovol 4.95M 900G 0 0 0 0
demovol 4.95M 900G 0 0 0 0
demovol 4.95M 900G 0 0 0 0

Please refer to the man pages, zfs and zpool, for more detailed information. Additional

No comments:

Post a Comment