电脑技术学习

Solaris 10下如何使用ZFS

dn001

  ZFS,作为Solaris 10的下一代文件存储解决方案,ZFS即Zettabyte File System,也叫动态文件系统Dynamic File System, 是第一个128位文件系统,无限容量、自优化、永远数据一致、管理简单:

  - 支持POSIX文件系统,应用无需移植

  - 无限容量,比32/64位文件系统大16 billion billion倍

  - 对于应用来说,ZFS像一个标准的POSIX文件系统,无需移植。

  - 对于系统管理员来说,ZFS提供存储池的模型,彻底消除了卷管理的概念,及其带来的硬盘分区的问题,可以使所有文件系统利用存储池的所有设备的访问带宽,100%在线维护。

  - 所有操作采用copy-on-write方式,硬盘状态永远有效, 无需fsck。

  - 所有数据块被64位校验, 防止数据瘫痪, 并且数据可做Raid,其中一个数据损坏可由另一数据修复。

  - 提供无限份的快照,提供磁盘限额

  1. 检查预装OS,如无 ZFS包,则需安装软件包:

  # pkginfo |grep SUNWzfs

  # pkgadd -d .

  The following packages are available:

  1 SUNWzfs   Zettabyte File System (ZFS)

  (sparc) 11.10.0,REV=2004.12.26.02.38

  Select package(s) you wish to process (or 'all' to process

  all packages). (default: all) [?,??,q]:1

  ...

  Installation of <SUNWzfs> was successful.

  2. 建立storage pool:

  # zpool create -f testpool mirror /dev/dsk/c0t1d0s0 /dev/dsk/c0t1d0s1

  # zpool df testpool

  Pool          size  used avail capacity

  -------------------- ------ ------ ------ --------

  testpool        500M 56.0K  500M   1%

  # zpool vdevs -v testpool

  mirror1

  c0t1d0s0

  c0t1d0s1

  3. 建立文件系统:

  # zfs create testpool/user1

  # zfs create testpool/user2

  # mkdir -p /disk/user1 /disk/user2

  # zfs mount testpool/user1 /disk/user1

  # zfs mount testpool/user2 /disk/user2

  # df -h -F zfs

  文件系统        大小  用了  可用 容量  挂接在

  testpool/user1    484M 27K  484M  1%  /disk/user1

  testpool/user2    484M 27K  484M  1%  /disk/user2

  4. 测试ZFS的读写变化:

  # cp /etc/n* /disk/user1; cp /etc/m* /disk/user2

  # df -h -F zfs

  文件系统        大小  用了  可用 容量  挂接在

  testpool/user1    484M 60K  484M  1%  /disk/user1

  testpool/user2    484M 123K  484M  1%  /disk/user2

  5. 增加新的存储到storage pool,扩展ZFS:

  # zpool add -f testpool mirror c0t1d0s3 c0t1d0s4

  # zpool df testpool

  Pool          size  used avail capacity

  -------------------- ------ ------ ------ --------

  testpool       1000M  303K 1000M   1%

  s6a# zpool vdevs -v testpool

  mmirror1

  c0t1d0s0

  c0t1d0s1

  mirror2

  c0t1d0s3

  c0t1d0s4

  # df -h -F zfs

  文件系统        大小  用了  可用 容量  挂接在

  testpool/user1    982M  60K  982M  1%  /disk/user1

  testpool/user2    982M 123K  982M  1%  /disk/user2

  6. 破坏storage pool硬盘的数据,观察ZFS中数据不受影响:

  # dd if=/dev/urandom of=/dev/rdsk/c0t1d0s1 count=10000

  10000+0 记录进入

  10000+0 记录调出

  # df -h -F zfs

  文件系统        大小  用了  可用 容量  挂接在

  testpool/user1    982M  60K  982M  1%  /disk/user1

  testpool/user2    982M 123K  982M  1%  /disk/user2

  # diff /etc/nsswitch.conf /disk/user1/nsswitch.conf

  总结:

  文件系统管理,ZFS提供一个新的易于使用的自动管理的模型,降低复杂性,减少错误和实施的时间。

  数据安全和完整性, ZFS数据在任何时间都是一致的。

  对于资源利用,ZFS存储池可为多个文件系统共享。

  增加灵活性, ZFS扩展或缩小是动态的,无需系统管理员介入 。

  降低费用,可免除额外的卷管理的许可费用。

标签: