---
title: "mdadm RAID 1：检查健康状态并更换故障硬盘"
description: "检查 mdadm 软件 RAID 的健康状态，在硬盘故障时获得提醒，分步更换故障硬盘，并在存储服务器上规划 RAID 6、RAID 10 或 RAIDZ2。"
url: "https://powerdedi.com/docs/software-raid"
last_updated: "2026-09-25"
publisher: "PowerDedi (https://powerdedi.com)"
---

# 监控与修复软件 RAID

检查 mdadm 健康状态、接收告警、安全更换故障硬盘，并规划 RAID 6、RAID 10 或 RAIDZ2 存储池的容量。

2026年9月25日更新 · 阅读约 4 分钟 · 6 个章节

### 全部指南

筛选指南

### 入门指南

- [独立服务器入门指南](https://powerdedi.com/zh/docs/getting-started)

### 服务器管理

- [使用 IPMI/KVM 控制台](https://powerdedi.com/zh/docs/ipmi-kvm-console)
- [重装操作系统](https://powerdedi.com/zh/docs/reinstall-os)
- [使用救援模式修复服务器](https://powerdedi.com/zh/docs/rescue-mode)
- [监控与修复软件 RAID](https://powerdedi.com/zh/docs/software-raid)

### 网络

- [在服务器上配置 IPv6](https://powerdedi.com/zh/docs/ipv6-configuration)
- [测试服务器的网络速度](https://powerdedi.com/zh/docs/network-speed-test)
- [设置反向 DNS（PTR 记录）](https://powerdedi.com/zh/docs/reverse-dns)

### 账单

- [使用加密货币付款](https://powerdedi.com/zh/docs/pay-with-crypto)

### 安全

- [在第一小时内保护您的服务器](https://powerdedi.com/zh/docs/secure-your-server)
- [创建并使用 SSH 密钥](https://powerdedi.com/zh/docs/ssh-keys)

我们安装的 Linux 系统使用 mdadm 软件 RAID，默认将两块相同的磁盘组成镜像（RAID 1）。本指南介绍健康检查、告警、磁盘更换以及存储服务器的磁盘布局。您需要 root 权限。示例使用 `nvme0n1` 这样的 NVMe 设备名；SATA 和 SAS 磁盘则显示为 `sda`、`sdb`，依此类推。

## 默认磁盘布局

两块磁盘使用相同的分区表，每对分区组成一个 RAID 1 阵列，例如 `md0` 对应 `/boot`，`md1` 对应 `/`。具体有哪些阵列取决于操作系统和启动模式。查看您服务器上的布局：

```bash
lsblk -o NAME,SIZE,TYPE,FSTYPE,MOUNTPOINT
```

## 检查阵列健康状态

```bash
cat /proc/mdstat
sudo mdadm --detail /dev/md1
```

```text
md1 : active raid1 nvme1n1p3[1] nvme0n1p3[0]
      998848512 blocks super 1.2 [2/2] [UU]
```

`[UU]` 表示两个成员盘都处于活动状态；`[U_]` 表示阵列已降级，仅靠一块磁盘运行。在 `mdadm --detail` 的输出中，检查 `State` 行，并留意标记为 `faulty` 或 `removed` 的成员盘。

## 设置告警

降级的镜像仍会继续工作，因此如果没有告警，您可能要等到第二块磁盘也发生故障时才会察觉。在 `/etc/mdadm/mdadm.conf`（Debian、Ubuntu）或 `/etc/mdadm.conf`（AlmaLinux、Rocky Linux）中告诉 mdadm 将报告发往何处：

```ini
MAILADDR root
PROGRAM /usr/local/sbin/raid-alert
```

发送给 `root` 的告警需要一个正常工作的邮件传输代理，例如在本地投递或通过您的邮件服务商中继的 Postfix。可选的 `PROGRAM` 行会运行您自己的脚本，并将事件名和设备名作为参数传入，例如用于向聊天工具的 webhook 推送消息。重启监控服务，并为每个阵列发送一条测试告警：

```bash
sudo systemctl restart mdmonitor
sudo mdadm --monitor --scan --oneshot --test
```

## 更换故障磁盘

1. 找出故障磁盘，并记下两块磁盘的序列号：
   ```bash
   cat /proc/mdstat
   lsblk -o NAME,SIZE,MODEL,SERIAL
   sudo smartctl -i /dev/nvme1n1
   ```
2. 将故障磁盘上的分区标记为故障（faulty），并将其从所有阵列中移除。如果该磁盘已经消失，且 mdadm 已将其列为已移除（removed），请跳过此步骤。
   ```bash
   sudo mdadm /dev/md0 --fail /dev/nvme1n1p2 --remove /dev/nvme1n1p2
   sudo mdadm /dev/md1 --fail /dev/nvme1n1p3 --remove /dev/nvme1n1p3
   ```
3. 提交工单，写明需要更换的磁盘序列号、需要保留的磁盘序列号，以及更换时是否允许我们关机。故障确认后一小时内即开始更换；参见 [SLA](https://powerdedi.com/zh/legal/sla)。
4. 更换完成后，用 `lsblk` 找到新的空白磁盘。将健康磁盘的分区表复制到新磁盘上，然后为副本生成唯一的 GUID：
   ```bash
   sudo sgdisk --replicate=/dev/nvme1n1 /dev/nvme0n1
   sudo sgdisk --randomize-guids /dev/nvme1n1
   ```
5. 将新分区加入阵列，并观察重建进度：
   ```bash
   sudo mdadm /dev/md0 --add /dev/nvme1n1p2
   sudo mdadm /dev/md1 --add /dev/nvme1n1p3
   watch -n 10 cat /proc/mdstat
   ```
6. 让新磁盘可以引导启动。在 BIOS 系统上，运行 `sudo grub-install /dev/nvme1n1`（在 AlmaLinux 和 Rocky Linux 上为 `grub2-install`）。在 EFI 分区不属于任何阵列的 UEFI 系统上，用 `sudo dd if=/dev/nvme0n1p1 of=/dev/nvme1n1p1 bs=4M` 从健康磁盘复制该分区。

> 在 `sgdisk --replicate=TARGET SOURCE` 中，等号后面的磁盘会被覆盖。一旦把两者写反，就会抹掉您唯一一块健康磁盘的分区表。使用 `dd` 时，对 `if=`（源）和 `of=`（目标）也要同样小心。

默认情况下，重建速度最高约为 200 MB/s，即 `/proc/sys/dev/raid/speed_limit_max` 中设定的上限。这相当于每 TB 大约需要 1.4 小时，一块 22 TB 的磁盘则需要一天以上。在 NVMe 服务器上，可以用 `sudo sysctl -w dev.raid.speed_limit_max=2000000` 提高这一上限。

## 存储服务器的磁盘布局

[存储服务器](https://powerdedi.com/zh/dedicated-servers/storage)配备 4、12 或 24 块 22 TB 机械硬盘，外加两块 NVMe 硬盘。请将操作系统放在 NVMe 镜像上，用机械硬盘组建数据阵列。由于 22 TB 硬盘的重建需要一天以上，请使用双重校验（RAID 6 或 ZFS RAIDZ2）或镜像，而不要使用 RAID 5。

| 磁盘 | 布局 | 可用容量 | 容错能力 |
| --- | --- | --- | --- |
| 4 × 22 TB | RAID 10，或两组 ZFS 镜像 | 44 TB (40 TiB) | 每对中的一块磁盘 |
| 4 × 22 TB | RAID 6 或 RAIDZ2 | 44 TB (40 TiB) | 任意两块磁盘 |
| 12 × 22 TB | RAID 6 或 RAIDZ2 | 220 TB (200 TiB) | 任意两块磁盘 |
| 12 × 22 TB | RAID 10 | 132 TB (120 TiB) | 每对中的一块磁盘 |
| 24 × 22 TB | 两组 RAID 6 或 RAIDZ2，每组 12 块 | 440 TB (400 TiB) | 每组两块磁盘 |
| 24 × 22 TB | 三组 RAIDZ2，每组 8 块 | 396 TB (360 TiB) | 每组两块磁盘 |

以上数据未扣除文件系统开销，且 `df` 等工具以 TiB 为单位显示容量。RAID 10 的随机 I/O 性能最好，而 RAID 6 和 RAIDZ2 可承受任意两块磁盘故障，并且在 12 块及以上磁盘时能提供更多空间。分组更多、每组更窄时，重建更快、性能更好，但会牺牲一些容量。ZFS 存储池的使用率请保持在约 80% 以下。

使用 ZFS 时，空闲的 NVMe 分区还可以为存储池加速；请在安装操作系统时就规划好这些分区：

- **cache** 设备（L2ARC）将读缓存扩展到内存之外。它不需要冗余：即使它发生故障，存储池也能继续运行。
- **special** vdev 将元数据（以及可选的小文件）存放在闪存上，从而加快目录扫描和小文件负载。一旦丢失它，整个存储池都会丢失。只有两块 NVMe 硬盘时，它只能做成双向镜像，只能承受一块磁盘故障，而 RAIDZ2 可承受两块，因此除非加上 `-f`，否则 `zpool` 会拒绝这种冗余级别不匹配的配置。只有在您接受这一取舍时才使用它。

## 检查磁盘磨损和 SMART 数据

```bash
sudo smartctl -a /dev/nvme0
sudo smartctl -H -A /dev/sda
```

对于 NVMe 硬盘，请关注 `Percentage Used`，即已消耗的额定写入寿命比例（100% 并不代表硬盘已经损坏），同时关注 `Available Spare`、`Media and Data Integrity Errors` 以及应为 `0x00` 的 `Critical Warning`。对于机械硬盘，如果 `Reallocated_Sector_Ct`、`Current_Pending_Sector` 或 `Offline_Uncorrectable` 的数值不断上升，说明应在磁盘彻底故障之前将其更换。`smartmontools` 软件包中的 `smartd` 守护进程会持续检查这些数值，并可通过电子邮件通知您；在 AlmaLinux 和 Rocky Linux 上，用 `sudo systemctl enable --now smartd` 启用它。

[← 上一篇 **使用救援模式修复服务器**](https://powerdedi.com/zh/docs/rescue-mode) [下一篇 → **在服务器上配置 IPv6**](https://powerdedi.com/zh/docs/ipv6-configuration)

**仍未解决？**

拥有在用服务器的客户可提交工单：告诉我们您已尝试过的方法，工程师将接手处理，通常在几小时内回复。

[提交工单](https://powerdedi.com/zh/account/support)

## 相关指南

[全部指南](https://powerdedi.com/zh/docs)

[服务器管理](https://powerdedi.com/zh/docs/category/server-management)

更新于 2026年9月25日

### [使用 IPMI/KVM 控制台](https://powerdedi.com/zh/docs/ipmi-kvm-console)

在浏览器中查看服务器屏幕、控制电源、挂载 ISO 并进入 BIOS，即使操作系统无法启动也可以。

阅读约 4 分钟

[服务器管理](https://powerdedi.com/zh/docs/category/server-management)

更新于 2026年9月25日

### [重装操作系统](https://powerdedi.com/zh/docs/reinstall-os)

擦除并重装，自选操作系统、SSH 密钥和 RAID 布局。

阅读约 3 分钟

[服务器管理](https://powerdedi.com/zh/docs/category/server-management)

更新于 2026年9月25日

### [使用救援模式修复服务器](https://powerdedi.com/zh/docs/rescue-mode)

启动基于 Debian 的 Live 系统，用于挂载磁盘、修复启动问题、重置密码或拷出数据。

阅读约 3 分钟

---

PowerDedi — Dedicated servers with 10 Gbps unmetered, paid in crypto. Page: https://powerdedi.com/docs/software-raid. Index of the site for AI assistants: https://powerdedi.com/llms.txt
