Chinaunix首页 | 论坛 | 博客
  • 博客访问: 160767
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 342
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-19 11:38
个人简介

A ZFS fan

文章分类
文章存档

2014年(17)

分类: 服务器与存储

2014-05-17 12:52:27

ZFS是通过存储池来管理ZFS文件系统的,那么,我们首先因该知道如何管理存储池。
我们先从存储池操作相关的命令开始。

虚拟设备类型

1. 磁盘

点击(此处)折叠或打开

  1. root@zfsubuntu:~# zpool status disk_pool
  2. pool: disk_pool
  3. state: ONLINE
  4. scan: none requested
  5. config:
  6. NAME STATE READ WRITE CKSUM
  7. disk_pool ONLINE 0 0 0
  8. sdb ONLINE 0 0 0
  9. errors: No known data errors

2. 分区

点击(此处)折叠或打开

  1. root@zfsubuntu:~# zpool status par_pool
  2.   pool: par_pool
  3.  state: ONLINE
  4.   scan: none requested
  5. config:

  6.     NAME STATE READ WRITE CKSUM
  7.     par_pool ONLINE 0 0 0
  8.      sdb1 ONLINE 0 0 0

  9. errors: No known data errors

3. 文件

点击(此处)折叠或打开

  1. root@zfsubuntu:~# zpool status file_pool
  2.   pool: file_pool
  3.  state: ONLINE
  4.   scan: none requested
  5. config:

  6.     NAME STATE READ WRITE CKSUM
  7.     file_pool ONLINE 0 0 0
  8.      /root/forzfsdiskfile ONLINE 0 0 0

  9. errors: No known data errors

存储池的创建与删除


1. 创建存储池


创建成功之后,存储池的顶层文件系统的默认挂载点是/pool_name. 当然,可以使用-m选项修改默认挂载点。

a) 创建普通的存储池

点击(此处)折叠或打开

  1. root@zfsubuntu:~# zpool create tank /dev/sdb
  2. root@zfsubuntu:~# zpool status tank
  3.   pool: tank
  4.  state: ONLINE
  5.   scan: none requested
  6. config:

  7.     NAME STATE READ WRITE CKSUM
  8.     tank ONLINE 0 0 0
  9.      sdb ONLINE 0 0 0

  10. errors: No known data errors

b) 创建镜像存储池

点击(此处)折叠或打开

  1. root@zfsubuntu:~# zpool create tank mirror /dev/sdb /dev/sdc
  2. root@zfsubuntu:~# zpool status tank
  3.   pool: tank
  4.  state: ONLINE
  5.   scan: none requested
  6. config:

  7.     NAME STATE READ WRITE CKSUM
  8.     tank ONLINE 0 0 0
  9.      mirror-0 ONLINE 0 0 0
  10.      sdb ONLINE 0 0 0
  11.      sdc ONLINE 0 0 0

  12. errors: No known data errors

c) 创建带有日志设备的存储池

点击(此处)折叠或打开

  1. root@zfsubuntu:~# zpool create tank /root/forzfsdiskfile1 log mirror /dev/sdb /dev/sdc
  2. root@zfsubuntu:~# zpool status tank
  3.   pool: tank
  4.  state: ONLINE
  5.   scan: none requested
  6. config:

  7.     NAME STATE READ WRITE CKSUM
  8.     tank ONLINE 0 0 0
  9.      /root/forzfsdiskfile1 ONLINE 0 0 0
  10.     logs
  11.      mirror-1 ONLINE 0 0 0
  12.      sdb ONLINE 0 0 0
  13.      sdc ONLINE 0 0 0

  14. errors: No known data errors

d) 创建带有高速缓存的存储池

点击(此处)折叠或打开

  1. root@zfsubuntu:~# zpool create tank /root/forzfsdiskfile1 cache /dev/sdb /dev/sdc
  2. root@zfsubuntu:~# zpool status tank
  3.   pool: tank
  4.  state: ONLINE
  5.   scan: none requested
  6. config:

  7.     NAME STATE READ WRITE CKSUM
  8.     tank ONLINE 0 0 0
  9.      /root/forzfsdiskfile1 ONLINE 0 0 0
  10.     cache
  11.      sdb ONLINE 0 0 0
  12.      sdc ONLINE 0 0 0

  13. errors: No known data errors

2. 删除(销毁)存储池

点击(此处)折叠或打开

  1. root@zfsubuntu:~# zpool destroy tank
  2. root@zfsubuntu:~#


虚拟设备管理


1. 添加虚拟设备

点击(此处)折叠或打开

  1. root@zfsubuntu:~# zpool status tank
  2. pool: tank
  3. state: ONLINE
  4. scan: none requested
  5. config:
  6. NAME STATE READ WRITE CKSUM
  7. tank ONLINE 0 0 0
  8. /root/forzfsdiskfile1 ONLINE 0 0 0
  9. errors: No known data errors
  10. root@zfsubuntu:~# zpool add -f tank mirror /dev/sdb /dev/sdc
  11. root@zfsubuntu:~# zpool status tank
  12. pool: tank
  13. state: ONLINE
  14. scan: none requested
  15. config:
  16. NAME STATE READ WRITE CKSUM
  17. tank ONLINE 0 0 0
  18. /root/forzfsdiskfile1 ONLINE 0 0 0
  19. mirror-1 ONLINE 0 0 0
  20. sdb ONLINE 0 0 0
  21. sdc ONLINE 0 0 0
  22. errors: No known data errors

2. 移除虚拟设备

点击(此处)折叠或打开

  1. root@zfsubuntu:~# zpool remove tank mirror-1
  2. cannot remove mirror-1: only inactive hot spares, cache, top-level, or log devices can be removed
从这里我们看出,只有非活动状态的热备份设备,高速缓存设备,top-level级别的设备以及日志设备可以被移除。
至于上面给出的例子,mirror-1确实是top-level设备,但是移除失败,应该是一个bug。(这里的测试环境是Ubuntu,即zfsonlinux。在solaris环境下,执行OK)

至于对zpool的管理,有详细的说明,就不再过多说明了,后面,我们主要来看看这些操作时如何实现的。
阅读(4852) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~