一种全闪存阵列的连接错误检测方法、系统及相关组件
文献发布时间:2023-06-19 10:08:35
技术领域
本申请涉及数据存储技术领域,特别涉及一种全闪存阵列的连接错误检测方法、系统、一种电子设备及一种存储介质。
背景技术
经济高效地处理与操控海量数据集对存储系统性能的要求超越了基于硬盘的传统存储系统所能提供的性能。全闪存阵列(Just a Bunch Of Flash,JBOF)具有高并发、高性能、低延迟等特性,因此全闪存阵列得到广泛的推广和应用。为了解决NVMe盘总容量的问题,相关技术中通常在主机上连接多个全闪存阵列,但是目前尚不存在检测全闪存阵列连接错误的技术方案。
因此,如何检测全闪存阵列中的连接错误是本领域技术人员目前需要解决的技术问题。
发明内容
本申请的目的是提供一种全闪存阵列的连接错误检测方法、系统、一种电子设备及一种存储介质,能够检测全闪存阵列中的连接错误。
为解决上述技术问题,本申请提供一种全闪存阵列的连接错误检测方法,应用于目标主机,N个全闪存阵列通过级联的方式与所述目标主机连接,所述连接错误检测方法包括:
获取所述全闪存阵列对应控制器的端口连接参数;其中,所述端口连接参数包括本端设备地址、本端端口地址和对端端口地址;
根据所述本端端口地址和所述对端端口地址对级联关系相邻的全闪存阵列进行连接错误检测;
根据所述本端设备地址对所述全闪存阵列的控制器进行连接错误检测。
可选的,根据所述本端端口地址和所述对端端口地址对级联关系相邻的全闪存阵列进行连接错误检测,包括:
获取用于描述所述目标主机中全闪存阵列连接关系的拓扑结构图;
根据所述拓扑结构图逐级对比相邻全闪存阵列对应控制器的本端端口地址和对端端口地址,以便进行连接错误检测。
可选的,根据所述拓扑结构图逐级对比相邻全闪存阵列对应控制器的本端端口地址和对端端口地址,以便进行连接错误检测,包括:
根据所述拓扑结构图逐级选取第一全闪存阵列和第二全闪存阵列;其中,所述第一全闪存阵列对应的第一控制器与所述第二全闪存阵列对应的第二控制器连接;
判断所述第一控制器的本端端口地址是否与所述第二控制器的对端端口地址相同,得到第一判断结果;
判断所述第一控制器的对端端口地址是否与所述第二控制器的本端端口地址相同,得到第二判断结果;
若所述第一判断结果和/或所述第二判断结果为地址不相同,则判定所述第一控制器和所述第二控制器存在连接错误。
可选的,根据所述本端设备地址对所述全闪存阵列的控制器进行连接错误检测,包括:
从所有所述全闪存阵列中选取目标全闪存阵列;
判断所述目标全闪存阵列的所有控制器的本端设备地址是否均相同;
若否,则判定所述目标全闪存阵列存在控制器连接错误。
可选的,在根据所述本端端口地址和所述对端端口地址对级联关系相邻的全闪存阵列进行连接错误检测之后,还包括:
在拓扑结构图中对存在连接错误的线路进行标记;其中,所述拓扑结构图用于描述所述目标主机中全闪存阵列连接关系。
可选的,在拓扑结构图中对存在连接错误的线路进行标记之后,还包括:
生成报警信息,并在人机交互界面中显示连接错误的端口连接参数。
可选的,所述全闪存阵列为基于MiniSAS的PCIE全闪存阵列。
本申请还提供了一种全闪存阵列的连接错误检测系统,应用于目标主机,N个全闪存阵列通过级联的方式与所述目标主机连接,所述连接错误检测系统包括:
参数获取模块,用于获取所述全闪存阵列对应控制器的端口连接参数;其中,所述端口连接参数包括本端设备地址、本端端口地址和对端端口地址;
第一错误检测模块,用于根据所述本端端口地址和所述对端端口地址对级联关系相邻的全闪存阵列进行连接错误检测;
第二错误检测模块,用于根据所述本端设备地址对所述全闪存阵列的控制器进行连接错误检测。
本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述全闪存阵列的连接错误检测方法执行的步骤。
本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述全闪存阵列的连接错误检测方法执行的步骤。
本申请提供了一种全闪存阵列的连接错误检测方法,应用于目标主机,N个全闪存阵列通过级联的方式与所述目标主机连接,所述连接错误检测方法包括:获取所述全闪存阵列对应控制器的端口连接参数;其中,所述端口连接参数包括本端设备地址、本端端口地址和对端端口地址;根据所述本端端口地址和所述对端端口地址对级联关系相邻的全闪存阵列进行连接错误检测;根据所述本端设备地址对所述全闪存阵列的控制器进行连接错误检测。
本申请所提供的方案中全闪存阵列通过级联的方式与目标主机连接,级联的方式可以减少主机扩展卡的数量,有效增加目标主机的存储容量。全闪存阵列之间通过控制器的端口进行连接,在获得全闪存阵列对应控制器的端口连接参数之后,本申请可以利用端口连接参数判断全闪存阵列是否存在连接错误。具体的,本申请可以根据所述本端端口地址和所述对端端口地址对级联关系相邻的全闪存阵列进行连接错误检测,还可以根据所述本端设备地址对所述全闪存阵列的控制器进行连接错误检测。可见,本申请能够检测全闪存阵列中的连接错误。本申请同时还提供了一种全闪存阵列的连接错误检测系统、一种电子设备和一种存储介质,具有上述有益效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例所提供的一种全闪存阵列的连接错误检测方法的流程图;
图2为本申请实施例所提供的一种全闪存阵列的级联示意图;
图3为本申请实施例所提供的全闪存阵列端口连接示意图;
图4为本申请实施例所提供的一种全闪存阵列的连接错误检测系统的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面请参见图1,图1为本申请实施例所提供的一种全闪存阵列的连接错误检测方法的流程图。
具体步骤可以包括:
S101:获取所述全闪存阵列对应控制器的端口连接参数;
其中,本实施例可以应用于个人计算机、服务器等目标主机,N个全闪存阵列通过级联的方式与所述目标主机连接。本实施例可以更好的扩展全闪存阵列,采用MiniSAS线缆作为PCIE(peripheral component interconnect express)传输介质,MiniSAS作为标线,扩展性好。MiniSAS为SFF-8088线缆,外部型迷你SAS无源电缆。
在相关技术中,为了解决目标主机中NVMe盘总容量的问题,通常将全闪存阵列并联接入主机,但是采用并联的时候需要主柜插入扩展卡增加了成本,因此本实施例通过级联(即,串联)的方式连接全闪存阵列,采用串联的方式可以减少主机扩展卡的数量,有效增加容量,降低成本。参见图2,图2为本申请实施例所提供的一种全闪存阵列的级联示意图,图2中PCIW SW为PCIE Switch,目标主机的主柜通过与第一级全闪存阵列连接,第一级全闪存阵列与第二级全闪存阵列连接,图2中对全闪存阵列进行二级级联,可以减少主机扩展卡的使用,有效提高存储容量。全闪存阵列中可以连接多个NVMe SSD,本实施例中的全闪存阵列为基于MiniSAS的PCIE全闪存阵列。(NVMe)NVM Express是标准和信息的开放收集,以充分展示非易失性存储器在从移动设备到数据中心的所有类型的计算环境中的优势。全闪存阵列可以PCIE为物理底层传输协议,Nvme作为带内SSD协议具有实现高带宽、高并发、低延迟等特性。
本实施例中PCIE SW组成的机箱设备形成级联,每一个port端口都有一个connector连接描述,通过connector连接描述形成主机连接JBOF1,JBOF1连接JBOF2的级联拓扑。connector连接描述即端口连接参数,端口连接参数包括本端设备地址、本端端口地址和对端端口地址。
请参见图3,图3为本申请实施例所提供的全闪存阵列端口连接示意图,图3中,CPU1与第一级全闪存阵列连接,CPU2与第二级全闪存阵列连接,CPU1的wwpn为C4.0.0,CPU2的wwpn为1C4.0.0。第一级全闪存阵列的控制器1的第一端口的本端设备地址为0x56c92bf80203043f,本端地址为C5.0.0,对端地址为C4.0.0。第一级全闪存阵列的控制器1的第二端口的本端设备地址为0x56c92bf80203043f,本端地址为C6.0.0,对端地址为C7.0.0。第一级全闪存阵列的控制器2的第一端口的本端设备地址为0x56c92bf80203047f,本端地址为1C5.0.0、对端地址为1C4.0.0。第一级全闪存阵列的控制器2的第二端口的本端设备地址为0x56c92bf80203047f,本端地址为1C6.0.0、对端地址为1C7.0.0。第二级全闪存阵列的控制器1的端口的本端设备地址为0x56c92bf80000003f,本端地址为C7.0.0、对端地址为C6.0.0。第二级全闪存阵列的控制器2的端口的本端设备地址为0x56c92bf80000007f,本端地址为1C7.0.0、对端地址为1C6.0.0。上述实施例中左边为控制器1,右边为控制器2,控制器1上的连接地址最高位为0,控制器2上的连接地址最高位为1,以便区分控制器1或控制器2。控制器的设备地址是通过机箱基地址生成的,基地址唯一,如上基地址为0x56c92bf802030400,控制器1为0x56c92bf80203043f,控制器2为0x56c92bf80203047f。
S102:根据所述本端端口地址和所述对端端口地址对级联关系相邻的全闪存阵列进行连接错误检测;
其中,本实施例在得到本端端口地址和所述对端端口地址的基础上对级联关系相邻的全闪存储阵列进行连接错误检测。具体的,主机端存储系统会获取到所有端口的本端端口地址和对端端口地址,并一级一级遍历,检测地址合法性,即判断对端地址是否是和下一级的设备端口地址能对应上,如果不对应,则存在连接错误。本端端口地址指端口自身的地址,对端端口地址指与本端口连接的对端端口的地址,若两个级联关系相邻的端口的本端端口地址和对端端口地址相互对应,则说明全闪存阵列连接正确,反之则说明连接错误。
S103:根据所述本端设备地址对所述全闪存阵列的控制器进行连接错误检测。
其中,本实施例还可以检测同一全闪存阵列的控制器的本端设备地址是否相同,以确保连接同一全闪存阵列的控制器为同一个机箱的控制器。
作为一种可行的实施方式,在根据所述本端端口地址和所述对端端口地址对级联关系相邻的全闪存阵列进行连接错误检测之后,本实施例还可以在拓扑结构图中对存在连接错误的线路进行标记;其中,所述拓扑结构图用于描述所述目标主机中全闪存阵列连接关系。进一步的,在拓扑结构图中对存在连接错误的线路进行标记之后,还可以生成报警信息,并在人机交互界面中显示连接错误的端口连接参数。
本实施例所提供的方案中全闪存阵列通过级联的方式与目标主机连接,级联的方式可以减少主机扩展卡的数量,有效增加目标主机的存储容量。全闪存阵列之间通过控制器的端口进行连接,在获得全闪存阵列对应控制器的端口连接参数之后,本实施例可以利用端口连接参数判断全闪存阵列是否存在连接错误。具体的,本实施例可以根据所述本端端口地址和所述对端端口地址对级联关系相邻的全闪存阵列进行连接错误检测,还可以根据所述本端设备地址对所述全闪存阵列的控制器进行连接错误检测。可见,本实施例能够检测全闪存阵列中的连接错误。
作为对于图1对应实施例的进一步介绍,S102中根据所述本端端口地址和所述对端端口地址进行连接错误检测的过程可以包括:获取用于描述所述目标主机中全闪存阵列连接关系的拓扑结构图;根据所述拓扑结构图逐级对比相邻全闪存阵列对应控制器的本端端口地址和对端端口地址,以便进行连接错误检测。
具体的,根据所述拓扑结构图逐级对比相邻全闪存阵列对应控制器的本端端口地址和对端端口地址得过程包括以下步骤:
步骤1:根据所述拓扑结构图逐级选取第一全闪存阵列和第二全闪存阵列;其中,所述第一全闪存阵列对应的第一控制器与所述第二全闪存阵列对应的第二控制器连接;
步骤2:判断所述第一控制器的本端端口地址是否与所述第二控制器的对端端口地址相同,得到第一判断结果;
步骤3:判断所述第一控制器的对端端口地址是否与所述第二控制器的本端端口地址相同,得到第二判断结果;
步骤4:若所述第一判断结果和/或所述第二判断结果为地址不相同,则判定所述第一控制器和所述第二控制器存在连接错误。
作为对于图1对应实施例的进一步介绍,S103中根据所述本端设备地址对所述全闪存阵列的控制器进行连接错误检测的过程可以包括:从所有所述全闪存阵列中选取目标全闪存阵列;判断所述目标全闪存阵列的所有控制器的本端设备地址是否均相同;若否,则判定所述目标全闪存阵列存在控制器连接错误。
举例说明上述利用本端设备地址、本端端口地址和对端端口地址进行错误检测的方案:
例如,控制器1的连接方式为:主机控制器1wwpn C5.0.0连接JBOF1,JBOF1的控制器1的端口2连接JBOF2的端口1,JBOF2的控制器1的端口1连接JBOF1的端口2。控制器2的连接方式为:主机控制器2wwpn C5.0.0连接JBOF1,JBOF1的控制器1的端口2连接JBOF2的端口1,JBOF2的控制器1的端口1连接JBOF1的端口2。
若JBOF1的控制器1的端口2的本端端口地址为abc,对端端口地址为def,且JBOF1的控制器1的端口2与JBOF2的控制器1连接,只有JBOF2的控制器1的端口的对端端口地址为abc且本端端口地址为def时,才判定JBOF1的控制器1的端口2与JBOF2的控制器1的端口连接正确,否则,则判定连接错误。
当JBOF1的控制器1的本端设备地址为ghijk时,仅在JBOF1的控制器2的本端设备地址也为ghijk时,才判定JBOF1的控制器1与控制器2为同一机箱的控制器,否则,则判定连接错误。
上述实施例提供了一种级联错误检测方法,通过级联增加了级联的数量提高了存储容量,通过有效的拓扑检测及时发现设备连接错误,避免设备不可用造成的问题,提高可用性,安全性。
请参见图4,图4为本申请实施例所提供的一种全闪存阵列的连接错误检测系统的结构示意图;
该系统可以包括:
参数获取模块100,用于获取所述全闪存阵列对应控制器的端口连接参数;其中,所述端口连接参数包括本端设备地址、本端端口地址和对端端口地址;
第一错误检测模块200,用于根据所述本端端口地址和所述对端端口地址对级联关系相邻的全闪存阵列进行连接错误检测;
第二错误检测模块300,用于根据所述本端设备地址对所述全闪存阵列的控制器进行连接错误检测。
本实施例所提供的方案中全闪存阵列通过级联的方式与目标主机连接,级联的方式可以减少主机扩展卡的数量,有效增加目标主机的存储容量。全闪存阵列之间通过控制器的端口进行连接,在获得全闪存阵列对应控制器的端口连接参数之后,本实施例可以利用端口连接参数判断全闪存阵列是否存在连接错误。具体的,本实施例可以根据所述本端端口地址和所述对端端口地址对级联关系相邻的全闪存阵列进行连接错误检测,还可以根据所述本端设备地址对所述全闪存阵列的控制器进行连接错误检测。可见,本实施例能够检测全闪存阵列中的连接错误。
进一步的,所述第一错误检测模块200包括:
拓扑图获取单元,用于获取用于描述所述目标主机中全闪存阵列连接关系的拓扑结构图;
地址比对单元,用于根据所述拓扑结构图逐级对比相邻全闪存阵列对应控制器的本端端口地址和对端端口地址,以便进行连接错误检测。
进一步的,所述地址比对单元用于根据所述拓扑结构图逐级选取第一全闪存阵列和第二全闪存阵列;其中,所述第一全闪存阵列对应的第一控制器与所述第二全闪存阵列对应的第二控制器连接;还用于判断所述第一控制器的本端端口地址是否与所述第二控制器的对端端口地址相同,得到第一判断结果;还用于判断所述第一控制器的对端端口地址是否与所述第二控制器的本端端口地址相同,得到第二判断结果;若所述第一判断结果和/或所述第二判断结果为地址不相同,则判定所述第一控制器和所述第二控制器存在连接错误。
进一步的,第二错误检测模块300用于从所有所述全闪存阵列中选取目标全闪存阵列;还用于判断所述目标全闪存阵列的所有控制器的本端设备地址是否均相同;若否,则判定所述目标全闪存阵列存在控制器连接错误。
进一步的,还包括:
标记模块,用于在拓扑结构图中对存在连接错误的线路进行标记;其中,所述拓扑结构图用于描述所述目标主机中全闪存阵列连接关系。
进一步的,还包括:
报警模块,用于在拓扑结构图中对存在连接错误的线路进行标记之后,生成报警信息,并在人机交互界面中显示连接错误的端口连接参数。
进一步的,所述全闪存阵列为基于MiniSAS的PCIE全闪存阵列。
由于系统部分的实施例与方法部分的实施例相互对应,因此系统部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
本申请还提供了一种存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请还提供了一种电子设备,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的步骤。当然所述电子设备还可以包括各种网络接口,电源等组件。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
- 一种全闪存阵列的连接错误检测方法、系统及相关组件
- 一种全闪存列阵的数据写入方法、系统及相关组件