硬盘是会坏的——单块硬盘故障可能让数据瞬间消失。RAID通过把多块硬盘组合起来,提供冗余(坏一块不丢数据)或性能提升。本文讲清RAID是什么、各级别怎么选、以及用软RAID(mdadm)配置的方法。重要前提:RAID不能替代备份,后面会详说。
一、RAID是什么?
RAID(独立磁盘冗余阵列)把多块硬盘组合成一个逻辑整体,根据不同的组合方式(级别),实现:冗余(一块盘坏了数据还在)、性能(多盘并行读写更快)、或扩容(合并容量)。核心价值是应对单块硬盘故障——硬件独立服务器/裸金属常配多盘做RAID(参考裸金属和独服篇)。
二、常见RAID级别怎么选?
- RAID 0(条带):多盘拼成一个大盘、并行读写提速,但没有冗余——任何一块坏,全部数据丢失。只追求性能、数据不重要时用,风险高;
- RAID 1(镜像):两块盘存完全相同的数据,坏一块另一块顶上,数据不丢。冗余好,但容量只有一半。适合重要数据;
- RAID 5:三块以上盘,用奇偶校验实现冗余,坏一块可恢复,容量利用率较高。性能和冗余平衡,但重建时有风险;
- RAID 10(1+0):镜像 + 条带结合,兼顾性能和冗余,坏盘容忍度好。需要至少4块盘,容量利用率一半。数据库等重要业务的常见选择。
简单建议:重要数据要冗余选RAID 1或10,纯性能选RAID 0(慎用),平衡选RAID 5/10。
三、硬件RAID vs 软RAID
- 硬件RAID:专门的RAID卡实现,性能好、不占CPU,但要硬件支持(独立服务器/裸金属可能配备);
- 软RAID:用系统软件(Linux的mdadm)实现,无需专门硬件、灵活、免费,现代CPU下性能损耗很小。本文讲软RAID。
四、用mdadm配置软RAID(以RAID 1为例)
apt install mdadm -y
# 用两块盘创建RAID 1
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/vdb /dev/vdc
# 格式化并挂载(参考挂载硬盘篇)
mkfs.ext4 /dev/md0
mkdir /data && mount /dev/md0 /data
# 保存RAID配置,确保重启后阵列自动组装
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
update-initramfs -u
查看阵列状态:cat /proc/mdstat 或 mdadm --detail /dev/md0。
五、坏盘处理
RAID的价值就在坏盘时体现。RAID 1/5/10坏一块盘时,数据仍可访问(降级运行),此时:
# 标记坏盘并移除
mdadm /dev/md0 --fail /dev/vdb --remove /dev/vdb
# 换上新盘后加入,自动重建
mdadm /dev/md0 --add /dev/新盘
# 观察重建进度
cat /proc/mdstat
换盘重建期间数据不丢,重建完恢复冗余。这就是RAID的意义。
六、关键:RAID绝不能替代备份
这是必须讲清的重点——RAID是”高可用”,不是”备份”:
- RAID防的是硬件单盘故障,但防不了:误删文件(所有盘同步删)、勒索软件加密、文件系统损坏、机房灾难、人为破坏;
- 你在RAID上误删了文件,所有盘上都删了——RAID救不了你;
- 所以RAID + 备份要同时做:RAID保证单盘坏了业务不中断,备份(参考备份、rclone、Restic篇)保证各种情况下数据能恢复。
把RAID当备份是危险的误解,一定要另外做真正的备份。
结论
RAID通过多盘组合提供冗余或性能:重要数据用RAID 1/10保冗余、纯性能用RAID 0(慎)、平衡用RAID 5/10。软RAID用mdadm即可配置,坏盘可换盘重建。但牢记铁律——RAID不是备份,它只防硬件单盘故障,防不了误删、勒索、灾难,必须另做备份。RAID(高可用)+ 备份(数据保险)双管齐下,数据才真正安全。多盘配置常见于独立服务器和裸金属。