本发明涉及通用服务器技术领域,具体地说是一种基于Linux系统下测试Expander背板硬盘指示灯的方法。

背景技术:

在通用服务器领域,Expander背板上的硬盘指示灯通常有Locate、Fault和Rebuild等状态,每种状态分别对应的指示灯不同颜色。硬盘指示灯测试通常通过手动从存储控制器配置界面或手动发送命令行命令方式点亮指示灯,或者将硬盘手动设置为某种状态,例如Rebuild等来测试指示灯状态。针对不同厂家的存储控制器,配置界面和命令行工具也不尽相同,测试方法不统一,影响测试效率。

技术实现要素:

本发明的技术任务是提供一种基于Linux系统下测试Expander背板硬盘指示灯的方法及系统。

本发明的技术任务是按以下方式实现的,该基于Linux系统下测试Expander背板硬盘指示灯的方法,包括,

基于SES理论基础,利用工具包对Expander背板硬盘指示灯进行状态设置和状态检查,并获取相应状态数据;

将Expander背板硬盘指示灯至少一种状态的测试过程集成在一个shell脚本中;

检测Expander背板硬盘指示灯相应状态并生成测试结果,记录测试结果,测试结束。

所述的工具包为sg3_utils工具包;

所述的sg3_utils工具包包括sg3_utils-libs-1.41-1.x86_64.rpm安装包和sg3_utils-1.41-1.x86_64.rpm安装包。

所述的利用工具包对Expander背板硬盘指示灯的进行状态设置和状态检查,包括,

利用shell脚本语言调用sg3_utils工具包中sg_scan命令获取Expander背板设备名、sg_ses命令设置或获取硬盘指示灯状态位。

所述的将Expander背板硬盘指示灯不同状态的测试过程集成在一个shell脚本中,包括,

通过shell命令提取工具包输出中的关注点信息或基于工具包输出生成关注点信息,通过对关键信息的判断梳理出测试结果。

所述的Expander背板硬盘指示灯为Locate LED,Fault和Rebuild LED。

所述的自动检测Expander背板硬盘指示灯相应状态并生成测试结果,包括,

将测试结果通过存储子系统导入到测试log中。

所述的存储子系统包括存储控制器,所述的存储控制器通过线缆与Expander相连接,Expander上连接其可支持的最大硬盘数。

基于Linux系统下测试Expander背板硬盘指示灯的方法,包括如下步骤:

步骤1)检测是否已经安装了sg3_utils工具包,若没有安装,则安装sg3_utils工具包;

步骤2)输入Expander背板支持的最大slot号;

步骤3)获取系统下Expander设备名称;

步骤4)循环点亮Expander背板所有slot的指示灯;

步骤5)获取每个slot号的指示灯标志位,判断是否为1?是,则测试PASS的slot号,记录于result_pass.txt中;否,则测试FALL的slot号,记录于result_fail.txt中;

步骤6)循环熄灭Expander背板所有slot的指示灯;

步骤7)获取每个slot号的指示灯标志位,判断是否为0?是,则测试PASS的slot号,记录于result_pass.txt中;否,则测试FASS的slot号,记录于result_pass.txt中;

步骤8)测试结束。

所述的检测是否已经安装了sg3_utils工具包,包括,

查询是否安装sg3_utils-libs-1.41-1.x86_64.rpm安装包,否,则安装sg3_utils-libs-1.41-1.x86_64.rpm;

查询是否安装sg3_utils-1.41-1.x86_64.rpm安装包,否,则安装sg3_utils-1.41-1.x86_64.rpm;

检测所述的sg3_utils-libs-1.41-1.x86_64安装包和sg3_utils-1.41-1.x86_64安装包是否安装成功,否,则退出程序;是,则进入后续测试环节。

一种基于Linux系统下测试Expander背板硬盘指示灯的系统,包括,Expander背板、存储控制器和硬盘;以及检测模块、数据获取模块和判断模块;

所述的检测模块用于检测系统是否已经安装了sg3_utils工具包;检测Expander背板硬盘指示灯相应状态;

所述的数据获取模块用于获取以下信息:获取系统下Expander设备名称;获取每个slot号的指示灯标志位;

所述的判断模块用于判断每个slot号的指示灯标志位是否为1或0。

本发明的一种基于Linux系统下测试Expander背板硬盘指示灯的方法和现有技术相比,不仅可以自动测试Expander背板硬盘指示灯,同时也可以将测试结果导入到测试log中,便于后期查看;该方法适用于多款RAID卡或SAS卡,方便测试人员搭配测试环境,节省测试时间,同时又提高了测试的可靠性。通过修改expander支持的slot号可将脚本应用于多款Expander,体现测试脚本的通用性和灵活性。

附图说明

附图1为一种基于Linux系统下测试Expander背板硬盘指示灯的方法的流程示意图。

附图2为检测是否已经安装了sg3_utils工具包的流程示意图。

附图3为存储子系统的架构示意图。

具体实施方式

实施例1:

一种基于Linux系统下测试Expander背板硬盘指示灯的系统,包括,Expander背板、存储控制器和硬盘;以及检测模块、数据获取模块和判断模块;

所述的检测模块用于检测系统是否已经安装了sg3_utils工具包;检测Expander背板硬盘指示灯相应状态;

所述的数据获取模块用于获取以下信息:获取系统下Expander设备名称;获取每个slot号的指示灯标志位;

所述的判断模块用于判断每个slot号的指示灯标志位是否为1或0。

