RAID(磁盘冗余阵列)配置与实践

RAID(磁盘冗余阵列)配置与实践

一、RAID 概述

RAID(Redundant Array of Independent Disks,磁盘冗余阵列)是通过将多个物理磁盘按特定规则组合,实现提升存储性能增强数据冗余(容错)或平衡两者的技术。其核心是通过数据分割、复制或校验,优化存储系统的可靠性与效率。

二、常见 RAID 级别及特点

不同 RAID 级别通过不同的数据分布和冗余策略实现差异化功能,以下是常用级别的核心特性:

RAID 级别

最少磁盘数

核心特点

容量利用率

性能(读写)

容错能力

适用场景

RAID 0

2 块

数据分割为 N 份,分别存储在 N 块磁盘(条带化),无冗余。

100%(无浪费)

最高(并行读写)

无(单盘故障数据全丢)

临时缓存、非重要高带宽场景

RAID 1

2 块

数据完全复制到所有磁盘(镜像),冗余优先。

50%(N/2)

读性能高,写性能一般

允许单盘故障(镜像恢复)

系统盘、重要数据存储

RAID 5

3 块

数据分割存储 + 分布式校验(每块磁盘均含校验信息),平衡性能与冗余。

(N-1)/N

读写性能较好

允许单盘故障(校验恢复)

通用存储(文件服务器、数据库)

RAID 10

4 块

先做 RAID 1 镜像,再将镜像组做 RAID 0 条带化(1+0),兼顾冗余与性能。

50%(N/2)

读写性能优秀

每组镜像允许单盘故障

高可用 + 高性能场景(数据库)

RAID 50

6 块

先做 RAID 5 校验组,再将校验组做 RAID 0 条带化(5+0),扩展容错与性能。

(N-2)/N

读写性能优秀

每组允许单盘故障

大容量高可用场景(数据中心)

三、使用 mdadm 工具创建 RAID

mdadm 是 Linux 下管理软件 RAID 的工具,支持动态创建、管理和监控 RAID 阵列。以下是具体步骤:

(一)环境准备

  1. 添加物理磁盘:新增一块 20G 磁盘(示例为 /dev/sdb),用于创建分区模拟多块磁盘。
  1. 创建分区:使用 fdisk 对 /dev/sdb 分区,各分区大小均为 1G(模拟独立磁盘):
# 进入分区工具

fdisk /dev/sdb

# 依次创建分区 sdb1、sdb2、sdb3、sdb4、sdb5、sdb6、sdb7、sdb8、sdb9、sdb10、sdb11、sdb12(各 1G)

# 分区类型默认“gpt”即可,完成后刷新分区表

partprobe /dev/sdb

(二)mdadm 常用命令

命令格式

功能说明

mdadm -Cv /dev/mdX -l 级别 -n 数量 磁盘列表

创建 RAID 阵列(-C 创建,-v 显示过程,-l 指定级别,-n 指定磁盘数)

mdadm -D /dev/mdX

查看 RAID 详细信息(状态、成员、容错等)

mdadm -f /dev/mdX 磁盘

模拟磁盘故障(标记磁盘为 faulty)

mdadm -r /dev/mdX 磁盘

从 RAID 中移除故障磁盘

mdadm -a /dev/mdX 磁盘

向 RAID 中添加新磁盘(可作为热备盘或替换故障盘)

(三)创建各类型 RAID 实例

1. 创建 RAID 0

目标:用 sdb1 和 sdb2 创建 RAID 0(/dev/md0)。

# 创建 RAID 0 阵列(-l 0 表示级别 0,-n 2 表示 2 块磁盘)

mdadm -Cv /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdb2

# 验证:查看 RAID 容量(应为 2G,sdb1 + sdb2 总和)

lsblk /dev/md0

# 格式化并挂载(xfs 文件系统)

mkfs.xfs /dev/md0

mkdir /raid0

mount /dev/md0 /raid0

# 永久挂载(添加到 /etc/fstab)

echo "$(blkid /dev/md0 | awk '{print $2}') /raid0 xfs defaults 0 0" >> /etc/fstab

mount -a # 生效配置
2. 创建 RAID 1

目标:用 sdb3 和 sdb4 创建 RAID 1(/dev/md1)。

# 创建 RAID 1 阵列(-l 1 表示级别 1)

