用于检查和操作LSI MegaRAID适配器的命令行工具,例如用于IBM ServerRAID系统和Dell PowerEdge RAID控制器(PERC)
cs.app.megacli的Python项目详细描述
许多ibm xseries服务器都带有lsi logic megaraid raid控制器,名称为ibm serverraid。Dell还将这些控制器用作Dell PowerEdge RAID控制器(PERC)。
在机器引导过程中,可以通过bios屏幕使用传统的bios类文本界面或使用gui界面进行访问。但是,这两种情况都要求机器操作系统关闭。
机器操作系统启动时也可以访问RAID适配器。 对于Linux,IBM提供了一组名为MegaCLI的命令行工具,它们安装在/opt/megaraid中。 不幸的是,它们的megacli可执行文件在调用和报告模式下都很烦琐,生成了一个几乎不可读的报告,这对机器解析来说是非常重要的。 我可以推测,有人被告知以文本形式转储适配器数据,并且是通过一个特别的报告来完成的;这是一个很长的页面,而且很难用眼睛检查。
这种情况非常痛苦,我编写了这个模块,它运行两种报告模式并解析它们的输出。它故意与Python2.4兼容,因此可以在RHEL 5系统上运行。
报告模式
然后,“报告”模式会转储相关信息的简短摘要报告,这些信息可以立即被查看;RAID配置和问题会立即显现出来。下面是一个输出示例(strderr上有“+”跟踪行,并背诵使用的底层megacli命令):
# mcli report + exec py26+ -m cs.app.megacli report + exec /opt/MegaRAID/MegaCli/MegaCli64 -CfgDsply -aAll + exec /opt/MegaRAID/MegaCli/MegaCli64 -PDlist -aAll Adapter 0 IBM ServeRAID-MR10i SAS/SATA Controller serial# Pnnnnnnnnn Virtual Drive 0 2 drives, size = 278.464GB, raid = Primary-1, Secondary-0, RAID Level Qualifier-0 physical drive enc252.devid8 [252:0] physical drive enc252.devid7 [252:1] 4 drives: enc252.devid7 [252:1]: VD 0, DG None: 42D0628 279.396 GB, Online, Spun Up enc252.devid8 [252:0]: VD 0, DG None: 81Y9671 279.396 GB, Online, Spun Up enc252.devid2 [252:2]: VD None, DG None: 42D0628 279.396 GB, Unconfigured(good), Spun Up enc252.devid3 [252:3]: VD None, DG None: 42D0628 279.396 GB, Unconfigured(good), Spun Up
状态模式
“status”模式以一系列简洁的单行摘要形式背诵raid状态;我们在nagios监控中使用它的输出。下面是一个输出示例(strderr上有“+”跟踪行,并背诵使用的底层megacli命令):
# mcli status + exec py26+ -m cs.app.megacli status + exec /opt/MegaRAID/MegaCli/MegaCli64 -CfgDsply -aAll + exec /opt/MegaRAID/MegaCli/MegaCli64 -PDlist -aAll OK A0
定位模式
“定位”模式打印一个megacli命令行,可用于激活或停用特定驱动器上的位置指示灯。下面是一个输出示例:
# mcli locate 252:4 /opt/MegaRAID/MegaCli/MegaCli64 -PdLocate -start -physdrv[252:4] -a0 # mcli locate 252:4 stop /opt/MegaRAID/MegaCli/MegaCli64 -PdLocate -stop -physdrv[252:4] -a0
新的磁盘阵列模式
“new_raid”模式打印megacli命令行,该命令行可用于指示适配器组装新的raid集。
megacli类
模块提供一个megacli类,该类包含megacli报告模式中解析的信息。 这可以进口,并用于特殊需要。