该基于Linux系统下测试Expander背板硬盘指示灯的方法,包括,基于SES理论基础,利用工具包对Expander背板硬盘指示灯进行状态设置和状态检查;所述的工具包为sg3_utils工具包,所述的sg3_utils工具包包括sg3_utils-libs-1.41-1.x86_64.rpm安装包和sg3_utils-1.41-1.x86_64.rpm安装包;

还包括,利用shell脚本语言调用sg3_utils工具包中sg_scan命令获取Expander背板设备名、sg_ses命令设置或获取硬盘指示灯状态位。

将Expander背板硬盘指示灯不同状态的测试过程集成在一个shell脚本中;包括,通过shell命令提取工具包输出中的关注点信息或基于工具包输出生成关注点信息,通过对关键信息的判断梳理出测试结果。

自动检测Expander背板硬盘指示灯相应状态并生成测试结果;包括,将测试结果通过存储子系统导入到测试log中;所述的存储子系统包括存储控制器,所述的存储控制器通过线缆与Expander相连接,Expander上连接其可支持的最大硬盘数。

所述的Expander背板硬盘指示灯为Locate LED,Fault和Rebuild LED。

基于Linux系统下测试Expander背板硬盘指示灯的方法的具体步骤如下:

步骤1)检测是否已经安装了sg3_utils工具包,若没有安装,则安装sg3_utils工具包;包括,

查询是否安装sg3_utils-libs-1.41-1.x86_64安装包,否,则安装sg3_utils-libs-1.41-1.x86_64.rpm;

查询是否安装sg3_utils-1.41-1.x86_64安装包,否,则安装sg3_utils-1.41-1.x86_64.rpm;

检测所述的sg3_utils-libs-1.41-1.x86_64安装包和sg3_utils-1.41-1.x86_64安装包是否安装成功,否,则退出程序;是,则进入后续测试环节。

步骤2)输入Expander背板支持的最大slot号;

步骤3)获取系统下Expander设备名称;

步骤4)循环点亮Expander背板所有slot的指示灯;

步骤5)获取每个slot号的指示灯标志位,判断是否为1?是,则测试PASS的slot号,记录于result_pass.txt中;否,则测试FALL的slot号,记录于result_fail.txt中;

步骤6)循环熄灭Expander背板所有slot的指示灯;

步骤7)获取每个slot号的指示灯标志位,判断是否为0?是,则测试PASS的slot号,记录于result_pass.txt中;否,则测试FASS的slot号,记录于result_pass.txt中;

步骤8)测试结束。

实施例2:

以Locate LED测试为例

1)搭建测试环境:

主板Sata接口安装Linux操作系统,存储子系统硬盘满配,系统下安装存储控制器驱动;

2)定义文件目录:

3)在进行测试之前,先安装sg3_utils工具包:

rpm-qa|grep sg3_utils-libs-1.41-1.x86_64>$FILE_DIR/sg3_utils_lib_package.txt

rpm-qa|grep sg3_utils-1.41-1.x86_64>$FILE_DIR/sg3_utils_package.txt

//查询是否安装sg3_utils-libs-1.41-1.x86_64和grep sg3_utils-1.41-1.x86_64安装包,并把查询结果分别写入sg3_utils_lib_package.txt和sg3_utils_package.txt文件中

if[-s$FILE_DIR/sg3_utils_lib_package.txt];then

echo"sg3_utils_lib package has been installed already!"

else

rpm-ivh--force--nodeps sg3_utils-libs-1.41-1.x86_64.rpm

sleep 5

fi

//通过判断sg3_utils_lib_package.txt文件是否为真,决定是否安装sg3_utils-libs-1.41-1.x86_64包。

if[-s$FILE_DIR/sg3_utils_package.txt];then

echo"sg3_utils package has been installed already!"

else

rpm-ivh--force--nodeps sg3_utils-1.41-1.x86_64.rpm

sleep 5

fi

//通过判断sg3_utils_package.txt文件是否为真,决定是否安装sg3_utils-1.41-1.x86_64包。

read-p"Please check if the sg3_utils packages install successfully!y or n:"input

if["$input"='y'];then

echo"Sg3_utils packages are installed successfully!"

elif["$input"='n'];then

echo"Sg3_utils packages are installed unsuccessfully!Exit testing!"

exit$?

else

echo"Please input"y"or"n"!Exit testing!"

exit$?

fi

//通过echo输出的打印信息判断下一步动作,如果成功安装sg3_utils package,输入“y”;如果未成功安装sg3_utils package,输入“n”退出测试,其他情况表示输入有误,退出。

4)获取Expander在Linux系统下的设备名称:

sg_scan-i|grep-B 1PMCSIERA>$FILE_DIR/expander.txt

Dev_name=`cat$CURRENT_DIR/expander.txt|grep/dev|awk-F:'{print$1}'

用sg_scan命令获得系统下所有SCSI设备名称。

5)Locate LED测试:

变量i的初始值为0,SLOT_NUMBER是该expander所支持的SLOT数目,运行程序时可根据expander支持的slot号手动输入,用sg_ses命令循环将SLOT号为i的LED点亮,将Locate状态位置1。

用sg_ses命令循环将SLOT号为i的LED熄灭,将Locate状态位清0。

6)查看result目录下的log信息。

测试进行中,如果测试人员在机器旁的话可观察背板硬盘指示灯的颜色与设置状态是否一致,如果不在机器旁边的话可后期查看位于result目录下的result_pass.txt和result_fail.txt文件查看测试结果记录。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