mdadm -Cv /dev/md1 -l 1 -n 2 /dev/sdb3 /dev/sdb4

# 验证:容量应为 1G(单盘大小,因镜像冗余)

lsblk /dev/md1

# 格式化并挂载

mkfs.xfs /dev/md1

mkdir /raid1

mount /dev/md1 /raid1

# 永久挂载(同 RAID 0 步骤,添加到 /etc/fstab)
3. 创建 RAID 5(含热备盘)

目标:用 sdb5、sdb6、sdb7 创建 RAID 5,sdb8 作为热备盘(/dev/md5)。

# 创建 RAID 5 阵列(--spare-devices=1 指定 1 块热备盘)

mdadm -Cv /dev/md5 -l 5 -n 3 /dev/sdb5 /dev/sdb6 /dev/sdb7 --spare-devices=1 /dev/sdb8

# 验证:容量应为 2G(3 块数据盘 - 1 块校验盘 = 2G)

lsblk /dev/md5

# 查看详细信息(确认热备盘状态为 spare)

mdadm -D /dev/md5

# 格式化并挂载

mkfs.xfs /dev/md5

mkdir /raid5

mount /dev/md5 /raid5

# 永久挂载(同前)

故障模拟与恢复

# 模拟 sdb5 故障

mdadm -f /dev/md5 /dev/sdb5

# 查看状态:sdb5 标记为 faulty,sdb8 自动作为热备盘重建(状态为 spare rebuilding)

mdadm -D /dev/md5

# 移除故障盘 sdb5

mdadm -r /dev/md5 /dev/sdb5

# 添加 sdb5 作为新热备盘

mdadm -a /dev/md5 /dev/sdb5

# 查看状态:sdb5 变为 spare 热备盘

4. 创建 RAID 10

目标:先创建 2 个 RAID 1 镜像组,再组合为 RAID 0(/dev/md10)。

# 步骤 1:创建 2 个 RAID 1 子阵列

mdadm -Cv /dev/md101 -l 1 -n 2 /dev/sdb9 /dev/sdb10 # 第一个镜像组

mdadm -Cv /dev/md102 -l 1 -n 2 /dev/sdb11 /dev/sdb12 # 第二个镜像组

# 步骤 2:将镜像组组合为 RAID 0

mdadm -Cv /dev/md10 -l 0 -n 2 /dev/md101 /dev/md102

# 验证:容量应为 2G(每个镜像组 1G,条带化后总和)

lsblk /dev/md10

# 格式化并挂载(同前)

5. 创建 RAID 50

目标:先创建 2 个 RAID 5 校验组,再组合为 RAID 0(/dev/md50)。

# 步骤 1:创建 2 个 RAID 5 子阵列(每组 3 块盘,含 1 块校验盘)

mdadm -Cv /dev/md501 -l 5 -n 3 /dev/sdb13 /dev/sdb14 /dev/sdb15 # 假设新增分区

mdadm -Cv /dev/md502 -l 5 -n 3 /dev/sdb16 /dev/sdb17 /dev/sdb18

# 步骤 2:将校验组组合为 RAID 0

mdadm -Cv /dev/md50 -l 0 -n 2 /dev/md501 /dev/md502

# 验证:容量应为 (3-1)*2 = 4G(每组 2G 有效容量,条带化后总和)

四、RAID 管理与维护

  • 查看所有 RAID 状态
cat /proc/mdstat # 显示系统中所有 RAID 阵列状态
  • 停止 RAID 阵列(谨慎操作,数据可能丢失):
mdadm -S /dev/mdX
  • 删除 RAID 阵列(需先卸载并停止):
umount /dev/mdX

mdadm -S /dev/mdX

mdadm --zero-superblock /dev/sdb1 /dev/sdb2 # 清除磁盘的 RAID 元数据

五、总结

RAID 技术通过不同级别平衡性能与冗余,选择时需结合业务需求:

  • 追求性能无冗余:选 RAID 0;
  • 重要数据高冗余:选 RAID 1 或 RAID 10;
  • 通用场景平衡需求:选 RAID 5;
  • 大容量高可用:选 RAID 50。

通过 mdadm 工具可灵活创建和管理软件 RAID,无需专用硬件,适合中小型场景部署。实际应用中需定期监控 RAID 状态,及时替换故障磁盘,确保数据安全。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值