需要验证zfs在坏盘、掉盘的情况下的容灾能力。因为要模拟磁盘拔盘操作,准备一个虚拟机环境,12块2g大小的scsi虚拟盘,做一个raid10模式的zfs存储池,每块盘都有一个备份盘,如下
zpool create tank-hdd mirror sdb sdc mirror sdd sde mirror sdf sdg mirror sdh sdi mirror sdj sdk mirror sdl sdm
创建zfs目录,复制一个4.3g文件CentOS-7-x86_64-DVD-1810.iso进去,数据分摊到12块盘如下
现在模拟拔掉盘sdb,然后执行zpool scrub tank-hdd刷新存储池
如图存储池的sdb盘已经显示为unavail,但文件依然正常访问,因为sdb的备份盘sdc是正常的
然后模拟拔掉盘sdc,然后执行zpool scrub tank-hdd刷新存储池
这时存储池就会变成unavail状态,完全不可用,因为sdb、sdc互为备份盘都被拔掉了
然后模拟把sdb、sdc都先插回去
然后执行zpool clear tank-hdd恢复存储池为online状态
所以理论上只能拔掉6块盘,并且这6块盘不能互为备份,模拟拔掉sdb、sdd、sdf、sdh、sdj、sdl 6块盘
可以看到文件数据依然可以访问