RAID 配置与数据保护教程

RAID(Redundant Array of Independent Disks)通过将多块磁盘组合使用来提升性能或数据可靠性。在搬瓦工 VPS 上,虽然通常只有一块虚拟磁盘,但了解 RAID 技术对于管理多磁盘服务器或学习存储技术非常重要。本文使用 Linux 软件 RAID 工具 mdadm 来演示各种 RAID 级别的配置。

一、RAID 级别概览

  • RAID 0(条带化):数据分散到多块磁盘,读写性能翻倍,但无冗余,任何一块磁盘故障则全部数据丢失。最少需要 2 块磁盘。
  • RAID 1(镜像):数据同时写入两块磁盘,一块故障不丢数据,可用空间为单块磁盘大小。最少需要 2 块磁盘。
  • RAID 5(带奇偶校验的条带化):数据和校验信息分布在所有磁盘上,允许一块磁盘故障。最少需要 3 块磁盘,可用空间为 (N-1) 块磁盘。
  • RAID 6(双奇偶校验):类似 RAID 5 但有两份校验数据,允许同时两块磁盘故障。最少需要 4 块磁盘。
  • RAID 10(1+0):先镜像后条带化,兼具性能和冗余。最少需要 4 块磁盘。

二、安装 mdadm

# Ubuntu/Debian
apt update
apt install mdadm -y

# CentOS
yum install mdadm -y

三、创建 RAID 阵列

3.1 准备磁盘

# 查看可用磁盘
lsblk

# 清除磁盘上的旧 RAID 信息(如果有)
mdadm --zero-superblock /dev/vdb /dev/vdc

# 使用 gdisk 创建分区(可选,也可直接使用整块磁盘)
apt install gdisk -y
sgdisk -Z /dev/vdb
sgdisk -n 1:0:0 -t 1:fd00 /dev/vdb
sgdisk -Z /dev/vdc
sgdisk -n 1:0:0 -t 1:fd00 /dev/vdc

3.2 创建 RAID 1(镜像)

# 创建 RAID 1 阵列
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/vdb /dev/vdc

# 查看同步进度
cat /proc/mdstat

# 查看 RAID 详细信息
mdadm --detail /dev/md0

3.3 创建 RAID 5

# 创建 RAID 5 阵列(3 块磁盘 + 1 块热备)
mdadm --create /dev/md0 --level=5 --raid-devices=3 --spare-devices=1 \
  /dev/vdb /dev/vdc /dev/vdd /dev/vde

# 查看同步进度
watch cat /proc/mdstat

3.4 创建 RAID 10

# 创建 RAID 10 阵列
mdadm --create /dev/md0 --level=10 --raid-devices=4 \
  /dev/vdb /dev/vdc /dev/vdd /dev/vde

四、格式化与挂载

# 创建文件系统
mkfs.ext4 /dev/md0

# 创建挂载点并挂载
mkdir -p /mnt/raid
mount /dev/md0 /mnt/raid

# 保存 RAID 配置
mdadm --detail --scan >> /etc/mdadm/mdadm.conf

# 更新 initramfs(确保启动时能识别 RAID)
update-initramfs -u

# 写入 fstab 永久挂载
echo '/dev/md0 /mnt/raid ext4 defaults,noatime 0 0' >> /etc/fstab

五、RAID 日常管理

5.1 监控 RAID 状态

# 查看 RAID 状态
cat /proc/mdstat
mdadm --detail /dev/md0

# 启用邮件报警
mdadm --monitor --mail=your@email.com --delay=300 /dev/md0 --daemonize

# 设置 mdadm 监控服务
systemctl enable mdmonitor
systemctl start mdmonitor

5.2 模拟磁盘故障与恢复

# 标记磁盘为故障
mdadm /dev/md0 --fail /dev/vdc

# 移除故障磁盘
mdadm /dev/md0 --remove /dev/vdc

# 添加新磁盘替换
mdadm /dev/md0 --add /dev/vdf

# 查看重建进度
watch cat /proc/mdstat

5.3 扩展 RAID 阵列

# 向 RAID 5 添加新磁盘并扩展
mdadm /dev/md0 --add /dev/vdf
mdadm --grow /dev/md0 --raid-devices=4

# 扩展文件系统
resize2fs /dev/md0

六、RAID 性能测试

# 安装测试工具
apt install fio -y

# 顺序读写测试
fio --name=seqread --ioengine=libaio --iodepth=16 --rw=read \
  --bs=1M --size=2G --numjobs=1 --runtime=60 \
  --group_reporting --filename=/mnt/raid/fio-test

# 随机读写测试
fio --name=randmixed --ioengine=libaio --iodepth=32 --rw=randrw \
  --rwmixread=70 --bs=4k --size=1G --numjobs=4 \
  --runtime=60 --group_reporting --filename=/mnt/raid/fio-test

# 清理
rm -f /mnt/raid/fio-test

七、停止与删除 RAID

# 卸载文件系统
umount /mnt/raid

# 停止 RAID 阵列
mdadm --stop /dev/md0

# 清除各磁盘上的 RAID 元数据
mdadm --zero-superblock /dev/vdb /dev/vdc

# 从 fstab 和 mdadm.conf 中移除相关条目
nano /etc/fstab
nano /etc/mdadm/mdadm.conf

八、RAID 选型建议

  • 追求性能:RAID 0(无冗余)或 RAID 10(有冗余)。
  • 追求安全:RAID 1(最简单)或 RAID 6(允许双盘故障)。
  • 性能与安全平衡:RAID 5(单盘冗余)或 RAID 10。
  • VPS 学习环境:可以用文件模拟磁盘来练习 RAID 配置。

RAID 不能替代备份,即使有冗余也应该定期备份重要数据。

总结

软件 RAID 通过 mdadm 可以在标准 Linux 系统上灵活配置各种 RAID 级别。结合 LVM 逻辑卷管理,可以构建既有冗余又灵活的存储架构。文件系统层面的优化请参考 Ext4 优化教程Btrfs 使用指南。选购搬瓦工 VPS 请查看 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,通过 bwh81.net 访问官网。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。