机房里一次坏两块硬盘,数据还能不能救?RAID5救不了,RAID6就是为这个场景设计的:允许同时坏两块盘,阵列照常读写,业务不中断。
结构:两套独立校验
RAID6至少要4块硬盘,数据之外要算两套互相独立的校验,分别放在不同盘上。一套是和RAID5类似的P校验,另一套Q校验一般用Reed-Solomon算法生成。任何两块盘同时挂掉,剩下的盘配合校验都能把数据完整算回来。
代价也摆在明面上:可用容量等于总容量减两块盘,6块4TB组RAID6,可用空间(6−2)×4TB=16TB。写入要算两套校验,写性能不如RAID5,随机写尤其明显,多数阵列卡靠缓存把这部分压力扛下来。
和RAID5、RAID10怎么比
- RAID5:只允许坏1块盘,容量利用率高,但大容量盘重建时间长,重建中再坏一块就全丢
- RAID6:允许坏2块盘,重建期间还有一层容错余量,8TB以上的大容量盘建议优先考虑
- RAID10:性能最好,代价是一半容量,而且坏的两块盘如果正好是一组镜像,照样丢数据
现在的硬盘动辄10TB起步,重建一块盘要好几个小时甚至一天,这期间阵列里全是疲劳运转的老盘,再坏一块的概率不小。第二套校验本质上就是给这个重建窗口上的保险。
组建方式和要点
硬件组RAID进BIOS或者阵列卡管理界面配;Linux软件阵列用mdadm,一条命令建好:
mdadm --create /dev/md0 --level=6 --raid-devices=4 /dev/sdb /dev/sdc /dev/sdd /dev/sde三点要注意:组阵列前先备份数据,任何操作都可能清盘;尽量用同型号同批次硬盘,混盘重建容易出问题;阵列不等于备份,误删、病毒、控制器烧毁照样丢,重要数据另留一份离线拷贝。
实际判断:家用NAS两三块盘,RAID5或者干脆多机备份更省心;企业存储、监控录像库这类盘多容量大的场景,RAID6是安全性和容量利用率比较均衡的选择。