一种分布式存储系统的拓扑结构生成方法、装置及系统与流程

文档序号:16097171发布日期:2018-11-27 23:43阅读:180来源:国知局

本发明涉及分布式存储系统技术领域,更具体地说,涉及一种分布式存储系统的拓扑结构生成方法、装置及系统。



背景技术:

当前,在分布式存储系统中,对于拓扑结构的生成,依赖的是基于TCP/IP(Transmission Control Protocol/Internet Protocol,网络通讯协议)的socket方法。在生成拓扑结构之前,需要保证所有设备正确设置好IP,应用的场景非常局限;另外,该方法无法自动生成拓扑,需要手动在主节点上将所有节点信息填写完成后才可以,不够灵活。

因此,如何快速的生成分布式存储系统的拓扑结构,是本领域技术人员需要解决的问题。



技术实现要素:

本发明的目的在于提供一种分布式存储系统的拓扑结构生成方法、装置及系统,以实现快速生成分布式存储系统的拓扑结构,提高用户体验。

为实现上述目的,本发明实施例提供了如下技术方案:

一种分布式存储系统的拓扑结构生成方法,分布式存储系统包括主节点和子节点,且主节点和子节点位于同一局域网内;所述拓扑结构生成方法包括:

主节点获取拓扑更新报文;其中,所述拓扑更新报文为子节点按照预定时长为间隔向局域网发送的LLDP广播报文;

获取所述拓扑更新报文内的拓扑信息;

遍历拓扑列表,判断所述拓扑信息是否为已有拓扑信息;

若否,则根据所述拓扑信息更新所述拓扑列表,生成所述分布式存储系统更新后的拓扑结构。

其中,所述主节点获取拓扑更新报文包括:

主节点接收LLDP广播报文;

根据所述LLDP广播报文内携带的拓扑更新标识信息,判断所述LLDP广播报文是否为拓扑更新报文;

若是,则继续执行所述获取所述拓扑更新报文内的拓扑信息的步骤。

其中,所述根据所述拓扑信息更新所述拓扑列表,包括:

根据所述拓扑更新报文携带的所述子节点的唯一标识信息,更新所述拓扑列表;其中,所述唯一标识信息为子节点的产品序列码。

其中,本方案还包括:

若检测到存在目标子节点在有效保存时间内未发送拓扑更新报文,则将目标子节点在所述拓扑列表中的拓扑信息设置为无效信息。

其中,本方案还包括:

若接收到拓扑图生成指令,则根据所述拓扑列表内各节点的拓扑信息,生成拓扑图。

一种分布式存储系统的拓扑结构生成装置,基于分布式存储系统的主节点,所述分布式存储系统的主节点和子节点位于同一局域网内;所述拓扑结构生成装置包括:

报文获取模块,用于获取拓扑更新报文;其中,所述拓扑更新报文为子节点按照预定时长为间隔向所述主节点发送的LLDP广播报文;

拓扑信息获取模块,用于获取所述拓扑更新报文内的拓扑信息;

判断模块,用于遍历拓扑列表,判断所述拓扑信息是否为已有拓扑信息;

更新模块,用于在所述拓扑信息不是已有拓扑信息时,根据所述拓扑信息更新所述拓扑列表,生成所述分布式存储系统更新后的拓扑结构。

其中,所述报文获取模块包括:

报文接收单元,用于接收LLDP广播报文;

报文判断单元,用于根据所述LLDP广播报文内携带的拓扑更新标识信息,判断所述LLDP广播报文是否为拓扑更新报文;

所述拓扑信息获取模块,用于在所述LLDP广播报文为拓扑更新报文时,获取所述拓扑更新报文内的拓扑信息。

其中,本方案还包括:

设置模块,用于检测到存在目标子节点在有效保存时间内未发送拓扑更新报文时,将目标子节点在所述拓扑列表中的拓扑信息设置为无效信息。

其中,还包括:

拓扑图生成模块,用于接收到拓扑图生成指令时,根据所述拓扑列表内各节点的拓扑信息,生成拓扑图。

一种分布式存储系统,包括位于同一局域网内的主节点和子节点;

所述子节点,用于按照预定时长为间隔向局域网发送拓扑更新报文;其中,所述拓扑更新报文为LLDP广播报文

所述主节点,用于获取拓扑更新报文;获取所述拓扑更新报文内的拓扑信息;遍历拓扑列表,判断所述拓扑信息是否为已有拓扑信息;若否,则根据所述拓扑信息更新所述拓扑列表,生成所述分布式存储系统更新后的拓扑结构。

通过以上方案可知,本发明实施例提供的一种分布式存储系统的拓扑结构生成方法,分布式存储系统包括主节点和子节点,且主节点和子节点位于同一局域网内;所述拓扑结构生成方法包括:主节点获取拓扑更新报文;其中,所述拓扑更新报文为子节点按照预定时长为间隔向局域网发送的LLDP广播报文;获取所述拓扑更新报文内的拓扑信息;遍历拓扑列表,判断所述拓扑信息是否为已有拓扑信息;若否,则根据所述拓扑信息更新所述拓扑列表,生成所述分布式存储系统更新后的拓扑结构。

