基于OSES的SAS链路测试方法、平台、设备、介质与流程

文档序号:31206576发布日期:2022-08-20 02:44阅读:175来源:国知局
基于OSES的SAS链路测试方法、平台、设备、介质与流程
基于oses的sas链路测试方法、平台、设备、介质
技术领域
1.本发明涉及存储系统测试技术领域,具体涉及基于oses的sas链路测试方法、平台、设备、介质。


背景技术:

2.一般的集中式存储设备包含两个控制器,每个控制器分别包括前端卡以及后端卡,前端卡可以是以太网卡、fc卡等,用于连接前端主机接收数据;后端卡多为12gb的sas(serial attached scsi即串行连接小型计算机系统接口scsi)卡,通过sas线连接多个jbod,每个jbod(just a bunch of disks,磁盘簇)。控制器两两冗余,支持单点容错,可以实现控制器的高可用,每个控制器分别连接后端jbod,支持串联和并联(见下图1),允许一半链路失效且系统仍能提供业务。为了保证该系统的相关功能的正常运行,相应的验收测试工作也必不可少。
3.ses(scsi enclosure services)是t10技术委员会制定的用于机箱管理的标准。目前,集中式存储设备及jbod是存储领域中一类重要的存储设备。jbod是在一个底板上安装的带有多个磁盘驱动器的存储设备,大都使用ses协议用于机箱管理。oses是一种固件,全名:organic scsi enclosure service(“有机的”scsi机箱管理服务程序),是基于ses协议开发的。
4.目前集中式存储设备和jbod均分为上控制器和下控制器,集中式存储设备每个控制器有两个板载sas端口,jbod每个控制器有1个输入端口和1个输出端口。sas线缆连线规则是存储设备上控制器任意sas端口和jbod上控制器输入端口连接,存储设备下控制器任意sas端口和jbod下制器输入端口连接;若有jbod串联,则上一级jbod输出端口与下一级jbod输入端口连接。测试存储设备和jbod sas链路的方法一般是去实验室手动拔插sas,触发相应的告警信息,然后观察测试结果。手动测试时操作复杂、耗时较长,效率较低。


技术实现要素:

