硬盘槽位识别方法、装置、计算机设备及存储介质与流程

未命名 10-19 阅读:87 评论:0


1.本技术涉及硬盘的槽位信息管理技术领域,具体涉及硬盘槽位识别方法、装置、计算机设备及存储介质。


背景技术:

2.在当前服务器的大规模生产阶段,服务器背板内硬盘的个数也越来越多,当用户需要查询硬盘的硬盘槽位时,要求可以快速且准确的向用户展示硬盘的硬盘槽位,这对服务器背板内各个硬盘的硬盘槽位的识别与管理提出更高的要求。
3.目前硬盘的硬盘信息(bus:device:function,bdf)会以预设的对应关系印在服务器的背板上从而形成背板上的丝印信息,在服务器启动时,服务器的操作系统会将硬盘的bdf与硬盘的盘符进行关联,并将盘符和bdf之间的关联关系进行存储。在需要查询某硬盘的硬盘槽位(slot)时,传统的硬盘槽位方法主要是人工通过盘符和bdf之间的关联关系,找到该硬盘的bdf,而后到服务器背板上查看丝印信息,找到该硬盘的硬盘槽位。
4.但传统的硬盘槽位方法需要人工查找盘符对应的bdf,以从不易读的丝印信息中判断硬盘的硬盘槽位,整个过程不仅耗时长还容易出错;此外,当服务器启动过程中背板上的硬盘未插满,或者,在服务器的使用过程中有多次热插拔硬盘的情况时,盘符与bdf的关联关系可能会错乱,会严重降低硬盘槽位识别的准确性。因此,如何提高硬盘槽位识别的准确性以及效率,已成为目前亟需解决的技术问题。


技术实现要素:

5.有鉴于此,本技术提供了一种硬盘槽位识别方法、装置、计算机设备及存储介质,以解决如何提高硬盘槽位识别的准确性以及效率的问题。
6.第一方面,本技术提供了一种硬盘槽位识别方法,所述方法由基板管理控制器执行,所述方法包括:
7.当监测到针对目标硬盘的硬盘槽位的触发操作时,获取目标硬盘的序列号,并确定目标硬盘的序列号对应的预设通信地址;
8.根据服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系,以及目标硬盘的序列号对应的预设通信地址,确定与目标硬盘的序列号对应的硬盘槽位。
9.在上述技术方案中,当基板管理控制器监测到针对目标硬盘的硬盘槽位的触发操作时,自动获取目标硬盘的序列号,并确定目标硬盘的序列号对应的预设通信地址,以保证每次确定的目标硬盘的序列号对应的预设通信地址,都是最新的预设通信地址,避免目标硬盘的序列号与预设通信地址对应关系错乱的情况,保证目标硬盘的序列号对应的预设通信地址的准确性;进而自动以目标硬盘的序列号对应的预设通信地址为中转,根据在服务器设计阶段就固定好的服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系,以及准确的目标硬盘的序列号对应的预设通信地址,确定目标硬盘的序列号对应的硬盘槽位,保证了确定目标硬盘的序列号对应的硬盘槽位时,硬盘槽位的准确性,避免了人工查找
硬盘的bdf,进而依据丝印信息确定硬盘槽位的方式,大大提高了确定硬盘序列号的对应硬盘槽位的效率以及准确性。
10.在一些可选的实施例中,当监测到针对目标硬盘的硬盘槽位的触发操作时,获取目标硬盘的序列号,并确定目标硬盘的序列号对应的预设通信地址之前,所述方法还包括:
11.利用基板管理控制器与每一个安装在服务器背板上的硬盘之间的预设数据传输通道对每一个安装在服务器背板上的硬盘进行巡检,以识别每一个安装在服务器背板上的硬盘的序列号;
12.将安装在服务器背板上的第一硬盘与基板管理控制器之间的预设数据传输通道对应的预设通信地址,确定为第一硬盘的序列号对应的预设通信地址,其中,第一硬盘为安装在服务器背板上的任一个硬盘;
13.将每一个硬盘的序列号,以及每一个硬盘的序列号对应的预设通信地址进行关联存储,得到每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系。
14.在上述技术方案中,利用基板管理控制器与每一个安装在服务器背板上的硬盘之间的预设数据传输通道对每一个安装在服务器背板上的硬盘进行巡检,以识别每一个安装在服务器背板上的硬盘的序列号,进而将第一硬盘与基板管理控制器之间的预设数据传输通道对应的预设通信地址,确定为第一硬盘的序列号对应的预设通信地址。以巡检操作实现了定时识别每一个安装在服务器背板上的硬盘的序列号,并更新每一个硬盘的序列号对应的预设通信地址,考虑了服务器使用过程中,插入或拔出硬盘时导致的硬盘序列号与预设通信地址不再对应的情况,进而将更新后的每一个硬盘的序列号,以及每一个硬盘的序列号对应的预设通信地址进行关联存储,以保证每次巡检时都能得到最新的每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,便于后续在监测到针对目标硬盘的硬盘槽位的触发操作时,可以依据最新的每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,确定目标硬盘的序列号对应的准确的预设通信地址,从而提高硬盘识别的准确性。
15.在一些可选的实施例中,当触发操作为接收到服务器发送的包括目标硬盘的序列号的第一硬盘槽位查询命令时,当监测到针对目标硬盘的硬盘槽位的触发操作时,获取目标硬盘的序列号,并确定目标硬盘的序列号对应的预设通信地址,包括:
16.从第一硬盘槽位查询命令中,提取目标硬盘的序列号;
17.根据每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,以及目标硬盘的序列号,确定目标硬盘的序列号对应的预设通信地址。
18.在上述技术方案中,当接收到服务器发送的包括目标硬盘的序列号的第一硬盘槽位查询命令,就确定监测到针对目标硬盘的硬盘槽位的触发操作,进而从第一硬盘槽位查询命令中提取目标硬盘的序列号,进而根据每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,以及目标硬盘的序列号,确定目标硬盘的序列号对应的预设通信地址,以便于后续确定目标硬盘的序列号对应的硬盘槽位,实现了基板管理控制器对第一硬盘槽位查询命令的处理操作,不必对硬件做出改动也无需人工参与就可以自动获取目标硬盘的序列号对应的预设通信地址,进而在提高了硬盘槽位识别的效率的同时,不增加硬件成本。
19.在一些可选的实施例中,当触发操作为目标硬盘插入至服务器的背板时,当监测
到针对目标硬盘的硬盘槽位的触发操作时,获取目标硬盘的序列号,并确定目标硬盘的序列号对应的预设通信地址,包括:
20.利用基板管理控制器与目标硬盘之间的预设数据传输通道,识别目标硬盘的序列号;
21.以及,将基板管理控制器与目标硬盘之间的预设数据传输通道对应的预设通信地址确定为与目标硬盘的序列号对应的预设通信地址。
22.在上述技术方案中,当监测到针对目标硬盘的硬盘槽位的触发操作,且触发操作为目标硬盘插入至服务器的背板时,基板管理控制会基板管理控制器与目标硬盘之间的预设数据传输通道,识别目标硬盘的序列号,进而将基板管理控制器与目标硬盘之间的预设数据传输通道对应的预设通信地址确定为与目标硬盘的序列号对应的预设通信地址。实现了实时监测服务器的背板上硬盘的变化,并在监测到服务器的背板上有硬盘插入时,获取插入的硬盘的序列号,以及该序列号对应的预设通信地址,以便于后续确定插入的硬盘的序列号对应的硬盘槽位,使得在确定硬盘的序列号对应的硬盘槽位时,可以不受限于服务器启动时的背板上安装的硬盘的数量以及服务器使用过程中硬盘热插拔的影响,提高了硬盘槽位识别的准确性。
23.在一些可选的实施例中,当触发操作为目标硬盘拔出服务器的背板时,当监测到针对目标硬盘的硬盘槽位的触发操作时,获取目标硬盘的序列号,并确定目标硬盘的序列号对应的预设通信地址,包括:
24.将目标硬盘与基板管理控制器之间的预设数据传输通道对应的预设通信地址,确定为目标硬盘对应的预设通信地址;
25.根据每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,以及目标硬盘对应的预设通信地址,确定目标硬盘对应的预设通信地址对应的序列号。
26.在上述技术方案中,当监测到针对目标硬盘的硬盘槽位的触发操作,且触发操作为目标硬盘拔出服务器的背板时,基板管理控制会将目标硬盘与基板管理控制器之间的预设数据传输通道对应的预设通信地址,确定为目标硬盘对应的预设通信地址,进而根据每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,以及目标硬盘对应的预设通信地址,确定目标硬盘对应的预设通信地址对应的序列号。实现了实时监测服务器的背板上硬盘的变化,并在监测到服务器的背板上有硬盘拔出时,获取拔出的硬盘对应的预设通信地址,以及该预设通信地址对应的序列号,以便于后续确定拔出的硬盘的序列号对应的硬盘槽位,使得在确定硬盘的序列号对应的硬盘槽位时,可以不受限于服务器启动时的背板上安装的硬盘的数量以及服务器使用过程中硬盘热插拔的影响,提高了硬盘槽位识别的准确性。
27.在一些可选的实施例中,其特征在于,在根据服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系,以及目标硬盘的序列号对应的预设通信地址,确定与目标硬盘的序列号对应的硬盘槽位之后,所述方法还包括:
28.将目标硬盘的序列号,以及目标硬盘的序列号对应的硬盘槽位进行关联存储,得到硬盘的序列号与硬盘槽位之间的映射关系。
29.在上述技术方案中,基板管理控制器在每一次确定目标硬盘的序列号对应的硬盘槽位后,都会将目标硬盘的序列号,以及目标硬盘的序列号对应的硬盘槽位进行关联存储,
得到硬盘的序列号与硬盘槽位之间的映射关系,便于后续需要查询某硬盘的序硬盘槽位时,可以直接依据该硬盘的序列号从硬盘的序列号与硬盘槽位之间的映射关系中进行查找,不必在查询某硬盘的序硬盘槽位时,都重复确定该硬盘的序列号对应的预设通信地址,也不再需要根据服务器中背板上每一个硬盘槽位与所述预设通信地址之间的映射关系,以及该硬盘的序列号对应的预设通信地址,确定与该硬盘的序列号对应的硬盘槽位,进一步加快了硬盘槽位识别的效率。
30.在一些可选的实施例中,在将目标硬盘的序列号,以及目标硬盘的序列号对应的硬盘槽位进行关联存储,得到硬盘的序列号与硬盘槽位之间的映射关系之后,方法还包括:
31.监测服务器背板上硬盘的插入以及拔出操作;
32.当监测到第二硬盘拔出服务器背板时,获取第二硬盘的序列号,以及第二硬盘的序列号对应的硬盘槽位;
33.将第二硬盘的序列号,以及第二硬盘的序列号对应的硬盘槽位,从硬盘的序列号与硬盘槽位之间的映射关系中删除;
34.或者,当监测到第三硬盘插入至服务器背板时,获取第三硬盘的序列号,以及第三硬盘的序列号对应的硬盘槽位;
35.将第三硬盘的序列号,以及第三硬盘的序列号对应的硬盘槽位,添加至硬盘的序列号与硬盘槽位之间的映射关系中。
36.在上述技术方案中,在基板管理控制器得到硬盘的序列号与硬盘槽位之间的映射关系后,还会在监测服务器背板上硬盘插入以及拔出操作,以将获取得插入服务器背板上的硬盘的序列号,以及该硬盘的序列号对应的硬盘槽位添加至已存储的硬盘的序列号与硬盘槽位之间的映射关系中;将获取得拔出服务器背板上的硬盘的序列号,以及该硬盘的序列号对应的硬盘槽位从已存储的硬盘的序列号与硬盘槽位之间的映射关系中删除,实现当服务器背板上有硬盘插入或拔出时,实时对硬盘的序列号与硬盘槽位之间的映射关系进行更新维护操作,避免由于硬盘插入或拔出后更新不及时导致的硬盘的序列号与硬盘槽位之间映射关系错乱的情况,从而保证后续对硬盘槽位识别的准确性。
37.第二方面,本技术提供了一种硬盘槽位识别装置,所述装置运行在基板管理控制器上,所述装置包括:
38.获取模块,用于当监测到针对目标硬盘的硬盘槽位的触发操作时,获取目标硬盘的序列号,并确定目标硬盘的序列号对应的预设通信地址;
39.确定模块,用于根据服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系,以及目标硬盘的序列号对应的预设通信地址,确定与目标硬盘的序列号对应的硬盘槽位。
40.第三方面,本技术提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述的硬盘槽位识别方法。
41.第四方面,本技术提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述的硬盘槽位识别方法。
附图说明
42.为了更清楚地说明本技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
43.图1是根据本技术实施例的硬盘槽位识别系统的结构示意图;
44.图2是根据本技术实施例的一种硬盘槽位识别方法的流程示意图;
45.图3是根据本技术实施例的再一种硬盘槽位识别方法的流程示意图;
46.图4是根据本技术实施例的又一种硬盘槽位识别方法的流程示意图;
47.图5是一种应用场景中在硬盘槽位识别之前基板管理控制器以及服务器的工作流程;
48.图6是根据本技术实施例的再一种硬盘槽位识别方法的流程示意图;
49.图7是另一种应用场景中硬盘槽位识别方法的具体工作流程图;
50.图8是根据本技术实施例的一种硬盘槽位识别装置的结构框图;
51.图9是本技术实施例的计算机设备的硬件结构示意图。
具体实施方式
52.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
53.应理解,在本技术的实施例中提到的“指示”可以是直接指示,也可以是间接指示,还可以是表示具有关联关系。举例说明,a指示b,可以表示a直接指示b,例如b可以通过a获取;也可以表示a间接指示b,例如a指示c,b可以通过c获取;还可以表示a和b之间具有关联关系。
54.在本技术实施例的描述中,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。
55.本技术实施例中,“预定义”可以通过在设备(例如,包括终端设备和网络设备)中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本技术对于其具体的实现方式不做限定。
56.首先对本技术涉及的术语进行解释,以便于对本技术技术方案的理解,本技术涉及的术语如下:
57.基板管理控制器(baseboard management controlle,bmc):负责服务器硬件的带外管理,硬盘也是其管理的一部分,在服务器设计阶段通常会预留硬盘的数据传输通道给bmc,用于读取硬盘温度、厂商信息、健康信息以及序列号(serial number,sn)等。
58.序列号:每个硬盘都有一个唯一的序列号,该信息是硬盘出厂时固化的,是每个硬盘的身份证号。
59.操作系统(operating system,os):是一组主管并控制计算机操作、运用和运行硬
peripheral interface,spi)地址,本技术实施例以i2c地址为例。目标硬盘可以是基于非易失性内存标准(nonvolatile memory express,nvme)协议的固态硬盘,也可以是基于其他协议,例如,pcie或小型计算机接口(small computer system interface,scsi)协议等的固态硬盘、机械硬盘或混合硬盘。
69.bmc在服务器启动后利用与服务器中其他功能模块连接的接口,例如,热插拔接口以及ipmi等接口,监测针对目标硬盘的硬盘槽位的触发操作,当监测到针对目标硬盘的硬盘槽位的触发操作时,bmc会执行与触发操作相对应的操作指令以获取目标硬盘的sn,进而bmc会在已获取的每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系中查找目标硬盘的sn对应的预设通信地址;或者,当bmc利用基板管理控制器与目标硬盘之间的预设数据传输通道读取目标硬盘的sn时,bmc就将基板管理控制器与目标硬盘之间的预设数据传输通道对应的预设通信地址作为目标硬盘的sn对应的预设通信地址。
70.步骤202,根据服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系,以及目标硬盘的序列号对应的预设通信地址,确定与目标硬盘的序列号对应的硬盘槽位。
71.在服务器启动后,bmc就从cpld中获取服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系,进而在得到目标硬盘的sn对应的预设通信地址后,bmc会以目标硬盘的sn对应的预设通信地址会为基准,在服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系中做匹配检查,当匹配到与目标硬盘的sn对应的预设通信地址完全一致的某个预设通信地址m时,就把该预设通信地址m在每一个硬盘槽位与预设通信地址之间的映射关系中所对应的硬盘槽位确定为目标硬盘sn对应的硬盘槽位。
72.本技术实施例中,当基板管理控制器监测到针对目标硬盘的硬盘槽位的触发操作时,自动获取目标硬盘的序列号,并确定目标硬盘的序列号对应的预设通信地址,以保证每次确定的目标硬盘的序列号对应的预设通信地址,都是最新的预设通信地址,避免目标硬盘的序列号与预设通信地址对应关系错乱的情况,保证目标硬盘的序列号对应的预设通信地址的准确性;进而自动以目标硬盘的序列号对应的预设通信地址为中转,根据在服务器设计阶段就固定好的服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系,以及准确的目标硬盘的序列号对应的预设通信地址,确定目标硬盘的序列号对应的硬盘槽位,保证了确定目标硬盘的序列号对应的硬盘槽位时,硬盘槽位的准确性,避免了人工查找硬盘的bdf,进而依据丝印信息确定硬盘槽位的方式,大大提高了确定硬盘序列号的对应硬盘槽位的效率以及准确性。
73.在一些可选的实施例中,需要在确定硬盘的序列号对应的预设通信地址之前,获取到能够不断更新的每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,以便于保证后续确定的目标硬盘的序列号对应的预设通信地址的准确性,从而提高硬盘槽位识别的准确性,具体如图3所示,图3是本技术实施例的再一种硬盘槽位识别方法的流程示意图,该方法由基板管理控制器执行,基板管理控制器可以是图1中的基板管理控制器120,如图3所示,该方法包括如下步骤:
74.步骤301,利用基板管理控制器与每一个安装在服务器背板上的硬盘之间的预设数据传输通道对每一个安装在服务器背板上的硬盘进行巡检,以识别每一个安装在服务器背板上的硬盘的序列号。
75.在服务器设计阶段,会在服务器背板上的硬盘槽位处预留一些的硬盘的数据传输
通道,也即预设数据传输通道,以便于后续硬盘插入硬盘槽位后可以与bmc进行通信,因此利用bmc与每一个安装在服务器背板上的硬盘之间的预设数据传输通道,bmc就可以按照预设时间间隔定时读取每一个安装在服务器背板上的硬盘的基本信息,从而获得基本信息中硬盘的序列号,并读取bmc与每一个安装在服务器背板上的硬盘之间的预设数据传输通道对应的预设通信地址。预设时间间隔可以自行设置,可以是10分钟也可以是5分钟等,本技术实施例不做具体限制。
76.步骤302,将安装在服务器背板上的第一硬盘与基板管理控制器之间的预设数据传输通道对应的预设通信地址,确定为第一硬盘的序列号对应的预设通信地址。
77.其中,第一硬盘为安装在服务器背板上的任一个硬盘;bmc每次读取每一个安装在服务器背板上的硬盘的序列号时,都会将安装在服务器背板上的第一硬盘与基板管理控制器之间的预设数据传输通道对应的预设通信地址,确定为第一硬盘的序列号对应的预设通信地址,以便于每次都可以更新安装在服务器背板上的第一硬盘的序列号对应的预设通信地址。
78.步骤303,将每一个硬盘的序列号,以及每一个硬盘的序列号对应的预设通信地址进行关联存储,得到每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系。
79.bmc每次都会将每一个硬盘的序列号,以及每一个硬盘的序列号对应的预设通信地址进行关联存储,以便于每次都能得到最新的每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系。
80.可选的,bmc可以以表格的形式记录每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,以便于后续可以快速的确定硬盘的序列号对应的硬盘槽位。
81.bmc利用基板管理控制器与每一个安装在服务器背板上的硬盘之间的预设数据传输通道对每一个安装在服务器背板上的硬盘进行巡检,以识别每一个安装在服务器背板上的硬盘的序列号,进而将第一硬盘与基板管理控制器之间的预设数据传输通道对应的预设通信地址,确定为第一硬盘的序列号对应的预设通信地址。以巡检操作实现了定时识别每一个安装在服务器背板上的硬盘的序列号,并更新每一个硬盘的序列号对应的预设通信地址,考虑了服务器使用过程中,插入或拔出硬盘时导致的硬盘序列号与预设通信地址不再对应的情况,进而将更新后的每一个硬盘的序列号,以及每一个硬盘的序列号对应的预设通信地址进行关联存储,以保证每次巡检时都能得到最新的每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,便于后续在监测到针对目标硬盘的硬盘槽位的触发操作时,可以依据最新的每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,确定目标硬盘的序列号对应的准确的预设通信地址,从而提高硬盘识别的准确性。
82.步骤304,当监测到针对目标硬盘的硬盘槽位的触发操作时,获取目标硬盘的序列号,并确定目标硬盘的序列号对应的预设通信地址。
83.详细请参见图2所示实施例的步骤201,在此不再赘述。
84.可选的,为了提高获取硬盘的序列号对应的预设通信地址的效率以及准确性,从而提高硬盘槽位识别的效率以及准确性,针对不同的触发操作,bmc会执行不同的操作指
令。其中,触发操作可以为目标硬盘插入至服务器的背板,或目标硬盘拔出服务器的背板,或接收到服务器发送的包括目标硬盘的序列号的第一硬盘槽位查询命令。具体的,针对不同的触发操作,步骤304,当监测到针对目标硬盘的硬盘槽位的触发操作时,获取目标硬盘的序列号,并确定目标硬盘的序列号对应的预设通信地址,可以包括以下步骤304a1至步骤304c2:
85.步骤304a1,当触发操作为接收到服务器发送的包括目标硬盘的序列号的第一硬盘槽位查询命令,且监测到针对目标硬盘的硬盘槽位的触发操作时,从第一硬盘槽位查询命令中,提取目标硬盘的序列号。
86.对bmc增加命令处理机制,当bmc接收到服务器发送的包括目标硬盘的序列号的第一硬盘槽位查询命令时,就确定监测到针对目标硬盘的硬盘槽位的触发操作,进而解析第一硬盘槽位查询命令,将第一硬盘槽位查询命令中记录的目标硬盘序列号的参数提取出来,得到目标硬盘的序列号。需要说明的是,bmc解析出第一硬盘槽位查询命令为查询硬盘槽位后会依次进入步骤304a2与步骤305,以完成第一硬盘槽位查询命令。
87.可选的,bmc可以复用与服务器之间的接口,例如,复用ipmi接口,来接收服务器发送的包括目标硬盘的序列号的第一硬盘槽位查询命令,这样在基于bmc识别硬盘槽位时,减少开发工作量,不会增加硬件成本开支,有较好的经济效益。
88.步骤304a2,根据每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,以及目标硬盘的序列号,确定目标硬盘的序列号对应的预设通信地址。
89.bmc会以目标硬盘的sn为基准,在最新得到的每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系中做比配检查,当匹配到与目标硬盘的sn完全一致的某个sn时,就把该sn在每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系中所对应的预设通信地址确定为目标硬盘的sn对应的预设通信地址。
90.当接收到服务器发送的包括目标硬盘的序列号的第一硬盘槽位查询命令,就确定监测到针对目标硬盘的硬盘槽位的触发操作,进而从第一硬盘槽位查询命令中提取目标硬盘的序列号,进而根据每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,以及目标硬盘的序列号,确定目标硬盘的序列号对应的预设通信地址,以便于后续确定目标硬盘的序列号对应的硬盘槽位,实现了基板管理控制器对第一硬盘槽位查询命令的处理操作,不必对硬件做出改动也无需人工参与就可以自动获取目标硬盘的序列号对应的预设通信地址,进而在提高了硬盘槽位识别的效率的同时,不增加硬件成本。
91.步骤304b1,当触发操作为目标硬盘插入至服务器的背板,且监测到针对目标硬盘的硬盘槽位的触发操作时,利用基板管理控制器与目标硬盘之间的预设数据传输通道,识别目标硬盘的序列号。
92.以及,将基板管理控制器与目标硬盘之间的预设数据传输通道对应的预设通信地址确定为与目标硬盘的序列号对应的预设通信地址。
93.硬盘在插入或拔出服务器的背板时,硬盘与服务器中电源连接的热插拔接口的电压会发生变化,bmc通过监测每一个热插拔接口的电压的变化,就可以确定是否有硬盘插入或拔出服务器的背板。当bmc监测到目标硬盘插入至服务器的背板时,基于热插拔接口的电压的变化可以感知到目标硬盘插入的硬盘槽位对应的预设数据传输通道,进而利用基板管理控制器与目标硬盘之间的预设数据传输通道,读取目标硬盘的序列号,并将基板管理控
制器与目标硬盘之间的预设数据传输通道对应的预设通信地址确定为与目标硬盘的序列号对应的预设通信地址。
94.当监测到针对目标硬盘的硬盘槽位的触发操作,且触发操作为目标硬盘插入至服务器的背板时,基板管理控制会基板管理控制器与目标硬盘之间的预设数据传输通道,识别目标硬盘的序列号,进而将基板管理控制器与目标硬盘之间的预设数据传输通道对应的预设通信地址确定为与目标硬盘的序列号对应的预设通信地址。实现了实时监测服务器的背板上硬盘的变化,并在监测到服务器的背板上有硬盘插入时,获取插入的硬盘的序列号,以及该序列号对应的预设通信地址,以便于后续确定插入的硬盘的序列号对应的硬盘槽位,使得在确定硬盘的序列号对应的硬盘槽位时,可以不受限于服务器启动时的背板上安装的硬盘的数量以及服务器使用过程中硬盘热插拔的影响,提高了硬盘槽位识别的准确性。
95.步骤304c1,当触发操作为目标硬盘拔出服务器的背板,且监测到针对目标硬盘的硬盘槽位的触发操作时,将目标硬盘与基板管理控制器之间的预设数据传输通道对应的预设通信地址,确定为目标硬盘对应的预设通信地址。
96.当bmc监测到目标硬盘拔出至服务器的背板时,bmc根据热插拔接口的电压的变化可以感知到目标硬盘插入的硬盘槽位对应的预设数据传输通道,并将目标硬盘与基板管理控制器之间的预设数据传输通道对应的预设通信地址,确定为目标硬盘对应的预设通信地址。
97.步骤304c2,根据每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,以及目标硬盘对应的预设通信地址,确定目标硬盘对应的预设通信地址对应的序列号。
98.bmc会以目标硬盘对应的预设通信地址为基准,在最新得到的每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系中做比配检查,当匹配到与目标硬盘对应的预设通信地址完全一致的某个预设通信地址n时,就把该预设通信地址n在每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系中所对应的序列号确定为目标硬盘的sn。
99.当监测到针对目标硬盘的硬盘槽位的触发操作,且触发操作为目标硬盘拔出服务器的背板时,基板管理控制会将目标硬盘与基板管理控制器之间的预设数据传输通道对应的预设通信地址,确定为目标硬盘对应的预设通信地址,进而根据每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,以及目标硬盘对应的预设通信地址,确定目标硬盘对应的预设通信地址对应的序列号。实现了实时监测服务器的背板上硬盘的变化,并在监测到服务器的背板上有硬盘拔出时,获取拔出的硬盘对应的预设通信地址,以及该预设通信地址对应的序列号,以便于后续确定拔出的硬盘的序列号对应的硬盘槽位,使得在确定硬盘的序列号对应的硬盘槽位时,可以不受限于服务器启动时的背板上安装的硬盘的数量以及服务器使用过程中硬盘热插拔的影响,提高了硬盘槽位识别的准确性。
100.可选的,当触发操作为目标硬盘插入至服务器的背板时,基板管理控制器还可以将获取的目标硬盘的序号、目标硬盘序列号对应的预设通信地址添加到每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系中;或者,当触发操作为目标硬
盘拔出服务器的背板时,基板管理控制器还可以将获取的目标硬盘的序号、目标硬盘序列号对应的预设通信地址从每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系中删除。实现在服务器的背板上的硬盘发生变化时,实时更新每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,使硬盘的序列号与预设通信地址之间的映射关系不会受限于服务器启动时的背板上安装的硬盘的数量以及服务器使用过程中硬盘热插拔等的影响,进而保证基板管理控制器在监测到针对目标硬盘的硬盘槽位的触发操作时,可以获取正确的目标硬盘的序列号对应的预设通信地址,以便于后续获取正确的目标硬盘的序列号对应的硬盘槽位,提高硬盘槽位识别的准确性。
101.步骤305,根据服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系,以及目标硬盘的序列号对应的预设通信地址,确定与目标硬盘的序列号对应的硬盘槽位。
102.详细请参见图2所示实施例的步骤202,在此不再赘述。
103.可选的,bmc在得到目标硬盘的sn对应的预设通信地址后,以目标硬盘的sn对应的预设通信地址会为基准,没有在服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系中匹配到与目标硬盘的sn对应的预设通信地址完全一致的某个预设通信地址m时,bmc会向服务器返回例如,失败、无效值ff、硬盘不存在、硬盘槽位无效或硬盘通信地址无效等用于指示硬盘槽位识别出错的信息,以提醒用户检查服务器中的硬盘。
104.本技术实施例中,在确定硬盘的序列号对应的预设通信地址之前,bmc以巡检操作实现了定时识别每一个安装在服务器背板上的硬盘的序列号,并定时更新每一个硬盘的序列号对应的预设通信地址,考虑了服务器使用过程中插入或拔出硬盘,或者服务器启动时未插满硬盘,但没有及时更新硬盘的序列号,以及硬盘的序列号对应的预设通信地址而导致的硬盘序列号与预设通信地址不再对应的情况,进而将更新后的每一个硬盘的序列号,以及每一个硬盘的序列号对应的预设通信地址进行关联存储,以保证每次巡检时都能得到最新的每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,便于后续在监测到针对目标硬盘的硬盘槽位的触发操作时,可以依据最新的每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,确定目标硬盘的序列号对应的准确的预设通信地址,从而提高硬盘识别的准确性。
105.为了进一步提高硬盘槽位识别的效率,提出如图4所示的本技术实施例的又一种硬盘槽位识别方法的流程示意图,该方法由基板管理控制器执行,基板管理控制器可以是图1中的基板管理控制器120,如图4所示,该方法包括如下步骤:
106.步骤401,当监测到针对目标硬盘的硬盘槽位的触发操作时,获取目标硬盘的序列号,并确定目标硬盘的序列号对应的预设通信地址。
107.详细请参见图3所示实施例的步骤304,在此不再赘述。
108.步骤402,根据服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系,以及目标硬盘的序列号对应的预设通信地址,确定与目标硬盘的序列号对应的硬盘槽位。
109.详细请参见图3所示实施例的步骤305,在此不再赘述。
110.步骤403,将目标硬盘的序列号,以及目标硬盘的序列号对应的硬盘槽位进行关联存储,得到硬盘的序列号与硬盘槽位之间的映射关系。
111.每一次bmc在获取目标硬盘的序列号以及目标硬盘的序列号对应的硬盘槽位之后,都会将目标硬盘的序列号,以及目标硬盘的序列号对应的硬盘槽位进行关联存储,得到
硬盘的序列号与硬盘槽位之间的映射关系并在后续对硬盘的序列号与硬盘槽位之间的映射关系进行维护。
112.可选的,bmc可以以表格的形式记录每一次获取目标硬盘的序列号以及目标硬盘的序列号对应的硬盘槽位,以便于可以更快的确定硬盘的序列号对应的硬盘槽位。
113.基板管理控制器在每一次确定目标硬盘的序列号对应的硬盘槽位后,都会将目标硬盘的序列号,以及目标硬盘的序列号对应的硬盘槽位进行关联存储,得到硬盘的序列号与硬盘槽位之间的映射关系,便于后续需要查询某硬盘的序硬盘槽位时,可以直接依据该硬盘的序列号从硬盘的序列号与硬盘槽位之间的映射关系中进行查找,不必在查询某硬盘的序硬盘槽位时,都重复确定该硬盘的序列号对应的预设通信地址,也不再需要根据服务器中背板上每一个硬盘槽位与所述预设通信地址之间的映射关系,以及该硬盘的序列号对应的预设通信地址,确定与该硬盘的序列号对应的硬盘槽位,进一步加快了硬盘槽位识别的效率。
114.可选的,针对目标硬盘的硬盘槽位的触发操作还可以是服务器启动初始化进程,当触发操作为服务器启动初始化进程时,目标硬盘即为每一个安装在服务器背板上的硬盘。在服务器启动时会进行上电自检(power on self test,post),当bmc监测到post信息时就确定服务器启动初始化进程,继而获取每一个安装在服务器背板上的硬盘的序列号,并确定每一个硬盘的序列号对应的预设通信地址,从而根据服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系,以及每一个硬盘的序列号确定每一个硬盘的序列号对应的硬盘槽位;进而将每一个硬盘的序列号与每一个硬盘的序列号对应的硬盘槽位进行关联存储,得到硬盘的序列号与硬盘槽位之间的映射关系。
115.在服务器启动初始化进程时,基板管理控制器获取每一个安装在服务器背板上的硬盘上的序列号对应的硬盘槽位,并将每一个硬盘的序列号与每一个硬盘的序列号对应的硬盘槽位进行关联存储得到硬盘的序列号与硬盘槽位之间的映射关系,避免传统的硬盘槽位识别方法中服务器对硬盘的盘符以及bdf之间映射关系的确定,从而避免传统的硬盘槽位识别方法中由于当服务器启动过程中背板上的硬盘未插满时导致的盘符与bdf的映射关系错乱的情况,从而提高硬盘槽位识别的准确性。
116.对硬盘的序列号与硬盘槽位之间的映射关系进行维护的具体步骤如步骤404至步骤405所示:
117.步骤404,监测服务器背板上硬盘的插入以及拔出操作。
118.bmc会监测服务器中每一个热插拔接口的电压的变化,以确定服务器背板上是否有硬盘插入或拔出。
119.步骤405,当监测到第二硬盘拔出服务器背板时,获取第二硬盘的序列号,以及第二硬盘的序列号对应的硬盘槽位;
120.将第二硬盘的序列号,以及第二硬盘的序列号对应的硬盘槽位,从硬盘的序列号与硬盘槽位之间的映射关系删除;
121.或者,当监测到第三硬盘插入至服务器背板时,获取第三硬盘的序列号,以及第三硬盘的序列号对应的硬盘槽位;
122.将第三硬盘的序列号,以及第三硬盘的序列号对应的硬盘槽位,添加至硬盘的序列号与硬盘槽位之间的映射关系中。
123.当bmc监测到第二硬盘拔出服务器背板时,获取第二硬盘的序列号,以及第二硬盘的序列号对应的硬盘槽位的流程与图3所示实施例的步骤304c1至步骤304c2以及步骤305相类似,再此不做赘述;进而bmc会以第二硬盘的sn为基准,在已存储的硬盘的序列号与硬盘槽位之间的映射关系做匹配检查,当匹配到与第二硬盘的sn完全一致的某个sn时,就把该sn,以及该sn对应的硬盘槽位从已存储的硬盘的序列号与硬盘槽位之间的映射关系中删除。当bmc监测到第三硬盘插入服务器背板时,获取第三硬盘的序列号,以及第三硬盘的序列号对应的硬盘槽位的流程与图3所示实施例的步骤304b1以及步骤305相类似,再此不做赘述;进而bmc会将三硬盘的序列号,以及第三硬盘的序列号对应的硬盘槽位添加到已存储的硬盘的序列号与硬盘槽位之间的映射关系中。
124.在基板管理控制器得到硬盘的序列号与硬盘槽位之间的映射关系后,还会在监测服务器背板上硬盘插入以及拔出操作,以将获取得插入服务器背板上的硬盘的序列号,以及该硬盘的序列号对应的硬盘槽位添加至已存储的硬盘的序列号与硬盘槽位之间的映射关系中;将获取得拔出服务器背板上的硬盘的序列号,以及该硬盘的序列号对应的硬盘槽位从已存储的硬盘的序列号与硬盘槽位之间的映射关系中删除,实现当服务器背板上有硬盘插入或拔出时,实时对硬盘的序列号与硬盘槽位之间的映射关系进行更新维护操作,避免由于硬盘插入或拔出后更新不及时导致的硬盘的序列号与硬盘槽位之间映射关系错乱的情况,从而保证后续对硬盘槽位识别的准确性。
125.在一种应用场景中,如图5所示,以安装在服务器背板上的硬盘为nvme硬盘为例,在启动服务器初始化进程时,bmc会通过cpld根据服务器的硬件电路原理图确定服务器中背板上每一个硬盘槽位与i2c地址之间的映射关系,完成初始化硬盘槽位与i2c地址对应关系的操作;进而bmc利用基板管理控制器与每一个安装在服务器背板上的nvme硬盘之间的i2c通道获取每一个nvme硬盘的sn,并以表格的形式建立硬盘的sn与硬盘槽位之间的映射关系,并维护硬盘的sn与硬盘槽位之间的映射关系,也即,假设在服务器运行过程中有nvme硬盘的热插拔动作,bmc会对新插入的nvme硬盘的基本信息进行读取以获取nvme硬盘的sn,并更新硬盘的sn与硬盘槽位之间的映射关系表,所以硬盘的sn与硬盘槽位之间的映射关系是可以实时更新的,不会受限于福服务器启动时背板上nvme硬盘的数量,或这是否有热插拔动作等的影响。
126.本技术实施例中,当基板管理控制器监测到针对目标硬盘的硬盘槽位的触发操作时,会自动获取目标硬盘的序列号,并确定目标硬盘的序列号对应的预设通信地址,进而自动根据服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系,以及目标硬盘的序列号对应的预设通信地址,确定与目标硬盘的序列号对应的硬盘槽位,进而将目标硬盘的序列号以及目标硬盘的序列号对应的硬盘槽位进行关联存储,得到硬盘的序列号与硬盘槽位之间的映射关系,便于后续需要查询某硬盘的序硬盘槽位时,可以直接依据该硬盘的序列号从硬盘的序列号与硬盘槽位之间的映射关系中进行查找,不必每一次查询某硬盘的序硬盘槽位时,都重复确定该硬盘的序列号对应的预设通信地址,也不再需要根据服务器中背板上每一个硬盘槽位与所述预设通信地址之间的映射关系,以及该硬盘的序列号对应的预设通信地址,确定与该硬盘的序列号对应的硬盘槽位,进一步加快了硬盘槽位识别的效率。还实现当服务器背板上有硬盘插入或拔出时,实时对硬盘的序列号与硬盘槽位之间的映射关系进行更新维护操作,避免由于硬盘插入或拔出后更新不及时导致的硬盘的序列
号与硬盘槽位之间映射关系错乱的情况,从而提高硬盘槽位识别的准确性。避免了人工查找硬盘的bdf,并依据bdf确定硬盘槽位的方式,大大提高了确定硬盘序列号的对应硬盘槽位的效率以及准确性。
127.为了使用户可以在服务器端通过简单的交互就可以利用bmc快速且准确的查询到某硬盘的硬盘槽位,在得到硬盘的序列号与硬盘槽位之间的映射关系之后还提出如图6所示的本技术实施例的再一种硬盘槽位识别方法的流程示意图,该方法由基板管理控制器执行,基板管理控制器可以是图1中的基板管理控制器120,如图6所示,该方法包括如下步骤:
128.步骤601,接收服务器发送的包括第四硬盘的序列号的第二硬盘槽位查询命令,从包括第四硬盘的序列号的第二硬盘槽位查询命令中提取出第四硬盘的序列号,根据硬盘的序列号与硬盘槽位之间的映射关系,以及第四硬盘的序列号,确定第四硬盘的序列号对应的硬盘槽位。
129.该步骤与图3所示实施例的步骤304a1相类似,在此不做赘述。需要说明的是,为了使用户可以在服务器端通过简单的交互就可以利用bmc快速且准确的查询到某硬盘的硬盘槽位,在bmc接收服务器发送的包括第四硬盘的序列号的第二硬盘槽位查询命令之前,会对服务器一侧进行脚本设计,使脚本的输入参数为硬盘的盘符,这样用户就可以在需要查询第四硬盘的硬盘槽位时,直接在服务器一侧输入该第四硬盘的盘符至脚本中,服务器就可以执行该脚本以根据服务器中背板上每一个硬盘的盘符与序列号之间的映射关系,以及第四硬盘的盘符确定第四硬盘的盘符对应的序列号,以生成包括第四硬盘的序列号的第二硬盘槽位查询命令;进而调用与bmc之间的原有的接口(例如,ipmi接口),将包括第四硬盘的序列号的第二硬盘槽位查询命令发送至bmc。在服务器一侧进行简单的脚本设计,并复用服务器与bmc之间原有的接口,就能实现第二硬盘槽位查询命令的传输,避免重新设计一套新的交互方式,不会增加服务器以及bmc的开发成本,也不会增加硬盘槽位识别的开发成本,有较好的经济效益。
130.服务器中背板上每一个硬盘的盘符与序列号之间的映射关系是会变化的,因此在根据服务器中背板上每一个硬盘的盘符与序列号之间的映射关系,以及第四硬盘的盘符确定第四硬盘的盘符对应的序列号之前,服务器还需要确定服务器中背板上每一个硬盘的盘符与序列号之间的映射关系,具体步骤如下所示:
131.当启动服务器初始化进程时,加载服务器背板上每一个硬盘的基本信息,并给每一个硬盘的基本信息分配盘符;从每一个硬盘的基本信息中提取硬盘的序列号,并将每一个硬盘的序列号以及序列号所属基本信息对应的盘符,进行关联存储,得到硬盘的序列号与盘符之间的映射关系。在服务器一侧实现盘符与序列号之间的映射,方便后续bmc基于硬盘的序列号对硬盘槽位的识别,用户仅输入易被人工分辨的盘符,就可以获取到硬盘槽位,不必人工查找盘符对应的bdf,而后依据bdf从服务器的背板中查找硬盘槽位,简化了用户获取硬盘槽位的交互流程,提高了用户体验。可以理解的是服务器开机即为启动服务器初始化进程。
132.可选的,服务器可以以表格的形式将每一个硬盘的序列号以及序列号所属基本信息对应的盘符,进行关联存储,得到硬盘的序列号与盘符之间的映射关系表。
133.在一种应用场景中,继续结合图5,以安装在服务器背板上的硬盘为nvme硬盘为例,服务器获取硬盘的序列号与盘符之间的映射关系的具体工作流程为:
134.在启动服务器初始化进程时,服务器会通过硬盘驱动加载硬盘,以获取每一个nvme硬盘的基本信息,并给每一个nvme硬盘的基本信息分配盘符,已完成分配盘符的操作,进而从每一nvme硬盘的基本信息中读取每一个nvme硬盘的sn,从而建立nvme硬盘的盘符与sn之间的映射关系,并将每一个nvme硬盘的序列号以及序列号对应的盘符写入盘目录中。
135.可选的,在得到硬盘的序列号与盘符之间的映射关系之后,服务器会对硬盘的序列号与盘符之间的映射关系进行维护,当服务器监测到第五硬盘插入服务器的背板时,获取第五硬盘的序列号,并给第五硬盘分配盘符,以得到第五硬盘的序列号对应的盘符,将第五硬盘的序列号以及第五硬盘的序列号对应的盘符添加至硬盘的盘符与序列号之间的映射关系中;当服务器监测到第六硬盘拔出服务器的背板时,获取第六硬盘的盘符,并在已存储的硬盘的序列号与盘符之间的映射关系中将第六硬盘的盘符以及第六硬盘的盘符对应的序列号删除。服务器可以通过操作系统中的资源监视器或第三方的硬盘状态监视器来检测硬盘的基本信息、盘符和插入以及拔出操作。
136.步骤602,根据硬盘的序列号与硬盘槽位之间的映射关系,以及第四硬盘的序列号,确定第四硬盘的序列号对应的硬盘槽位。
137.bmc会在已存储的硬盘的序列号与硬盘槽位之间的映射关系中,匹配第四硬盘的序列号,当匹配到第四硬盘的序列号时,就将该序列号在硬盘的序列号与硬盘槽位之间的映射关系中对应的硬盘槽位确定为第四硬盘的序列号对应的硬盘槽位。
138.可选的,当bmc在已存储的硬盘的序列号与硬盘槽位之间的映射关系中没有匹配到第四硬盘的序列号时,会确定第四硬盘的序列号对应的预设通信地址,进而根据服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系,以及第四硬盘的序列号对应的预设通信地址,确定与第四硬盘的序列号对应的硬盘槽位,具体过程与图4所示实施例中步骤402相类似,在此不做赘述。
139.步骤603,将第四硬盘的序列号以及第四硬盘的序列号对应的硬盘槽位发送至服务器,以使服务器展示第四硬盘的硬盘槽位。
140.bmc会通过服务器与bmc之间原有的接口,例如ipmi接口,将第四硬盘的sn以及第四硬盘的sn对应的硬盘槽位发送至服务器,服务器就会在服务器一侧,根据硬盘的序列号与盘符之间的映射关系,以及第四硬盘的sn确定第四硬盘的盘符,并显示第四硬盘的盘符和第四硬盘的sn对应的硬盘槽位。
141.在另一种应用场景中,如图7所示,用户想要查询某个nvme硬盘的硬盘槽位时,只需调用脚本,并将盘符也即nvme5作为参数输入至脚本中,就可以使cpu执行脚本以获取nvme硬盘的sn并生成参数为nvme硬盘的sn的硬盘槽位查询命令,进而调用bmc接口(例如,ipmi接口),给bmc下发硬盘槽位查询命令和参数;进而bmc会解析硬盘槽位查询命令和参数,得到nvme硬盘的sn,以匹配检查nvme硬盘的sn,也即将nvme硬盘的sn与已存储的硬盘的序列号与硬盘槽位之间的映射关系中每一个硬盘槽位对应的sn做匹配检查,匹配到与nvme硬盘的sn完全一致的sn时,将该硬盘槽位返回给服务器,服务器将nvme硬盘的硬盘槽位展示给用户。
142.假如某盘符为nvme5的nvme硬盘出现故障,用户需要查询nvme5的硬盘槽位,则用户输入脚本的参数为nvme5,用户需要在服务器的命令提示符窗口中输入命令./getslotnum.sh nvme5,服务器就可以执行参数为nvme5,名称为getslotnum.sh的脚本,进
而向用户展示盘符为nvme5的nvme硬盘的硬盘槽位,用户就可以查看bmc返回的硬盘槽位,若需要更换或者处理该盘符为nvme5的硬盘,则直接可以查看丝印信息,对硬盘进行更换。整个过程严格保证匹配的严谨性,不会因为服务器启动过程中是否全插硬盘或多次热插拔等情况影响准确性。整个过程用户只需执行一次脚本,开发的工作主要是服务器一侧的脚本,bmc新增与初始化硬盘的序列号与硬盘槽位之间的映射关系及查询逻辑,并不会显著增加成本,收益巨大。
143.可选的,基板管理控制器还可以将硬盘的序列号以及硬盘槽位之间的映射关系发送至服务器,以使服务器将硬盘的序列号以及硬盘槽位之间的映射关系以及硬盘的序列号与盘符之间的映射关系以硬盘的序列号为基准进行合并操作,得到硬盘的序列号、盘符以及硬盘槽位之间的映射关系,并将硬盘的序列号、盘符以及硬盘槽位之间的映射关系存储至盘目录中。
144.基板管理控制器将硬盘的序列号以及硬盘槽位之间的映射关系发送至服务器后,服务器会分别从硬盘的序列号以及硬盘槽位之间的映射关系以及硬盘的序列号与盘符之间的映射关系中,提取第一序列号对应的硬盘槽位以及第一序列号对应的盘符,并将第一序列号、第一序列号对应的硬盘槽位以及第一序列号对应的盘符在盘目录下进行关联存储,以得到硬盘的序列号、盘符以及硬盘槽位之间的映射关系,第一序列号为硬盘的序列号以及硬盘槽位之间的映射关系中任一个序列号。这样用户在需要查询某个硬盘的硬盘槽位时,就可以直接从盘目录中进行查询,不再需要手动将盘符作为参数输入至脚本并等待脚本的运行结果,进一步加快了硬盘槽位的识别效率。
145.可选的,可以对服务器一侧的脚本进行修改,将脚本设置为自动查询服务器背板上的每一个硬盘的硬盘槽位。当启动服务器初始化进程时,服务器会默认自动执行脚本,以自动读取服务器背板上每一个硬盘的盘符,并确定每一个硬盘的盘符对应的序列号,从而生成包括每一个硬盘的序列号的第三硬盘槽位查询命令,并将该硬盘槽位查询命令发送至bmc,bmc在接收到该第三硬盘槽位查询命令中时,就会识别每一个硬盘的序列号对应的硬盘槽位,并将每一个硬盘的序列号对应的硬盘槽位返回给服务器,进而服务器就会得到服务器背板上每一个硬盘的序列号、盘符以及硬盘槽位之间的映射关系,提高了硬盘的序列号、盘符以及硬盘槽位之间的映射关系中硬盘槽位的覆盖率。
146.本技术实施例中,bmc可以根据从第四硬盘的序列号,之间从之前获取到的硬盘的序列号与硬盘槽位之间的映射关系中查询到第四硬盘的序列号对应的硬盘槽位,不再需要确定第四硬盘的序列号对应的预设通信地址,也不需要确定第四硬盘的预设通信地址对应的硬盘槽位,进一步简化了bmc确定硬盘的序列号对应的硬盘槽位的流程,加快了硬盘槽位识别的效率,还不必在费时费力得查找盘符对应的bdf,而后依据bdf从服务器的背板中查找硬盘槽位,使用户可以在服务器端通过简单的交互就可以利用bmc快速且准确的查询到某硬盘的硬盘槽位。
147.在本实施例中还提供了一种硬盘槽位识别装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
148.本实施例提供一种硬盘槽位识别装置,如图8所示,所述装置包括:
149.获取模块810,用于当监测到针对目标硬盘的硬盘槽位的触发操作时,获取目标硬盘的序列号,并确定目标硬盘的序列号对应的预设通信地址;
150.确定模块820,用于根据服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系,以及目标硬盘的序列号对应的预设通信地址,确定与目标硬盘的序列号对应的硬盘槽位。
151.在一些可选的实施例中,所述装置还包括:
152.巡检模块,用于利用基板管理控制器与每一个安装在服务器背板上的硬盘之间的预设数据传输通道对每一个安装在服务器背板上的硬盘进行巡检,以识别每一个安装在服务器背板上的硬盘的序列号;
153.确定模块,还用于将安装在服务器背板上的第一硬盘与基板管理控制器之间的预设数据传输通道对应的预设通信地址,确定为第一硬盘的序列号对应的预设通信地址,其中,第一硬盘为安装在服务器背板上的任一个硬盘;
154.存储模块,用于将每一个硬盘的序列号,以及每一个硬盘的序列号对应的预设通信地址进行关联存储,得到每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系。
155.在一些可选的实施例中,当触发操作为接收到服务器发送的包括目标硬盘的序列号的第一硬盘槽位查询命令时,获取模块包括:
156.提取单元,用于从第一硬盘槽位查询命令中,提取目标硬盘的序列号;
157.第一确定单元,用于根据每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,以及目标硬盘的序列号,确定目标硬盘的序列号对应的预设通信地址。
158.在一些可选的实施例中,当触发操作为目标硬盘插入至服务器的背板时,获取模块包括:
159.识别单元,用于利用基板管理控制器与目标硬盘之间的预设数据传输通道,识别目标硬盘的序列号;
160.以及,将基板管理控制器与目标硬盘之间的预设数据传输通道对应的预设通信地址确定为与目标硬盘的序列号对应的预设通信地址。
161.在一些可选的实施例中,当触发操作为目标硬盘拔出服务器的背板时,获取模块包括:
162.第二确定单元,用于将目标硬盘与基板管理控制器之间的预设数据传输通道对应的预设通信地址,确定为目标硬盘对应的预设通信地址;
163.第三确定单元,用于根据每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,以及目标硬盘对应的预设通信地址,确定目标硬盘对应的预设通信地址对应的序列号。
164.在一些可选的实施例中,所述装置还包括:
165.存储模块,还用于将目标硬盘的序列号,以及目标硬盘的序列号对应的硬盘槽位进行关联存储,得到硬盘的序列号与硬盘槽位之间的映射关系。
166.在一些可选的实施例中,所述装置还包括:
167.监测模块,用于监测服务器背板上硬盘的插入以及拔出操作;
168.获取模块,还用于当监测到第二硬盘拔出服务器背板时,获取第二硬盘的序列号,以及第二硬盘的序列号对应的硬盘槽位;
169.删除模块,用于将第二硬盘的序列号,以及第二硬盘的序列号对应的硬盘槽位,从硬盘的序列号与硬盘槽位之间的映射关系中删除;
170.或者,获取模块,还用于当监测到第三硬盘插入至服务器背板时,获取第三硬盘的序列号,以及第三硬盘的序列号对应的硬盘槽位;
171.添加模块,用于将第三硬盘的序列号,以及第三硬盘的序列号对应的硬盘槽位,添加至硬盘的序列号与硬盘槽位之间的映射关系中。
172.上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
173.本实施例中的硬盘槽位识别装置是以功能单元的形式来呈现,这里的单元是指asic(application specific integrated circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
174.本技术实施例还提供一种计算机设备,具有上述图9所示的硬盘槽位识别装置。
175.请参阅图9,图9是本技术可选实施例提供的一种计算机设备的结构示意图,如图9所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器10为例。
176.处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
177.其中,所述存储器20存储有可由至少一个处理器10执行的指令,以使所述至少一个处理器10执行实现上述实施例示出的方法。
178.存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
179.存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
180.该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
181.本技术实施例还提供了一种计算机可读存储介质,上述根据本技术实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
182.虽然结合附图描述了本技术的实施例,但是本领域技术人员可以在不脱离本技术的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

技术特征:
1.一种硬盘槽位识别方法,其特征在于,所述方法由基板管理控制器执行,所述方法包括:当监测到针对目标硬盘的硬盘槽位的触发操作时,获取所述目标硬盘的序列号,并确定所述目标硬盘的序列号对应的预设通信地址;根据服务器中背板上每一个硬盘槽位与所述预设通信地址之间的映射关系,以及所述目标硬盘的序列号对应的预设通信地址,确定与所述目标硬盘的序列号对应的硬盘槽位。2.根据权利要求1所述的方法,其特征在于,当监测到针对目标硬盘的硬盘槽位的触发操作时,获取所述目标硬盘的序列号,并确定所述目标硬盘的序列号对应的预设通信地址之前,所述方法还包括:利用基板管理控制器与每一个安装在服务器背板上的硬盘之间的预设数据传输通道对每一个安装在服务器背板上的硬盘进行巡检,以识别每一个安装在服务器背板上的硬盘的序列号;将安装在服务器背板上的第一硬盘与基板管理控制器之间的预设数据传输通道对应的预设通信地址,确定为所述第一硬盘的序列号对应的预设通信地址,其中,所述第一硬盘为安装在所述服务器背板上的任一个硬盘;将每一个硬盘的序列号,以及每一个硬盘的序列号对应的预设通信地址进行关联存储,得到每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系。3.根据权利要求2所述的方法,其特征在于,当所述触发操作为接收到服务器发送的包括所述目标硬盘的序列号的第一硬盘槽位查询命令时,所述当监测到针对目标硬盘的硬盘槽位的触发操作时,获取所述目标硬盘的序列号,并确定所述目标硬盘的序列号对应的预设通信地址,包括:从所述第一硬盘槽位查询命令中,提取所述目标硬盘的序列号;根据每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,以及所述目标硬盘的序列号,确定所述目标硬盘的序列号对应的预设通信地址。4.根据权利要求2所述的方法,其特征在于,当所述触发操作为目标硬盘插入至服务器的背板时,所述当监测到针对目标硬盘的硬盘槽位的触发操作时,获取所述目标硬盘的序列号,并确定所述目标硬盘的序列号对应的预设通信地址,包括:利用基板管理控制器与所述目标硬盘之间的预设数据传输通道,识别所述目标硬盘的序列号;以及,将所述基板管理控制器与所述目标硬盘之间的预设数据传输通道对应的预设通信地址确定为与所述目标硬盘的序列号对应的预设通信地址。5.根据权利要求2所述的方法,其特征在于,当所述触发操作为目标硬盘拔出服务器的背板时,所述当监测到针对目标硬盘的硬盘槽位的触发操作时,获取所述目标硬盘的序列号,并确定所述目标硬盘的序列号对应的预设通信地址,包括:将所述目标硬盘与基板管理控制器之间的预设数据传输通道对应的预设通信地址,确定为所述目标硬盘对应的预设通信地址;根据每一个安装在服务器背板上的硬盘的序列号与预设通信地址之间的映射关系,以及所述目标硬盘对应的预设通信地址,确定所述目标硬盘对应的预设通信地址对应的序列号。
6.根据权利要求3至5任一项所述的方法,其特征在于,在根据服务器中背板上每一个硬盘槽位与所述预设通信地址之间的映射关系,以及所述目标硬盘的序列号对应的预设通信地址,确定与所述目标硬盘的序列号对应的硬盘槽位之后,所述方法还包括:将所述目标硬盘的序列号,以及所述目标硬盘的序列号对应的硬盘槽位进行关联存储,得到硬盘的序列号与硬盘槽位之间的映射关系。7.根据权利要求6所述的方法,其特征在于,在将所述目标硬盘的序列号,以及所述目标硬盘的序列号对应的硬盘槽位进行关联存储,得到硬盘的序列号与硬盘槽位之间的映射关系之后,所述方法还包括:监测所述服务器背板上硬盘的插入以及拔出操作;当监测到第二硬盘拔出服务器背板时,获取所述第二硬盘的序列号,以及所述第二硬盘的序列号对应的硬盘槽位;将所述第二硬盘的序列号,以及所述第二硬盘的序列号对应的硬盘槽位,从硬盘的序列号与硬盘槽位之间的映射关系中删除;或者,当监测到第三硬盘插入至服务器背板时,获取所述第三硬盘的序列号,以及所述第三硬盘的序列号对应的硬盘槽位;将所述第三硬盘的序列号,以及所述第三硬盘的序列号对应的硬盘槽位,添加至硬盘的序列号与硬盘槽位之间的映射关系中。8.一种硬盘槽位识别装置,其特征在于,所述装置运行在基板管理控制器上,所述装置包括:获取模块,用于当监测到针对目标硬盘的硬盘槽位的触发操作时,获取所述目标硬盘的序列号,并确定所述目标硬盘的序列号对应的预设通信地址;确定模块,用于根据服务器中背板上每一个硬盘槽位与所述预设通信地址之间的映射关系,以及所述目标硬盘的序列号对应的预设通信地址,确定与所述目标硬盘的序列号对应的硬盘槽位。9.一种计算机设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的硬盘槽位识别方法。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的硬盘槽位识别。

技术总结
本申请涉及硬盘的槽位信息管理技术领域,公开了硬盘槽位识别方法、装置、计算机设备及存储介质,所述方法由基板管理控制器执行,所述方法包括:当监测到针对目标硬盘的硬盘槽位的触发操作时,获取目标硬盘的序列号,并确定目标硬盘的序列号对应的预设通信地址;根据服务器中背板上每一个硬盘槽位与预设通信地址之间的映射关系,以及目标硬盘的序列号对应的预设通信地址,确定与目标硬盘的序列号对应的硬盘槽位。避免了人工查找硬盘的BDF,进而依据丝印信息确定硬盘槽位的方式,大大提高了确定硬盘序列号的对应硬盘槽位的效率以及准确性。硬盘序列号的对应硬盘槽位的效率以及准确性。硬盘序列号的对应硬盘槽位的效率以及准确性。


技术研发人员:宋成磊 刘波
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2023.07.21
技术公布日:2023/10/15
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