在企业级服务器和存储系统中,磁盘的可靠性与性能至关重要。单块硬盘往往无法满足高可用、高读写、容错等需求。而 RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)正是为了解决这些问题而诞生的。
RAID 通过把多块硬盘组合成一个阵列,实现 性能提升、数据冗余 或 容量整合,广泛应用于数据库服务器、虚拟化平台、文件存储系统等场景。
一、RAID 是什么?
RAID(磁盘阵列)是一种数据存储技术,通过把多块物理硬盘组合成一个逻辑硬盘,使得系统能够同时从多个硬盘读取或写入数据,从而提升性能、增加冗余或扩大容量。
RAID 有几个核心目的:
提升性能(读写表现更快)
利用多磁盘并行读写,提高吞吐量。
提高可靠性(磁盘坏了也不丢数据)
通过冗余机制,在单盘损坏时保持数据完整性。
扩展可用容量(多盘合并)
多个磁盘的存储空间合并为一个大盘。
不同 RAID 级别会侧重不同的能力。
二、RAID 的常见级别
RAID 有多种模式,每种模式在“性能、容量、可靠性”这三者之间做不同平衡。
下面介绍常用的几个阵列级别。
1. RAID 0 —— 条带化(Striping)
特点:
性能最好(读写并行)容量最大(磁盘总和)
无冗余,磁盘坏一块就全盘毁灭
使用场景:
高性能但不要求可靠性,例如: 临时缓存盘、数据可重建场景
2. RAID 1 —— 镜像(Mirroring)
特点:
两块磁盘互为镜像一块坏掉不影响数据容量只有一半
优点:
读性能提升写与单盘相同高可靠性
典型用途:
操作系统盘小体积但要求安全的数据盘
3. RAID 5 —— 最常用的企业级 RAID
需要至少 3 块磁盘。
特点:
性能比 RAID 1 好有冗余,可容忍 1 块盘损坏容量 = (N - 1) 块磁盘
使用场景:
文件服务器数据库非核心业务虚拟化存储
但缺点是写性能相对较弱。
4. RAID 6 —— 双重校验
至少需要 4 块磁盘。
优点:
可容忍
两块盘同时损坏同时具备较大容量与冗余
缺点:
写入性能比 RAID 5 更差重建速度慢
适用于大容量存储,如备份服务器。
5. RAID 10 —— RAID 1 + RAID 0 的结合
需要至少 4 块磁盘。
特点:
性能强(接近 RAID 0)冗余强(每对镜像保证安全)成本高(容量减半)
被广泛用于:
高性能数据库(MySQL、PostgreSQL)OLTP 场景高并发业务
这是综合性能最好的 RAID 方案之一。
软件 RAID vs. 硬件 RAID
硬件 RAID:
由专用 RAID 卡处理阵列性能高多数支持缓存加速(BBU/Cache)成本较高
软件 RAID:
由操作系统(如 Linux)管理成本低使用 mdadm 工具创建性能也不错,适用于多数云服务器
开源环境中最常见的是 Linux mdadm 软件 RAID。
四、Linux 下使用 mdadm 创建 RAID 阵列
下面用 Linux 命令行示范最常用的 mdadm 操作。
假设有三块磁盘:
/dev/sdb
/dev/sdc
/dev/sdd
1. 安装 mdadm
yum install -y mdadm
apt install -y mdadm
2. 创建 RAID5 示例
mdadm --create /dev/md0 --level=5 --raid-devices=3 \
/dev/sdb /dev/sdc /dev/sdd
查看阵列状态:
cat /proc/mdstat
输出类似:
md0 :
active raid5 sdd[3] sdc[1] sdb[0]
419430400
blocks super 1
.2 level 5, 512
k chunk
3. 创建文件系统并挂载
mkfs.ext4 /dev/md0
mkdir /
data
mount /dev/md0 /
data
4. 开机自动挂载(/etc/fstab)
/dev/md0 /data ext4 defaults 0 0
5. 查看阵列详细信息
mdadm
--detail /dev/md0
6. 模拟坏盘(移除某块磁盘)
mdadm /dev/md0
--fail /dev/sdc
mdadm /dev/md0
--remove /dev/sdc
添加新磁盘替换:
mdadm /dev/md0 --
add /dev/sde
阵列会自动 rebuild(重建)。