一种基于智能PDU的大批量节点AC循环测试方法与流程

文档序号:24188079发布日期:2021-03-09 14:15阅读:378来源:国知局
一种基于智能PDU的大批量节点AC循环测试方法与流程
一种基于智能pdu的大批量节点ac循环测试方法
技术领域
1.本发明属于服务器稳定性测试技术领域,具体涉及一种基于智能pdu的大批量节点ac循环测试方法。


背景技术:

2.bmc,是baseboard manager controller的简称,基板管理控制器。
3.pdu,是power distribution unit的简称,电源分配单元。
4.ipmi,是intelligent platform management interface的简称,智能平台管理接口。
5.对于使用服务器的企业和个人来说,服务器的稳定性是最为关注的问题。互联网已经迅速的渗透到我们的生活中,同时也带动了许多如直播、网游、电子商务等互联网行业的发展。服务器作为网络的基础设施,如何保障服务器长期稳定运行的质量成为服务器开发过程中测试阶段重点关注的对象。
6.服务器的稳定性测试是服务器开发测试过程中必须进行的一个环节,要保障产品质量最根本的要求就是从稳定性开始抓起。这就要求服务器在开发测试阶段对测试样机进行大规模长时间的稳定性测试。稳定性测试中大体包括长期的ac循环上下电测试,dc循环开关机测试,循环重启测试以及压力测试。
7.现有的ac循环上下电测试是对每个节点都进行实时的状态监控。基本来说,就是简单的遍历了整个ac循环测试流程,基本流程是pdu上电

>确认

>节点开机

>确认

>节点关机

>确认

>pdu断电

>确认

>pdu上电,在这中间存在大量的确认指令的发送和等待响应,难免造成测试时间的浪费,再加上如果同时存在大量节点参与测试时,控制端服务器和pdu都会因压力过载而无响应。
8.再者,大批量的多种类型的服务器产品还涉及到单一供电接口产品、多个供电接口产品以及一个供电接口给多个节点集中供电的产品,现有技术中给出对上述类型ac循环上下电测试的操作方式。
9.此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种基于智能pdu的大批量节点ac循环测试方法,是非常有必要的。


技术实现要素:

10.针对现有技术的上述服务器稳定性测试中,现有ac循环上下电测试存在大量的确认指令的发送和等待响应,造成测试时间的浪费,控制端服务器和pdu压力过大的缺陷,本发明提供一种基于智能pdu的大批量节点ac循环测试方法,以解决上述技术问题。
11.本发明提供一种基于智能pdu的大批量节点ac循环测试方法,包括如下步骤:
12.s1.配置测试环境,设置控制端服务器、pdu、大批量待测节点及其bmc的网络相连通,设置各待测节点操作系统开机后自动执行测试脚本,并在测试脚本执行完毕后自动进行关机;
13.s2.控制端服务器获取每个待测节点的pdu供电接口、bmc信息以及集中供电标识信息,创建待测节点数据库;
14.s3.控制端服务器创建执行数据库,获取待测节点数据库,对待测节点数据库中所有待测节点同时进行状态扫描,并根据待测节点的扫描状态以及集中供电标识信息确定待执行的pdu供电接口,再将待执行的pdu供电接口写入执行数据库;
15.s4.控制端服务器根据执行数据库自动控制pdu对相应pdu供电接口重启,实现对应待测节点ac循环测试,确定等待时间间隔,并在等待时间间隔后,返回待测节点状态扫描。
16.进一步地,步骤s1具体步骤如下:
17.s11.配置控制端服务器的数据传输网口、pdu的管理网口、大批量待测节点的网口及其bmc的管理网口连接到同一局域网络,并设置各网口相互ping通;
18.s12.在各待测节点操作系统配置中设置开机进入系统后自动执行测试脚本,并在测试脚本中设置执行完毕后自动进行关机;
19.s13.修改各待测节点的bios中电源参数,使得待测节点ac供电接口上电后自动执行开机动作;
20.s14.设置各待测节点的psu均与pdu的一个供电接口连接。
21.进一步地,步骤s13中,通过将待测节点的bios中power loss recovery选项设置为power on,实现待测节点ac供电接口上电后自动执行开机动作。
22.进一步地,步骤s14中,设置单psu供电的待测节点的一个psu与pdu的一个供电接口连接,设置双路psu供电的待测节点的两个psu与pdu的两个不同供电接口连接,设置单一psu集中供电的整机柜产品多个待测节点的一个psu与pdu的一个供电接口连接。
23.进一步地,步骤s2具体步骤如下:
24.s21.控制端服务器获取每个待测节点的psu接入的pdu供电接口号;
25.s22.控制端服务器获取待测节点的bmc ip地址、登录bmc所需的用户名及密码;
26.s23.控制端服务器获取待测节点集中供电状态,生成集中供电标识;
27.s24.控制端服务器根据待测节点的pdu供电接口号、bmc ip地址、登录bmc所需的用户名、密码以及集中供电标识,生成待测节点数据库。
28.进一步地,步骤s3具体步骤如下:
29.s31.控制端服务器创建状态数据库文件夹、集中供电数据库文件夹以及空的执行数据库;
30.s32.控制端服务器获取待测节点数据库,对待测节点数据库中所有待测节点同时在后台进行状态扫描;
31.s33.控制端服务器获取待测节点数据库中待测节点的集中供电标识,判断待测节点是否集中供电;
32.若否,进入步骤s34;
33.若是,进入步骤s35;
34.s34.控制端服务器通过是否存在状态数据库文件判断是否首次扫描,以及通过状态数据库文件中状态标识判断待测节点上次扫描状态,再将本次扫描为关机状态,而上次扫描为开机状态的待测节点接入的pdu供电接口号写入执行数据库;
35.s35.控制端服务器将集中供电标识符、待测节点的开关机状态以及bmc ip地址写入该待测节点对应的集中供电数据库文件夹中,并确认属于同一供电群组的所有待测节点均处于关机状态时,将该供电群组中待测节点对应pdu供电接口号写入执行数据库。
36.进一步地,步骤s31具体步骤如下:
37.s311.控制端服务器判断是否存在状态数据库文件;
38.若否,进入步骤s312;
39.若是,进入步骤s313;
40.s312.控制端服务器创建状态数据库、集中供电状态数据库文件夹和一个空的执行数据库;
41.s323.控制端服务器清空已存在的状态数据库文件,创建集中供电状态数据库文件夹和一个空的执行数据库。
42.进一步地,步骤s34具体步骤如下:
43.s341.控制端服务器判断待测节点开关机状态;
44.若是开机状态,进入步骤s342;
45.若是关机状态,进入步骤s343;
46.若是通信失败状态,进入步骤s346;
47.s342.控制端服务器创建on标识符,并写入以该待测节点对应的pdu供电接口命名的状态文件,再将上次的状态标识符覆盖,本次扫描结束,进入步骤s4;
48.s343.控制端服务器判断是否存在以该节点对应的pdu供电接口号命名的状态数据库文件夹;
49.若是,进入步骤s344;
50.若否,进入步骤s345;
51.s344.控制端服务器创建off标识符,并写入以该待测节点对应的pdu供电接口命名的状态文件,将该待测节点接入的pdu供电接口号写入执行数据库,本次扫描结束,进入步骤s4;
52.s345.控制端服务器判断上次存储的以该节点对应的pdu供电接口号命名的状态数据库文件夹中待测节点状态是否为开机状态;
53.若是,则将该待测节点接入的pdu供电接口号写入执行数据库,本次扫描结束,进入步骤s4;
54.若否,本次扫描结束,进入步骤s4;
55.s346.控制端服务器将unknown标识符和日期时间戳累加写入以该待测节点对应的pdu供电接口号命名的文件,进入步骤s4。
56.进一步地,步骤s35具体步骤如下:
57.s351.控制端服务器判断待测节点所在集中供电群组是否存在关机状态待测节点;
58.若是,进入步骤s352;
59.若否,进入步骤s354;
60.s352.控制端服务器将集中供电标识、该待测节点bmc ip地址以及off标识符写入以该节点对应的bmc ip地址命名的状态文件,存放到集中供电状态数据库文件夹中,本次
扫描结束;
61.s353.控制端服务器检查待测节点数据库中属于同一集中供电群组的待测节点数量,再检查集中供电数据库文件夹中属于同一集中供电群组的待测节点处于关机状态的数量,判断二者是否相等;
62.若是,将该集中供电群组中任意待测节点对应的pdu供电节点号写入执行数据,进入步骤s4;
63.若否,则判定该集中供电群组中仍然有待测节点未关机,本次扫描结束,进入步骤s4;
64.s354.控制端服务器将集中供电标识、该待测节点bmc ip地址以及on标识符写入以该节点对应的bmc ip地址命名的状态文件,存放到集中供电状态数据库文件夹中,本次扫描结束,进入步骤s4。
65.进一步地,步骤s4具体步骤如下:
66.s41.控制端服务器判断执行数据库中是否存在待执行pdu供电接口号;
67.若是,进入步骤s42;
68.若否,返回步骤s32;
69.s42.控制端服务器通过ssh远程登录pdu系统,向pdu系统发送expect批处理指令,并将待执行数据库中待执行pdu供电接口号导入pdu系统;
70.s43.pdu系统对每个待执行pdu供电接口号进行重启,实现ac上下电测试,测试完成退出pdu系统;
71.s44.统计所有待测节点从上到开机启动到关机完成的耗时最小值;
72.s45.设定等待时间间隔小于等于耗时最小值的一半,并在等待时间间隔后,返回步骤s32。
73.本发明的有益效果在于,
74.本发明提供的基于智能pdu的大批量节点ac循环测试方法,控制端服务器同时向所有待测节点bmc同时发送状态扫描指令,再设置科学的扫描间隔时间大大减少扫描次数,提高了测试效率;再通过制定待测节点数据库,实现不同供电类型的待测节点同时参与ac循环测试;通过将所有待执行的pdu供电接口集合到执行数据库中统一传递给pdu,避免因pdu接收到的大规模待测节点发来的控制其供电接口请求的压力造成过载而对部分请求无响应的后果,提高了pdu的利用率。
75.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
76.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著的进步,其实施的有益效果也是显而易见的。
附图说明
77.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
78.图1是本发明的方法流程示意图一;
79.图2是本发明的方法流程示意图二;
80.图3是本发明的方法流程示意图三;
81.图4是本发明的方法流程示意图四;
82.图5是本发明的网络环境配置示意图;
83.图6是本发明实施例的待测节点数据库实例。
具体实施方式
84.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
85.实施例1:
86.如图1所示,本发明提供一种基于智能pdu的大批量节点ac循环测试方法,包括如下步骤:
87.s1.配置测试环境,设置控制端服务器、pdu、大批量待测节点及其bmc的网络相连通,设置各待测节点操作系统开机后自动执行测试脚本,并在测试脚本执行完毕后自动进行关机;
88.s2.控制端服务器获取每个待测节点的pdu供电接口、bmc信息以及集中供电标识信息,创建待测节点数据库;
89.s3.控制端服务器创建执行数据库,获取待测节点数据库,对待测节点数据库中所有待测节点同时进行状态扫描,并根据待测节点的扫描状态以及集中供电标识信息确定待执行的pdu供电接口,再将待执行的pdu供电接口写入执行数据库;
90.s4.控制端服务器根据执行数据库自动控制pdu对相应pdu供电接口重启,实现对应待测节点ac循环测试,确定等待时间间隔,并在等待时间间隔后,返回待测节点状态扫描。
91.实施例2:
92.如图2所示,本发明提供一种基于智能pdu的大批量节点ac循环测试方法,包括如下步骤:
93.s1.配置测试环境,设置控制端服务器、pdu、大批量待测节点及其bmc的网络相连通,设置各待测节点操作系统开机后自动执行测试脚本,并在测试脚本执行完毕后自动进行关机;具体步骤如下:
94.s11.配置控制端服务器的数据传输网口、pdu的管理网口、大批量待测节点的网口及其bmc的管理网口连接到同一局域网络如图5所示,并设置各网口相互ping通;
95.s12.在各待测节点操作系统配置中设置开机进入系统后自动执行测试脚本,并在测试脚本中设置执行完毕后自动进行关机;
96.s13.修改各待测节点的bios中电源参数,使得待测节点ac供电接口上电后自动执行开机动作;通过将待测节点的bios中power loss recovery选项设置为power on,实现待测节点ac供电接口上电后自动执行开机动作;
97.s14.设置各待测节点的psu均与pdu的一个供电接口连接;设置单psu供电的待测
节点的一个psu与pdu的一个供电接口连接,设置双路psu供电的待测节点的两个psu与pdu的两个不同供电接口连接,设置单一psu集中供电的整机柜产品多个待测节点的一个psu与pdu的一个供电接口连接;
98.s2.控制端服务器获取每个待测节点的pdu供电接口、bmc信息以及集中供电标识信息,创建待测节点数据库;具体步骤如下:
99.s21.控制端服务器获取每个待测节点的psu接入的pdu供电接口号;
100.s22.控制端服务器获取待测节点的bmc ip地址、登录bmc所需的用户名及密码;
101.s23.控制端服务器获取待测节点集中供电状态,生成集中供电标识;
102.s24.控制端服务器根据待测节点的pdu供电接口号、bmc ip地址、登录bmc所需的用户名、密码以及集中供电标识,生成待测节点数据库;
103.s3.控制端服务器创建执行数据库,获取待测节点数据库,对待测节点数据库中所有待测节点同时进行状态扫描,并根据待测节点的扫描状态以及集中供电标识信息确定待执行的pdu供电接口,再将待执行的pdu供电接口写入执行数据库;具体步骤如下:
104.s31.控制端服务器创建状态数据库文件夹、集中供电数据库文件夹以及空的执行数据库;
105.s32.控制端服务器获取待测节点数据库,对待测节点数据库中所有待测节点同时在后台进行状态扫描;通过“&”操作符使扫描命令放入控制端服务器系统后台同时执行,各待测节点的扫描进度和处理操作互不影响;
106.s33.控制端服务器获取待测节点数据库中待测节点的集中供电标识,判断待测节点是否集中供电;
107.若否,进入步骤s34;
108.若是,进入步骤s35;
109.s34.控制端服务器通过是否存在状态数据库文件判断是否首次扫描,以及通过状态数据库文件中状态标识判断待测节点上次扫描状态,再将本次扫描为关机状态,而上次扫描为开机状态的待测节点接入的pdu供电接口号写入执行数据库;
110.s35.控制端服务器将集中供电标识符、待测节点的开关机状态以及bmc ip地址写入该待测节点对应的集中供电数据库文件夹中,并确认属于同一供电群组的所有待测节点均处于关机状态时,将该供电群组中待测节点对应pdu供电接口号写入执行数据库;
111.s4.控制端服务器根据执行数据库自动控制pdu对相应pdu供电接口重启,实现对应待测节点ac循环测试,确定等待时间间隔,并在等待时间间隔后,返回待测节点状态扫描;具体步骤如下:
112.s41.控制端服务器判断执行数据库中是否存在待执行pdu供电接口号;
113.若是,进入步骤s42;
114.若否,返回步骤s32;
115.s42.控制端服务器通过ssh远程登录pdu系统,向pdu系统发送expect批处理指令,并将待执行数据库中待执行pdu供电接口号导入pdu系统;
116.s43.pdu系统对每个待执行pdu供电接口号进行重启,实现ac上下电测试,测试完成退出pdu系统;
117.s44.统计所有待测节点从上到开机启动到关机完成的耗时最小值;
118.s45.设定等待时间间隔小于等于耗时最小值的一半,并在等待时间间隔后,返回步骤s32。等待时间间隔设置等于耗时最下值的一半,是确保待测节点运行正常时,控制端服务器能够在连续两次的扫描过程中至少有一次扫描到待测节点处于开机状态。
119.上述实施例中,步骤s43中,pdu自带的操作系统可以基于软件设定对供电接口进行重启,即给pdu供电接口断电后再上电;此处是为了避免pdu供电接口断电后待测节点的电源中仍然有余电存在。将pdu所有供电接口断电后设置一个延时30秒后再上电,通过设置延时能够有效避开待测节点的电源断电后余电未释放完毕而引起异常发生。
120.在某些实施例中,步骤s31具体步骤如下:
121.s311.控制端服务器判断是否存在状态数据库文件;
122.若否,进入步骤s312;
123.若是,进入步骤s313;
124.s312.控制端服务器创建状态数据库、集中供电状态数据库文件夹和一个空的执行数据库;
125.s323.控制端服务器清空已存在的状态数据库文件,创建集中供电状态数据库文件夹和一个空的执行数据库。
126.在某些实施例中,如图3所示,步骤s34具体步骤如下:
127.s341.控制端服务器判断待测节点开关机状态;
128.若是开机状态,进入步骤s342;
129.若是关机状态,进入步骤s343;
130.若是通信失败状态,进入步骤s346;
131.s342.控制端服务器创建on标识符,并写入以该待测节点对应的pdu供电接口命名的状态文件,再将上次的状态标识符覆盖,本次扫描结束,进入步骤s4;此处的设置是当出现待测节点在开机状态始终未能进入关机状态这种情况能够被保留下来故障现场,以便后续手动分析;状态文件名称要以该节点对应的pdu供电接口号来命名,是为了确保非集中供电的每个待测节点对应的pdu供电接口号是唯一的;
132.s343.控制端服务器判断是否存在以该节点对应的pdu供电接口号命名的状态数据库文件夹;
133.若是,进入步骤s344;
134.若否,进入步骤s345;
135.s344.控制端服务器创建off标识符,并写入以该待测节点对应的pdu供电接口命名的状态文件,将该待测节点接入的pdu供电接口号写入执行数据库,本次扫描结束,进入步骤s4;
136.s345.控制端服务器判断上次存储的以该节点对应的pdu供电接口号命名的状态数据库文件夹中待测节点状态是否为开机状态;
137.若是,则将该待测节点接入的pdu供电接口号写入执行数据库,本次扫描结束,进入步骤s4;
138.若否,本次扫描结束,进入步骤s4;此种情形下选择对该待测节点不做上下电的处理,是因为若该待测节点是处于宕机、bmc挂死等故障时能够保留故障现场;
139.s346.控制端服务器将unknown标识符和日期时间戳累加写入以该待测节点对应
的pdu供电接口号命名的文件,进入步骤s4;该待测节点若每次扫描都扫描不到状态,则需要记录异常时间点以便后期基于故障触发的时间点分析。
140.控制端服务器通过ipmitool对非集中供电的待测节点bmc带外进行一次扫描,按如下规则处理扫描结果;
141.如果扫描到待测节点处于开机状态,以图6中第一行的待测节点为例,则将on标识符创建并写入以该待测节点对应的pdu供电接口号命名的状态文件如图6中“1”所示,并在上一次的状态标识符存在时,将其覆盖,本次扫描结束;
142.如果扫描到待测节点处于关机状态,以图6中第二行的待测节点为例,再通过检查状态数据库不存在以该待测节点对应的pdu供电接口号命名的文件来判断本次是首次测试,那么将off标识符创建并写入以该待测节点对应的pdu供电接口号命名的状态文件如图6中“2,3”所示,同时将该待测节点接入的pdu供电接口号(2,3)写入执行数据库,本次扫描结束;
143.如果在以后的循环扫描到待测节点处于关机状态时,由于第一次扫描已经创建了以该节点对应的pdu供电接口号命名的文件,文件中存放的状态标识符可能是off可能是on也可能是unknown,如果状态标识符不为on则本次扫描结束不再继续执行.反之状态标识符为on则认为节点上一循环已成功开机,本循环测试则将该待测节点接入的pdu供电接口号写入执行数据库,本次扫描结束;
144.如果扫描不到待测节点处于何种状态,则将unknown标识符和日期时间戳累加创建并写入以该待测节点对应的pdu供电接口号命名的状态文件,本次扫描结束。
145.在某些实施例中,如图4所示,步骤s35具体步骤如下:
146.s351.控制端服务器判断待测节点所在集中供电群组是否存在关机状态待测节点;
147.若是,进入步骤s352;
148.若否,进入步骤s354;
149.s352.控制端服务器将集中供电标识、该待测节点bmc ip地址以及off标识符写入以该节点对应的bmc ip地址命名的状态文件,存放到集中供电状态数据库文件夹中,本次扫描结束;
150.s353.控制端服务器检查待测节点数据库中属于同一集中供电群组的待测节点数量,再检查集中供电数据库文件夹中属于同一集中供电群组的待测节点处于关机状态的数量,判断二者是否相等;
151.若是,将该集中供电群组中任意待测节点对应的pdu供电节点号写入执行数据,进入步骤s4;
152.若否,则判定该集中供电群组中仍然有待测节点未关机,本次扫描结束,进入步骤s4;
153.s354.控制端服务器将集中供电标识、该待测节点bmc ip地址以及on标识符写入以该节点对应的bmc ip地址命名的状态文件,存放到集中供电状态数据库文件夹中,本次扫描结束,进入步骤s4。
154.在对所有集中供电节点通过ipmitool对bmc带外进行一次状态扫描后,按如下的规则进行处理扫描结果:
155.如果该待测节点,以图6中第4行任一节点为例,不处于关机状态,则强制认为该待测节点所在的集中供电群组为开机状态,并将该待测节点的集中供电标识符group1、bmc ip地址192.168.1.3以及on标识符创建并写入以该待测节点对应的bmc ip(192.168.1.3)命名的文件,存储到集中供电状态数据库中,本次扫描结束;
156.如果该待测节点,以图6中第5,6行节点为例,处于关机状态,则暂且认为该待测节点所在的集中供电群组为关机状态,并将该节点的集中供电标识符group1、bmc ip地址192.168.1.4和192.168.1.5以及on标识符分别创建并写入192.168.1.4文件和192.168.1.5文件,都存储到集中供电状态数据库中。然后启动对比判断,首先检查待测节点数据库里属于同一集中供电群组group1的节点数量为3,然后检查集中供电状态数据库中属于group1的待测节点处于关机状态的数量,当前为2,(因为192.168.1.3是on状态),最后将两者的值进行对比,3不等于2,则不作处理,本次扫描结束;否则,如果192.168.1.3文件中存储的也是off状态标识符,那么3等于3,则将任一待测节点的pdu供电接口号写入执行数据库。
157.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1