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 ada2gnop 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)