可见,在本方案中,子节点通过向主节点发送携带拓扑信息的LLDP广播报文,可实现将拓扑发现的底层协议从TCP/IP改为链路层协议,扩大了应用场景,保证部分故障或者初始化场景下,也可以获取局域网内最新的拓扑结构;其次,本方案优化了拓扑发现的流程,不再需要客户做任何操作,通过子节点主动向局域网发送LLDP广播报文,便可实现主节点获取局域网的完整拓扑,提升了客户的使用体验。

本发明还公开了一种分布式存储系统的拓扑结构生成装置及系统,同样能实现上述技术效果。

附图说明

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

图1为本发明实施例公开的一种分布式存储系统的拓扑结构生成方法流程示意图;

图2为本发明实施例公开的一种分布式存储系统结构示意图;

图3为本发明实施例公开的LLDP报文扩展示意图;

图4为本发明实施例公开的一种拓扑示意图;

图5为本发明实施例公开的一种分布式存储系统的拓扑结构生成装置结构示意图。

具体实施方式

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

本发明实施例公开了一种分布式存储系统的拓扑结构生成方法、装置及系统,以实现快速生成分布式存储系统的拓扑结构,提高用户体验。

参见图1,本发明实施例提供的一种分布式存储系统的拓扑结构生成方法,分布式存储系统包括主节点和子节点,且主节点和子节点位于同一局域网内;所述拓扑结构生成方法包括:

S101、主节点获取拓扑更新报文;其中,所述拓扑更新报文为子节点按照预定时长为间隔向局域网发送的LLDP广播报文;

具体的,数据链路层是网络七层协议OSI之一,传输的是数据帧,基于MAC地址,这样可以不受是否配置了IP的影响,在设备未配置IP前,就可以进行相应处理和操作,保证该方法可以在多个场景下应用。在多个链路层协议中,在本实施例中使用LLDP(Link Layer Discovery Protocol,链路层发现协议),即子节点通过LLDP的广播通信发送广播报文。

需要说明的是,参见图2,为本发明实施例公开的一种分布式存储系统结构示意图,为了在分布式存储系统中发送LLDP广播报文,需要在分布式存储的主节点上部署server端,负责接收处理client端的报文,并将信息实时反馈到拓扑列表中;其他被发现的子节点上部署agent端,用于收集自身信息并定时向局域网内广播,即是向server端上报。可以看出,本方案由原有的基于TCP/IP协议的发现方法,改为基于链路层,扩大应用场景,不受设备是否部署的限制。未部署的设备也可从软件层面发现,避免只能通过物理排查解决。

其中,所述主节点获取拓扑更新报文包括:

主节点接收LLDP广播报文;

根据所述LLDP广播报文内携带的拓扑更新标识信息,判断所述LLDP广播报文是否为拓扑更新报文;

若是,则继续执行所述获取所述拓扑更新报文内的拓扑信息的步骤。

可以理解的是,在本实施例中的LLDP广播报文为固定目的MAC地址的广播报文,需保证所有设备都在同一个局域网内,可跨交换机,但不能跨路由器。具体来说,本方案将目的MAC地址,从固定的组播地址0x0180-C200-000E修改为0x0180-C200-0003,这样保证报文可以穿透交换机设备,正常送达到对端的存储节点,存储设备上部署了server端或agent端后,固定处理目的MAC地址为此地址的报文,其他的都丢弃,达到分布式存储节点之间互相发现并形成拓扑的目的。如图2所示,主节点上需部署为server端,作为所有其他节点上报的信息的汇总点,并将信息实时反馈到拓扑列表中;其他节点部署client端,定期收集自身信息并向局域网内发送广播报文。

进一步的,在本方案中,为了保证可以正常实现各个存储节点间的唯一识别和流程的正常运行,需要在原有的LLDP几个必要的TLV基础上进行扩展,参见图3,为本实施例提供的LLDP报文扩展示意图,在本实施例中,需要至少扩展3个,即:Message Type(标识该报文是用于拓扑更新,且携带了必要的TLV信息)、Product Serial(用于唯一标识某个存储节点,防止配置IP等其他信息变化后导致数据错乱)、Node IP Info(节点的IP信息,拓扑中最基本的信息,如果没有配置IP,可不携带该TLV)。另外,后续如若需要进行功能优化,也可以扩展其他信息,使功能更全面,或展示的信息更全,比如Node Status(标识节点当前的状态信息)。

因此在本方案中,主节点初始化后,启动接收信息的线程,不停检查是否收到了LLDP广播报文,其他节点初始化后,启动发送信息的线程,定时收集自身的信息,并向局域网内发送拓扑更新的广播报文,时间周期的长短和报文的内容,可根据实际情况来定;主节点收到LLDP广播报文后,需要根据广播报文中扩展的Message Type来确定该报文是否是扑更新报文,如果是,则执行S102,如果不是,则丢弃。

S102、获取所述拓扑更新报文内的拓扑信息;

