一种多级链路故障定位的方法、系统及装置与流程

    专利2022-07-07  141


    本发明涉及数据访问领域,特别是涉及一种多级链路故障定位的方法、系统及装置。



    背景技术:

    在服务器的bmc(baseboardmanagercontroller,基板管理控制器)系统中,当bmc访问目标器件时,若访问失败,目前只能做到返回访问失败的结果。但是,当bmc和目标器件之间连接多级设备时,只返回访问失败结果的方式无法定位导致访问失败的问题所在,比如,请参照图1,图1为现有技术中的一种bmc分级访问ep器件(目标器件)的结构示意图。bmc端定义为0级,第一i2c(inter-integratedcircuit,两线式串行总线)switch(切换开关)定义为1级,第二i2cswitch定义为2级,ep器件定义为3级。bmc访问ep器件上的数据的访问过程为:首先访问第一i2cswitch切换到ch0,之后访问第二i2cswitch切换到ch0,最后访问ep器件上的数据。当bmc访问ep器件上的数据失败时,若只返回访问失败的结果,无法定位到是哪一级器件出现故障问题,从而不利于多级链路故障分析及维修。

    因此,如何提供一种解决上述技术问题的方案是本领域的技术人员目前需要解决的问题。



    技术实现要素:

    本发明的目的是提供一种多级链路故障定位的方法、系统及装置,可在访问任一级器件出错时,均返回访问出错的器件所在的级数信息,从而可准确定位到是哪一级器件出现故障问题,利于多级链路故障分析及维修。

    为解决上述技术问题,本发明提供了一种多级链路故障定位的方法,包括:

    预先根据待访问器件的访问链路生成所述待访问器件的访问级数信息;

    在对所述待访问器件进行访问时,根据所述访问级数信息依次访问所述待访问器件之前的每一级待访问中间器件及所述待访问器件;

    当目标访问器件的访问出错时,生成包含所述目标访问器件的级数信息的访问错误信息,以根据所述访问错误信息进行多级链路故障定位;其中,所述目标访问器件为任一级待访问中间器件或所述待访问器件。

    优选地,根据待访问器件的访问链路生成所述待访问器件的访问级数信息的过程,包括:

    根据待访问器件的访问链路生成表征所述待访问器件的访问级数信息的多节点访问链表;

    其中,在所述多节点访问链表中,根节点包括第一级待访问中间器件对应的访问地址及访问通道、下一个节点的地址指针;中间节点包括与上一节点的待访问中间器件对应的下一级待访问中间器件对应的访问地址及访问通道、下一个节点的地址指针;末端节点包括所述待访问器件对应的访问地址及访问通道。

    优选地,根据所述访问级数信息依次访问所述待访问器件之前的每一级待访问中间器件及所述待访问器件的过程,包括:

    获取所述多节点访问链表的根节点,并根据所述根节点的内容访问对应的目标访问器件,且将访问级数加1;

    判断当前访问的目标访问器件是否访问成功;

    若访问成功,则根据当前访问的目标访问器件对应的节点内容判断所述多节点访问链表是否还存在下一节点;

    若存在下一节点,则按照下一节点的内容访问对应的目标访问器件,且将访问级数加1;

    若不存在下一节点,则返回最终的访问结果。

    优选地,当目标访问器件的访问出错时,生成包含所述目标访问器件的级数信息的访问错误信息的过程,包括:

    预先定义一个表征所述待访问器件的访问错误信息的故障码;

    在当前访问的目标访问器件的访问出错时,获取与当前访问的目标访问器件对应记录的访问级数值,并将所述故障码中与所述访问级数值对应的数据位置位。

    优选地,所述故障码包括表征所述待访问器件的访问链路总级数的数据位、表征各级目标访问器件的故障状态的数据位及预留数据位。

    优选地,所述多级链路故障定位的方法还包括:

    将所述待访问器件的访问错误信息进行存储;

    在基于所述访问错误信息更换相应的故障部件后,清空所存储的待访问器件的访问错误信息。

    为解决上述技术问题,本发明还提供了一种多级链路故障定位的系统,包括:

    信息生成模块,用于预先根据待访问器件的访问链路生成所述待访问器件的访问级数信息;

    器件访问模块,用于在对所述待访问器件进行访问时,根据所述访问级数信息依次访问所述待访问器件之前的每一级待访问中间器件及所述待访问器件;

    故障报错模块,用于当目标访问器件的访问出错时,生成包含所述目标访问器件的级数信息的访问错误信息,以根据所述访问错误信息进行多级链路故障定位;其中,所述目标访问器件为任一级待访问中间器件或所述待访问器件。

    优选地,所述信息生成模块具体用于:

    预先根据待访问器件的访问链路生成表征所述待访问器件的访问级数信息的多节点访问链表;

    其中,在所述多节点访问链表中,根节点包括第一级待访问中间器件对应的访问地址及访问通道、下一个节点的地址指针;中间节点包括与上一节点的待访问中间器件对应的下一级待访问中间器件对应的访问地址及访问通道、下一个节点的地址指针;末端节点包括所述待访问器件对应的访问地址及访问通道。

    优选地,所述器件访问模块具体用于:

    在对所述待访问器件进行访问时,获取所述多节点访问链表的根节点,并根据所述根节点的内容访问对应的目标访问器件,且将访问级数加1;

    判断当前访问的目标访问器件是否访问成功;

    若访问成功,则根据当前访问的目标访问器件对应的节点内容判断所述多节点访问链表是否还存在下一节点;

    若存在下一节点,则按照下一节点的内容访问对应的目标访问器件,且将访问级数加1;

    若不存在下一节点,则返回最终的访问结果。

    为解决上述技术问题,本发明还提供了一种多级链路故障定位的装置,包括:

    存储器,用于存储计算机程序;

    处理器,用于在执行所述计算机程序时实现上述任一种多级链路故障定位的方法的步骤。

    本发明提供了一种多级链路故障定位的方法,预先根据待访问器件的访问链路生成待访问器件的访问级数信息;在对待访问器件进行访问时,根据访问级数信息依次访问待访问器件之前的每一级待访问中间器件及待访问器件;当目标访问器件的访问出错时,生成包含目标访问器件的级数信息的访问错误信息,以根据访问错误信息进行多级链路故障定位。可见,本申请可在访问任一级器件出错时,均返回访问出错的器件所在的级数信息,从而可准确定位到是哪一级器件出现故障问题,利于多级链路故障分析及维修。

    本发明还提供了一种多级链路故障定位的系统及装置,与上述故障定位方法具有相同的有益效果。

    附图说明

    为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

    图1为现有技术中的一种bmc分级访问ep器件的结构示意图;

    图2为本发明实施例提供的一种多级链路故障定位的方法的流程图;

    图3为本发明实施例提供的一种多级链路故障定位的系统的结构示意图。

    具体实施方式

    本发明的核心是提供一种多级链路故障定位的方法、系统及装置,可在访问任一级器件出错时,均返回访问出错的器件所在的级数信息,从而可准确定位到是哪一级器件出现故障问题,利于多级链路故障分析及维修。

    为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

    请参照图2,图2为本发明实施例提供的一种多级链路故障定位的方法的流程图。

    该多级链路故障定位的方法包括:

    步骤s1:预先根据待访问器件的访问链路生成待访问器件的访问级数信息。

    具体地,本申请提前根据待访问器件的访问链路生成待访问器件的访问级数信息。需要说明的是,待访问器件的访问级数信息可体现待访问器件的访问链路总级数信息;还可体现在主器件对待访问器件进行访问时,主器件和待访问器件之间的每级待访问中间器件的相关访问信息及待访问器件的相关访问信息等一系列的信息,以为后续多级链路故障定位提供依据。

    步骤s2:在对待访问器件进行访问时,根据访问级数信息依次访问待访问器件之前的每一级待访问中间器件及待访问器件。

    具体地,本申请在对待访问器件进行访问时,可根据待访问器件的访问级数信息,依次访问待访问器件之前的每一级待访问中间器件及待访问器件,如图1所示,从0级开始,依次访问1级器件的数据、2级器件的数据、3级器件的数据,即逐级访问数据,目的是确定出访问出错的目标访问器件。

    步骤s3:当目标访问器件的访问出错时,生成包含目标访问器件的级数信息的访问错误信息,以根据访问错误信息进行多级链路故障定位。

    需要说明的是,步骤s3所提及的目标访问器件为步骤s2所提及的任一级待访问中间器件或待访问器件。

    具体地,本申请在目标访问器件的访问出错时,生成待访问器件对应的访问错误信息。待访问器件的访问错误信息中包含目标访问器件的级数信息,也就是说,通过待访问器件的访问错误信息,可得知访问出错的目标访问器件所在的级数信息,从而可准确定位到是哪一级器件出现故障问题。

    本发明提供了一种多级链路故障定位的方法,预先根据待访问器件的访问链路生成待访问器件的访问级数信息;在对待访问器件进行访问时,根据访问级数信息依次访问待访问器件之前的每一级待访问中间器件及待访问器件;当目标访问器件的访问出错时,生成包含目标访问器件的级数信息的访问错误信息,以根据访问错误信息进行多级链路故障定位。可见,本申请可在访问任一级器件出错时,均返回访问出错的器件所在的级数信息,从而可准确定位到是哪一级器件出现故障问题,利于多级链路故障分析及维修。

    在上述实施例的基础上:

    作为一种可选的实施例,根据待访问器件的访问链路生成待访问器件的访问级数信息的过程,包括:

    根据待访问器件的访问链路生成表征待访问器件的访问级数信息的多节点访问链表;

    其中,在多节点访问链表中,根节点包括第一级待访问中间器件对应的访问地址及访问通道、下一个节点的地址指针;中间节点包括与上一节点的待访问中间器件对应的下一级待访问中间器件对应的访问地址及访问通道、下一个节点的地址指针;末端节点包括待访问器件对应的访问地址及访问通道。

    具体地,本申请可根据待访问器件的访问链路生成表征待访问器件的访问级数信息的多节点访问链表。需要说明的是,多节点访问链表包括根节点(首节点)、中间节点及末端节点。其中,根节点包括两部分,一部分是第一级待访问中间器件对应的访问地址及访问通道,以基于第一级待访问中间器件对应的访问地址及访问通道实现对第一级待访问中间器件的数据访问;另一部分是根节点的下一个节点的地址指针,以基于根节点的下一个节点的地址指针查找到根节点的下一个节点,从而获取根节点的下一个节点的节点内容。根节点的下一个节点(中间节点)包括两部分,一部分是第二级待访问中间器件对应的访问地址及访问通道,以基于第二级待访问中间器件对应的访问地址及访问通道实现对第二级待访问中间器件的数据访问;另一部分是根节点的下下个节点的地址指针,以基于根节点的下下个节点的地址指针查找到根节点的下下个节点,从而获取根节点的下下个节点的节点内容。总结来说,中间节点均包括两部分,一部分是与上一节点的待访问中间器件对应的下一级待访问中间器件对应的访问地址及访问通道,另一部分是下一个节点的地址指针。末端节点的节点内容只包含待访问器件对应的访问地址及访问通道,以基于待访问器件对应的访问地址及访问通道实现对待访问器件的数据访问这一部分;另一部分是null(空),以结束访问。

    作为一种可选的实施例,根据访问级数信息依次访问待访问器件之前的每一级待访问中间器件及待访问器件的过程,包括:

    获取多节点访问链表的根节点,并根据根节点的内容访问对应的目标访问器件,且将访问级数加1;

    判断当前访问的目标访问器件是否访问成功;

    若访问成功,则根据当前访问的目标访问器件对应的节点内容判断多节点访问链表是否还存在下一节点;

    若存在下一节点,则按照下一节点的内容访问对应的目标访问器件,且将访问级数加1;

    若不存在下一节点,则返回最终的访问结果。

    具体地,本申请在对待访问器件进行访问时,首先获取多节点访问链表的根节点,并根据根节点的内容访问对应的目标访问器件(第一级待访问中间器件),且将访问级数(初始值为0)加1,即访问级数值=1。然后判断当前访问的目标访问器件(第一级待访问中间器件)是否访问成功,若访问成功,则根据当前访问的目标访问器件对应的节点内容(根节点内容)判断多节点访问链表是否还存在下一节点,若判断结果为存在下一节点,则按照下一节点的节点内容访问对应的目标访问器件(第二级待访问中间器件),且将访问级数加1,即访问级数值=2;然后继续判断当前访问的目标访问器件(第二级待访问中间器件)是否访问成功,若访问成功,则在存在下一节点时继续基于节点内容向下一级目标访问器件进行访问,且将访问级数加1。若判断结果为不存在下一节点,则访问结束,返回最终的访问结果。

    作为一种可选的实施例,当目标访问器件的访问出错时,生成包含目标访问器件的级数信息的访问错误信息的过程,包括:

    预先定义一个表征待访问器件的访问错误信息的故障码;

    在当前访问的目标访问器件的访问出错时,获取与当前访问的目标访问器件对应记录的访问级数值,并将故障码中与访问级数值对应的数据位置位。

    具体地,本申请可提前定义一个表征待访问器件的访问错误信息的故障码,需要说明的是,故障码中包含各级目标访问器件的故障状态的数据位,即某一数据位表示某一级目标访问器件的故障状态。在当前访问的目标访问器件的访问出错时,本申请会获取与当前访问的目标访问器件对应记录的访问级数值,即当前访问的目标访问器件所在的目标级数,然后将故障码中与目标级数对应的数据位置位(置位即置1,其余数据位置0),供多级链路故障定位。

    作为一种可选的实施例,故障码包括表征待访问器件的访问链路总级数的数据位、表征各级目标访问器件的故障状态的数据位及预留数据位。

    具体地,本申请的故障码可包括表征待访问器件的访问链路总级数的数据位、表征各级目标访问器件的故障状态的数据位及预留数据位,如下表1所示:

    表1

    如图1所示,bmc访问ep器件共计4级,所以故障码中的高3bit为100,当从0级开始访问,访问到3级目标访问器件出错时,返回故障码0x8008(1000000000001000b),访问到4级目标访问器件出错时,返回故障码0x8010(1000000000010000b),从而可以根据故障码准确定位到哪一级出现的问题,提高测试、生产、研发、维护人员问题定位的效率。

    作为一种可选的实施例,多级链路故障定位的方法还包括:

    将待访问器件的访问错误信息进行存储;

    在基于访问错误信息更换相应的故障部件后,清空所存储的待访问器件的访问错误信息。

    进一步地,本申请还可将待访问器件的访问错误信息进行存储,供工作人员查看。在基于访问错误信息更换相应的故障部件后,此时对新更换的访问系统需重新进行逐级访问检测,所以本申请在基于访问错误信息更换相应的故障部件后,清空所存储的待访问器件的访问错误信息,以为更换后的访问系统的待访问器件重建访问错误信息。

    请参照图3,图3为本发明实施例提供的一种多级链路故障定位的系统的结构示意图。

    该多级链路故障定位的系统包括:

    信息生成模块1,用于预先根据待访问器件的访问链路生成待访问器件的访问级数信息;

    器件访问模块2,用于在对待访问器件进行访问时,根据访问级数信息依次访问待访问器件之前的每一级待访问中间器件及待访问器件;

    故障报错模块3,用于当目标访问器件的访问出错时,生成包含目标访问器件的级数信息的访问错误信息,以根据访问错误信息进行多级链路故障定位;其中,目标访问器件为任一级待访问中间器件或待访问器件。

    作为一种可选的实施例,信息生成模块1具体用于:

    预先根据待访问器件的访问链路生成表征待访问器件的访问级数信息的多节点访问链表;

    其中,在多节点访问链表中,根节点包括第一级待访问中间器件对应的访问地址及访问通道、下一个节点的地址指针;中间节点包括与上一节点的待访问中间器件对应的下一级待访问中间器件对应的访问地址及访问通道、下一个节点的地址指针;末端节点包括待访问器件对应的访问地址及访问通道。

    作为一种可选的实施例,器件访问模块2具体用于:

    在对待访问器件进行访问时,获取多节点访问链表的根节点,并根据根节点的内容访问对应的目标访问器件,且将访问级数加1;

    判断当前访问的目标访问器件是否访问成功;

    若访问成功,则根据当前访问的目标访问器件对应的节点内容判断多节点访问链表是否还存在下一节点;

    若存在下一节点,则按照下一节点的内容访问对应的目标访问器件,且将访问级数加1;

    若不存在下一节点,则返回最终的访问结果。

    本申请提供的故障定位系统的介绍请参考上述故障定位方法的实施例,本申请在此不再赘述。

    本申请还提供了一种多级链路故障定位的装置,包括:

    存储器,用于存储计算机程序;

    处理器,用于在执行计算机程序时实现上述任一种多级链路故障定位的方法的步骤。

    本申请提供的故障定位装置的介绍请参考上述故障定位方法的实施例,本申请在此不再赘述。

    还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

    对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。


    技术特征:

    1.一种多级链路故障定位的方法,其特征在于,包括:

    预先根据待访问器件的访问链路生成所述待访问器件的访问级数信息;

    在对所述待访问器件进行访问时,根据所述访问级数信息依次访问所述待访问器件之前的每一级待访问中间器件及所述待访问器件;

    当目标访问器件的访问出错时,生成包含所述目标访问器件的级数信息的访问错误信息,以根据所述访问错误信息进行多级链路故障定位;其中,所述目标访问器件为任一级待访问中间器件或所述待访问器件。

    2.如权利要求1所述的多级链路故障定位的方法,其特征在于,根据待访问器件的访问链路生成所述待访问器件的访问级数信息的过程,包括:

    根据待访问器件的访问链路生成表征所述待访问器件的访问级数信息的多节点访问链表;

    其中,在所述多节点访问链表中,根节点包括第一级待访问中间器件对应的访问地址及访问通道、下一个节点的地址指针;中间节点包括与上一节点的待访问中间器件对应的下一级待访问中间器件对应的访问地址及访问通道、下一个节点的地址指针;末端节点包括所述待访问器件对应的访问地址及访问通道。

    3.如权利要求2所述的多级链路故障定位的方法,其特征在于,根据所述访问级数信息依次访问所述待访问器件之前的每一级待访问中间器件及所述待访问器件的过程,包括:

    获取所述多节点访问链表的根节点,并根据所述根节点的内容访问对应的目标访问器件,且将访问级数加1;

    判断当前访问的目标访问器件是否访问成功;

    若访问成功,则根据当前访问的目标访问器件对应的节点内容判断所述多节点访问链表是否还存在下一节点;

    若存在下一节点,则按照下一节点的内容访问对应的目标访问器件,且将访问级数加1;

    若不存在下一节点,则返回最终的访问结果。

    4.如权利要求3所述的多级链路故障定位的方法,其特征在于,当目标访问器件的访问出错时,生成包含所述目标访问器件的级数信息的访问错误信息的过程,包括:

    预先定义一个表征所述待访问器件的访问错误信息的故障码;

    在当前访问的目标访问器件的访问出错时,获取与当前访问的目标访问器件对应记录的访问级数值,并将所述故障码中与所述访问级数值对应的数据位置位。

    5.如权利要求4所述的多级链路故障定位的方法,其特征在于,所述故障码包括表征所述待访问器件的访问链路总级数的数据位、表征各级目标访问器件的故障状态的数据位及预留数据位。

    6.如权利要求1所述的多级链路故障定位的方法,其特征在于,所述多级链路故障定位的方法还包括:

    将所述待访问器件的访问错误信息进行存储;

    在基于所述访问错误信息更换相应的故障部件后,清空所存储的待访问器件的访问错误信息。

    7.一种多级链路故障定位的系统,其特征在于,包括:

    信息生成模块,用于预先根据待访问器件的访问链路生成所述待访问器件的访问级数信息;

    器件访问模块,用于在对所述待访问器件进行访问时,根据所述访问级数信息依次访问所述待访问器件之前的每一级待访问中间器件及所述待访问器件;

    故障报错模块,用于当目标访问器件的访问出错时,生成包含所述目标访问器件的级数信息的访问错误信息,以根据所述访问错误信息进行多级链路故障定位;其中,所述目标访问器件为任一级待访问中间器件或所述待访问器件。

    8.如权利要求7所述的多级链路故障定位的系统,其特征在于,所述信息生成模块具体用于:

    预先根据待访问器件的访问链路生成表征所述待访问器件的访问级数信息的多节点访问链表;

    其中,在所述多节点访问链表中,根节点包括第一级待访问中间器件对应的访问地址及访问通道、下一个节点的地址指针;中间节点包括与上一节点的待访问中间器件对应的下一级待访问中间器件对应的访问地址及访问通道、下一个节点的地址指针;末端节点包括所述待访问器件对应的访问地址及访问通道。

    9.如权利要求8所述的多级链路故障定位的系统,其特征在于,所述器件访问模块具体用于:

    在对所述待访问器件进行访问时,获取所述多节点访问链表的根节点,并根据所述根节点的内容访问对应的目标访问器件,且将访问级数加1;

    判断当前访问的目标访问器件是否访问成功;

    若访问成功,则根据当前访问的目标访问器件对应的节点内容判断所述多节点访问链表是否还存在下一节点;

    若存在下一节点,则按照下一节点的内容访问对应的目标访问器件,且将访问级数加1;

    若不存在下一节点,则返回最终的访问结果。

    10.一种多级链路故障定位的装置,其特征在于,包括:

    存储器,用于存储计算机程序;

    处理器,用于在执行所述计算机程序时实现如权利要求1-6任一项所述的多级链路故障定位的方法的步骤。

    技术总结
    本发明公开了一种多级链路故障定位的方法、系统及装置,预先根据待访问器件的访问链路生成待访问器件的访问级数信息;在对待访问器件进行访问时,根据访问级数信息依次访问待访问器件之前的每一级待访问中间器件及待访问器件;当目标访问器件的访问出错时,生成包含目标访问器件的级数信息的访问错误信息,以根据访问错误信息进行多级链路故障定位。可见,本申请可在访问任一级器件出错时,均返回访问出错的器件所在的级数信息,从而可准确定位到是哪一级器件出现故障问题,利于多级链路故障分析及维修。

    技术研发人员:周宁宁;张中云;张亚男
    受保护的技术使用者:苏州浪潮智能科技有限公司
    技术研发日:2020.11.12
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-8714.html

    最新回复(0)