在服务器存储场景中,单块磁盘的性能、容量和可靠性往往无法满足需求 —— 而 **RAID(独立磁盘冗余阵列)** 通过 “多块磁盘组合”,能实现 “1+1>2” 的存储效果。本文将详解 RAID 的核心类型、软 RAID 的搭建步骤,以及故障恢复方法。

一、RAID 核心:是什么?有哪些类型?

RAID 是将多块普通磁盘组合成一个 “逻辑磁盘” 的技术,核心目标是提升性能、扩展容量、增强可靠性

RAID 主要分为硬件 RAID(依赖独立硬件卡)和软件 RAID(通过系统工具实现,如 Linux 的mdadm),本文聚焦软 RAID(免费、灵活,云环境常用)。

常用 RAID 级别对比

不同 RAID 级别对应不同的 “性能 - 可靠性 - 成本” 平衡,核心参数如下:

RAID 级别 至少磁盘数 有效容量占比 读写性能特点 容错能力 典型场景
RAID 0(条带卷) 2 块 100%(n 块盘) 读写速度 = 单盘 ×n 无(坏 1 块则数据全丢) 追求极致速度(如缓存)
RAID 1(镜像卷) 2 块 50%(1/2 n) 写速度无提升,读速度提升 允许坏 1 块(数据镜像备份) 存储重要数据(如系统盘)
RAID 5 3 块 (n-1)/n 读写速度≈(n-1)× 单盘 允许坏 1 块(有 1 块校验盘) 通用场景(性能 + 可靠性均衡)
RAID 10(1+0) 4 块 50%(1/2 n) 写速度≈n/2,读速度提升 允许每个 RAID 1 组坏 1 块 高要求场景(性能 + 高可靠性)

二、软 RAID 实战:用 mdadm 搭建 RAID 0

软 RAID 依赖 Linux 自带的mdadm工具,以下以RAID 0为例,完整演示从创建到使用的流程。

步骤 1:准备实验环境

  1. 新增 2 块虚拟磁盘(如sdbsdc);
  2. 确认磁盘已被系统识别:

    bash

    运行

    lsblk
    
  3. 安装mdadm工具(若未安装):

    bash

    运行

    yum install -y mdadm  # CentOS/RHEL
    apt install -y mdadm  # Ubuntu/Debian
    

步骤 2:创建 RAID 0

mdadm创建名为/dev/md0的 RAID 0(由sdbsdc组成):

bash

运行

mdadm -Cv /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc

参数说明:

  • -Cv:创建 RAID 并显示过程;
  • -l 0:指定 RAID 级别为 0;
  • -n 2:使用 2 块磁盘;
  • /dev/sdb /dev/sdc:组成 RAID 的磁盘。

步骤 3:查看 RAID 状态

创建完成后,验证 RAID 信息:

bash

运行

# 查看详细状态
mdadm -D /dev/md0
# 查看简要状态
cat /proc/mdstat

步骤 4:格式化并挂载 RAID

RAID 设备需格式化后才能使用:

bash

运行

# 格式化为xfs文件系统
mkfs.xfs /dev/md0
# 创建挂载点
mkdir -p /mnt/raid0
# 挂载RAID
mount /dev/md0 /mnt/raid0
# 验证挂载(查看容量)
df -h /mnt/raid0

步骤 5:测试读写

向 RAID 写入数据,验证可用性:

bash

运行

echo "RAID 0 测试数据" > /mnt/raid0/test.txt
cat /mnt/raid0/test.txt

步骤 6:清理实验环境(可选)

若需删除 RAID,执行以下步骤:

bash

运行

# 卸载RAID
umount /mnt/raid0
# 停止RAID设备
mdadm --stop /dev/md0
# 清除磁盘的RAID超级块(恢复为普通磁盘)
mdadm --zero-superblock /dev/sdb /dev/sdc

三、RAID 故障处理:以 RAID 1 为例

RAID 的核心价值之一是 “容错”,以下演示 RAID 1 的故障模拟、替换磁盘、数据恢复流程。

步骤 1:模拟磁盘故障

假设 RAID 1(/dev/md1)由sdbsdc组成,标记sdc为故障盘:

bash

运行

# 标记故障盘
mdadm /dev/md1 --fail /dev/sdc
# 查看故障状态
mdadm -D /dev/md1

步骤 2:移除故障盘并添加新盘

bash

运行

# 移除故障盘
mdadm /dev/md1 --remove /dev/sdc
# 添加新磁盘(如sdd)到RAID
mdadm /dev/md1 --add /dev/sdd

步骤 3:观察重建过程

RAID 会自动重建数据,用watch实时查看进度:

bash

运行

watch -n 1 cat /proc/mdstat

步骤 4:验证数据完整性

重建完成后,确认数据未丢失:

bash

运行

cat /mnt/raid1/important.txt

四、高级玩法:搭建 RAID 10

RAID 10 是 “先做 RAID 1,再做 RAID 0” 的组合,需至少 4 块磁盘,有两种创建方式:

方式 1:直接创建 RAID 10

bash

运行

mdadm -Cv /dev/md10 -l 10 -n 4 /dev/sdb /dev/sdc /dev/sdd /dev/sde

方式 2:分步创建(先 RAID 1,再 RAID 0)

bash

运行

# 先创建2个RAID 1
mdadm -Cv /dev/md1 -l 1 -n 2 /dev/sdb /dev/sdc
mdadm -Cv /dev/md2 -l 1 -n 2 /dev/sdd /dev/sde
# 再将2个RAID 1组成RAID 0
mdadm -Cv /dev/md10 -l 0 -n 2 /dev/md1 /dev/md2

五、总结:软 RAID 核心指令

操作场景 指令示例
创建 RAID mdadm -Cv /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc
查看 RAID 状态 mdadm -D /dev/md0cat /proc/mdstat
标记故障盘 mdadm /dev/md1 --fail /dev/sdc
替换故障盘 mdadm /dev/md1 --remove /dev/sdc --add /dev/sdd
停止并清除 RAID mdadm --stop /dev/md0mdadm --zero-superblock /dev/sdb
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