具体的,在本实施例中,若该报文为拓扑更新报文,则需要按照约定的TLV格式,获取报文内容;如果该节点未部署,未设置IP时,该报文中携带的拓扑信息可以仅包括Product Serial,即节点的唯一标识信息;如果该节点已经部署了,则拓扑信息中还可以包括Node IP Info,例如节点的IP信息等。

S103、遍历拓扑列表,判断所述拓扑信息是否为已有拓扑信息;

若否,则执行S104;若是,则继续执行S101;

S104、根据所述拓扑信息更新所述拓扑列表,生成所述分布式存储系统更新后的拓扑结构。

其中,所述根据所述拓扑信息更新所述拓扑列表,包括:

根据所述拓扑更新报文携带的所述子节点的唯一标识信息,更新所述拓扑列表;其中,所述唯一标识信息为子节点的产品序列码。

具体的,在本方案中,为了防止由于其他节点的信息变更导致的拓扑图混乱,需保证每个其他节点都有全局的不可更改的唯一标识,例如Product Serial,保证即便所有其他信息都改变,仍可据此识别节点。本实施例中的拓扑列表中记录了所有节点的拓扑信息,主节点正确获取报文内容后,需要遍历该拓扑列表,判断拓扑列表中是否有该节点的记录,如果没有,则新增一个拓扑标识;如果有,则判断拓扑列表中的拓扑内容是否与接收到的拓扑内容相同,如果不相同,则进行更新。

进一步的,在本方案中,若检测到存在目标子节点在有效保存时间内未发送拓扑更新报文,则将目标子节点在所述拓扑列表中的拓扑信息设置为无效信息。也就是说,拓扑列表中的每个拓扑信息都有一个有效保存时间,如果存在节点长时间没有发送拓扑信息,则说明该节点离线,不属于该拓扑结构,则将对应的拓扑信息设置为无效信息,并清除。

并且,若接收到拓扑图生成指令,则根据所述拓扑列表内各节点的拓扑信息,生成拓扑图。也就是说,用户可以通过管理软件获取拓扑图,即:根据当前拓扑列表的内容,生成拓扑图,展示给客户。参见图4,为本发明实施例提供的一个拓扑示意图。在最终生成的拓扑图效果如图4所示,局域网内,新增节点或者节点信息变更,都可以实时反映到该拓扑图上,大大提高了易用性。

综上可见,本方案在分布式存储中,在主节点上部署新的拓扑发现功能,不再依赖手动填入数据,改为不停的接收并处理局域网内的LLDP广播报文,若为与拓扑结构相关的报文,则获取报文内容,并实时反映到拓扑图中。对此,其他节点会在每个时间周期内收集自身信息并发送广播报文,这样就达到自动刷新拓扑图的目的,展示的信息可以根据需要而定。

下面对本发明实施例提供的拓扑结构生成装置进行介绍,下文描述的拓扑结构生成装置与上文描述的拓扑结构生成方法可以相互参照。

参见图5,本发明实施例提供的一种分布式存储系统的拓扑结构生成装置,基于分布式存储系统的主节点,所述分布式存储系统的主节点和子节点位于同一局域网内;所述拓扑结构生成装置包括:

报文获取模块100,用于获取拓扑更新报文;其中,所述拓扑更新报文为子节点按照预定时长为间隔向所述主节点发送的LLDP广播报文;

拓扑信息获取模块200,用于获取所述拓扑更新报文内的拓扑信息;

判断模块300,用于遍历拓扑列表,判断所述拓扑信息是否为已有拓扑信息;

更新模块400,用于在所述拓扑信息不是已有拓扑信息时,根据所述拓扑信息更新所述拓扑列表,生成所述分布式存储系统更新后的拓扑结构。

其中,所述报文获取模块包括:

报文接收单元,用于接收LLDP广播报文;

报文判断单元,用于根据所述LLDP广播报文内携带的拓扑更新标识信息,判断所述LLDP广播报文是否为拓扑更新报文;

所述拓扑信息获取模块,用于在所述LLDP广播报文为拓扑更新报文时,获取所述拓扑更新报文内的拓扑信息。

其中,本方案还包括:

设置模块,用于检测到存在目标子节点在有效保存时间内未发送拓扑更新报文时,将目标子节点在所述拓扑列表中的拓扑信息设置为无效信息。

其中,本方案还包括:

拓扑图生成模块,用于接收到拓扑图生成指令时,根据所述拓扑列表内各节点的拓扑信息,生成拓扑图。

本发明实施例还公开了一种分布式存储系统,包括位于同一局域网内的主节点和子节点;

所述子节点,用于按照预定时长为间隔向局域网发送拓扑更新报文;其中,所述拓扑更新报文为LLDP广播报文

所述主节点,用于获取拓扑更新报文;获取所述拓扑更新报文内的拓扑信息;遍历拓扑列表,判断所述拓扑信息是否为已有拓扑信息;若否,则根据所述拓扑信息更新所述拓扑列表,生成所述分布式存储系统更新后的拓扑结构。

本发明实施例还公开了一种拓扑结构生成设备,包括:

存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述拓扑结构生成方法的步骤。

本发明实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述拓扑结构生成方法的步骤。

其中,该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

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

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1