公开/公告号CN105068920A
专利类型发明专利
公开/公告日2015-11-18
原文格式PDF
申请/专利权人 浪潮电子信息产业股份有限公司;
申请/专利号CN201510422607.3
发明设计人 史沛玉;
申请日2015-07-17
分类号G06F11/36;
代理机构济南信达专利事务所有限公司;
代理人姜明
地址 250101 山东省济南市高新区浪潮路1036号
入库时间 2023-12-18 12:16:22
法律状态公告日
法律状态信息
法律状态
2018-01-02
授权
授权
2015-12-16
实质审查的生效 IPC(主分类):G06F11/36 申请日:20150717
实质审查的生效
2015-11-18
公开
公开
技术领域
本发明公开一种测试rack稳定性的方法,属于rack测试领域,具体地说是一种基于shell测试rack资产信息稳定性的方法。
背景技术
随着IT领域技术的不断发展,对服务器的稳定性要求越来越高。作为服务器产品提供商,一款服务器无论是在研发阶段还是生产阶段都需要对产品进行系统可靠性测试,从而严格保证该产品的稳定性。Rack,即机架式机柜,是一款集管理、供电、散热、服务为一体的高密度、高可用的整机柜,其当前全新的DMI/FRU产品名称、资产号、序列号等信息的同步设计,以及小空间大存储容量的无raid存储设计,性能得到进一步提升的同时,整机柜的稳定性就更加受到重视,然而在客户应用中,客户往往要根据服务的资产号序列号来分配IP、灌装OS等重要任务,磁盘上就会存有客户大量数据,一旦掉盘就是非常严重的故障,这些环节的稳定性比较薄弱。因此对于Rack这种整机柜产品,其稳定性必须要经过重点测试验证。但是,由于Rack服务器节点较多以及以往的测试需要大量的人力投入,造成测试人员需要花费大量精力和物力完成测试,而本发明提供一种基于shell测试rack资产信息稳定性的方法,基于shell工具通过对服务器资产信息的检查,自动化执行对比,测试结果的自动保存以及处理,节省大量的人力、时间、成本等多方面的资源,也减少了不必要的人工交互过程,从而大大提高了测试效率,并保证产品的稳定性,因而,具有很好的推广使用价值。
shell是一个免费的编程语言,用来实现自动和交互式任务进行通信,而无需人的干预。使用它可以创建脚本用来实现对命令或程序提供输入,shell则可以根据程序的提示模拟标准输入提供给程序需要的输入来实现交互程序执行。
发明内容
本发明针对Rack服务器节点较多以及以往的测试需要大量的人力投入,造成测试人员需要花费大量精力和物力完成测试的问题,提供一种基于shell测试rack资产信息稳定性的方法,节省大量的人力、时间、成本等多方面的资源,也减少了不必要的人工交互过程,从而大大提高了测试效率。
本发明提出的具体方案是:
一种基于shell测试rack资产信息稳定性的方法,基于shell工具通过对服务器各个资产模块的访问,自动化执行测试步骤,自动保存以及处理测试结果;分别对bios/BMC资产号和序列号同步稳定性,CPU核数,内存条数及容量,硬盘个数容量进行检查,并进行自动化循环测试,收集测试结果。
所述对bios/BMC资产号和序列号同步稳定性的检查,其过程为:shell脚本中首先通过dmidecode及ipmitoolfru指令分别抓取BIOSdmi及BMCfru中的资产号及产品序列号,然后对比dmi及fru中资产号及产品序列号是否一致,一致则判定dmi同步,fru资产及序列号成功;反之则fail。
所述CPU核数的检查过程为:通过catproc/cpuinfo获取服务器CPU核数,然后与已知的CPU核数比较,如果一致说明CPU工作正常,无失效情况,反之则fail。
所述内存条数及容量的检查过程为:通过脚本获取服务器内内存的容量及条数,然后与已知内存条数及容量去比较,如果数据一致,判定内存资产正常,反之则fail。
所述硬盘个数容量检查过程为:通过脚本获取HDD的个数及容量,然后与已知HDD数量及容量进行比较,如果数据一致,判定磁盘资产正常,反之则说明有掉盘情况。
所述自动化循环测试中将shell脚本的指令放在系统下rc.local中,并新增一行使得节点不断延时reboot。延时时间可设定,比如为100s等等。
所述对收集的测试结果,查看所记录的log有没有fail的日志,判断资产信息是否有变化。
本发明的有益之处是:本发明基于shell脚本,自动化测试rack资产信息稳定性,通过对服务器资产信息的检查,自动化执行对比,测试结果的自动保存以及处理来测试rack资产信息稳定性,节省大量的人力、时间、成本等多方面的资源,也减少了不必要的人工交互过程,从而大大提高了测试效率,并保证产品的稳定性,因而,具有很好的推广使用价值。
具体实施方式
一种基于shell测试rack资产信息稳定性的方法,基于shell工具通过对服务器各个资产模块的访问,自动化执行测试步骤,自动保存以及处理测试结果;分别对bios/BMC资产号和序列号同步稳定性,CPU核数,内存条数及容量,硬盘个数容量进行检查,并进行自动化循环测试,收集测试结果。
其中所述对bios/BMC资产号和序列号同步稳定性的检查,其过程为:shell脚本中首先通过dmidecode及ipmitoolfru指令分别抓取BIOSdmi及BMCfru中的资产号及产品序列号,然后对比dmi及fru中资产号及产品序列号是否一致,一致则判定dmi同步,fru资产及序列号成功;反之则fail。代码如下:
echo"thereboottimes:`tail-n1/root/times`"
biosserial=`/usr/sbin/dmidecode|grep-A5-i"Systeminformation"|awk'/Serial/{print$3}'`
biosasset=`/usr/sbin/dmidecode|grep-A5-i"BaseBoardInformation"|awk'/Asset/{print$3}'`
/sbin/serviceipmistart>/dev/null
if[$?=0];then
fruasset=`/usr/bin/ipmitoolfru|awk'/Asset/{print$5}'`
fruserial=`/usr/bin/ipmitoolfru|awk'/ProductSerial/{print$4}'`
else
echo-e"\033[41mIPMIDriverStartFAILED..............................Failed\033[0m"
fisn=$1
asset=$2
if["$1"!=""];then
if[$sn=$biosserial]&&[$sn=$fruserial];then
echo-e"\033[42mSerialNumberofThisNodeis$sn....................Passed\033[0m"
else
echo-e"\033[41mSerilaNumberofThisnode:BIOSSerial$biosserial,BMCSerial$fruserial.Needed$sn.....................Failed\033[0m"
fi
if[$asset];then
if["$asset"="$biosasset"]&&["$asset"="$fruasset"];then
echo-e"\033[42mZichanBianahoofThisNodeis$asset....................Passed\033[0m"
else
echo-e"\033[41mZichanBianahoofThisnode:BIOSAsset$biosasset,BMCAsset$fruasset.Needed$asset.....................Failed\033[0m"
fi
fi
fi
所述CPU核数的检查过程为:通过catproc/cpuinfo获取服务器CPU核数,然后与已知的CPU核数比较,如果一致说明CPU工作正常,无失效情况,反之则fail,代码如下:
coremount=$3
a=`cat/proc/cpuinfo|grep"modelname"|wc-l`
if[$coremount=$al];then
echo-e"\033[42mCPUcoresmountofThisNodeis$coremount................Passed\033[0m"
else
echo-e"\033[41mcoresmountofThisNodeisnot$coremount.................Failed\033[0m"
fi
内存条数及容量检查过程:通过脚本获取服务器内内存的容量及条数,然后与已知内存条数及容量去比较,如果数据一致,判定内存资产正常,反之则fail;代码如下:
memcap=$4
b=`free`
if[$memcap=$b];then
echo-e"\033[42mMEMcapacityofThisNodeis$memcap................Passed\033[0m"
else
echo-e"\033[41mMEMcapacityofThisNodeisnot$memcap............Failed\033[0m"
fi
硬盘个数容量检查过程:通过脚本获取HDD的个数及容量,然后与已知HDD数量及容量进行比较,如果数据一致,判定磁盘资产正常,反之则说明又掉盘情况;代码如下:
hddmount=$5
c=`fdisk-1|grepsd|wc-1`
if[$hddmount=$c];then
echo-e"\033[42mHDDmountofThisNodeis$hddmount................Passed\033[0m"
else
echo-e"\033[41mMEMcapacityofThisNodeisnot$hddmount........Failed\033[0m"
fi
所述自动化循环测试中将shell脚本的指令放在系统下rc.local中,并新增一行使得节点不断延时reboot。延时时间可设定,比如为100s代码添加如下:
./stabilitytest序列号资产编号cpu核数内存容量硬盘数量。
reboot
sleep100
所述对收集的测试结果,查看所记录的log有没有fail的日志,判断资产信息是否有变化。
收集测试结果:收集测试结果,查看所记录的log有没有fail的日志,判断资产信息是否有变化,把步骤1-4执行的结果全部重定向到stability.log文件中,此指令可作为stabilitytest组成部分,然后检索其中的fail项;代码如下:
所以结果重定向到stability.log
Alltestresultabove>>stability.log
检索测试结果
catstability.log|grepfail
本发明并不限于上述的具体实施方式。除本发明所要求保护的技术方案外,均为所属领域的技术人员可获知的现有技术。
机译: 一种基于CASHEW NUTSHELL液体的新型聚乙烯树脂,一种生产这些聚乙烯树脂,由这些聚乙烯树脂生产的柔性泡沫塑料的方法,以及一种生产这些泡沫塑料的方法。
机译: 道路资产所有者/经理,地方政府,州政府和联邦政府是目标市场。提供一种服务和软件,可提供道路网络的道路资产地理数据日志,包括不受干扰的地质取芯,目的是提供地下地理数据以供将来参考。这将包括道路路面基层/结构层和路基土壤测试数据。该数据将提供用于桌面设计的平台以及用于验证与道路资产管理相关的假设的工具/方法,例如,消费比率和生命周期评估等
机译: 一种学习方法和学习设备,用于将另一辆自动驾驶汽车的空间检测结果与通过V2V通信获取的自己的自动驾驶汽车的空间检测结果进行积分,以及一种使用该学习方法和学习设备的测试方法和测试设备。将通过V2V通信从其他自治车辆获取的目标检测信息与当前自主车辆生成的目标检测信息集成在一起的装置,测试方法和测试装置,使用相同的方法