用于检查和操作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报告模式中解析的信息。 这可以进口,并用于特殊需要。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java jogl列出所有图形设备   Java调度任务。保持重新启动   wsdl JAXB XmlID和XmlIDREF注释(从模式到Java)   java我可以使用带有LEMP的DigitalOcean上的JSP页面吗?   互操作如何将类型化集合从clojure传递到java?   java MinMax算法工作不正常   返回“未找到匹配索引”的java Google云数据存储   spring设计从一个平面文件中读取100K记录,并用Java将其处理到DB   java如何使用arraylist中先前定义的类   java我们如何为从internet下载的项目构建jar   我正在用java编写一个程序,它可以打印从1到x的数字(x是用户输入值)。这是使用for循环和方法语句   安卓中java代码的语法错误   泛型Java方法接受vararg并返回arraylist?