知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

Solaris zpool操作与使用

发布时间:2014-09-05 14:08:30作者:知识屋

Solaris zpool操作与使用
 
ZFS文件系统的英文名称为Zettabyte File System,也叫动态文件系统(Dynamic File System),是第一个128位文件系统。最初是由Sun公司为Solaris 10操作系统开发的文件系统。作为OpenSolaris开源计划的一部分,ZFS于2005年11月发布,被Sun称为是终极文件系统。ZFS是基于存储池的,与典型的映射物理存储设备的传统文件系ZFS统不同,ZFS所有在存储池中的文件系统都可以使用存储池的资源。
 
Zpool 常见用法
 
建立Zpool 
ZPool Stripe group:
zpool create vol0 /dev/sda /dev/sdb /dev/sdc
 
ZPool mirror group:
zpool create vol0 mirror /dev/sda /dev/sdb
 
ZPool raidz group: Similar to RAID5.
zpool create vol0 raidz /dev/sda /dev/sdb /dev/sdc
 
ZPool raidz2 set: Similar to RAID5 with dual parity.
zpool create vol0 raidz2 /dev/sdb /dev/sdc1 /dev/sdd /dev/sde
删除 ZPool
zpool destroy nameofzpool
 
移除(卸载) Zpool
比如说移除USB设备
zpool export nameofzpool
 
装载 zpool :
zpool import nameofzpool
zpool import会列出所有可用的zpool
 
在硬盘文件上建pool
dd if=/dev/zero of=filename.img bs=1M count=1000
zpool create nameofzpool /absolute/path/to/filename.img
will create an image of 1GB. It is also possible to create a sparse image, to create an image that can hold 100GB:
 
dd if=/dev/zero of=filename.img bs=1k count=1 seek=100M
 
使用zpool
# zpool create datapool mirror c4t0d0 c4t1d0
# zfs create datapool/bob
# zfs create datapool/joe
# zfs create datapool/fred
# zfs create datapool/pat
 
磁盘和存储池
 
使用磁盘
存储池中的基本单元是物理存储,可以是整个磁盘(c1t0d0)或者是某个分区(c0t0d0s7)。推荐使用整个磁盘,这样的话就不用操心格式化了。ZFS会使用EFI标签格式化磁盘,格式化之后的磁盘在format命令下表现为
Current partition table (original):
Total disk sectors available: 17672849 + 16384 (reserved sectors)
 
Part Tag Flag First Sector Size Last Sector
  0 usr wm 256 8.43GB 17672849 
  1 unassigned wm 0 0 0 
  2 unassigned wm 0 0 0 
  3 unassigned wm 0 0 0 
  4 unassigned wm 0 0 0 
  5 unassigned wm 0 0 0 
  6 unassigned wm 0 0 0 
  8 reserved wm 17672850 8.00MB 17689233
如果某个磁盘要作为根池,他需要是SMI标签,“format -e”命令可以执行这种转换工作。
 
使用分区
虽然不推荐,不过存储池中也可以使用分区。对于可启动的根池,磁盘中分区必须是SMI标签。
# format
.
.
.
Specify disk (enter its number): 4
selecting c1t1d0
partition> p
Current partition table (original):
Total disk cylinders available: 14087 + 2 (reserved cylinders)
 
Part Tag Flag Cylinders Size Blocks
  0 root wm 0 - 14086 68.35GB (14087/0/0) 143349312
  1 unassigned wm 0 0 (0/0/0) 0
  2 backup wm 0 - 14086 68.35GB (14087/0/0) 143349312
  3 unassigned wm 0 0 (0/0/0) 0
  4 unassigned wm 0 0 (0/0/0) 0
  5 unassigned wm 0 0 (0/0/0) 0
  6 unassigned wm 0 0 (0/0/0) 0
  7 unassigned wm 0 0 (0/0/0) 0
文件也可以作为存储池的元素
 
