HCRM博客

CentOS下RAID配置工具对比,MegaCli、storcli与perccli详解

CentOS看RAID信息:Megacli、storcli、perccli对比

在CentOS里想一眼看清RAID卡到底在干嘛,很多人第一反应是装个工具就跑,结果三条命令甩出去,屏幕刷得比春运还热闹,却找不到盘阵到底掉没掉盘。MegaCli、storcli、perccli这三兄弟名字像亲戚,脾气却各不同,用错一个,查询结果都能给你整成“谜语”。这篇就把它们拎出来,一条一条对比,看完直接知道该敲谁。

CentOS下RAID配置工具对比,MegaCli、storcli与perccli详解-图1

为什么要专门挑工具

RAID卡不吭声,硬盘灯也不闪,业务却开始卡顿,这种场景最磨人。系统自带的lspci、lsblk只能看到内核识别的磁盘,阵列内部是“黑盒”。想拿到“黑盒”里的温度、Rebuild进度、掉盘槽位,必须走RAID卡原厂命令行。MegaCli老牌、storcli新宠、perccli戴尔专供,选错版本直接“command not found”,耽误排障黄金时间。

安装门槛:谁更省事

MegaCli最老,32位依赖让人头大,CentOS 7以后默认没32位库,装完还得手动ln -s libsysfs.so,新手常卡在这一步。storcli直接给rpm包,x86_64一次过,一条yum localinstall就完事。perccli同理,戴尔机器开箱自带仓库,启用EPel也能秒装,非戴尔机强制装会提示“Unsupported hardware”,直接劝退。

命令结构:谁更顺口

MegaCli参数又臭又长,

CentOS下RAID配置工具对比,MegaCli、storcli与perccli详解-图2

/opt/MegaRAID/MegaCli/MegaCli64 -LDInfo -Lall -aALL

大小写混用,少一个“-”就报错,复制粘贴都容易漏空格。storcli改成统一子命令:

storcli /c0 /vall show

层级清晰,tab补全能直接补出控制器号。perccli基本照抄storcli,只是路径换成/perccli64,戴尔工程师换平台零学习成本。

输出可读性:谁一眼看懂

MegaCli返回纯文本,条带、缓存策略挤在一行,关键状态“Firmware state: Failed”混在十几列里,眼睛看花。storcli默认表格,列对齐,掉盘直接标“DGD”,黄底高亮。perccli再加一列“Slot Number”,热插拔现场对照灯号秒定位。要做脚本解析,storcli加“-json”直接吐结构化,awk都不用写。

CentOS下RAID配置工具对比,MegaCli、storcli与perccli详解-图3

功能覆盖:谁更全

三者都能查逻辑卷、物理盘、BBU,但MegaCli不支持NVMe RAID,旧卡刷到新固件也识别不了。storcli从2016版开始统一支持SAS/SATA/NVMe,同一条命令看混合盘池。perccli跟随戴尔PERC9/10/11,HBA模式切换一键完成,不用再重启进BIOS。想在线开CacheCade,MegaCli得额外敲二次命令,storcli单条set就生效,省下的都是停机时间。

性能刷新:谁更快

盘阵Rebuild时,进度刷新频率决定你能不能及时止损。MegaCli默认poll 30秒,手动加“-NoLog”才能压到5秒,依旧卡顿。storcli内部接口走SAS2.0,进度条秒级跳动,perccli再快一点,戴尔机型实测2秒刷新,对大盘T级阵列尤其友好。监控脚本里,storcli sleep 3就能平滑绘图,MegaCli得sleep 10才不丢数据。

日志导出:谁方便甩锅

出故障要写报告,日志必须一键打包。MegaCli需要分别抓RAID、SAS、BBU三个日志,漏一条就被厂商怼回来。storcli /c0 show all > raid.txt,一个文件囊括所有固件事件。perccli再送“/c0/eall/sall download”直抽硬盘日志,连SMART一起拖下来,售后邮件一次发齐,来回扯皮的次数直线下降。

实际场景:该敲哪条命令

1. 紧急看掉盘:

MegaCli: -PDList -aALL |grep "Firmware state"

storcli: /c0 /eall /sall show |grep DGD

perccli: 同上,关键字高亮,现场最省眼神。

2. 计划扩容:

MegaCli先 -CfgSave 再 -CfgForeign -Clear,两步缺一不可。

storcli直接 /c0 /fall delete,一条清掉外来配置,再上 /c0 add vd,扩容时间砍半。

3. 定时巡检脚本:

storcli -json -LDInfo -lall -a0 |jq '.Controllers[0].Response.Data.Virtual Drives[].State'

jq解析稳如老狗,MegaCli得自己写正则,多一个空格就匹配崩。

选型结论

老机器LSI 9260、9271,MegaCli是唯一选择,记得把32位库一起打包进脚本,迁移系统别漏。新平台Avago 3508、9400,storcli通杀,NVMe RAID也能管,直接弃用MegaCli。戴尔PowerEdge,perccli原厂加持,开Case时工程师第一句话就是“请提供perccli日志”,别的格式他不认。

一句话:看硬件世代选工具,看平台品牌再确认,装完第一件事跑“show all”存底,后面排障才能心不慌。

常见坑合集

1. 拷贝旧脚本路径还是MegaCli64,新系统装完storcli,定时任务直接失效,记得改PATH。

2. 虚拟机直通RAID卡,固件版本低于5.0,storcli识别成Unsupported,升级iDRAC或卡固件再测。

3. 多卡堆叠,-aALL会把所有控制器混一起,脚本里一定循环“-a0 -a1”,否则告警邮件发错目标。

4. 中文locale下MegaCli偶发乱码,export LANG=C再执行,输出才能被grep。

5. 用perccli非戴尔主板,虽然能装但创建VD会写保护,别在生产线作死。

把上面几条写进部署手册,半夜报警电话至少少一半。

快速备忘清单

装包:storcli → yum localinstall storcli.rpm

查卷:storcli /c0 /vall show

查盘:storcli /c0 /eall /sall show

进度:storcli /c0 /e252 /s5 show rebuild

日志:storcli /c0 show events file=raid.log

照抄即用,贴到终端就能出结果。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/41786.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~