在Linux系统中,RAID(磁盘阵列)通过多块磁盘组合提升数据冗余性、性能或容量,查看RAID信息是日常运维的重要工作,无论是软件RAID(基于Linux内核的mdadm)还是硬件RAID(通过独立控制器管理),均需通过特定工具或命令获取状态,本文将详细介绍查看Linux RAID信息的方法,涵盖软件RAID、硬件RAID及通用辅助命令,并附常见问题解答。
软件RAID信息查看(基于mdadm)
软件RAID是Linux内核通过md
模块实现的,核心管理工具为mdadm
,需先确认系统已安装(通过sudo apt install mdadm
或sudo yum install mdadm
安装),以下是查看软件RAID信息的常用方法:
查看RAID阵列基础状态
通过/proc/mdstat
文件可快速获取RAID实时状态,包括运行状态、同步进度、成员磁盘数量等,无需额外工具。
cat /proc/mdstat
输出示例:
Personalities : [raid1] [raid6] [raid5] [raid0]
md0 : active raid1 sdb1[0] sdc1[1]
1047552 blocks super 1.2 [2/2] [UU]
[>....................] resync = 0.0% (512/1047552) finish=0.0min speed=512K/s
md1 : inactive raid5 sdd1[0] sde1[1] sdf1[2]
2097120 blocks super 1.2 [3/2]_UU_
unused devices: <none>
关键字段解读:
Personalities
:支持的RAID级别(如raid1、raid5等);md0
:RAID设备名;active raid1
:RAID级别及状态(active表示正常运行);[2/2] [UU]
:2块磁盘中有2块在线(U表示在线,_表示离线);resync
:同步进度(重建或修复时显示)。
查看RAID阵列详细信息
使用mdadm --detail
(或缩写mdadm -D
)可获取RAID阵列的详细配置,包括RAID级别、磁盘数量、容量、状态、成员磁盘路径等。
sudo mdadm --detail /dev/md0 # 查看指定RAID设备
输出示例:
/dev/md0:
Version : 1.2
Creation Time : Mon Jan 01 12:00:00 2024
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 : Mon Jan 01 12:30:00 2024
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Layout : balanced
Chunk Size : 4K
Consistency Policy : resync
Name : localhost:0 # 可自定义的RAID名称
UUID : a1b2c3d4:e5f6g7h8:i9j0k1l2:m3n4o5p6
Events : 100
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
关键字段解读:
Raid Level
:RAID级别(如raid1、raid5等);Array Size
:RAID总可用容量;Raid Devices
:RAID成员磁盘数量;State
:当前状态(clean表示正常,resync表示同步中,degraded表示降级运行);Number
:成员磁盘在RAID中的编号,对应RaidDevice
;State
:成员磁盘状态(active sync表示正常,spare表示热备盘,failed表示故障)。
扫描系统所有RAID配置
若需查看系统中所有RAID阵列的配置信息(包括未启动的阵列),可使用mdadm --detail --scan
:
sudo mdadm --detail --scan
输出示例:
ARRAY /dev/md0 UUID=a1b2c3d4:e5f6g7h8:i9j0k1l2:m3n4o5p6 name=localhost:0
ARRAY /dev/md1 UUID=b2c3d4e5:f6g7h8i9:j0k1l2m3:n4o5p6q7
输出结果包含RAID设备路径、UUID及自定义名称,可用于手动挂载或修复时定位设备。
查看成员磁盘状态
通过mdadm --query --detail
可检查单个磁盘是否为RAID成员及其状态:
sudo mdadm --query --detail /dev/sdb1
若磁盘属于RAID阵列,输出会显示所属RAID设备、磁盘状态(如active、spare等);若不属于,则提示“not an md array”。
软件RAID常用命令表格
命令 | 功能 | 示例 |
---|---|---|
cat /proc/mdstat |
查看RAID实时状态(同步、故障等) | cat /proc/mdstat |
mdadm --detail /dev/mdX |
查看指定RAID设备详细信息 | mdadm -D /dev/md0 |
mdadm --detail --scan |
扫描并列出所有RAID配置信息 | mdadm --detail --scan |
mdadm --query --detail /dev/sdX |
查看指定磁盘是否为RAID成员 | mdadm -Q /dev/sdb1 |
硬件RAID信息查看
硬件RAID依赖独立磁盘控制器(如LSI、Adaptec、Dell PERC等),需通过厂商提供的专用工具查看,常见工具及方法如下:
LSI MegaCLI(广泛用于服务器)
安装:下载MegaCLI工具包(如MegaCLI-8.07.14-1.noarch.rpm
),通过rpm -ivh
安装。
查看RAID状态:
sudo MegaCLI -LDInfo -Lall -aALL # 查看所有逻辑磁盘信息 sudo MegaCLI -PDList -aALL # 查看所有物理磁盘信息
输出示例(逻辑磁盘):
Adapter 0 - Virtual Drive Information:
Virtual Drive: 0 (Target Id: 0)
Name : RAID 1
RAID Level : Primary-1, Secondary-0, RAID Level Qualifier-0
Size : 1000.00 GB
Sector Size : 512 bytes
Is Configured : Yes
State : Optimal
Strip Size : 64 KB
Number Of Drives : 2
Spare Drives : 0
关键字段:State
(Optimal表示正常,Degraded表示降级,Failed表示故障)。
Adaptec arcconf
安装:通过rpm -ivh arcconf*.rpm
安装(适用于RHEL/CentOS)。
查看RAID状态:
sudo arcconf GETCONFIG 1 AD # 查看控制器1的配置
输出示例:
Controller Configuration
------------------------
Controller Status: Optimal
Logical Devices : 1
Physical Devices : 2
Dell perccli(Dell服务器专用)
安装:下载perccli*.deb
或perccli*.rpm
,通过包管理器安装。
查看RAID状态:
sudo perccli /call showctrl # 查看控制器信息 sudo perccli /call show all # 查看所有逻辑及物理磁盘
通用辅助命令
除专用工具外,Linux通用命令也可辅助判断RAID状态:
lsblk
:查看块设备及层级关系
lsblk -f -o NAME,FSTYPE,MOUNTPOINT,RAID
输出示例:
NAME FSTYPE MOUNTPOINT RAID
md0 ext4 /mnt/data raid1
├─sdb1 ext4 -
└─sdc1 ext4 -
通过RAID
列可识别成员磁盘是否属于RAID阵列。
blkid
:查看磁盘分区属性
sudo blkid | grep md0
若RAID分区有文件系统,可显示UUID及类型,/dev/md0: UUID="a1b2c3d4-e5f6-4g7h-8i9j-0k1l2m3n4o5p6" TYPE="ext4"
。
df -h
:查看RAID设备挂载及使用情况
df -h | grep md0
输出示例:
/dev/md0 980M 120M 811M 14% /mnt/data
相关问答FAQs
问题1:如何判断RAID阵列是否处于正常状态?
解答:可通过以下方式综合判断:
- 软件RAID:
- 运行
cat /proc/mdstat
,查看State
字段是否为clean
(无同步任务),且无_
(离线磁盘)标记; - 执行
mdadm --detail /dev/mdX
,确认State
为clean
,Active Devices
等于Raid Devices
(无故障磁盘)。
- 运行
- 硬件RAID:
- 使用厂商工具(如MegaCLI)查看逻辑磁盘
State
是否为Optimal
; - 检查物理磁盘状态(如MegaCLI的
PDList
),确保无Failed
或Online
状态异常的磁盘。
若RAID处于degraded
(降级)或failed
(故障)状态,需立即检查并替换故障磁盘。
- 使用厂商工具(如MegaCLI)查看逻辑磁盘
问题2:软件RAID和硬件RAID如何区分?
解答:可通过以下方法区分:
- 查看内核模块:
- 软件RAID依赖
md
模块,执行lsmod | grep md
可见md_mod
、raid1
等模块; - 硬件RAID需安装控制器驱动(如
mpt3sas
),通过lspci | grep RAID
查看控制器型号(如LSI Logic SAS3008
)。
- 软件RAID依赖
- 查看RAID设备信息:
- 软件RAID设备路径为
/dev/mdX
,mdadm --detail /dev/mdX
会显示Version: 1.2
等内核RAID元数据; - 硬件RAID设备路径通常为
/dev/sdX
(逻辑磁盘),无内核RAID元数据,需通过厂商工具查看。
- 软件RAID设备路径为
- 性能特征:硬件RAID的I/O操作由控制器独立处理,占用CPU资源较少;软件RAID依赖CPU计算重建和校验,高负载时可能影响性能。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/38628.html