在Linux系统中,RAID(磁盘阵列)是提升数据安全性和I/O性能的重要技术,无论是服务器还是专业工作站,合理配置RAID并实时监控其状态都是系统管理的关键任务,本文将详细介绍在Linux系统中查看RAID状态的方法,涵盖软件RAID(如mdadm)和硬件RAID的不同场景,帮助用户全面掌握RAID监控技巧。

软件RAID查看(基于mdadm)
Linux软件RAID主要通过mdadm工具管理,这是大多数发行版默认的RAID管理方案,通过mdadm命令,可以获取RAID设备的详细信息、成员磁盘状态、同步进度等关键数据。
查看RAID设备列表
使用mdadm的--query或--detail选项列出系统中所有RAID设备:
mdadm --query --detail /dev/md*
该命令会输出所有RAID设备的路径、级别、成员磁盘及状态,若仅需查看RAID设备名称,可使用:
ls /dev/md*
或通过cat /proc/mdstat快速查看RAID设备的摘要信息,包括级别、活跃设备数、同步状态等,
Personalities : [raid1] [raid6] [raid5] [raid0]
md0 : active raid1 sdb1[0] sdc1[1]
1047552 blocks super 1.2 [2/2] [UU]
其中raid1表示RAID级别,sdb1和sdc1是成员磁盘,[UU]表示两块磁盘均正常(U代表up,_代表故障)。
查看RAID设备详细信息
使用mdadm --detail(或简写-D)获取RAID设备的完整配置信息,包括:
- RAID设备名称和UUID
- RAID级别(如0、1、5、6、10等)
- 成员磁盘列表及状态(是否故障、同步进度)
- 数据块大小、阵列大小、可用空间
- 创建时间、事件计数(记录错误或重建事件)
示例命令:
mdadm --detail /dev/md0
输出示例如下:
/dev/md0:
Version : 1.2
Creation Time : Wed Aug 10 14:30:2023
Raid Level : raid1
Array Size : 1047552 (1022.00 MiB 1071.54 MB)
Used Dev Size : 1047552 (1022.00 MiB 1071.54 MB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Aug 10 15:45:2023
State : clean active
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : n
Chunk Size : 4K
Consistency Policy : resync
Name : localhost:0
UUID : a1b2c3d4:e5f6:7890:abcd:1234:5678:90ef:abcd
Events : 18
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
通过输出可明确RAID的运行状态(clean active表示正常)、成员磁盘状态(active sync表示正常同步)及UUID等关键信息。
监控RAID同步与重建进度
当RAID设备初始化、扩容或成员磁盘替换后,会触发数据同步(resync)或重建(rebuild),通过cat /proc/mdstat可实时查看进度:

cat /proc/mdstat
输出示例:
md0 : active raid1 sdb1[0] sdd1[2](S) sdc1[1]
1047552 blocks super 1.2 [2/2] [UU]
[>....................] resync = 1.5% (16384/1047552) finish=0.1min speed=16384K/sec
其中resync = 1.5%表示同步进度,speed=16384K/sec为当前同步速度,finish=0.1min预计剩余时间,若处于重建状态,会显示rebuild而非resync。
查看成员磁盘健康状态
成员磁盘的健康状态直接影响RAID的稳定性,使用mdadm --detail输出的RaidDevice部分可查看磁盘状态(如active sync、faulty、spare等),若磁盘被标记为faulty,需及时替换:
mdadm --manage /dev/md0 --fail /dev/sdb1 # 标记磁盘为故障 mdadm --manage /dev/md0 --remove /dev/sdb1 # 从RAID中移除故障磁盘
硬件RAID查看
硬件RAID依赖RAID控制卡(如LSI、Broadcom、Adaptec等),其管理通常通过厂商专用工具或控制器内置的BIOS/UEFI界面完成,以下是常见硬件RAID的查看方法:
使用厂商专用工具
不同厂商提供命令行或图形化管理工具,
-
LSI/MegaRAID:使用
MegaCli(32位)或MegaCli64(64位):/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -a0 # 查看所有RAID逻辑设备信息 /opt/MegaRAID/MegaCli/MegaCli64 -PDList -a0 # 查看物理磁盘状态
输出会包含RAID级别、磁盘状态(
Online、Failed、Rebuilding等)、磁盘型号、SMART信息等。 -
Broadcom/Avago:使用
storcli64:/opt/storcli/storcli64 /c0 show all # 查看控制器c0的所有信息(含RAID和磁盘) /opt/storcli/storcli64 /c0/v0 show # 查看虚拟磁盘(RAID组)信息
-
Adaptec:使用
arcconf:/usr/StorMan/arcconf getconfig 1 ad # 查看控制器1的配置及磁盘状态
通过系统接口查看
若未安装厂商工具,可通过Linux系统文件间接获取硬件RAID信息:

- 查看RAID控制器识别的磁盘:
lspci | -v | grep -i raid # 查看RAID控制器型号 ls /sys/class/block/ # 查看块设备,硬件RAID通常显示为cciss0、megaraid_sas0等
- 查看磁盘状态(以MegaRAID为例):
cat /proc/scsi/scsi # 包含硬件RAID的磁盘信息,如Vendor: LSI, Model: MR9271-8i
通过文件系统信息间接确认
若RAID设备已挂载,可通过文件系统工具进一步确认其状态:
- 查看挂载点及RAID设备:
df -h | grep md0 # 查看RAID设备md0的挂载点及使用情况 lsblk -f # 查看块设备的文件系统类型及挂载状态
- 检查文件系统错误(以ext4为例):
fsck -n /dev/md0 # 只读检查文件系统,不修复,输出错误信息
日志分析
系统日志会记录RAID相关的重要事件(如磁盘故障、同步完成、错误报告等),可通过以下命令查看:
journalctl -u mdadm-monitor # 查看mdadm监控服务日志(若启用) grep -i raid /var/log/syslog # 查看系统日志中的RAID相关记录
磁盘故障时日志可能包含:Aug 10 15:50:01 kernel: [ 1234.567890] md/raid1:md0: Disk failure on sdb1, disabling device.
可视化监控工具
对于图形化界面用户,可通过系统监控工具查看RAID状态:
- Glances:安装后运行
glances,在扩展视图中(按f键)可显示RAID设备的同步进度和成员状态。 - Nagios/Zabbix:结合插件(如
check_mdadm)实现RAID状态的远程监控和告警。
表:mdadm常用查看命令及作用
| 命令 | 作用 | 示例 |
|---|---|---|
mdadm --query --detail /dev/mdX |
显示RAID设备详细信息 | mdadm -D /dev/md0 |
cat /proc/mdstat |
查看RAID设备摘要及同步进度 | cat /proc/mdstat |
mdadm --examine /dev/sdX |
查看成员磁盘的RAID元数据 | mdadm -E /dev/sdb1 |
mdadm --monitor --scan |
持续监控RAID状态并输出事件 | mdadm --monitor --daemonize --scan |
相关问答FAQs
Q1:如何判断Linux软件RAID是否处于“degraded”(降级)状态?
A:可通过以下方式判断:
- 运行
mdadm --detail /dev/mdX,查看State字段:若为degraded,表示部分成员磁盘故障,RAID仍可工作但无冗余余。 - 检查
/proc/mdstat中RAID设备后的标记:例如md0 : active raid1 sdb1[0] sdc1[1]显示[U_],则第二个磁盘故障,RAID降级。 - 观察成员磁盘状态:
mdadm --detail输出中,若磁盘状态为faulty或missing,则RAID降级。
Q2:RAID重建过程中如何查看实时进度和速度?
A:通过以下命令实时监控重建进度:
cat /proc/mdstat:输出中会显示重建进度百分比、速度和预计剩余时间,md0 : active raid1 sdb1[0] sdd1[2](F) sdc1[1] 1047552 blocks super 1.2 [2/1] [U_] [>....................] recovery = 5.2% (54632/1047552) finish=2.3min speed=7168K/sec其中
recovery = 5.2%为进度,speed=7168K/sec为当前速度,finish=2.3min为预计时间。mdadm --detail /dev/mdX:查看Events字段,若包含reshape或rebuild相关事件,说明正在重建。- 使用
watch -n 1 cat /proc/mdstat(每秒刷新一次)实时跟踪进度变化。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/38656.html