两代工具的差别
MegaCLI 与 storcli 是同一家厂商两代 RAID 管理工具:MegaCLI 走参数式风格,storcli 换成路径式风格,/c0 是控制器 0,/v0 是虚拟盘 0,/e252/s4 是机箱 252 的槽位 4。两者解决的问题一样,语法差别很大。把存量脚本从 MegaCLI 迁到 storcli,必须逐条对照验证,不能做字符串替换。
命令对照
| 任务 | MegaCLI | storcli |
|---|---|---|
| 控制器信息 | -AdpAllInfo -a0 | /c0 show |
| 虚拟盘信息 | -LDInfo -Lall -a0 | /c0/vall show |
| 物理盘列表 | -PDList -a0 | /c0/eall/sall show |
| 设热备 | -PDHSP -Set -physdrv[x:y] | /c0/eX/sY add hotsparedrive |
| 点灯 | -PDLocate -start -physdrv[x:y] | /c0/eX/sY start locate |
| 导入外来配置 | -CfgForeign -Import | /c0/fall import |
| 删除虚拟盘 | -CfgLdDel -Lx -a0 | /c0/vx delete |
| 事件日志 | -AdpEventLog -GetEvents | /c0 show events |
基本信息
| 工具位置 | MegaCLI 常见于 /opt/MegaRAID/MegaCli/,storcli 常见于 /opt/MegaRAID/storcli/ |
|---|---|
| 寻址风格 | MegaCLI 用 -a0、-L1、-physdrv[252:4];storcli 用 /c0/v1、/c0/e252/s4 |
| 输出格式 | storcli 支持 JSON 输出,便于脚本解析 |
| 并存情况 | 两代工具可以在同一台机器上并存 |
| 权限要求 | root |
典型使用场景
- 老脚本改造:把 MegaCLI 调用逐步换成 storcli
- 新机器交付时统一工具链,减少维护分支
- 新旧卡混用的批次上按卡代次选择工具
- 采集监控数据时用 JSON 输出降低解析成本
- 排障时用另一套工具交叉验证同一个状态
- 用 JSON 输出重写监控采集脚本,降低文本解析的维护成本
迁移检查清单
迁移检查清单
/opt/MegaRAID/storcli/storcli64 /c0 show # 控制器信息
/opt/MegaRAID/storcli/storcli64 /c0/vall show # 虚拟盘列表
/opt/MegaRAID/storcli/storcli64 /c0/eall/sall show # 物理盘列表
/opt/MegaRAID/storcli/storcli64 /c0 show all > baseline.txt # 一次存全量基线
/opt/MegaRAID/storcli/storcli64 /c0/vall show J # JSON 输出,便于脚本解析两代工具可以在同一台机器上并存;迁移期先双跑只读命令,输出对得上再迁移写操作。
storcli 的路径式语法可以整段读出来:/c0 是控制器、/v0 是虚拟盘、/e252/s4 是机箱与槽位;而 MegaCLI 的 -a0、-L1、-physdrv[252:4] 是各自独立的参数位,混记很容易写错。
换工具前先把只读命令的输出存成基线:同一时刻两套工具的对照结果,是迁移写操作时唯一可比较的参照物。
storcli 自带帮助比较完整,写不出来的参数直接查帮助或包内文档,比按旧工具的习惯去猜要快得多。