分类:
2009-08-03 17:03:30
ZFS文件系统 - (1) zpool create/destroy
要建立ZFS文件系统,首先要建立一个pool,这个pool是所有在它之上的文件系统所共享的存储空间,当然,每一个文件系统的大小容量等可以分别设 定,这个我们以后再分别详细讲述。那么pool是什么?简单的讲,一个pool本身就是一个zfs文件系统,只是它同时又是所有在它之上的文件系统的父文 件系统,它确定了整个建立于它之上的所有ZFS文件系统的基本属性,例如,它是一个简单pool还是一个mirror,或者raidz池。它具有zfs文 件系统的所以属性,例如在其之上建立文件,目录,创建snapshot,clone等等,同时在它之上还可以进行对pool管理的所有操作。例如,add 或remove设备,扩充或缩小池的大小,以及attach或者detach设备等等。
zpool create的语法如下
zpool create [-fn] [-R root] [-m mountpoint] pool vdev ...-f 强制执行创建池操作,甚至正在被其他的文件系统所占用
-n 显示配置信息。注:用该参数,该操作并不真正执行
-R 指定整个pool的根目录。也就是所以在这个pool之上的zfs文件系统的mount目录前缀。默认值:/
-m mount点
pool 所要建立的pool的名字
vdev "virtual device".具体说包括三类:disk,file和keywords
disk:就是位于/dev/dsk下的设备文件
file:普通的文件
keywords:包括mirror, raidz, raidz1, raidz2 和 spare
下来我们看几个个例子,
1. 创建一个无冗余的pool。
# zpool create tank c1t4d0
2. 创建一个两路mirror
# zpool create mypool mirror c1t3d0 c1t4d0
3. 创建一个raidz池
# zpool create -f tank raidz2 c2t5d0 c2t4d0 c2t2d0
4. 创建一个带hot spare的池
# zpool create tank c2t5d0 spare c2t4d0
5. 创建一个pool并指定根目录和mount点
# zpool create -f -R /zfsdir -m /root tank c2t4d0# zfs listNAME USED AVAIL REFER MOUNTPOINTtank 91K 16.5G 24.5K /zfsdir/root
/zfsdir就是以后所有创建与tank之上的文件系统mount点前缀,包括tank本身。/root是mount点。
6. 查看创建一个pool结果,但不真正执行
# zpool create -n -R /zfsdir -m /root tank c2t5d0would create 'tank' with the following layout:
tankc2t5d0
相对应于create,自然就有destroy。destroy的语法如下
zpool destroy [-f] pool
-f 强行删除
例如
# zpool destroy tank# zpool create tank c2t5d0# zfs mounttank /tank# cd /tank# zpool destroy tankcannot unmount '/tank': Device busycould not destroy 'tank': could not unmount datasets# zpool destroy -f tank
通过zfs mount查出tank的mount点,然后进入并占用mount目录,这样当试图删除时系统就会报错。用参数-f,系统将删除tank而忽略警告信息。
Posted at 05:51PM Dec 19, 2006 by forrest in ZFS | Comments[3]
Posted by 创建一个两路mirror? on July 31, 2007 at 08:22 PM CST #
Posted by Forrest on August 01, 2007 at 09:43 AM CST #
cool
Posted by on November 03, 2008 at 09:27 AM CST #