ipmi重启_一种基于ipmi的对服务器进行自动化重启测试的方法

一种基于ipmi的对服务器进行自动化重启测试的方法

【技术领域】

[0001]本发明涉及重启测试技术技术,尤其涉及一种基于IPMI的对服务器进行自动化重启测试的方法。

【背景技术】

[0002]随着服务器行业的高速发展,在各个领域中越来越多的客户采用计算能力更强的服务器运行自己的核心应用。INSPUR浪潮作为国内最大服务器供应商,为了满足高度并行化及高性能需求的客户,在推高性能服务器的同时,通用注重产品的质量和和可靠性和稳定性。

[0003]根据以往的经验和理论分析,服务器在启动阶段是最容易发生问题的。在服务器加电后,会扫描连接在系统中的所有设备,同时会对所有设备进行资源分配并尝试对所有设备进行初始化动作和自检动作。很大一部分产品设计中的问题会在这个阶段暴露出来,在服务器启动完成并进入稳定运行阶段后,很多设计中的问题反而不容易复现。因此,只要频繁进行重启测试,让系统不断地对所有设备进行扫描、资源分配、初始化和自检动作,就可以比较容易地暴露出产品设计中的质量问题。

[0004]现在我们在测试中已经比较注重对服务器的重启测试,现在也有专用的对服务器进行重启测试的疲劳测试机。但是目前的测试方法一般都是在本机上完成的,此方法没有对服务器的BMC功能进行覆盖。

【发明内容】

[0005]本发明实施提出一种基于IPMI的对服务器进行自动化重启测试的方法。将通过IPMI,通过管理网络远程对服务器进行重启测试。

[0006]1、被测服务器重新启动,自动对硬件信息进行扫描,并将扫描结果和之前保存的记录进行比对,如果有不同,将差异记录到日志文件。

[0007]2、控制端计算机对被测服务器进行循环检测,当检测到被测机已经完成启动并完成硬件扫描后,向被测机发送IPMI指令,完成被测机的重启循环。重启可以根据需要设置为多个不同方式:AC Power Off (需要同时使用疲劳测试机);Power Off ;Power Reset ;Power Soft Off。

[0008]测试流程:

1、在被测机确定运行正常,硬件配置无误,软件设置正常后,运行测试脚本,进行测试初始化,保存当前硬件信息,供今后测试时进行比对。

[0009]2、在控制端计算机上运行脚本,对被测机进行监控,当发现被测机完成开机启动和重启测试脚本后,向被测机发送重启IPMI指令。同时开始下一循环的测试。

[0010]3、当到达设定的测试次数后,脚本自动停止运行。查看被测机测试log文件中是否有测试失败项,如果没有则测试正常,重启测试通过

本测试方法在服务器启动完成以后,会扫描硬件改动,并将硬件改动的结果记录保存下来,供测试完成后对测试结果进行分析。

[0011]本方法可以对服务器进行自动化重启测试,利用该方法可以有效发现服务器设计中在计算机启动环节的各种隐患,可以有效地提高测试人员的工作效率,节省人力成本,提高工作的准确性和可靠性。

【附图说明】

[0012]图1是被测机测试流程示意图。

[0013]图2是控制端测试流程示意图。

[0014]图3是测试正常不意图。

【具体实施方式】

[0015]下面对本发明的内容进行更加详细的阐述。

[0016]重启测试流程图如1、2所示。

[0017]本测试方法环境要求:

1、被测服务器一台,BMC口和一个业务网口接入网络(也可以使用Sharelink网口,只用一根网线同时接入BMC和业务网口);

2、控制端计算机一台,接入同一网络。

[0018]测试流程:

1、在被测机确定运行正常,硬件配置无误,软件设置正常后,运行测试脚本,进行测试初始化,保存当前硬件信息,供今后测试时进行比对;

2、在控制端计算机上运行脚本,对被测机进行监控,当发现被测机完成开机启动和重启测试脚本后,向被测机发送重启IPMI指令。同时开始下一循环的测试;