5.目前集中式存储设备和jbod均分为上控制器和下控制器,集中式存储设备每个控制器有两个板载sas端口,jbod每个控制器有1个输入端口和1个输出端口。sas线缆连线规则是存储设备上控制器任意sas端口和jbod上控制器输入端口连接,存储设备下控制器任意sas端口和jbod下制器输入端口连接;若有jbod串联,则上一级jbod输出端口与下一级jbod输入端口连接。测试存储设备和jbod sas链路的方法一般是去实验室手动拔插sas,触发相应的告警信息,然后观察测试结果。手动测试时操作复杂、耗时较长,效率较低。因此本文提出了一种基于oses的存储设备与后端磁盘阵列(jbod)sas链路自动化测试方法。
6.本发明的技术方案是:
7.第一方面,本发明技术方案提供一种基于oses的sas链路测试方法,应用于测试平台,所述平台包括存储操作系统,所述存储操作系统包括机箱管理模块,机箱管理模块通过oses系统与机箱硬件连接,所述方法包括如下步骤:
8.机箱管理模块向oses发送控制命令;
9.oses通过对应命令更改机箱的硬件信息进行故障注入;
10.机箱管理模块获取到硬件信息与发送的控制命令信息一致时,触发相应类型的告警并生成告警日志信息;
11.获取告警日志信息的错误码;
12.将获取的错误码与对应的故障注入方法进行比对判断,并记录判断结果到日志测试文件;
13.输出测试日志文件。
14.优选地,机箱管理模块向oses发送控制命令的步骤之前包括:
15.获取机箱id生成机箱id列表;
16.将故障注入方法与对应的错误码生成测试列表。
17.优选地,机箱管理模块向oses发送控制命令的步骤包括:
18.遍历机箱列表选择机箱id,按照测试列表的测试内容,向oses发送控制命令。
19.优选地,将获取的错误码与对应的故障注入方法进行比对判断,并记录判断结果到日志测试文件的步骤之后还包括:
20.当测试列表遍历完成后,判断机箱列表测试内容是否完成;
21.机箱列表遍历完成,测试结束,否则,继续遍历下一个机箱id。
22.优选地,按照测试列表的测试内容,向oses发送控制命令的步骤中控制命令包括禁用sas端口命令、启用sas端口命令、修改sas端口速率命令、禁用sas端口且设定时间后再启用该sas端口命令、调换上控、下控的sas地址命令、控制器关闭命令、修改输入、输出端口的sas地址命令。
23.优选地,将获取的错误码与对应的故障注入方法进行比对判断,并记录判断结果到日志测试文件的步骤包括:
24.创建一个存放测试成功的日志文件和一个存放测试失败的日志文件;
25.将获取的错误码与对应的故障注入方法进行比对判断;
26.当错误码与对应的故障注入方法一致时,测试成功,将结果存入测试成功的日志文件;否则,将结果存入测试失败的日志文件。
27.第二方面,本发明技术方案提供一种基于oses的sas链路测试平台,所述平台包括存储操作系统,所述存储操作系统包括机箱管理模块,机箱管理模块通过oses系统连接有机箱硬件;
28.机箱管理模块,用于向oses发送控制命令;oses更改完硬件信息后获取到硬件信息与发送的控制命令信息一致时,触发相应类型的告警并生成告警日志信息;获取告警日志信息的错误码;将获取的错误码与对应的故障注入方法进行比对判断,并记录判断结果到日志测试文件;输出测试日志文件;
29.oses,用于通过对应命令更改机箱的硬件信息进行故障注入。
30.优选地,机箱管理模块设置有测试脚本,测试脚本包括指令发送单元、信息获取比对单元、触发告警单元、错误码处理单元、输出单元;
31.指令发送单元,用于向oses发送控制命令;
32.信息获取比对单元,用于获取更改后的硬件信息,并将获取的硬件信息与发送的
控制命令信息进行比对;
33.触发告警单元,用于当信息获取比对单元输出信息一致时,触发相应类型的告警并生成告警日志信息;
34.错误码处理单元,用于获取告警日志信息的错误码;将获取的错误码与对应的故障注入方法进行比对判断,并记录判断结果到日志测试文件;
35.输出单元,用于输出测试日志文件。
36.优选地,指令发送单元发送的控制命令包括禁用sas端口命令、启用sas端口命令、修改sas端口速率命令、禁用sas端口且设定时间后再启用该sas端口命令、调换上控、下控的sas地址命令、控制器关闭命令、修改输入、输出端口的sas地址命令。
37.优选地,错误码处理单元包括日志文件创建子模块、错误码比对子模块、记录执行子模块;
38.日志文件创建子模块,用于创建一个存放测试成功的日志文件和一个存放测试失败的日志文件;
39.错误码比对子模块,用于将获取的错误码与对应的故障注入方法进行比对判断;
40.记录执行子模块,用于当错误码与对应的故障注入方法一致时,测试成功,将结果存入测试成功的日志文件;否则,将结果存入测试失败的日志文件。
41.第三方面,本发明技术方案还提供一种电子设备,所述电子设备包括:
42.至少一个处理器;以及,
43.与所述至少一个处理器通信连接的存储器;其中,
44.存储器存储有可被至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的基于oses的sas链路测试方法。
45.第四方面,本发明技术方案还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如第一方面所述的基于oses的sas链路测试方法。
46.从以上技术方案可以看出,本发明具有以下优点:本文提出的基于oses的存储设备与后端扩展柜(jbod)sas链路自动化测试方法,可以提供故障注入,输出并判断测试结果,可以达到提升测试工作效率、提高产品稳定性的目的。
47.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
48.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
49.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
50.图1是本发明一个实施例的方法的示意性流程图。
51.图2是本发明一个实施例的平台的示意性框图。
具体实施方式
52.一般的集中式存储设备包含两个控制器,每个控制器分别包括前端卡以及后端卡,前端卡可以是以太网卡、fc卡等,用于连接前端主机接收数据;后端卡多为12gb的sas(serial attached scsi即串行连接小型计算机系统接口scsi)卡,通过sas线连接多个jbod,每个jbod(just a bunch of disks,磁盘簇)。控制器两两冗余,支持单点容错,可以实现控制器的高可用,每个控制器分别连接后端jbod,支持串联和并联(见下图1),允许一半链路失效且系统仍能提供业务。为了保证该系统的相关功能的正常运行,相应的验收测试工作也必不可少。
53.目前集中式存储设备和jbod均分为上控制器和下控制器,集中式存储设备每个控制器有两个板载sas端口,jbod每个控制器有1个输入端口和1个输出端口。sas线缆连线规则是存储设备上控制器任意sas端口和jbod上控制器输入端口连接,存储设备下控制器任意sas端口和jbod下制器输入端口连接;若有jbod串联,则上一级jbod输出端口与下一级jbod输入端口连接。测试存储设备和jbod sas链路的方法一般是去实验室手动拔插sas,触发相应的告警信息,然后观察测试结果。手动测试时操作复杂、耗时较长,效率较低。基于上述问题本文提出一种基于oses的存储设备与后端扩展柜(jbod)sas链路自动化测试方法,可以提供故障注入,输出测试结果,以达到提升测试工作效率、提高产品稳定性的目的。为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
54.oses全名:organic scsi enclosure service(“有机的”scsi机箱管理服务程序)。oses属于固件,与mcs(存储设备的操作系统)的en模块关系紧密,是介于“机箱硬件”和“mcs的en软件处理”之间的纽带。mcs是集中式存储设备的软件操作系统,en是mcs下的机箱管理模块。
55.ses,scsi enclosure services,scsi机箱管理服务;
56.scsi,small computer system interface,小型计算机系统接口;
57.sas,serial attached scsi,串行连接小型计算机系统接口;
58.jbod,just a bunch of disks,磁盘簇。
59.如图1所示,本发明实施例提供一种基于oses的sas链路测试方法,应用于测试平台,所述平台包括存储操作系统,所述存储操作系统包括机箱管理模块,机箱管理模块通过oses系统与机箱硬件连接,所述方法包括如下步骤:
60.步骤1:机箱管理模块向oses发送控制命令;
61.需要说明的是,en与oses之间,以ses page页的方式传递,即每个page有特定的指令码和数据组合格式;en作为host,oses作为target,en向oses做控制和发送信息,分两大类信息:发送控制信息:send diagnostic page和接收状态信息:receive diagnostic;
62.步骤2:oses通过对应命令更改机箱的硬件信息进行故障注入;
63.需要说明的是,在存储mcs系统下执行lsenclosure,可以查看对应设备的机箱id;然后按照如下指令连接对应机箱(存储和jbod均可连接):上控:pl_osescli

