202 lines
3.9 KiB
Markdown
202 lines
3.9 KiB
Markdown
## 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] <raiddevice> [options] <component-devices>
|
||
```
|
||
|
||
### 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 前先明确业务目标:要性能、要容量,还是要容错
|