Linux mdadm 使用教程:轻松管理 RAID 阵列 🛠️
1. mdadm 简介
mdadm
是一个 Linux 系统中的软件 RAID(冗余磁盘阵列)管理工具。它可以帮助创建、管理和监控 RAID 设备,以提升磁盘性能或实现数据冗余。
1.1 基础命令格式
mdadm
命令的通用格式如下:
mdadm [操作] <阵列>
- 模式:创建、组装、管理等。
1.2 常用模式与参数对照表
模式/参数 | 功能描述 | 示例命令 |
---|---|---|
--create | 创建新的 RAID 阵列 | mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sd[b-c]1 |
--assemble | 组装现有 RAID 阵列并激活 | mdadm --assemble /dev/md0 /dev/sd[b-c]1 |
--add | 添加新设备到现有阵列 | mdadm --add /dev/md0 /dev/sdd1 |
--re-add | 掉线设备重新添加到现有阵列 | mdadm --re-add /dev/md0 /dev/sdd1 |
--remove | 从 RAID 阵列中移除设备 | mdadm --remove /dev/md0 /dev/sdc1 |
--fail | 标记 RAID 中某设备为故障状态 | mdadm --fail /dev/md0 /dev/sdc1 |
--detail | 显示 RAID 阵列的详细状态信息 | mdadm --detail /dev/md0 |
--scan | 扫描系统中的 RAID 阵列 | mdadm --detail --scan |
--stop | 停止运行中的 RAID 阵列 | mdadm --stop /dev/md0 |
|
--help
```bash
$ mdadm --help
mdadm工具描述
mdadm用于构建、管理和监控Linux的md设备(即RAID阵列)
使用概述
使用方法: # 创建新的RAID阵列 mdadm --create device options... 从未使用的设备创建新阵列。
# 组装现有的RAID阵列
mdadm --assemble device options...
组装之前创建的阵列。
# 在没有标准元数据的情况下构建或组装阵列
mdadm --build device options...
在没有元数据的情况下创建或组装阵列。
# 管理现有的RAID阵列
mdadm --manage device options...
对现有阵列进行更改。
# 处理md设备的杂项操作
mdadm --misc options... devices
报告或修改与md相关的各种设备。
# 调整或重塑活动的RAID阵列
mdadm --grow options device
调整/重塑活动阵列
# 增量添加或移除设备
mdadm --incremental device
根据需要添加或移除设备到阵列中
# 监控RAID阵列的变化
mdadm --monitor options...
监控一个或多个阵列的显著变化。
# 管理阵列的简写
mdadm device options...
简写为 --manage。
设备名称处理的解释
任何不以'-'开头的参数都被视为设备名,
或者对于--examine-bitmap来说,是文件名。
第一个这样的名称通常是md设备的名称。随后的名称通常是组件设备的名称。
获得更详细帮助的说明
对于上述主要模式的详细帮助,请在模式后使用 --help
例如:
mdadm --assemble --help
对于选项的通用帮助,请使用
mdadm --help-options
</details>
<details>
<summary> --add 区别 --re-add </summary>
<p>
在 `mdadm` 命令中,`--add` 和 `--re-add` 选项用于向 RAID 阵列添加或重新添加设备,但它们有不同的使用场景:
1. **--add**:
- **用途**:用于将一个新的或未使用的设备添加到现有的 RAID 阵列中。
- **场景**:当你想扩展阵列的容量或者替换一个损坏的设备时使用。添加的设备必须是新的或未使用过的,不包含任何 RAID 元数据。
- **例子**:
```bash
sudo mdadm --manage /dev/md0 --add /dev/sdb1
```
- **注意**:如果设备已经包含了与阵列不匹配的元数据,`--add` 可能会失败。
2. **--re-add**:
- **用途**:用于将一个之前属于 RAID 阵列但由于某种原因被移除或失败的设备重新添加到阵列中。
- **场景**:当你修复或更换了阵列中的一个设备,并希望它重新加入到阵列中时使用。设备必须包含与阵列匹配的 RAID 元数据。
- **例子**:
```bash
sudo mdadm --manage /dev/md0 --re-add /dev/sdb1
```
- **注意**:如果设备不包含正确的元数据或已经被其他阵列使用,`--re-add` 操作将不会成功。
**区别总结**:
- **--add** 用于添加新的设备,适合扩展阵列或替换损坏设备。
- **--re-add** 用于重新添加之前属于阵列的设备,通常在设备修复或更换后使用。
在使用这两个选项时,确保你清楚设备的状态以及阵列的当前配置。错误地使用这些选项可能会导致数据丢失或阵列配置问题。使用 `mdadm --detail /dev/md0` 查看阵列的详细信息来确保你添加的设备与阵列的配置匹配。
</p>
</details>
## 2. 安装 mdadm
### 2.1 确认是否已安装
在大多数 Linux 发行版中,`mdadm` 并不默认安装。可以通过以下命令检查是否已安装:
```bash
mdadm --version
2.2 安装 mdadm
根据系统的包管理工具 ,运行以下命令:
-
Debian/Ubuntu:
sudo apt update && sudo apt install mdadm -y
-
CentOS/RHEL:
sudo yum install mdadm -y
-
Arch Linux:
sudo pacman -S mdadm
3. 创建 RAID 阵列
以下以 RAID 0(条带化)和 RAID 1(镜像)为例说明操作步骤。
3.1 确认可用磁盘
列出系统中的所有磁盘:
lsblk
选择未分区的磁盘(例如 /dev/sdb
和 /dev/sdc
)。
3.2 创建 RAID
RAID 0 示例:
sudo mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
RAID 1 示例:
sudo mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
参数说明:
/dev/md0
:创建的 RAID 设备。设备名:前缀md
+ 数字0~127
。--level
:指定 RAID 级别。1就是RAID1,0就是RAID0...--raid-devices
:磁盘数量。/dev/sdb /dev/sdc
:参与 RAID 的磁盘。
4. 配置 RAID 文件系统
4.1 创建文件系统
例如创建 ext4 文件系统:
sudo mkfs.ext4 /dev/md0
4.2 挂载 RAID 设备
创建挂载点并挂载:
sudo mkdir /mnt/raid
sudo mount /dev/md0 /mnt/raid
验证挂载:
df -h | grep /mnt/raid
4.3 配置开机自动挂载
编辑 /etc/fstab
文件,添加以下内容:
/dev/md0 /mnt/raid ext4 defaults 0 0
5. 查看和监控 RAID 阵列
5.1 查看 RAID 信息
cat /proc/mdstat
Details
以下是`/proc/mdstat`文件内容的中文翻译:
$ cat /proc/mdstat
Personality : [raid1] [raid0] [raid6] [raid5] [raid4] [raid10]
md127 : 活动的 raid1 sdf1[0] sdg1[1]
1953381440 个块,超级块版本 1.2 [2/2] [UU]
位图: 0/15 页 [0KB]