建立根池
根池是比较特殊的,体现在:
1. 其中磁盘必须是SMI标签的分区
2. 必须是镜像或者是整盘,不能使用"zpool add"命令建立多镜像,但是可以使用"zpool attach"扩充,所以说,根池的大小是不能扩大的
3. RAID-Z和striped是不支持的
4. 不能有单独的log元件
 
操作存储池中的设备
 
add/remove设备
通过增加一个顶层的设备,可以动态的增加池的容量。下面是一个mirror的例子
点击(此处)折叠或打开
# zpool status tank
  pool: tank
 state: ONLINE
 scrub: none requested
config:
 
        NAME STATE READ WRITE CKSUM
        tank ONLINE 0 0 0
          mirror-0 ONLINE 0 0 0
            c0t1d0 ONLINE 0 0 0
            c1t1d0 ONLINE 0 0 0
          mirror-1 ONLINE 0 0 0
            c0t2d0 ONLINE 0 0 0
            c1t2d0 ONLINE 0 0 0
 
errors: No known data errors
 
# zpool add tank mirror c0t3d0 c1t3d0
 
# zpool status tank
  pool: tank
 state: ONLINE
 scrub: none requested
config:
 
        NAME STATE READ WRITE CKSUM
        tank ONLINE 0 0 0
          mirror-0 ONLINE 0 0 0
            c0t1d0 ONLINE 0 0 0
            c1t1d0 ONLINE 0 0 0
          mirror-1 ONLINE 0 0 0
            c0t2d0 ONLINE 0 0 0
            c1t2d0 ONLINE 0 0 0
          mirror-2 ONLINE 0 0 0
            c0t3d0 ONLINE 0 0 0
            c1t3d0 ONLINE 0 0 0
 
errors: No known data errors
"zpool remove"命令可以移除hot spares, log devices, and cache devices, 不能移除主设备。morrored池可以用"zpool detach" 命令来移除,非冗余和RAID-Z设备不能够被移除。
 
attach/detach设备
attach命令可以向一个镜像或者非镜像设备添加一个新设备,下面是一个把二盘镜像增加为三盘镜像的例子
点击(此处)折叠或打开
# zpool status zeepool
  pool: zeepool
 state: ONLINE
 scrub: none requested
config:
 
        NAME STATE READ WRITE CKSUM
        zeepool ONLINE 0 0 0
          mirror-0 ONLINE 0 0 0
            c0t1d0 ONLINE 0 0 0
            c1t1d0 ONLINE 0 0 0
 
errors: No known data errors
# zpool attach zeepool c1t1d0 c2t1d0
# zpool status zeepool
  pool: zeepool
 state: ONLINE
 scrub: resilver completed after 0h0m with 0 errors on Fri Jan 8 12:59:20 2010
config:
 
        NAME STATE READ WRITE CKSUM
        zeepool ONLINE 0 0 0
          mirror-0 ONLINE 0 0 0
            c0t1d0 ONLINE 0 0 0
            c1t1d0 ONLINE 0 0 0
            c2t1d0 ONLINE 0 0 0 592K resilvered
 
errors: No known data errors
也可以把一个非镜像pool变成一个镜像pool
点击(此处)折叠或打开
# zpool create tank c0t1d0
# zpool status tank
  pool: tank
 state: ONLINE
 scrub: none requested
config:
        NAME STATE READ WRITE CKSUM
        tank ONLINE 0 0 0
          c0t1d0 ONLINE 0 0 0
 
errors: No known data errors
# zpool attach tank c0t1d0 c1t1d0
# zpool status tank
  pool: tank
 state: ONLINE
 scrub: resilver completed after 0h0m with 0 errors on Fri Jan 8 14:28:23 2010
config:
 
        NAME STATE READ WRITE CKSUM
        tank ONLINE 0 0 0
          mirror-0 ONLINE 0 0 0
            c0t1d0 ONLINE 0 0 0
            c1t1d0 ONLINE 0 0 0 73.5K resilvered
 
errors: No known data errors
"zpool detach"命令用来从一个镜像池中移除设备。
# zpool detach zeepool c2t1d0
 
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