Linux(七)服务器硬件及RAID配置实战
文章目录
- 一、RAID 概念概述
- 二、常见的 RAID 级别
- 三、RAID 应用建议
- 四、Linux 系统 RAID 阵列部署完整过程
- 🔸步骤1:环境说明
- 🔸步骤2:安装 RAID 管理工具 mdadm
- 🔸步骤3:硬盘分区并标记为 RAID 类型
- 🔸步骤4:创建 RAID 阵列
- ① 创建 RAID5 阵列(3数据盘+1热备盘)
- ② 创建 RAID10 阵列(先做镜像,再做条带)
- 🔸步骤5:查看 RAID 阵列状态
- 🔸步骤6:创建文件系统并挂载使用
- 🔸步骤7:RAID 故障模拟与恢复
- ① 模拟硬盘故障
- ② 移除故障硬盘
- ③ 更换新硬盘并恢复
- 🔸步骤8:保存 RAID 配置(防止重启失效)
- 🔸步骤9:验证 RAID 阵列稳定性
- 五、“创建 RAID5 的命令”详解
一、RAID 概念概述
- RAID(独立冗余磁盘阵列)是将多块硬盘组合成一个逻辑存储单元的技术。
- 目标:
- 提高性能(并行读写)
- 提高可靠性(冗余容错)
- 扩大容量(合并多盘)
二、常见的 RAID 级别
| RAID 级别 | 特点 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| RAID 0 | 数据条带化分布 | 读写性能高 | 无冗余,一块盘坏则数据全丢 | 临时缓存、游戏盘 |
| RAID 1 | 数据镜像 | 高可靠性 | 存储利用率仅50% | 系统盘、数据库 |
| RAID 5 | 带奇偶校验的条带化 | 性能与容错兼顾 | 写入略慢,重建时间长 | 文件服务器、NAS |
| RAID 10 | 先镜像再条带化 | 高性能 + 高可靠 | 至少需4块盘,成本高 | 高性能数据库、服务器 |

