Chinaunix首页 | 论坛 | 博客
  • 博客访问: 596794
  • 博文数量: 118
  • 博客积分: 2114
  • 博客等级: 大尉
  • 技术积分: 1275
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-10 00:02
文章分类

全部博文(118)

文章存档

2019年(1)

2018年(4)

2017年(1)

2016年(6)

2015年(1)

2014年(1)

2013年(5)

2012年(4)

2011年(17)

2010年(13)

2009年(65)

分类:

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 list
NAME   USED  AVAIL  REFER  MOUNTPOINT
tank    91K  16.5G  24.5K  /zfsdir/root

        /zfsdir就是以后所有创建与tank之上的文件系统mount点前缀,包括tank本身。/root是mount点。

6. 查看创建一个pool结果,但不真正执行

# zpool create -n -R /zfsdir -m /root tank c2t5d0
would create 'tank' with the following layout:

        tank
          c2t5d0

 

      相对应于create,自然就有destroy。destroy的语法如下


zpool destroy [-f] pool

-f    强行删除


 例如

# zpool destroy tank
# zpool create tank c2t5d0
# zfs mount
tank                            /tank
# cd /tank
# zpool destroy tank
cannot unmount '/tank': Device busy
could not destroy 'tank': could not unmount datasets
# zpool destroy -f tank

        通过zfs mount查出tank的mount点,然后进入并占用mount目录,这样当试图删除时系统就会报错。用参数-f,系统将删除tank而忽略警告信息。

Comments:

zpool create mypool mirror c1t3d0 c1t4d0

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 #

阅读(5384) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~