3、当到达设定的测试次数后,脚本自动停止运行。查看被测机测试log文件中是否有测试失败项,如果没有则测试正常,重启测试通过。

[0019]以下是被测机重启测试参考源代码:

#/bin/bash

SYSName=' I sb_r el ease ~a / awk ' /Descrip/ {print}

SYS=' I sb_re I ease ~a / awk ’/Distributor/{print $3}

Reboo tDIR= pwd'func t1n checkrc ()

{

if [ ! ~d /home/reboo tfiles/ ] then

mkdir /home/reboo tfi les/fi

if [ ! -f /home/rebootfiles/rc.local, tmp ]then

#sysname= uname ~a / awk ’ {print $2}, if [ $SYS == "Ubuntu"] then

cp /etc/rc.local /home/reboo tfiles/rc.local, tmp# echo "the sys is $SYSName"elif [ $SYS 二二 "SUSE"]then

echo ,, The system is $SYSName"elif [ -f /etc/rc.d/rc.local ]then

#echo "The system is $SYSName"

cp /etc/rc.d/rc.local /home/reboo tfi les/rc.local, tmp else

echo ^the shell doesnot support the system $SYSName,,exi t O

fi

else

# echo ,, The system is $SYSName"echo "success to get files!I ^

fi

echo ,, The system is $SYSName"sleep I

}

funct1n SuseReboot Q

{

echo ’

#! /bin/sh#

#/etc/init.d/abcd

#

#Copyright (c) 2000,2001 SuSE GmbH Nuernberg, Germany.All rightsreserved.#

#

### BEGIN INIT INFO

#Provides: abed

#RequiredStar t:

#ShouldStar t: $network $syslog

#RequiredStop:

#ShouldStop: $network $syslog

#Defaul t-Start: 2 3 5#DefaultStop: 0 14 6

#Descript1n: run the auto shell start### END INIT INFO

echo "first to yun test.......^ ? /root/testfiIe

bash /home/reboo tfiles/powercycle, sh &

#/etc/rc.status

#First reset status of this servicerc—reset

case "$1,, instart)

echo "s tar t.....^ ? /roo t/tes tfi Ie

,,

stop)

echo "stop.....^ ? /roo t/tes tfi Ie

chkconfig —del linuxrestart ,,

*)

echo "$1,,〉〉/roo t/tes tfi Ie ,,

esac

rc— exi t,> tc/ini t.d/1 inuxres tar tif [ -f /etc/init.d/1 inuxres tart ]then

chmod 777 /etc/init.d/1 inuxres tar tIn s /etc/init.d/1 inuxres tar t /etc/rc.d/rc3.d/S951 inuxres tartIn s /etc/init.d/1 inuxres tar t /etc/rc.d/rc5.d/S951 inuxres tartchkconfig add linuxres tart

else

echo ^error, Can' t find the test file"exi t O

fi

}

funct1n UbuntuReboot Q

{

cp ~f /home/rebootfiles/rc.local, tmp /home/reboo tfi les/rc.local, tmpl#ln s /etc/init.d/reboot—test /etc/rc.d/rc3.d/S77reboot_ testecho,bash /home/reboo tfi les/power cycle, sh &exit O ’ } /etc/rc.localsleep 10 ini t O

I

funct1n NormalReboot Q

{

cp ~f /home/rebootfiles/rc.local, tmp /home/reboo tfi les/rc.local, tmplecho "sh /home/reboo tfi les/power cycle, sh & ^ }} /home/reboo tfi les/rc.local, tmpl

cp -f /home/rebootfiles/rc.local, tmpl /etc/rc.d/rc.local

}

funct1n Reboot Q

{

case $1 in start) echo ’ #!/bin/bash

delaytime= cat /home/reboo tfi les/T / awk,{print}, echo zz da te reboo t" }} /roo t/times

cat /root/times / grep reboot j wc -1 j awk ’ {print},? /root/times cnt= cat /root/times / grep reboot j wc -1 j awk ’ {print},

#echo Sent ? /root/times if [ 1-f /roo t/1spc

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值