三、RAID 应用建议
| 场景 | 推荐 RAID 级别 | 说明 |
|---|---|---|
| 高速临时存储 | RAID 0 | 强调速度,不关心数据安全 |
| 系统盘 / 数据安全高 | RAID 1 | 提供镜像冗余 |
| 文件服务器 | RAID 5 | 平衡性能与安全 |
| 高性能数据库 | RAID 10 | 综合性能与可靠性 |
四、Linux 系统 RAID 阵列部署完整过程
🔸步骤1:环境说明
操作环境:CentOS 7 系统
硬件准备:5块空闲硬盘(/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde、/dev/sdf,可根据实际硬盘名称调整)
部署目标:先演示 RAID5(3块数据盘+1块热备盘)部署,再演示 RAID10 部署,包含故障模拟、恢复及配置保存全流程
🔸步骤2:安装 RAID 管理工具 mdadm
mdadm 是 Linux 下管理软件 RAID 的核心工具,先检查是否已安装,未安装则通过 yum 安装:
# 检查 mdadm 是否安装
rpm -q mdadm
# 若未安装,执行安装命令(需root权限,或加sudo)
yum install -y mdadm
🔸步骤3:硬盘分区并标记为 RAID 类型
所有要加入 RAID 阵列的硬盘,需先分区并将分区类型 ID 设为 fd(Linux raid autodetect):
# 对 /dev/sdb 分区(以sdb为例,sdc、sdd、sde、sdf操作相同)
fdisk /dev/sdb
# 分区操作流程(fdisk交互命令):
# 1. 输入 n → 创建新分区
# 2. 输入 p → 选择主分区
# 3. 分区号默认(1),回车
# 4. 起始扇区默认,回车
# 5. 结束扇区默认(使用整个硬盘空间),回车
# 6. 输入 t → 更改分区类型
# 7. 输入 fd → 设置类型为RAID
# 8. 输入 w → 保存分区表并退出
# 重复上述 fdisk 命令,分别对 /dev/sdc、/dev/sdd、/dev/sde、/dev/sdf 进行分区(各分1个主分区,类型设为fd)
fdisk /dev/sdc
fdisk /dev/sdd
fdisk /dev/sde
fdisk /dev/sdf
🔸步骤4:创建 RAID 阵列
① 创建 RAID5 阵列(3数据盘+1热备盘)
RAID5 特点:分布式奇偶校验,允许1块硬盘故障,数据不丢失;热备盘在数据盘故障时自动顶替
# 命令解析:
# -C:创建新阵列
# -v:显示详细过程
# /dev/md0:RAID设备名称(自定义,如md1、md10等)
# -l5:指定RAID级别为5
# -n3:指定数据盘数量为3
# /dev/sd[bcd]1:3块数据盘的分区(sdb1、sdc1、sdd1)
# -x1:指定热备盘数量为1
# /dev/sde1:热备盘分区
mdadm -Cv /dev/md0 -l5 -n3 /dev/sd[bcd]1 -x1 /dev/sde1
② 创建 RAID10 阵列(先做镜像,再做条带)
RAID10 特点:结合 RAID1(镜像)和 RAID0(条带),性能高、容错性强(允许每组镜像中1块盘故障),需偶数块硬盘(至少4块)
# 第一步:创建2个 RAID1 镜像组(每组2块盘)
mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[bc]1 # md1:sdb1和sdc1做镜像
mdadm -Cv /dev/md2 -l1 -n2 /dev/sd[de]1 # md2:sdd1和sde1做镜像
# 第二步:将2个 RAID1 组组成 RAID0 条带,形成 RAID10(设备名md10)
mdadm -Cv /dev/md10 -l0 -n2 /dev/md1 /dev/md2
🔸步骤5:查看 RAID 阵列状态
创建完成后,可通过多种命令查看 RAID 构建进度、详细信息:
# 方法1:查看 RAID 实时状态(包含构建进度,如[==>...])
cat /proc/mdstat
# 方法2:查看指定 RAID 设备的详细信息(如md0)
mdadm -D /dev/md0
# 方法3:每隔10秒刷新一次状态,实时监控构建进度(按Ctrl+C退出)
watch -n 10 'cat /proc/mdstat'
说明:RAID 阵列创建后会自动进行数据同步(构建过程),同步期间性能较低,需等待同步完成(进度100%)再进行后续操作
🔸步骤6:创建文件系统并挂载使用
RAID 设备本质是块设备,需创建文件系统(如xfs、ext4),再挂载到目录才能使用:
# 以 RAID5 设备 /dev/md0 为例(RAID10 设备 /dev/md10 操作相同)
# 第一步:创建 xfs 文件系统(CentOS7默认推荐,也可用 mkfs.ext4 /dev/md0)
mkfs.xfs /dev/md0
# 第二步:创建挂载目录(自定义,如/myraid)
mkdir /myraid
# 第三步:临时挂载(重启后失效)
mount /dev/md0 /myraid
# 第四步:设置永久挂载(写入/etc/fstab,重启后自动挂载)
echo '/dev/md0 /myraid xfs defaults 0 0' >> /etc/fstab
# 验证挂载是否成功(查看挂载信息)
df -h | grep /myraid
🔸步骤7:RAID 故障模拟与恢复
① 模拟硬盘故障
人为标记某块数据盘为故障状态(以 RAID5 的 /dev/sdb1 为例):
# -f:标记硬盘为故障(faulty)
mdadm /dev/md0 -f /dev/sdb1
# 查看状态,确认热备盘 /dev/sde1 是否自动激活(顶替sdb1)
cat /proc/mdstat
② 移除故障硬盘
将故障盘从 RAID 阵列中移除:
# -r:移除故障盘(remove)
mdadm /dev/md0 -r /dev/sdb1
# 查看移除后的状态
mdadm -D /dev/md0
③ 更换新硬盘并恢复
将新硬盘(如 /dev/sdf1,已分区并标记为RAID类型)加入阵列,作为新的热备盘(或直接顶替故障盘):
# -a:添加新硬盘(add)
mdadm /dev/md0 -a /dev/sdf1
# 查看恢复状态(新硬盘会自动同步数据)
cat /proc/mdstat
🔸步骤8:保存 RAID 配置(防止重启失效)
默认情况下,重启系统后可能无法识别 RAID 阵列,需将配置保存到 /etc/mdadm.conf:
# 第一步:写入设备信息(指定RAID使用的分区)
echo 'DEVICE /dev/sd[b-f]1' > /etc/mdadm.conf
# 第二步:扫描并写入当前RAID配置信息
mdadm --detail --scan >> /etc/mdadm.conf
# 验证配置文件(可选)
cat /etc/mdadm.conf
🔸步骤9:验证 RAID 阵列稳定性
# 1. 向挂载目录写入测试文件
dd if=/dev/zero of=/myraid/testfile bs=1G count=5
# 2. 查看文件是否正常
ls -lh /myraid/testfile
# 3. 重启系统,验证RAID是否自动识别、是否自动挂载
reboot
# 重启后验证
cat /proc/mdstat # 查看RAID状态
df -h | grep /myraid # 查看是否自动挂载
五、“创建 RAID5 的命令”详解
-
创建 RAID5:
mdadm -Cv /dev/md0 -l5 -n3 /dev/sd[bcd]1 -x1 /dev/sde1 -
命令整体作用:
创建一个名为/dev/md0的 RAID 5 阵列,使用 3 块工作磁盘(/dev/sdb1、/dev/sdc1、/dev/sdd1),并指定 1 块热备盘(/dev/sde1),创建过程中输出详细日志(-v)。 -
逐参数拆解:
| 参数 | 含义 |
|---|---|
mdadm | Linux 下管理软件 RAID 阵列的核心命令(md = Multiple Devices,多设备) |
-C(Create) | 创建新的 RAID 阵列(核心动作) |
-v(Verbose) | 启用详细输出模式,创建过程中显示进度、磁盘检测结果等日志,方便排查问题 |
/dev/md0 | 新 RAID 阵列的设备文件名(默认从 md0 开始,后续可创建 md1、md2 等) |
-l5(level=5) | 设定 RAID 级别为 5(-l 是 --level 的缩写):RAID 5 特点:分布式奇偶校验,需要至少 3 块工作盘; 优势:兼顾性能(读写并行)和容错(任意 1 块工作盘损坏不丢数据); 空间计算:总可用空间 =(单盘容量 × 工作盘数量)- 1 块盘容量(用于存储奇偶校验数据) |
-n3(number=3) | 指定 RAID 阵列的 工作磁盘数量 为 3(-n 是 --raid-devices 的缩写),必须与 RAID 级别匹配(RAID 5 最少 3 块工作盘) |
/dev/sd[bcd]1 | 3 块工作磁盘的分区(用通配符 [bcd] 简化写法,等价于 /dev/sdb1 /dev/sdc1 /dev/sdd1):要求:这些分区需是独立磁盘的分区(不能是同一磁盘的不同分区),建议分区类型 ID 设为 fd |
-x1(spare=1) | 指定 RAID 阵列的 热备磁盘数量 为 1(-x 是 --spare-devices 的缩写):热备盘作用:平时不参与阵列读写,当某块工作盘损坏时,自动替代损坏磁盘,重建 RAID 数据,无需手动干预 |
/dev/sde1 | 指定的热备磁盘分区(需是独立于工作盘的磁盘分区,容量建议与工作盘一致或更大) |
- 补充说明(避坑关键)
- 磁盘要求:
- 工作盘(
sdb1/sdc1/sdd1):需是不同物理磁盘的分区(同一磁盘分区做 RAID 无容错意义),容量建议一致(否则总容量按最小盘计算); - 热备盘(
sde1):需独立于工作盘,容量≥工作盘最小容量(否则无法完成自动替换重建)。
- 工作盘(
- RAID 5 特性:
- 容错性:允许 1 块工作盘损坏(数据通过奇偶校验恢复);若 2 块及以上工作盘同时损坏,数据丢失;
- 性能:读速度接近多盘并行(优于单盘),写速度略低于单盘(需计算并存储奇偶校验数据)。
- 后续操作:
创建成功后,需格式化 RAID 阵列(如mkfs.ext4 /dev/md0),再挂载使用(如mount /dev/md0 /mnt/raid5)。 - 查看状态:
可通过mdadm -D /dev/md0(-D=Detail)查看阵列状态(工作盘、热备盘、同步进度等)。
- 简化理解
用“团队协作”类比: - 3 块工作盘 = 3 个主力员工,一起处理数据(读写),并共同维护“备份校验信息”;
- 1 块热备盘 = 1 个替补员工,平时待命,主力员工(工作盘)出问题时自动顶班,保证团队(阵列)正常运转;
- RAID 5 = 团队的工作模式(兼顾效率和容错);
/dev/md0= 团队的“对外接口”,系统通过它使用阵列的存储资源。







