## 1、RAID 概览 RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)是一种把多块磁盘组合起来使用的技术,目的是在**性能、容量、可靠性**之间做平衡。 常见目标: - 提升读写性能 - 提高数据可靠性 - 提供故障容忍能力 需要注意:**RAID 不是备份**。即使做了 RAID,仍然需要独立备份策略。 ## 2、常见 RAID 级别 ### 2.1 RAID 0 特点: - 条带化写入 - 读写性能高 - 无冗余 - 任意一块盘坏掉,数据整体丢失 适合: - 临时数据 - 对性能要求高、对安全性要求不高的场景 ### 2.2 RAID 1 特点: - 镜像 - 数据写入两份 - 安全性高 - 成本较高,容量利用率低 适合: - 对可靠性要求较高的系统盘或小型关键业务盘 ### 2.3 RAID 5 特点: - 条带化 + 单校验 - 至少需要 3 块盘 - 可容忍 1 块盘故障 - 读性能较好,写性能受校验影响 适合: - 兼顾容量和可靠性的通用场景 ### 2.4 RAID 6 特点: - 双校验 - 至少需要 4 块盘 - 可容忍 2 块盘故障 - 安全性更高,但写入开销更大 适合: - 大容量存储、对容错要求较高的场景 ### 2.5 RAID 10 特点: - RAID 1 + RAID 0 的组合 - 兼顾性能和可靠性 - 容量利用率通常约为一半 - 成本较高 适合: - 数据库、高并发业务、性能和安全性都重要的场景 ## 3、RAID 级别对比 | 级别 | 最少磁盘数 | 容量利用率 | 容错能力 | 性能特点 | | --- | --- | --- | --- | --- | | RAID 0 | 2 | 高 | 无 | 读写快 | | RAID 1 | 2 | 低 | 可坏 1 块(镜像组内) | 读较好,写一般 | | RAID 5 | 3 | 较高 | 可坏 1 块 | 读好,写有校验开销 | | RAID 6 | 4 | 中等 | 可坏 2 块 | 安全高,写更慢 | | RAID 10 | 4 | 低 | 较好 | 性能和可靠性都不错 | ## 4、硬 RAID 与软 RAID ### 4.1 硬 RAID 由 RAID 卡等硬件完成管理。 特点: - 对操作系统更透明 - 稳定性通常更强 - 常见于物理服务器 ### 4.2 软 RAID 由操作系统通过软件实现,Linux 中常用工具是 `mdadm`。 特点: - 成本低 - 学习和实验方便 - 依赖系统资源 生产中是否使用软 RAID,要根据业务、硬件条件和运维能力综合判断。 ## 5、`mdadm` 命令 `mdadm` 是 Linux 下管理软 RAID 的核心工具。 ### 5.1 基本语法 ```shell mdadm [mode] [options] ``` ### 5.2 常见模式和选项 - `-C`:创建 RAID - `-A`:装配 RAID - `-D`:查看详细信息 - `-f`:标记某块盘故障 - `-r`:移除磁盘 - `-a`:添加磁盘 - `-n`:指定 RAID 成员盘数量 - `-l`:指定 RAID 级别 - `-x`:指定热备盘数量 ### 5.3 查看状态 ```shell cat /proc/mdstat ``` ## 6、常见操作示例 ### 6.1 创建 RAID 1 ```shell mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1 ``` ### 6.2 格式化 RAID 设备 ```shell mkfs.xfs /dev/md0 ``` ### 6.3 查看 RAID 详细信息 ```shell mdadm --detail /dev/md0 ``` ### 6.4 添加磁盘 ```shell mdadm --add /dev/md0 /dev/sdc1 ``` ### 6.5 移除磁盘 ```shell mdadm --remove /dev/md0 /dev/sdc1 ``` ### 6.6 停止 RAID ```shell mdadm -S /dev/md0 ``` ### 6.7 清理 RAID 元数据 ```shell mdadm --zero-superblock /dev/sdb1 ``` ## 7、常见运维注意点 - RAID 不是备份,重要数据仍需独立备份 - RAID 重建期间性能可能下降 - RAID 5/6 在大容量盘上重建时间可能较长 - 对系统盘、数据库盘、归档盘要根据业务特点选择不同 RAID 级别 - 动手前一定要确认设备名,避免误清盘 ## 8、小结 - RAID 用于平衡性能、容量和可靠性 - RAID 0 快但不安全,RAID 1 安全但成本高 - RAID 5/6 适合做冗余存储,RAID 10 兼顾性能与可靠性 - Linux 软 RAID 的核心工具是 `mdadm` - 做 RAID 前先明确业务目标:要性能、要容量,还是要容错