住宅主机磁盘阵列RAID数据防护实战:从准备到验证
住宅主机磁盘阵列RAID数据防护实战:从准备到验证
家庭主机上存放的照片、文档和影视资源一旦硬盘损坏就可能全部丢失。
RAID(磁盘阵列)技术可以通过多块硬盘协同工作提供数据冗余,即使一块盘坏了也能正常读写。
本文以最常见的RAID 1(镜像)为例,手把手教你用Ubuntu系统自带的软RAID工具mdadm搭建住宅主机的数据防护方案。
准备阶段:硬件与软件要求
在开始之前请确认以下条件:
- 至少两块空闲硬盘:建议容量相同,品牌型号尽量一致。本文使用两块全新的4TB SATA SSD。
- 一台安装Ubuntu系统的住宅主机:系统版本不低于20.04。
- 所有重要数据已备份:RAID不是备份!新盘操作前最好把原有文件复制到其它地方。
- root或sudo权限:后续命令需管理员执行。
如果你使用的是Windows系统,原理类似,可以用存储空间(Storage Spaces)或购买硬件RAID卡。
本文以Ubuntu+mdadm为例,因为配置透明且零成本。
操作步骤:创建RAID 1镜像阵列
打开终端(Ctrl+Alt+T),按顺序执行以下命令。
每一步完成后检查输出,确认无误再继续。
- 查看当前磁盘列表
lsblk
输出会显示所有块设备,找到你要用于RAID的两块盘,这里假设为 /dev/sdb 和 /dev/sdc。
确认它们没有分区且无重要数据。
- 安装mdadm(若已安装可跳过)
sudo apt update
sudo apt install mdadm -y
- 创建RAID 1阵列
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
参数说明:
/dev/md0:新建的虚拟阵列设备名--level=1:RAID 1(镜像)--raid-devices=2:使用2块硬盘
系统会提示“Continue creating array?
”,输入 y 回车。
创建过程根据硬盘大小需几分钟。
- 格式化并挂载
# 格式化文件系统(例如ext4)
sudo mkfs.ext4 /dev/md0
# 创建挂载点
sudo mkdir /mnt/raid1
# 临时挂载
sudo mount /dev/md0 /mnt/raid1
- 保存阵列配置(否则重启后阵列会丢失)
sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
sudo update-initramfs -u
- 设置开机自动挂载
# 查看UUID
sudo blkid /dev/md0
# 记录UUID,编辑/etc/fstab,添加一行(用实际UUID替换)
# UUID=xxxx-xxxx /mnt/raid1 ext4 defaults 0 2
完成后重启测试:sudo reboot。
重启后执行 df -h | grep raid1 确认挂载正常。
避坑指南:新手最常踩的雷
- 硬盘顺序搞错:
lsblk显示的sda通常是系统盘,不要误操作。可以拔掉数据线再插,重新查看盘符变化来确认。 - 使用不同容量硬盘:RAID 1会以最小容量为准,大出的空间无法使用。建议购买同容量同型号。
- 忘记保存配置:不执行第5步,重启后阵列消失,需要用
mdadm --assemble --scan重新组装。 - 在已含数据的盘上创建RAID:操作会擦除所有数据,务必提前备份。
- 混淆RAID与备份:即使RAID 1,误删除或勒索病毒依然导致数据损坏,重要文件还需单独冷备份。
效果验证:阵列是否正常工作
最简单的验证方法是模拟故障。
执行以下命令将其中一块盘标记为故障,然后移除:
# 标记 sdb 为故障(注意替换为你实际的阵列盘)
sudo mdadm /dev/md0 --fail /dev/sdb
查看阵列状态:
cat /proc/mdstat
输出应显示 [U_] 表示一块盘健康(Up),另一块已失效(_)。
再测试挂载目录 /mnt/raid1 是否可以正常读写文件。
如果能正常使用,说明RAID冗余生效。
然后重新添加一块新盘或原有盘修复阵列:
sudo mdadm /dev/md0 --remove /dev/sdb
sudo mdadm /dev/md0 --add /dev/sdb
# 等待同步完成
cat /proc/mdstat
看到“同步完成”或进度100%即恢复。
高频问题与解答
Q:我的主板有硬件RAID,和软RAID哪个好?
A:家用场景下软RAID(mdadm)更灵活,更换主板不影响阵列数据。硬件RAID需要同型号卡才能识别。建议新手先用软RAID。
Q:可以用不同容量的盘吗?
A:可以,但大出的空间浪费。比如4TB+2TB,RAID 1只能使用2TB。
Q:如何监控阵列健康状态?
A:安装smartmontools定期检查硬盘SMART信息,或使用mdadm --monitor脚本定时发送邮件警告。
Q:Windows下怎么搭建类似的RAID 1?
A:打开“磁盘管理”,右键硬盘选“转换为动态磁盘”,然后镜像卷。但动态磁盘兼容性较差,推荐使用Windows存储空间(Storage Spaces)创建双向镜像。
如果你正在规划住宅主机的数据防护,建议先从两块同容量硬盘的RAID 1开始,后续可扩展到更多盘或RAID 5、RAID 6。
遇到异常时优先查阅阵列状态文件 /proc/mdstat 和 dmesg | grep md 定位问题。
祝你的家庭数据安全无忧。