e(id)-p0;下控:pl_osescli-e(id)

p1(备注:p0为上控,p1为下控);连接之后,可进行相应的操作:
64.1、读:/sre/read[机箱id][sas端口地址];
[0065]
2、写(修改):/sre/write[机箱id][sas端口地址];
[0066]
3、禁用sas端口:/sre/write[机箱id][sas端口地址]-status off;
[0067]
4、启用sas端口:/sre/write[机箱id][sas端口地址]-status on;
[0068]
5、修改sas端口速率:/sre/write[机箱id][sas端口地址]

speed[速度];
[0069]
步骤3:机箱管理模块获取到硬件信息与发送的控制命令信息一致时,触发相应类型的告警并生成告警日志信息;
[0070]
en与oses之间,以ses page页的方式传递;即每个page有特定的指令码和数据组合格式。
[0071]
步骤4:获取告警日志信息的错误码;
[0072]
步骤5:将获取的错误码与对应的故障注入方法进行比对判断,并记录判断结果到日志测试文件;将链路测试点、错误码和故障注入方法建立对应表,如表1所示;
[0073]
表1
[0074][0075]
步骤6:输出测试日志文件。
[0076]
需要说明的是,机箱管理模块向oses发送控制命令的步骤之前包括:
[0077]
获取机箱id生成机箱id列表;
[0078]
将故障注入方法与对应的错误码生成测试列表。
[0079]
相应的,机箱管理模块向oses发送控制命令的步骤包括:
[0080]
遍历机箱列表选择机箱id,按照测试列表的测试内容,向oses发送控制命令。当测试列表遍历完成后,判断机箱列表测试内容是否完成;机箱列表遍历完成,测试结束,否则,继续遍历下一个机箱id。
[0081]
上述的测试过程中,按照测试列表的测试内容,向oses发送控制命令的步骤中控制命令包括禁用sas端口命令、启用sas端口命令、修改sas端口速率命令、禁用sas端口且设定时间后再启用该sas端口命令、调换上控、下控的sas地址命令、控制器关闭命令、修改输入、输出端口的sas地址命令。
[0082]
在有些实施例中,步骤5中,将获取的错误码与对应的故障注入方法进行比对判断,并记录判断结果到日志测试文件的步骤包括:
[0083]
步骤51:创建一个存放测试成功的日志文件和一个存放测试失败的日志文件;
[0084]
步骤52:将获取的错误码与对应的故障注入方法进行比对判断;
[0085]
步骤53:当错误码与对应的故障注入方法一致时,测试成功,将结果存入测试成功的日志文件;否则,将结果存入测试失败的日志文件。
[0086]
使用脚本进行日志收集及判断是否测试成功,具体如下:
[0087][0088]
[0089][0090]
存储操作系统mcs下的en模块通过脚本向oses发送控制命令,oses通过对应命令更改存储控制柜和jbod的sas地址或者其他信息,然后en模块获取到硬件信息改变,触发不同类型的告警并记录错误码信息生成日志,最后通过脚本将上述日志信息判断相应测试点(详见表1)是否测试通过,自动完成sas链路的相关测试工作,避免了去实验室手动进行相关测试点的测试,大大提高了测试效率。
[0091]
如图2所示,本发明实施例提供一种基于oses的sas链路测试平台,所述平台包括存储操作系统,所述存储操作系统包括机箱管理模块,机箱管理模块通过oses系统连接有机箱硬件;
[0092]
机箱管理模块,用于向oses发送控制命令;oses更改完硬件信息后获取到硬件信息与发送的控制命令信息一致时,触发相应类型的告警并生成告警日志信息;获取告警日志信息的错误码;将获取的错误码与对应的故障注入方法进行比对判断,并记录判断结果到日志测试文件;输出测试日志文件;
[0093]
oses,用于通过对应命令更改机箱的硬件信息进行故障注入。
[0094]
在有些实施例中,机箱管理模块设置有测试脚本,测试脚本包括指令发送单元、信息获取比对单元、触发告警单元、错误码处理单元、输出单元;
[0095]
指令发送单元,用于向oses发送控制命令;指令发送单元发送的控制命令包括禁
用sas端口命令、启用sas端口命令、修改sas端口速率命令、禁用sas端口且设定时间后再启用该sas端口命令、调换上控、下控的sas地址命令、控制器关闭命令、修改输入、输出端口的sas地址命令。
[0096]
信息获取比对单元,用于获取更改后的硬件信息,并将获取的硬件信息与发送的控制命令信息进行比对;
[0097]
触发告警单元,用于当信息获取比对单元输出信息一致时,触发相应类型的告警并生成告警日志信息;
[0098]
错误码处理单元,用于获取告警日志信息的错误码;将获取的错误码与对应的故障注入方法进行比对判断,并记录判断结果到日志测试文件;
[0099]
输出单元,用于输出测试日志文件。
[0100]
在有些实施例中,错误码处理单元包括日志文件创建子模块、错误码比对子模块、记录执行子模块;
[0101]
日志文件创建子模块,用于创建一个存放测试成功的日志文件和一个存放测试失败的日志文件;
[0102]
错误码比对子模块,用于将获取的错误码与对应的故障注入方法进行比对判断;
[0103]
记录执行子模块,用于当错误码与对应的故障注入方法一致时,测试成功,将结果存入测试成功的日志文件;否则,将结果存入测试失败的日志文件。
[0104]
本发明实施例还提供一种电子设备,所述电子设备包括:处理器、通信接口、存储器和总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信。总线可以用于电子设备与传感器之间的信息传输。处理器可以调用存储器中的逻辑指令,以执行如下方法:步骤1:机箱管理模块向oses发送控制命令;步骤2:oses通过对应命令更改机箱的硬件信息进行故障注入;步骤3:机箱管理模块获取到硬件信息与发送的控制命令信息一致时,触发相应类型的告警并生成告警日志信息;步骤4:获取告警日志信息的错误码;步骤5:将获取的错误码与对应的故障注入方法进行比对判断,并记录判断结果到日志测试文件;步骤6:输出测试日志文件。
[0105]
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0106]
本发明实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述方法实施例所提供的方法,例如包括:步骤1:机箱管理模块向oses发送控制命令;步骤2:oses通过对应命令更改机箱的硬件信息进行故障注入;步骤3:机箱管理模块获取到硬件信息与发送的控制命令信息一致时,触发相应类型的告警并生成告警日志信息;步骤4:获取告警日志信息的错误码;步骤5:将获取的错误码与对应的故障注入方法进行比对判断,并记录判断结果到日志测试文件;步骤6:
输出测试日志文件。
[0107]
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1