使用storcli查看LSI/Avago阵列卡逻辑驱动器状态,需执行sudo storcli /c0/vall show,重点关注State(应为Optl)、Stripe Size、Cache Policy及Progress字段;若无输出,先用sudo storcli show确认控制器编号并检查是否已配置RAID。

怎么用 storcli 查看 LSI/Avago 阵列卡的逻辑驱动器状态
storcli 是当前主流 LSI/Avago(现 Broadcom)硬件 RAID 卡的标准命令行工具,比已停更的 MegaCLI 更稳定、输出更清晰。它能直接告诉你每个逻辑驱动器(LD/Virtual Disk)是否在线、RAID 级别、条带大小、缓存策略、重建进度等关键状态。
常见错误现象:执行 storcli /c0/vall show 后看不到任何 LD 信息,或提示 No Virtual Drives found —— 这通常意味着控制器编号不对,或该控制器未配置逻辑盘(比如只做了 JBOD 或直通模式)。
- 先确认控制器编号:
sudo storcli show,输出中Controller = 0表示 c0 是主控制器;若有多卡,可能有 c1、c2 - 查看所有逻辑驱动器详细状态:
sudo storcli /c0/vall show,重点关注State(应为Optl表示最优)、Stripe Size、Cache Policy和Progress字段(非空表示正在初始化/重建) - 若需关联到系统设备名(如
/dev/sda),看输出中OS Device Name列;没有该列说明未被操作系统识别,需检查驱动或 BIOS 中是否启用 RAID 模式
怎么用 hpssacli 查看惠普 Smart Array 的逻辑驱动器状态
hpssacli(Gen9+)或 hpacucli(Gen8 及更早)是惠普服务器唯一可靠的方式,cat /proc/mdstat 或 lsblk 对硬件 RAID 完全不可见 —— 它们只看到最终暴露出来的块设备,看不到阵列层结构。
容易踩的坑:在较新系统(如 RHEL 8.5+/Ubuntu 22.04)上直接运行 hpssacli 报错 “command not found”,是因为默认未安装,且包名已从 hpacucli 改为 ssacli(对应 hpssacli)。
- 确认工具存在:
sudo hpssacli controller all show;若报错,先安装对应包(如ssacli或hpacucli) - 列出全部逻辑驱动器:
sudo hpssacli controller slot=0 logicaldrive all show,注意slot=0需按实际插槽号替换(可用hpssacli controller all show查得) - 关键字段包括:
Status(应为OK)、Failed(是否为False)、Logical Drive Number、Size和Current Queue Depth(异常高值可能暗示 I/O 堵塞)
为什么 /proc/mdstat 和 mdadm --detail 不适用于硬件 RAID
/proc/mdstat 和 mdadm --detail 只对软件 RAID(即由内核 md 模块管理的 /dev/mdX)有效。硬件 RAID 控制器在数据到达操作系统前就完成了 RAID 运算,Linux 只把它当做一个普通 SCSI/SAS 设备看待 —— 所以你看到的 /dev/sda 实际是控制器输出的虚拟盘,不是原始物理盘。
典型误判场景:执行 cat /proc/mdstat 发现空输出,就以为“没 RAID”,其实只是用了硬件卡;或者看到 /dev/sda 正常挂载,就认为“阵列没问题”,但控制器内部可能正降级运行、BBU 失效、或某块盘已预测性故障(SMART pending sector 已触发但未掉线)。
- 硬件 RAID 必须用厂商工具验证,
lsblk和fdisk -l只能帮你定位哪个设备是系统盘(比如BOOT分区所在盘),不能判断其背后阵列健康状况 -
smartctl -a /dev/sda在硬件 RAID 下多数无效(除非启用了 IT 模式或 passthrough),返回的是控制器封装后的抽象状态,而非真实磁盘 SMART 数据 - 真正要查物理盘健康,必须用
storcli /c0/eall/sall show或hpssacli controller slot=0 physicaldrive all show
怎么确认系统安装在哪个逻辑驱动器上
这个问题本质是“根文件系统挂载在哪块设备上”,但仅靠 df -h / 显示的 /dev/sda1 并不能说明它属于哪个逻辑驱动器 —— 因为硬件 RAID 的 LD 编号和 OS 设备名无固定映射关系,重启或热插拔后 /dev/sda 可能变成 /dev/sdb。
最可靠的方法是交叉比对:先查根分区对应的设备路径,再用厂商工具反向查该设备归属的 LD。
- 查根分区设备:
df -h / | awk 'NR==2 {print $1}' | sed 's/[0-9]//'(输出类似/dev/sda) - 查该设备是否为 LD 输出:
sudo storcli /c0/vall show | grep -A 5 -B 5 "OS Device Name.*sda"(替换 sda 为实际设备名) - 若找不到匹配项,说明该设备不是由 storcli 管理的 LD(可能是直通盘、NVMe 或 USB 盘),需换用
lshw -C storage或lspci -vv | grep -A 10 "RAID"追溯控制器类型
复杂点在于多控制器或多 RAID 卡环境,/dev/sda 可能来自 c0,而 /dev/sdb 来自 c1 —— 此时必须逐个控制器查,不能只盯一个 /c0。



















