硬件 RAID 卡与磁盘阵列监控
看懂物理机上的 RAID 卡与磁盘阵列,学会用 storcli / mdadm 及时发现掉盘、降级并安全完成重建。
在物理机(独立服务器)上,多块硬盘通常会组成 RAID 阵列,用冗余换取可靠性和性能。阵列一旦「降级」(degraded)却没被及时发现,再坏一块盘就可能全盘数据丢失。因此,学会查看阵列状态、识别掉盘并正确处理坏盘更换,是每个使用物理机的用户必备的运维技能。
硬件 RAID 卡是什么
硬件 RAID 卡(如 MegaRAID / LSI,现属 Broadcom)是一块独立的控制器,由它接管所有物理磁盘(PD),再对操作系统「变出」一个或多个虚拟磁盘(VD)。系统里 lsblk 看到的往往只是 VD,看不到底层每块盘的真实健康状况——这正是必须用专用工具查看的原因。
常见 RAID 级别:
- RAID 1:两盘镜像,坏一块不丢数据。
- RAID 5:分布式校验,允许坏 1 块。
- RAID 6:双校验,允许同时坏 2 块。
- RAID 10:镜像 + 条带,兼顾性能与冗余。
用 storcli / MegaCli 查看阵列
storcli(旧称 MegaCli)是 LSI 系列 RAID 卡的命令行工具。查看整体拓扑与状态:
# 查看所有控制器、虚拟盘、物理盘的汇总
storcli /c0 show
# 只看虚拟盘状态(Optl=最佳, Dgrd=降级, Pdgd=部分降级)
storcli /c0/vall show
# 查看每块物理盘(State: Onln 在线 / Offln 掉线 / Rbld 重建中)
storcli /c0/eall/sall show
重点看两处:VD 的 State 是否为 Optl(Optimal);每块 PD 的 State 是否为 Onln(Online)。出现 Dgrd、Offln、Failed、UBad(Unconfigured Bad)就说明有盘掉了或阵列已降级。
热备盘
热备盘(Hot Spare)是一块预留的空闲盘。当阵列中某块盘故障时,RAID 卡会自动用热备盘顶上并立即开始重建,无需人工介入,把「暴露在无冗余状态」的时间窗压到最短。强烈建议关键阵列都配置热备盘。
坏盘更换与重建注意事项
发现某块盘 Failed 后,更换重建请注意:
- 先定位物理位置。点亮坏盘定位灯,避免拔错盘:
storcli /c0/e252/s3 start locate
- 确认降级而非多盘故障。若已坏到超过冗余上限(如 RAID5 坏 2 块),切勿贸然操作,先做数据抢救。
- 热插拔换上同型号、不小于原容量的新盘。多数情况 RAID 卡会自动重建;若不自动,可手动指定:
storcli /c0/e252/s3 insert dpd disk
storcli /c0/e252/s3 start rebuild
storcli /c0/e252/s3 show rebuild # 查看重建进度百分比
- 重建期间性能下降且风险最高,尽量避免高负载,等 State 回到 Optl 再放心。
软 RAID:mdadm
若物理机用的是 Linux 软件 RAID(无硬件卡),改用 mdadm:
cat /proc/mdstat # 快速总览,[UU]全在线,[U_]有盘掉了
mdadm --detail /dev/md0 # 详细状态: clean / degraded / recovering
mdadm /dev/md0 --add /dev/sdc1 # 换盘后加入并触发重建
设置告警及时发现降级
阵列降级往往悄无声息,靠人肉巡检并不可靠。建议:
- 硬件 RAID:用 storcli 或厂商 SNMP/ipmitool 定时采集 VD/PD 状态,非 Optl/Onln 即告警。
- 软 RAID:mdadm --monitor 配置邮件通知,或用 nodeexporter 的 nodemd 指标接入监控告警。
- 把「降级」「重建中」「掉盘」都设为高优先级告警,第一时间推送到你常看的渠道。
小结
RAID 提供的是冗余,不是备份,更不是「永不丢数据」的保险。真正保命的是:懂得用 storcli / mdadm 读懂阵列状态,配好热备盘,换盘时先定位、后重建,并为「降级」配置及时告警——让你在第二块盘坏掉之前就能动手。冗余留出的容错窗口,只有被监控到才有意义。