不同固件版本PERC H730 Mini服务器执行omreport存储命令输出不一致的问题咨询
不同固件版本PERC H730 Mini服务器执行omreport存储命令输出不一致的问题咨询
大家好,我最近碰到个头疼的问题——在两台搭载PERC H730 Mini控制器的服务器上,用同一个脚本提取虚拟磁盘的RAID配置,结果输出完全不一样,导致脚本直接失效了。想跟大家请教下怎么解决这个问题。
我写的脚本命令是这样的:
omreport storage vdisk controller=0 -fmt ssv | awk '-F;' '/^ID/{print}/Virtual\s*Disk\s*[0-9]+;/{line=$0;value=$7}END{print line;print value}'
第一台服务器(固件版本:PERC H730 Mini v25.5.2.0001)的输出:
ID;Status;Name;State;Hot Spare Policy violated;Encrypted;Layout;Size;T10 Protection Information Status;Associated Fluid Cache State ;Device Name;Bus Protocol;Media;Read Policy;Write Policy;Cache Policy;Stripe Element Size;Disk Cache Policy 14;Ok;VirtualDisk16;Ready;Not Applicable;No;RAID-0;7,451.50 GB (8000987201536 bytes);No;Not Applicable;/dev/sdo;SAS;HDD;No Read Ahead;Write Through;Not Applicable;64 KB;Unchanged RAID-0
这台服务器上脚本运行正常,能正确提取到RAID级别是RAID-0,因为表头里的Layout字段是第7列,我脚本里取的就是第7列的值。
第二台服务器(固件版本:PERC H730 Mini v25.5.0.0018)的输出:
ID;Status;Name;State;Hot Spare Policy violated;Virtual Disk Bad Blocks;Encrypted;Layout;Size;T10 Protection Information Status;Associated Fluid Cache State ;Device Name;Bus Protocol;Media;Read Policy;Write Policy;Cache Policy;Stripe Element Size;Disk Cache Policy 16;Ok;Virtual Disk 16;Ready;Not Applicable;No;No;RAID-0;3,725.50 GB (4000225165312 bytes);No;Not Applicable;/dev/sdp;SAS;HDD;Read Ahead;Force Write Back;Not Applicable;64 KB;Disabled No
结果这台服务器上脚本输出的是No,完全不对。仔细对比才发现,旧固件版本的表头多了一个Virtual Disk Bad Blocks字段,导致Layout字段的位置变成了第8列,我原来固定取第7列的逻辑直接失效了。
现在想请教各位大佬:有没有办法修改脚本,让它不依赖固定的列索引,而是根据表头里的Layout字段来匹配对应的取值?这样不管固件版本怎么更新,只要表头里有Layout字段,就能正确提取RAID级别。或者有没有其他更可靠的方法来获取虚拟磁盘的RAID配置信息?
备注:内容来源于stack exchange,提问作者SebMa
相关产品推荐
相关产品推荐

