ZFS扩展容量


在VirtualBox上测试通过。

zfs原来的配置是:
root@zfs:/root # zpool status
  pool: zroot
 state: ONLINE
  scan: resilvered 2.38G in 0h4m with 0 errors on Thu Oct 31 09:35:34 2013
config:

        NAME        STATE     READ WRITE CKSUM
        zroot       ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            ada1p3  ONLINE       0     0     0
            ada0p3  ONLINE       0     0     0

errors: No known data errors
root@zfs:/root # zfs list
NAME                 USED  AVAIL  REFER  MOUNTPOINT
zroot               2.38G  34.9G   144K  none
zroot/ROOT           385M  34.9G   144K  none
zroot/ROOT/default   385M  34.9G   385M  /
zroot/home           144K  34.9G   144K  /home
zroot/tmp            184K  34.9G   184K  /tmp
zroot/usr           2.01G  34.9G  2.01G  /usr
zroot/usr/local      144K  34.9G   144K  /usr/local
zroot/var            952K  34.9G   952K  /var
root@zfs:/root # gpart show
=>      34  83886013  ada0  GPT  (40G)
        34         6        - free -  (3.0k)
        40       216     1  freebsd-boot  (108k)
       256   4194304     2  freebsd-swap  (2.0G)
   4194560  79691480     3  freebsd-zfs  (38G)
  83886040         7        - free -  (3.5k)

=>      34  83886013  ada1  GPT  (40G)
        34         6        - free -  (3.0k)
        40       216     1  freebsd-boot  (108k)
       256   4194304     2  freebsd-swap  (2.0G)
   4194560  79691480     3  freebsd-zfs  (38G)
  83886040         7        - free -  (3.5k)

如果现在硬盘空间不够,可以用两种方法来增加zfs的容量
1. 在替换硬盘之前使用zpool set autoexpend=on zroot
2. 在替换硬盘之后使用zpool online -e zroot /dev/ada1p3 /dev/ada0p3

现在使用第一种方法来做。
root@zfs:/root # zpool get autoexpand zroot
NAME   PROPERTY    VALUE   SOURCE
zroot  autoexpand  on      local

1.关闭计算机,插入两块SATA硬盘,再启动机器
2. ls /dev 看看新加上的设备
root@zfs:/root # ll /dev/ada*
crw-r-----  1 root  operator    0,  72 Oct 31 11:04 /dev/ada0
crw-r-----  1 root  operator    0,  74 Oct 31 11:04 /dev/ada0p1
crw-r-----  1 root  operator    0,  76 Oct 31 11:04 /dev/ada0p2
crw-r-----  1 root  operator    0,  78 Oct 31 11:04 /dev/ada0p3
crw-r-----  1 root  operator    0,  80 Oct 31 11:04 /dev/ada1
crw-r-----  1 root  operator    0,  90 Oct 31 11:04 /dev/ada1p1
crw-r-----  1 root  operator    0,  92 Oct 31 11:04 /dev/ada1p2
crw-r-----  1 root  operator    0,  94 Oct 31 11:04 /dev/ada1p3
crw-r-----  1 root  operator    0,  88 Oct 31 11:04 /dev/ada2
crw-r-----  1 root  operator    0, 107 Oct 31 11:04 /dev/ada3
3. 为新设备 ada2, ada3 分区,应该是和原来ada0, ada1 一样
gpart create -s gpt ada2
gpart add -s 222 -a 4k -t freebsd-boot -l boot2 ada2
gpart add -s 2g -a 4k -t freebsd-swap -l swap2 ada2
gpart add -a 4k -t freebsd-zfs -l disk2 ada2
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada2
gnop create -S 4096 /dev/gpt/disk2

gpart create -s gpt ada3
gpart add -s 222 -a 4k -t freebsd-boot -l boot3 ada3
gpart add -s 2g -a 4k -t freebsd-swap -l swap3 ada3
gpart add -a 4k -t freebsd-zfs -l disk3 ada3
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada3
gnop create -S 4096 /dev/gpt/disk3
4. zpool替换两个硬盘
zpool replace zroot ada1p3 /dev/gpt/disk2.nop
zpool replace zroot ada0p3 /dev/gpt/disk3.nop
看看当前的状态:
root@zfs:/root # zpool status
  pool: zroot
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Thu Oct 31 11:14:58 2013
        306M scanned out of 2.39G at 13.9M/s, 0h2m to go
        610M resilvered, 12.53% done
config:

        NAME                 STATE     READ WRITE CKSUM
        zroot                ONLINE       0     0     0
          mirror-0           ONLINE       0     0     0
            replacing-0      ONLINE       0     0     0
              ada1p3         ONLINE       0     0     0
              gpt/disk2.nop  ONLINE       0     0     0  (resilvering)
            replacing-1      ONLINE       0     0     0
              ada0p3         ONLINE       0     0     0
              gpt/disk3.nop  ONLINE       0     0     0  (resilvering)
5, 等待 resilver 的完成, 重启之后再看结果
root@zfs:/root # zpool status
  pool: zroot
 state: ONLINE
  scan: resilvered 4.79G in 0h13m with 0 errors on Thu Oct 31 11:28:29 2013
config:

        NAME        STATE     READ WRITE CKSUM
        zroot       ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            ada0p3  ONLINE       0     0     0
            ada1p3  ONLINE       0     0     0

errors: No known data errors
root@zfs:/root # zfs list
NAME                 USED  AVAIL  REFER  MOUNTPOINT
zroot               2.38G  54.6G   144K  none
zroot/ROOT           385M  54.6G   144K  none
zroot/ROOT/default   385M  54.6G   385M  /
zroot/home           144K  54.6G   144K  /home
zroot/tmp            184K  54.6G   184K  /tmp
zroot/usr           2.01G  54.6G  2.01G  /usr
zroot/usr/local      144K  54.6G   144K  /usr/local
zroot/var            972K  54.6G   972K  /var
root@zfs:/root # gpart show
=>       34  125829053  ada0  GPT  (60G)
         34          6        - free -  (3.0k)
         40        216     1  freebsd-boot  (108k)
        256    4194304     2  freebsd-swap  (2.0G)
    4194560  121634520     3  freebsd-zfs  (58G)
  125829080          7        - free -  (3.5k)

=>       34  125829053  ada1  GPT  (60G)
         34          6        - free -  (3.0k)
         40        216     1  freebsd-boot  (108k)
        256    4194304     2  freebsd-swap  (2.0G)
    4194560  121634520     3  freebsd-zfs  (58G)
  125829080          7        - free -  (3.5k)



来自为知笔记(Wiz)


posted on 2013-11-22 20:42  inmouse  阅读(2849)  评论(0编辑  收藏  举报