发明内容
本发明提供一种多节点初始化的检测方法及装置、系统,用以解决多节点服务器系统中排除故障链路效率较低、影响系统正常启动的问题。
第一方面,本发明提供一种多节点初始化的检测方法,应用于多节点服务器系统中,包括:
在多节点初始化过程中,节点检测到与另一节点之间存在故障链路,将所述故障链路的故障链路信息发送给设备管理器,所述故障链路信息包括所述节点的节点标识和所述另一节点的节点标识,以及所述故障链路的链路标识,以使所述设备管理器将所述故障链路信息进行显示,并根据用户指令向所述节点发送用户选择的故障处理指令,所述用户选择的故障处理指令中包括故障屏蔽指令;
所述节点根据所述故障屏蔽指令,屏蔽所述故障链路;
所述节点为多节点服务器系统中的任一节点,所述另一节点为所述多节点服务器系统中的任一其他节点。
基于第一方面,在第一种可能的实现方式中,所述节点根据所述故障屏蔽指令,屏蔽所述故障链路,包括:
所述节点根据所述故障链路的链路标识,将互联链路节点控制寄存器设置表中与所述故障链路的链路标识对应的寄存器设置值清零。
基于第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述节点根据所述故障链路的链路标识,将互联链路节点控制寄存器设置表中与所述故障链路的链路标识对应的寄存器设置值清零之后,包括:
所述节点根据所述互联链路节点控制寄存器设置表中其余的寄存器设置值,在所述节点的节点控制寄存器表中设置所述其余的寄存器设置值。
基于第一方面以及第一方面的第一和第二种可能的实现方式,在第三种可能的实现方式中,所述节点检测到与另一节点之间存在故障链路之前,包括:
所述节点接收所述设备管理器发送的所述互联链路节点控制寄存器设置表,所述互联链路节点控制寄存器设置表中包括所述节点与所述另一节点之间的多条链路对应的链路标识以及所述节点与所述另一节点之间的多条链路对应的寄存器设置值。
基于第一方面的第三种可能的实现方式,在第四种可能的实现方式中,若所述互联链路节点控制寄存器设置表中还包括所述节点与所述另一节点之间的多条链路对应的距离值;
所述节点接收所述设备管理器发送的所述互联链路节点控制寄存器设置表之后,包括:
所述节点根据所述节点与所述另一节点之间的多条链路对应的距离值,确定所述节点与所述另一节点之间的最短链路;
根据所述节点与所述另一节点之间的多条链路对应的寄存器设置值,确定所述最短链路对应的寄存器设置值,在所述节点的节点控制寄存器表中设置所述最短链路对应的寄存器设置值。
基于第一方面的第四种可能的实现方式,在第五种可能的实现方式中,其特征在于,若所述故障链路为所述节点与所述另一节点之间的最短链路时;
所述节点根据所述故障屏蔽指令,屏蔽所述故障链路之后,包括:
所述节点根据所述互联链路节点控制寄存器设置表中包括的所述节点与所述另一节点之间的多条链路对应的距离值,确定所述节点与所述另一节点之间的次短链路;
根据所述节点与所述另一节点之间的多条链路对应的寄存器设置值,确定所述次短链路对应的寄存器设置值,在所述节点的节点控制寄存器表中设置所述次短链路对应的寄存器设置值。
第二方面,本发明提供一种多节点初始化的检测方法,应用于多节点服务器系统中,包括:
在多节点初始化过程中,设备管理器接收节点发送的故障链路信息,所述故障链路信息包括所述节点的节点标识和另一节点的节点标识,以及所述故障链路的链路标识;
所述设备管理器将所述故障链路信息进行显示,并根据用户指令向所述节点发送故障屏蔽指令;
所述节点为多节点服务器系统中的任一节点,所述另一节点为所述多节点服务器系统中的任一其他节点。
基于第二方面,在第一种可能的实现方式中,所述设备管理器接收节点发送的故障链路信息之前,包括:
所述设备管理器根据所述多节点服务器系统的互联链路的拓扑图,生成所述多节点服务器系统的互联链路拓扑信息,所述互联链路拓扑信息中包括所述多节点服务器系统中的各节点的节点标识、各节点之间的多条链路对应的链路标识以及各节点之间的多条链路对应的距离值;
所述设备管理器根据所述互联链路拓扑信息,生成与所述互联链路拓扑信息对应的互联链路节点控制寄存器设置表,所述互联链路节点控制寄存器设置表中包括所述各节点之间的多条链路对应的链路标识以及所述各节点之间的多条链路对应的节点控制寄存器的设置值;
将所述互联链路拓扑信息和所述互联链路节点控制寄存器设置表分别发送给各节点。
第三方面,本发明提供一种多节点初始化的检测装置,应用于多节点服务器系统中,所述装置位于所述多节点服务器系统中的任一节点中,所述装置包括:
检测模块,用于在多节点初始化过程中,检测节点到与另一节点之间存在故障链路,将所述故障链路的故障链路信息发送给设备管理器,所述故障链路信息包括所述节点的节点标识和所述另一节点的节点标识,以及所述故障链路的链路标识,以使所述设备管理器将所述故障链路信息进行显示,并根据用户指令向所述节点发送用户选择的故障处理指令,所述用户选择的故障处理指令中包括故障屏蔽指令;
屏蔽模块,用于根据所述故障屏蔽指令,屏蔽所述检测模块检测到的故障链路。
第四方面,本发明提供一种多节点初始化的检测装置,应用于多节点服务器系统中,所述装置位于设备管理器中,所述装置包括:
接收模块,用于在多节点初始化过程中,接收节点发送的故障链路信息,所述故障链路信息包括所述节点的节点标识和另一节点的节点标识,以及所述故障链路的链路标识;
显示模块,用于将所述故障链路信息进行显示,并根据用户指令向所述节点发送用户选择的故障处理指令,所述用户选择的故障处理指令中包括故障屏蔽指令;
所述节点为多节点服务器系统中的任一节点,所述另一节点为所述多节点服务器系统中的任一其他节点。
第五方面,本发明提供一种多节点服务器系统,包括:多个服务器和设备管理器;
所述多个服务器中的每个服务器包括上述第三方面所述的多节点初始化的检测装置;
所述设备管理器包括上述第四方面所述的多节点初始化的检测装置。
本发明实施例在多节点服务器系统的初始化过程中,通过每个节点检测与另一节点之间是否存在故障链路,若存在故障链路,将故障链路信息发送给设备管理器,以使设备管理器显示所述故障链路信息,并根据用户指令向该节点发送用户选择的故障处理指令,所述用户选择的故障处理指令中包括故障屏蔽指令。进一步地,该节点根据故障屏蔽指令可以屏蔽故障链路。可以实现在多节点服务器系统启动前进行故障链路检测,一旦出现故障链路时,可以快速定位链路故障,且实时向设备管理器进行故障链路信息的告警,以便用户及时做出故障屏蔽指令,从而可以提高故障链路排除效率,且不会导致系统无法正常启动或影响系统性能。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明各实施例所述的多节点初始化的检测方法,具体应用于多节点服务器系统中。
图1为本发明一实施例提供的多节点初始化的检测方法的流程示意图;如图1所示,包括:
101、在多节点初始化过程中,节点检测到与另一节点之间存在故障链路。
多节点服务器系统中包括多个节点,上述节点为多节点服务器系统中包括的多个节点中的任一个节点,上述另一节点为多节点服务器系统中包括的多个节点中除了所述节点之外的另一个节点。
通常,互联链路故障包含物理层链路故障和应用层链路故障,其中,物理层链路故障通常由链路硬件设备故障引起,例如,节点控制器接口松动、损坏,互联线缆断裂等;应用层链路故障通常由链路互联相关软件故障引起,例如,互联逻辑出错、寄存器配置失败、链路产生误码等。
物理层链路故障和应用层链路故障均会导致相应链路间的通信中断,节点检测到与另一节点之间是否存在故障链路,在具体实现时,可以通过所述节点的基板管理控制器(英文:BaseboardManagementController,简称BMC)读取该节点的节点控制器(英文:NodeController,简称NC)端口的信号电平状态值,通过对端口的电平状态判断链路的连通性,例如,高电平表示链路电路连通性正常,低电平表示无法探测到对端节点端口,表明该条链路出现故障。或者在出现链路通信正常但出现误码的情况下,可以通过持续收发包进行误码的收集以检测链路通信的正确性,假设误码率超过预设的门限值时,表明该条链路出现故障。
102、所述节点向设备管理器发送故障链路信息。
具体实现时,上述步骤101通过所述节点的BMC检测物理层链路故障和应用层链路故障之后,若检测到所述节点与另一节点之间存在故障链路,通过BMC向设备管理器发送所述故障链路信息;其中,所述故障链路信息包括所述节点的节点标识和所述另一节点的节点标识,以及所述故障链路的链路标识,以使所述设备管理器将所述故障链路信息通过用户界面进行显示,例如,设备管理器接收故障链路信息之后,根据故障链路信息中包括的所述节点的节点标识和所述另一节点的节点标识,以及所述故障链路的链路标识,将所述链路标识指向的状态灯显示为红灯,表示该链路存在故障,以提示用户选择进行后续操作,例如,用户可以选择下电检修或者在线更换故障线缆或者选择屏蔽该故障线路,若用户选择屏蔽该故障线路,则设备管理器可以根据用户指令向所述节点发送用户选择的故障处理指令,所述用户选择的故障处理指令中包括故障屏蔽指令。
103、所述节点接收设备管理器发送的用户选择的故障处理指令,若所述用户选择的故障处理指令中包括故障屏蔽指令,则屏蔽所述故障链路。
具体地,所述节点接收设备管理器发送的故障屏蔽指令之后,根据所述故障链路的链路标识,查询互联链路节点控制寄存器设置表,将所述互联链路节点控制寄存器设置表中与所述故障链路的链路标识对应的寄存器设置值清零。之后,所述节点根据所述互联链路节点控制寄存器设置表中其余的寄存器设置值,在所述节点的节点控制寄存器表中设置其余的寄存器设置值。
在本发明的一个实施方式中,假设本实施例所述的多节点服务器系统是固定的互联链路拓扑系统,即互联拓扑无法更改的系统,则上述互联链路节点控制寄存器设置表可以通过各节点的基本输入输出系统(英文:BasicInputOutputSystem,简称BIOS)根据互联链路的拓扑信息预设的互联链路节点控制寄存器设置表清除对应故障链路的寄存器值。
在本发明的一个实施方式中,假设本实施例所述的多节点服务器系统是用户自定义的互联链路拓扑系统,则上述互联链路节点控制寄存器设置表是设备管理器根据用户自定义的互联链路的拓扑信息生成并发送给各节点的互联链路节点控制寄存器设置表。其中,所述互联链路节点控制寄存器设置表中包括各节点之间多条链路对应的链路标识以及各节点之间多条链路对应的寄存器设置值。
在本发明实施例的多节点服务器系统的初始化过程中,通过每个节点检测与另一节点之间是否存在故障链路,若存在故障链路,将故障链路信息发送给设备管理器,以使设备管理器显示所述故障链路信息,并根据用户指令向该节点发送故障屏蔽指令。进一步地,该节点根据故障屏蔽指令可以屏蔽故障链路。可以实现在多节点服务器系统启动前进行故障链路检测,一旦出现故障链路时,可以快速定位链路故障,且实时向设备管理器进行故障链路信息的告警,以便用户及时进行故障链路处理,从而可以提高故障链路处理效率。
图2为本发明另一实施例提供的多节点初始化的检测方法的流程示意图;如图2所示,包括:
201、设备管理器接收节点发送的故障链路信息。
通常,多节点服务器系统中包括多个节点,上述节点为多节点服务器系统中包括的多个节点中的任一个节点。
其中,所述故障链路信息包括所述节点的节点标识和另一节点的节点标识,以及所述故障链路的链路标识;所述另一节点为多节点服务器系统中包括的多个节点中除了所述节点之外的另一个节点。
具体实现时,在多节点服务器系统的初始化过程中,通过每一个节点的基板管理控制器BMC读取该节点的节点控制器端口的信号电平状态值,通过对端口的电平状态判断链路的连通性,例如,高电平表示链路电路连通性正常,低电平表示无法探测到对端节点端口,表明该条链路出现故障。或者在出现链路通信正常但出现误码的情况下,可以通过持续收发包进行误码的收集以检测链路通信的正确性,若误码率超过预设的门限值是,表明该条链路出现故障。
若检测到所述节点与另一节点之间存在故障链路,所述节点和另一节点都可以通过本节点的BMC向设备管理器发送故障链路信息;其中,所述故障链路信息包括所述节点的节点标识和所述另一节点的节点标识,以及所述故障链路的链路标识。
202、设备管理器将所述故障链路信息进行显示,根据用户指令向所述节点发送用户选择的故障处理指令,所述用户选择的故障处理指令中包括故障屏蔽指令。
设备管理器将所述故障链路信息通过用户界面进行显示,使得用户通过设备管理器的用户界面即可获知故障链路信息,为了快速排除故障链路,用户可以选择下电检修或者在线更换故障线缆或者选择屏蔽该故障线路,本实施例中,若用户选择屏蔽故障链路,则设备管理器根据用户选择屏蔽故障链路的指令,向故障节点发送故障屏蔽指令。
对应地,节点根据设备管理器发送的故障屏蔽指令,屏蔽所述故障链路。
本发明实施例在多节点服务器系统的初始化过程中,通过每个节点检测与另一节点之间是否存在故障链路,若存在故障链路,将故障链路信息发送给设备管理器,以使设备管理器显示所述故障链路信息,并根据用户指令向该节点发送故障屏蔽指令。进一步地,该节点根据故障屏蔽指令可以屏蔽故障链路。可以实现在多节点服务器系统启动前进行故障链路检测,一旦出现故障链路时,可以快速定位链路故障,且实时向设备管理器进行故障链路信息的告警,以便用户及时进行故障链路处理,从而可以提高故障链路排除效率。
图3为本发明另一实施例提供的多节点初始化的检测方法的流程示意图;假设本实施例中的多节点服务器系统是用户自定义的互联链路拓扑系统,则本实施例提供的多节点的初始化检测方法如图3所示,具体包括:
301、设备管理器根据导入的多节点服务器系统的互联链路拓扑图,生成所述多节点服务器系统的互联链路拓扑信息。
其中,所述互联链路拓扑信息中包括所述多节点服务器系统中的各节点的节点标识以及各节点之间的相对位置信息。进一步地,所述互联链路拓扑信息中还可以包括各节点之间的多条链路对应的链路标识及各节点之间的多条链路对应的距离值。
具体实现时,图4为本发明实施例应用的多节点服务器系统的一种互联拓扑结构图,如图4所示,假设导入一个16个节点的32路服务器系统,数字0-F表示各节点的节点标识(例如为节点号),图中顶点间的连线标识各节点间的互联线缆。需要说明的是,本实施例中,导入的多节点服务器系统的互联链路拓扑图可以由用户自定义,即用户可以自由组合节点进行任意拓扑的设置。
设备管理器在接收到上述多节点服务器系统的互联链路拓扑图之后,可以解析出互联链路拓扑图中的各节点的节点标识以及各节点之间的相对位置,生成各节点之间的互联链路拓扑信息;假设表1为节点0和节点8之间的多条链路的链路拓扑信息表:
如表1所示,表1中的每一行代表节点0到节点8之间所经过的路径值,可知,节点0和节点8之间的包括多条链路,例如,链路1为节点0和节点8之间的直接互联链路,又例如,链路2为节点0通过节点7和节点F与节点8的互联链路。
进一步地,设备管理器根据节点0与节点8之间的多条链路的距离值,将节点0与节点8之间的多条链路按距离值进行顺序排列,并根据节点0与节点8之间的多条链路对应的距离值设置优先级,例如,将距离值最小的链路设为优先级最高,将距离值最大的链路设为优先级最低。如表1所示,表1的最后1列表示每条路径的优先级,例如,Priv0_8[1]表示最高优先级,Priv0_8[2]表示次优先级,从上到下表示优先级逐渐降低。需要说明的是,当链路距离值相等是,例如,节点0和节点8之间的链路3和链路4的路径值相同,则可以按照互联链路拓扑图中先X轴再Y然后Z及W的次序排列优先级。
302、设备管理器根据所述互联链路拓扑信息,生成与所述互联链路拓扑信息对应的互联链路节点控制寄存器设置表。
其中,互联链路节点控制寄存器设置表中包括各节点之间的多条链路对应的NC寄存器及NC寄存器设置值。
举例来说,根据表1所示的节点0和节点8之间的互联链路拓扑信息,生成节点0和节点8之间多条链路的互联链路节点控制寄存器设置表,假设表2为节点0和节点8之间多条链路的互联链路节点控制寄存器设置表:
需要说明的是,本领域技术人员可以理解的是,上述互联链路节点控制寄存器设置表中,节点的NC寄存器以及设置值仅为举例,本发明对此不作限定。
303、设备管理器将所述互联链路节点控制寄存器设置表和所述互联链路拓扑信息分别发送给各节点。
具体实现时,设备管理器通过智能平台管理接口(英文:IntelligentPlatformManagementInterface,简称IPMI)将所述互联链路节点控制寄存器设置表和所述互联链路拓扑信息分别发送给各节点的基板管理控制器(英文:BaseboardManagementController,简称BMC)。
304、各节点根据设备管理器发送的所述互联链路节点控制寄存器设置表和所述互联链路拓扑信息,分别通过各节点的基板管理控制器进行各节点之间的最短链路的配置。
具体实现时,在多节点服务器系统中,每个节点的BMC在接收到设备管理器发送的互联链路节点控制寄存器设置表和互联链路拓扑信息之后,根据互联链路拓扑信息中包括的该节点与其他各节点之间的多条链路的距离值,分别确定该节点与其他各节点之间距离值最小的链路(简称最短链路),之后,根据互联链路节点控制寄存器设置表中包括的该节点与其他各节点之间的多条链路的寄存器设置值,确定该节点与其他各节点之间的最短链路的寄存器设置值,之后,该节点的BMC通过该节点的NC寄存器表设置该节点与其他各节点之间的最短链路的寄存器设置值。
通常,在多节点服务器系统中,通过每个节点的BMC配置该节点与其他各节点之间的多条链路的寄存器值,在寄存器配置数量上需要增加5-8倍,因此,会增加系统的启动时间,本实施例中为了减少系统启动时间,通过每个节点的BMC只配置该节点与其他各节点之间的最短链路的寄存器值,假设每个节点的BMC配置的该节点与其他各节点之间的最短链路没有故障的情况下,可以保证系统在最短初始化时间内成功启动。
305、各节点通过各自的基板管理控制器分别检测各节点之间的最短链路是否存在故障,若是,则执行步骤307,否则执行步骤306。
为了保证系统成功启动,本实施例中,在各节点配置好各节点之间的最短链路的寄存器值之后,需要对各节点之间的最短链路进行故障检测,以便系统快速定位故障链路和故障节点,从而可以快速排除故障链路。
具体地,各节点的BMC读取该节点的节点控制器NC端口的信号电平状态值,通过对端口的电平状态判断链路的连通性,例如,高电平表示链路电路连通性正常,低电平表示无法探测到对端节点端口,表明该条链路出现故障。或者在出现链路通信正常但出现误码的情况下,可以通过持续收发包进行误码的收集以检测链路通信的正确性。例如误码率超过预设的门限值时,表明该链路存在故障。
306、各节点分别通过各自的基本输入输出系统进行各节点之间的多条链路的配置。
假设通过各节点的基板管理控制器BMC分别检测各节点之间的最短链路不存在故障之后,每个节点的BMC通过键盘控制器规格(英文:KeyboardControllerStyle,简称KCS)协议将互联链路节点控制寄存器设置表发送给该节点的基本输入输出系统(英文:BasicInputOutputSystem,简称BIOS),每个节点的BIOS根据该节点的BMC发送的互联链路节点控制寄存器设置表,在该节点的节点控制寄存器表中设置该节点与其他各节点之间的多条链路的寄存器设置值。
307、故障节点通过自身的基板管理控制器向设备管理器发送故障链路信息。
各节点的基板管理控制器分别检测各节点之间的最短链路是否存在故障之后,假设节点0和节点2之间的最短链路存在故障,则节点0和节点2为故障节点,节点0和节点2中的BMC均可以向设备管理器发送故障链路信息,其中,故障链路信息中包含故障节点的节点标识以及故障链路的链路标识。
进一步地,本实施例中,在每个节点的节点控制器中设置有1个通用寄存器(COMM_REGISTER_m),m为该节点的节点号,每个节点的通用寄存器中保存有该节点与其他各节点之间的互联链路的状态信息;假设节点0和节点2之间的最短链路存在故障,则节点0和节点2中的BMC分别在各自节点的通用寄存器中设置故障链路的故障状态信息,图5为本发明实施例应用的通用寄存器中互联链路状态信息设置图,如图5所示,COMM_REGISTER_0表示节点0的通用寄存器,COMM_REGISTER_2表示节点2的通用寄存器,其中,在节点0的通用寄存器中,与节点2对应的寄存器位置1,表示节点0与节点2之间的最短链路存在故障,在节点2的通用寄存器中,与节点0对应的寄存器位置1,表示节点0与节点2之间的最短链路存在故障;通常,默认情况下通用寄存器中每一位都为0,表示该节点与其他各节点之间的链路正常。
进一步地,节点0的BMC还可以根据互联链路拓扑信息中包括的节点0与节点2之间的多条链路对应的距离值,确定节点0与节点2之间的次短链路,根据互联链路节点控制寄存器设置表,确定节点0与节点2之间的次短链路对应的寄存器设置值,通过节点0的节点控制寄存器表中设置所述次短链路对应的寄存器设置值,可以保证系统较短的初始化时间。
308、设备管理器显示故障链路信息,并根据用户指令向故障节点的发送故障屏蔽指令。
设备管理器接收到故障节点的基板管理控制器BMC发送的故障链路信息之后,可以通过用户界面显示故障链路信息,图6为本发明实施例应用的故障链路信息的状态显示图,如图6所示,节点0和节点2之间的互联链路在状态显示图中显示红灯,表示节点0和节点2之间的互联链路存在故障。
用户通过设备管理器用户界面的状态显示图即可获知节点0和节点2之间的互联链路存在故障,为了快速排除故障链路,本实施例中,用户可以选择屏蔽故障链路,设备管理器根据用户选择屏蔽故障链路的指令,向故障节点发送故障屏蔽指令。
309、故障节点根据设备管理器发送的故障屏蔽指令屏蔽所述故障链路。
具体实现时,例如,故障节点0的BIOS读取节点0的NC互联芯片中的通用寄存器设置值,如图5所示,在节点0的通用寄存器中,与节点2对应的寄存器位置1,表示节点0与节点2之间的最短链路存在故障。之后,节点0的BIOS查找节点0对应的节点控制寄存器表,确定节点0与节点2之间的故障链路对应的寄存器,将该寄存器值清空,表示不对该条故障链路进行寄存器值的设置。
之后,节点0的BIOS根据本节点的BMC发送的互联链路节点控制寄存器设置表,根据上述清空的寄存器,将互联链路节点控制寄存器设置表中与该清空的寄存器对应的寄存器值修改为0x0,之后,根据修改后的互联链路节点控制寄存器设置表,通过节点0的节点控制寄存器表进行其余寄存器值的设置。
310、初始化结束。
在步骤306中,通过各节点的基板管理控制器分别检测各节点之间的最短链路不存在故障之后,每个节点的BMC通过KCS协议将互联链路节点控制寄存器设置表发送给自身节点的BIOS,进一步地,每个节点的BIOS根据互联链路节点控制寄存器设置表,在该节点的节点控制寄存器表中设置该节点与其他各节点之间的多条链路的寄存器设置值,之后,系统初始化结束,系统成功启动。
在步骤309中,故障节点根据设备管理器发送的故障屏蔽指令屏蔽所述故障链路之后,故障节点的BIOS根据自身节点的BMC发送的互联链路节点控制寄存器设置表,根据上述清空的寄存器,将互联链路节点控制寄存器设置表中与该清空的寄存器对应的寄存器值修改为0x0,之后,根据修改后的互联链路节点控制寄存器设置表,通过故障节点的节点控制寄存器表进行其余寄存器值的设置,之后,系统初始化结束,系统成功启动。
在本发明实施例的多节点服务器系统的初始化过程中,用户可以自由组合各节点进行任意拓扑的设置,并将用户自定义的互联链路拓扑图导入到设备管理器中,以使设备管理器生成互联链路拓扑信息及对应的互联链路节点控制寄存器设置表,之后,设备管理器将互联链路拓扑信息及对应的互联链路节点控制寄存器设置表分别发送给各节点,使得各节点通过各自的BMC分别进行本节点与其他各节点之间的最短链路的链路配置;
进一步地,在初始化过程中,可以每个节点可以检测与其他各节点之间的最短链路是否存在故障链路,若存在故障链路,将故障链路信息发送给设备管理器,以使设备管理器显示所述故障链路信息,并根据用户指令向故障节点发送故障屏蔽指令,使得故障节点根据故障屏蔽指令可以屏蔽故障链路,并选择故障节点之间的次短链路进行链路配置。若不存在故障,则通过每个节点的BIOS分别进行本节点与其他各节点之间的多条链路的链路配置;
因此,本实施例通过每个节点的BMC配置本节点与其他各节点之间的最短链路,通过每个节点的BIOS分别进行本节点与其他各节点之间的多条链路的链路配置,可以缩短系统启动时间;进一步地,本实施例还可以通过每个节点的BMC在多节点服务器系统启动前进行故障链路检测,一旦出现故障链路时,可以快速定位链路故障,且实时向设备管理器进行故障链路信息的告警,以便用户及时进行故障链路处理,从而可以提高故障链路排除效率。
可选地,本实施例的互联链路拓扑图可以由用户自定义,可以提高用户的体验度。
图7为本发明另一实施例提供的多节点初始化的检测方法的流程示意图;假设本实施例中的多节点服务器系统是固定的互联链路拓扑系统,则本实施例提供的多节点的初始化检测方法如图7所示,具体包括:
701、各节点根据预设的互联链路节点控制寄存器设置表,分别进行各节点之间的互联链路的配置。
具体实现时,本实施例中的互联链路节点控制寄存器设置表是系统根据多节点服务器系统的互联链路拓扑预设的互联链路节点控制寄存器设置表,每个节点的BIOS根据预设的互联链路节点控制寄存器设置表,在本节点的节点控制寄存器表进行本节点与其他各节点之间的多条链路对应的寄存器值的设置。
702、各节点通过各自的基板管理控制器分别检测各节点之间的互联链路是否存在故障,若是则执行步骤703,否则执行步骤706。
具体地,各节点的BMC读取该节点的节点控制器NC端口的信号电平状态值,通过对端口的电平状态判断链路的连通性,例如,高电平表示链路电路连通性正常,低电平表示无法探测到对端节点端口,表明该条链路出现故障。或者在出现链路通信正常但出现误码的情况下,可以通过持续收发包进行误码的收集以检测链路通信的正确性,例如误码率超过预设的门限值,标识该条链路存在故障。
703、故障节点通过自身的基板管理控制器向设备管理器发送故障链路信息。
各节点的基板管理控制器分别检测各节点之间的互联链路是否存在故障之后,假设节点0和节点2之间的互联链路存在故障,则节点0和节点2为故障节点,节点0和节点2中的BMC均可以向设备管理器发送故障链路信息,其中,故障链路信息中包含故障节点的节点标识以及故障链路的链路标识。
进一步地,本实施例中,在每个节点的节点控制器中设置有1个通用寄存器COMM_REGISTER_m,m为该节点的节点号,每个节点的通用寄存器中保存该节点与其他各节点之间的互联链路的状态信息;假设节点0和节点2之间的互联链路存在故障,则节点0和节点2中的BMC分别在对应节点的通用寄存器中设置故障链路的故障状态信息,如图5所示,在节点0的通用寄存器中,与节点2对应的寄存器位置1,表示节点0与节点2之间的最短链路存在故障,在节点2的通用寄存器中,与节点0对应的寄存器位置1,表示节点0与节点2之间的最短链路存在故障;通常,默认情况下通用寄存器中每一位都为0,表示该节点与其他各节点之间的链路正常。
704、设备管理器显示故障链路信息,并根据用户指令向故障节点的发送故障屏蔽指令。
设备管理器接收到故障节点的基板管理控制器发送的故障链路信息之后,可以通过用户界面显示故障链路信息;以使用户通过设备管理器的用户界面即可获知故障链路信息,为了快速排除故障链路,假设用户选择屏蔽故障链路,则设备管理器根据用户选择屏蔽故障链路的指令,向故障节点发送故障屏蔽指令。
705、故障节点根据设备管理器发送的故障屏蔽指令屏蔽所述故障链路。
具体实现时,例如,节点0的BIOS读取节点0中的通用寄存器设置值,如图5所示,在节点0的通用寄存器中,与节点2对应的寄存器位置1,表示节点0与节点2之间的互联链路存在故障。之后,节点0的BIOS查找节点0对应的节点控制寄存器表,确定节点0与节点2之间的故障链路对应的寄存器,将该寄存器值清空,表示不对该条故障链路进行寄存器值的设置。
之后,节点0的BIOS查询预设的互联链路节点控制寄存器设置表,根据上述清空的寄存器,将互联链路节点控制寄存器设置表中与该清空的寄存器对应的寄存器值修改为0x0,之后,根据修改后的互联链路节点控制寄存器设置表,通过节点0的节点控制寄存器进行其余寄存器值的设置。
706、初始化结束。
本实施例在多节点服务器初始化过程中,可以通过每个节点检测与其他各节点之间的互联链路是否存在故障链路,若存在故障链路,将故障链路信息发送给设备管理器,以使设备管理器显示所述故障链路信息,并根据用户指令向故障节点发送故障屏蔽指令,使得故障节点根据故障屏蔽指令可以屏蔽故障链路。若不存在故障,则通过每个节点的BIOS分别在本节点的节点控制寄存器表中设置本节点与其他各节点之间的多条链路对应的寄存器值;
因此,本实施例通过每个节点的BMC在多节点服务器系统启动前进行故障链路检测,一旦出现故障链路时,可以快速定位链路故障,且实时向设备管理器进行故障链路信息的告警,以便用户及时做出故障屏蔽指令,从而可以提高故障链路排除效率,且不会导致系统无法正常启动或影响系统性能。
图8为本发明另一实施例提供的多节点初始化的检测装置的结构示意图;具体应用于多节点服务器系统中,所述装置位于所述多节点服务器系统中的任一节点中,如图8所示,所述装置具体包括:
检测模块81,用于在多节点初始化过程中,检测节点到与另一节点之间存在故障链路,将所述故障链路的故障链路信息发送给设备管理器,所述故障链路信息包括所述节点的节点标识和所述另一节点的节点标识,以及所述故障链路的链路标识,以使所述设备管理器将所述故障链路信息进行显示,并根据用户指令向所述节点发送用户选择的故障处理指令,所述用户选择的故障处理指令中包括故障屏蔽指令;
屏蔽模块82,用于根据所述故障屏蔽指令,屏蔽所述检测模块81检测到的故障链路。
举例来说,屏蔽模块82,具体用于根据所述故障链路的链路标识,将互联链路节点控制寄存器设置表中与所述故障链路的链路标识对应的寄存器设置值清零。
举例来说,所述装置还包括:
设置模块83,用于在所述屏蔽模块82屏蔽所述故障链路的基础上,根据所述互联链路节点控制寄存器设置表中其余的寄存器设置值,在所述节点的节点控制寄存器表中设置所述其余的寄存器设置值。
举例来说,所述装置还包括:
接收模块84,用于接收所述设备管理器发送的所述互联链路节点控制寄存器设置表,所述互联链路节点控制寄存器设置表中包括所述节点与所述另一节点之间的多条链路对应的链路标识以及所述节点与所述另一节点之间的多条链路对应的寄存器设置值。
举例来说,所述装置还包括:
确定模块85,用于在所述接收模块接收84的所述互联链路节点控制寄存器设置表的基础上,若所述互联链路节点控制寄存器设置表中还包括所述节点与所述另一节点之间的多条链路对应的距离值,则根据所述多条链路对应的距离值,确定所述节点与所述另一节点之间的最短链路;
设置模块83,还用于根据所述节点与所述另一节点之间的多条链路对应的寄存器设置值,确定所述最短链路对应的寄存器设置值,在所述节点的节点控制寄存器表中设置所述最短链路对应的寄存器设置值。
举例来说,若所述检测模块81检测到故障链路为所述确定模块确定的最短链路时;
确定模块85,还用于根据所述互联链路节点控制寄存器设置表中包括的所述节点与所述另一节点之间的多条链路对应的距离值,确定所述节点与所述另一节点之间的次短链路;
设置模块83,还用于根据所述节点与所述另一节点之间的多条链路对应的寄存器设置值,确定所述次短链路对应的寄存器设置值,在所述节点的节点控制寄存器表中设置所述次短链路对应的寄存器设置值。
在本发明实施例的多节点服务器系统的初始化过程中,通过每个节点检测与另一节点之间是否存在故障链路,若存在故障链路,将故障链路信息发送给设备管理器,以使设备管理器显示所述故障链路信息,并根据用户指令向该节点发送故障屏蔽指令。进一步地,该节点根据故障屏蔽指令可以屏蔽故障链路。可以实现在多节点服务器系统启动前进行故障链路检测,一旦出现故障链路时,可以快速定位链路故障,且实时向设备管理器进行故障链路信息的告警,以便用户及时做出故障屏蔽指令,从而可以提高故障链路排除效率,且不会导致系统无法正常启动或影响系统性能。
图9为本发明另一实施例提供的多节点初始化的检测装置的结构示意图;应用于多节点服务器系统中,所述装置位于设备管理器中,如图9所示,所述装置包括:
接收模块91,用于在多节点初始化过程中,接收节点发送的故障链路信息,所述故障链路信息包括所述节点的节点标识和另一节点的节点标识,以及所述故障链路的链路标识;
显示模块92,用于将所述故障链路信息进行显示,并根据用户指令向所述节点发送用户选择的故障处理指令,所述用户选择的故障处理指令中包括故障屏蔽指令;
所述节点为多节点服务器系统中的任一节点,所述另一节点为所述多节点服务器系统中的任一其他节点。
举例来说,所述装置还包括:
互联链路拓扑信息生成模块93,用于根据所述多节点服务器系统的互联链路的拓扑图,生成所述多节点服务器系统的互联链路拓扑信息,所述互联链路拓扑信息中包括所述多节点服务器系统中的各节点的节点标识、各节点之间的多条链路对应的链路标识以及各节点之间的多条链路对应的距离值;
互联链路节点控制寄存器设置表生成模块94,用于根据所述互联链路拓扑信息,生成与所述互联链路拓扑信息对应的互联链路节点控制寄存器设置表,所述互联链路节点控制寄存器设置表中包括所述各节点之间的多条链路对应的链路标识以及所述各节点之间的多条链路对应的节点控制寄存器的设置值;
发送模块95,用于将所述互联链路拓扑信息和所述互联链路节点控制寄存器设置表分别发送给各节点。
在本发明实施例的多节点服务器系统的初始化过程中,通过每个节点检测与另一节点之间是否存在故障链路,若存在故障链路,将故障链路信息发送给设备管理器,以使设备管理器显示所述故障链路信息,并根据用户指令向该节点发送故障屏蔽指令。进一步地,该节点根据故障屏蔽指令可以屏蔽故障链路。可以实现在多节点服务器系统启动前进行故障链路检测,一旦出现故障链路时,可以快速定位链路故障,且实时向设备管理器进行故障链路信息的告警,以便用户及时做出故障屏蔽指令,从而可以提高故障链路排除效率,且不会导致系统无法正常启动或影响系统性能。
图10为本发明另一实施例提供的多节点初始化的检测装置的结构示意图;应用于多节点服务器系统中,具体为所述多节点服务器系统中的任一服务器,所述服务器包括处理器、存储器和通信总线,其中,所述处理器通过通信总线与存储器连接,存储器中保存有多节点的初始化检测实现指令,处理器通过通信总线调取存储器中保存的指令,可以实现多节点的初始化检测的方法;进一步,所述服务器中还包括通信接口,所述服务器器通过通信接口与设备管理器进行通信。
所述处理器调取存储器中的指令,可以执行如下步骤:
在多节点初始化过程中,检测到所述处理器所在的节点与另一节点之间存在故障链路,将所述故障链路的故障链路信息发送给设备管理器,所述故障链路信息包括所述节点的节点标识和所述另一节点的节点标识,以及所述故障链路的链路标识,以使所述设备管理器将所述故障链路信息进行显示,并根据用户指令向所述节点发送用户选择的故障处理指令,所述用户选择的故障处理指令中包括故障屏蔽指令;
根据所述故障屏蔽指令,屏蔽所述故障链路;
其中,所述节点为多节点服务器系统中的任一节点,所述另一节点为所述多节点服务器系统中的任一其他节点。
在第一种可能的实现方式中,所述处理器还可以执行如下步骤:
根据所述故障链路的链路标识,将互联链路节点控制寄存器设置表中与所述故障链路的链路标识对应的寄存器设置值清零。
基于第一种可能的实现方式,在第二种可能的实现方式中,根据所述故障链路的链路标识,将互联链路节点控制寄存器设置表中与所述故障链路的链路标识对应的寄存器设置值清零之后,所述处理器还可以执行如下步骤:
根据所述互联链路节点控制寄存器设置表中其余的寄存器设置值,在所述节点的节点控制寄存器表中设置所述其余的寄存器设置值。
基于第一种和第二种可能的实现方式,在第三种可能的实现方式中,检测到与另一节点之间存在故障链路之前,所述处理器还可以执行如下步骤:
接收所述设备管理器发送的所述互联链路节点控制寄存器设置表,所述互联链路节点控制寄存器设置表中包括所述节点与所述另一节点之间的多条链路对应的链路标识以及所述节点与所述另一节点之间的多条链路对应的寄存器设置值。
基于第三种可能的实现方式,在第四种可能的实现方式中,若所述互联链路节点控制寄存器设置表中还包括所述节点与所述另一节点之间的多条链路对应的距离值;
接收所述设备管理器发送的所述互联链路节点控制寄存器设置表之后,所述处理器还可以执行如下步骤:
根据所述节点与所述另一节点之间的多条链路对应的距离值,确定所述节点与所述另一节点之间的最短链路;
根据所述节点与所述另一节点之间的多条链路对应的寄存器设置值,确定所述最短链路对应的寄存器设置值,在所述节点的节点控制寄存器表中设置所述最短链路对应的寄存器设置值。
基于第四种可能的实现方式,在第五种可能的实现方式中,若所述故障链路为所述节点与所述另一节点之间的最短链路时;
根据所述故障屏蔽指令,屏蔽所述故障链路之后,所述处理器还可以执行如下步骤:
根据所述互联链路节点控制寄存器设置表中包括的所述节点与所述另一节点之间的多条链路对应的距离值,确定所述节点与所述另一节点之间的次短链路;
根据所述节点与所述另一节点之间的多条链路对应的寄存器设置值,确定所述次短链路对应的寄存器设置值,在所述节点的节点控制寄存器表中设置所述次短链路对应的寄存器设置值。
在本发明实施例的多节点服务器系统的初始化过程中,通过每个节点检测与另一节点之间是否存在故障链路,若存在故障链路,将故障链路信息发送给设备管理器,以使设备管理器显示所述故障链路信息,并根据用户指令向该节点发送故障屏蔽指令。进一步地,该节点根据故障屏蔽指令可以屏蔽故障链路。可以实现在多节点服务器系统启动前进行故障链路检测,一旦出现故障链路时,可以快速定位链路故障,且实时向设备管理器进行故障链路信息的告警,以便用户及时做出故障屏蔽指令,从而可以提高故障链路排除效率,且不会导致系统无法正常启动或影响系统性能。
图11为本发明另一实施例提供的多节点初始化的检测装置的结构示意图;应用于多节点服务器系统中,具体为设备管理器,所述设备管理器包括处理器、存储器和通信总线,其中,所述处理器通过通信总线与存储器连接,存储器中保存有多节点的初始化检测实现指令,处理器通过通信总线调取存储器中保存的指令,可以实现多节点的初始化检测的方法;进一步,所述设备管理器中还包括通信接口,所述设备管理器通过通信接口与多节点服务器系统中任一节点进行通信,其中,节点具体可以为服务器。
所述处理器调取存储器中的指令,可以执行如下步骤:
在多节点初始化过程中,接收节点发送的故障链路信息,所述故障链路信息包括所述节点的节点标识和另一节点的节点标识,以及所述故障链路的链路标识;
将所述故障链路信息进行显示,并根据用户指令向所述节点发送用户选择的故障处理指令,所述用户选择的故障处理指令中包括故障屏蔽指令;
所述节点为多节点服务器系统中的任一节点,所述另一节点为所述多节点服务器系统中的任一其他节点。
在第一种可能的实现方式中,接收节点发送的故障链路信息之前,所述处理器还可以执行如下步骤:
根据所述多节点服务器系统的互联链路的拓扑图,生成所述多节点服务器系统的互联链路拓扑信息,所述互联链路拓扑信息中包括所述多节点服务器系统中的各节点的节点标识、各节点之间的多条链路对应的链路标识以及各节点之间的多条链路对应的距离值;
根据所述互联链路拓扑信息,生成与所述互联链路拓扑信息对应的互联链路节点控制寄存器设置表,所述互联链路节点控制寄存器设置表中包括所述各节点之间的多条链路对应的链路标识以及所述各节点之间的多条链路对应的节点控制寄存器的设置值;
将所述互联链路拓扑信息和所述互联链路节点控制寄存器设置表分别发送给各节点。
在本发明实施例的多节点服务器系统的初始化过程中,通过每个节点检测与另一节点之间是否存在故障链路,若存在故障链路,将故障链路信息发送给设备管理器,以使设备管理器显示所述故障链路信息,并根据用户指令向该节点发送故障屏蔽指令。进一步地,该节点根据故障屏蔽指令可以屏蔽故障链路。可以实现在多节点服务器系统启动前进行故障链路检测,一旦出现故障链路时,可以快速定位链路故障,且实时向设备管理器进行故障链路信息的告警,以便用户及时做出故障屏蔽指令,从而可以提高故障链路排除效率,且不会导致系统无法正常启动或影响系统性能。
图12为本发明另一实施例提供的多节点服务器系统的结构示意图,如图12所示,包括:服务器121和设备管理器122,
其中。服务器121为多节点服务器系统中N个服务器中的任一个服务器,服务器121包括图8所示实施例提供的多节点初始化的检测装置,详细内容参考图8所示实施例提供的多节点初始化的检测装置中的相关描述,不再赘述。
设备管理器122包括图9所示实施例提供的多节点初始化的检测装置,详细内容参考图9所示实施例提供的多节点初始化的检测装置中的相关描述,不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以以代码的形式存储在一个计算机可读取存储介质中。上述代码存储在一个计算机可读存储介质中,包括若干指令用以使处理器或硬件电路执行本发明各个实施例所述方法的部分或全部步骤。而前述的存储介质包括:通用串行总线接口的无需物理驱动器的微型高容量移动存储盘、移动硬盘、只读存储器(英文:Read-OnlyMemory,简称ROM)、随机存取存储器(英文:RandomAccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。