在Linux系统中,RAID(磁盘阵列)是提升数据可靠性、I/O性能的重要技术,无论是服务器还是工作站,了解RAID的当前状态、配置信息对于系统运维至关重要,本文将详细介绍Linux系统中查看RAID信息的多种方法,涵盖软件RAID(如mdadm)和硬件RAID(如基于RAID卡的阵列),帮助用户全面掌握RAID状态监控技巧。

使用mdadm管理软件RAID信息
软件RAID是Linux内核通过md(multiple devices)模块实现的,无需专用硬件,通过mdadm工具可完成创建、监控、维护等操作,查看软件RAID信息是日常运维的基础,以下为常用命令及输出解读。
查看RAID阵列状态
mdadm的核心命令是--detail(或简写-D),用于显示指定RAID阵列的详细信息,包括级别、成员磁盘、健康状态等。
mdadm --detail /dev/md0 # 查看名为md0的RAID阵列详情
执行后输出类似如下内容:
/dev/md0:
Version : 1.2
Creation Time : Wed Aug 10 14:30:00 2023
Raid Level : raid5
Array Size : 9765888 (9.31 GiB 10.00 GB)
Used Dev Size : 4882944 (4.66 GiB 5.00 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Wed Aug 10 15:45:00 2023
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 512K
Consistency Policy : resync
Name : localhost:0 # 阵列名称
UUID : a1b2c3d4:e5f6g7h8:i9j0k1l2:m3n4o5p6 # 唯一标识符
Events : 123
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1 # 成员磁盘1
1 8 33 1 active sync /dev/sdc1 # 成员磁盘2
关键字段解读:
- Raid Level:RAID级别(如raid0、raid1、raid5、raid10等);
- State:阵列状态(clean表示正常,resync表示同步中,degraded表示降级运行);
- Active/Working/Failed/Spare Devices:活跃/工作/故障/备用磁盘数量;
- RaidDevice:成员磁盘在RAID中的逻辑编号。
查看系统中所有RAID阵列
若需快速列出系统中所有软件RAID设备,可使用mdadm --query --detail(或--scan):
mdadm --query --detail --scan
输出示例:
ARRAY /dev/md0 level=raid5 num-devices=2 UUID=a1b2c3d4:e5f6g7h8:i9j0k1l2:m3n4o5p6 name=localhost:0
此命令适合脚本化批量获取RAID信息。
监控RAID同步进度
RAID创建或修复时需同步数据,可通过/proc/mdstat实时查看同步进度:
cat /proc/mdstat
输出示例:
Personalities : [raid5] [raid1] [raid0]
md0 : active raid5 sdb1[0] sdc1[1]
9765888 blocks super 1.2 512K chunks 2 near-copies [2/2] [UU]
[>....................] resync = 5.6% (545216/9765888) finish=120min speed=128K/sec
其中resync字段显示同步进度和预计剩余时间,speed为同步速度。
查看硬件RAID信息
硬件RAID依赖RAID卡(如LSI、Broadcom、戴尔PERC等),厂商通常提供专用工具(如megacli、arcconf、storcli),需先安装对应驱动和工具。
LSI MegaCLI(适用于LSI/Avago RAID卡)
MegaCLI是LSI的经典工具,通过命令行监控RAID卡和磁盘状态。
-
查看RAID卡信息:
megacli -AdpAllInfo -aALL
输出包含RAID卡型号、固件版本、内存大小等关键信息。
-
查看逻辑磁盘(RAID组)信息:

megacli -LDInfo -Lall -aALL
示例输出(部分):
Adapter 0 - Virtual Drive Information: Virtual Drive: 0 (Target Id: 0) Name : RAID-5 State : Optimal Size : 931.51 GB Strip Size : 64 KB Parity Size : 64 KB ... Number Of Drives : 4 Span Depth : 1 ... -
查看物理磁盘状态:
megacli -PDList -aALL
输出包含磁盘型号、固件、状态(Online/Offline/Foreign)、错误计数等,
Firware State为Online表示正常,Predictive Failure表示即将故障。
Broadcom MegaRaid Storage Manager (storcli)
storcli是MegaCLI的替代工具,语法略有不同,适用于新一代Broadcom RAID卡。
-
查看RAID卡信息:
./storcli64 /c0 show all
-
查看逻辑磁盘信息:
./storcli64 /c0/vall show
-
查看物理磁盘状态:
./storcli64 /c0/eall/sall show all
输出中
State字段为UGood表示正常,Unconfigured表示未配置,Foreign表示存在 foreign 配置(需导入)。
Dell OpenManage (omreport)
戴尔服务器可通过omreport查看RAID信息(需安装OpenManage):
omreport storage vdisk # 查看逻辑磁盘 omreport storage pdisk # 查看物理磁盘
输出示例(逻辑磁盘):
Virtual Disk 0: RAID-5
State: Optimal
Size: 1.82 TB
Layout: Spanned, Strip Size: 128 KB
...
通过系统文件和命令查看RAID信息
除专用工具外,Linux系统文件也提供了RAID相关的底层信息。
/proc/mdstat
如前所述,/proc/mdstat是实时查看软件RAID状态的“窗口”,适合快速监控同步进度或故障状态:
cat /proc/mdstat
若出现_U_(如md0 : active raid1 sda1[0] _ sdb1[2]),表示第二个磁盘故障。
/sys/block/mdX/
通过/sys文件系统可获取RAID的详细属性,例如查看RAID级别和成员磁盘:
cat /sys/block/md0/md/level # 查看RAID级别(如raid1) cat /sys/block/md0/md/disks # 查看成员磁盘列表(如sda1 sdb1) cat /sys/block/md0/md/degraded # 查看是否降级(1表示降级,0表示正常)
lspci查看RAID控制器
通过lspci可识别系统中的RAID控制器型号,进而确定对应的硬件工具:

lspci | grep -i raid
输出示例:
00:1f.2 RAID controller: LSI Logic / Symbios Logic MegaRAID SAS 2208 [Thunderbolt] (rev 05)
根据型号(如MegaRAID SAS 2208)可确定需安装MegaCLI或storcli。
RAID信息查看方法对比
为方便选择,以下总结不同方法的适用场景和特点:
| 方法 | 适用RAID类型 | 所需工具 | 优点 | 缺点 |
|---|---|---|---|---|
| mdadm | 软件RAID (md模块) | mdadm (预装或安装) | 无需额外硬件,输出直观 | 仅支持软件RAID |
| MegaCLI/storcli | 硬件RAID (LSI/ Broadcom) | megacli/storcli (需下载安装) | 支持硬件RAID深度监控,可管理磁盘热备 | 需安装厂商工具,部分收费 |
| omreport | 戴尔硬件RAID | omreport (OpenManage) | 针对戴尔服务器优化,集成度高 | 仅限戴尔设备 |
| /proc/mdstat | 软件RAID | 系统自带 | 实时查看同步进度,无需工具 | 信息有限,仅显示基本状态 |
| lspci | 所有RAID控制器 | lspci (系统自带) | 识别硬件型号,辅助选择工具 | 不提供RAID状态细节 |
相关问答FAQs
问题1:软件RAID和硬件RAID查看信息有什么区别?
解答:
- 软件RAID:通过Linux内核md模块管理,无需专用硬件,使用
mdadm、/proc/mdstat、/sys/block等工具查看信息,适合低成本场景,但性能依赖CPU; - 硬件RAID:依赖RAID卡自带处理器和内存,通过厂商工具(如MegaCLI、storcli)管理,可提供更详细的磁盘健康数据(如S.M.A.R.T.、错误计数)、热备盘管理等功能,性能更高,但需额外硬件成本。
核心区别在于硬件RAID通过控制器固件管理,信息更全面且不影响系统性能,而软件RAID依赖系统资源,适合中小规模部署。
问题2:RAID磁盘故障时,如何通过命令快速定位故障磁盘?
解答:
步骤如下(以软件RAID为例):
-
检查RAID状态:
mdadm --detail /dev/md0
若
Failed Devices不为0,或State为degraded,表示存在故障磁盘。 -
查看成员磁盘状态:
输出中RaidDevice列对应的State字段,若为faulty,则该磁盘故障。Number Major Minor RaidDevice State 0 8 17 0 active sync /dev/sdb1 1 8 33 1 faulty /dev/sdc1 # 故障磁盘 -
硬件RAID定位故障磁盘:
以MegaCLI为例:megacli -PDList -aALL | grep "Firware State|Device Id"
若
Firware State为Online但Error Count非0,或为Predictive Failure,则该磁盘需更换。 -
替换磁盘后重建RAID:
软件RAID:将新磁盘分区后添加到RAID:mdadm --add /dev/md0 /dev/sdd1
硬件RAID:通过RAID卡BIOS或工具设置自动重建,或手动触发重建。
通过以上步骤可快速定位并处理RAID磁盘故障,减少数据丢失风险。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/24019.html