欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种连接建立方法、装置、设备及可读存储介质独创技术27536字

一种连接建立方法、装置、设备及可读存储介质

2021-02-20 01:44:31

一种连接建立方法、装置、设备及可读存储介质

  技术领域

  本发明涉及存储技术领域,特别是涉及一种连接建立方法、装置、设备及可读存储介质。

  背景技术

  对于分布式存储集群,所有服务都需要同MON建立连接。其中,MON(monitor)即存储系统中的管理设备,负载对集群进行监控管理。

  以客户端为例,连接建立过程:客户端从系统中的MON中随机选择一个MON,然后与该MON建立连接。对于小规模集群,这种与MON建立连接的方案没有问题,但对于大规模集群来说,会存在问题。具体的,对于大规模集群,客户通常会对集群划分网络,当前与MON建立连接的方案会出现大量的跨网段连接MON的情况,跨网段连接会影响通信效率。在连接建立过程中,也会因连接是否成功的判定机制效率过低,导致连接建立效率不高。

  综上所述,如何有效地解决集群其他模块与MON建立连接等问题,是目前本领域技术人员急需解决的技术问题。

  发明内容

  本发明的目的是提供一种连接建立方法、装置、设备及可读存储介质,通过与同网段的管理设备建立连接,能够有效避免建立跨网段连接,能够有效提高通信效率,通过连接检测,能够快速启动重建过程,提高连接建立效率。

  为解决上述技术问题,本发明提供如下技术方案:

  一种连接建立方法,包括:

  获取分布式存储集群中各个管理设备的网络配置信息;其中,各个所述管理设备部署于不同网段中;

  利用所述网络配置信息,构建与本地网段对应的管理设备列表;

  从所述管理设备列表中随机选择一个所述管理设备作为目标管理设备;

  与所述目标管理设备建立连接;

  利用网络模块检测连接是否已通;

  如果否,则利用回调函数,返回执行所述从所述管理设备列表中随机选择一个所述管理设备作为目标管理设备的步骤。

  优选地,还包括:

  在与所述目标管理设备断开连接的情况下,从所述管理设备列表中重新随机选择一个所述管理设备;

  判断重新选出的所述管理设备是否为指定管理设备;所述指定管理设备包括上一个所述目标管理设备和本地管理设备中的至少一个;

  如果是,则返回执行所述从所述管理设备列表中重新随机选择一个所述管理设备的步骤;

  如果否,则将重新选出的所述管理设备作为所述目标管理设备,并与所述目标管理设备建立连接。

  优选地,还包括:

  若所述管理设备列表中的全部所述管理设备均已故障,则从所述分布式集群中随机选择一个正常的所述管理设备作为所述目标管理设备,并与所述目标管理设备建立连接。

  优选地,所述获取分布式集群中各个管理设备的网络配置信息,包括:

  获取配置文件,并从所述配置文件中获取公网配置;

  从所述公网配置中获取每一个所述管理设备的所述网段和子网掩码;

  将所述网段和所述子网掩码作为所述网络配置信息。

  优选地,利用所述网络配置信息,构建与本地网段对应的管理设备列表,包括:

  获取本地节点的IP,结合所述网段和所述子网掩码确定出所述本地网段;

  利用各个所述网段,确定出所述本地网段对应的各个所述管理设备,并构建出所述管理设备列表。

  优选地,还包括:

  获取所述分布式存储集群中的管理设备总数;

  若所述管理设备总数发生变化,则更新所述管理设备列表。

  优选地,从所述管理设备列表中随机选择一个所述管理设备作为目标管理设备,包括:

  利用以时间和/或进程号作为随机种子的随机算法,从所述管理设备列表中随机选择一个所述管理设备作为目标管理设备。

  一种连接建立装置,包括:

  网络配置信息获取模块,用于获取分布式存储集群中各个管理设备的网络配置信息;其中,各个所述管理设备部署于各个网段中;

  管理设备列表构建模块,用于利用所述网络配置信息,构建与本地网段对应的管理设备列表;

  目标管理设备确定模块,用于从所述管理设备列表中随机选择一个所述管理设备作为目标管理设备;

  连接建立模块,用于与所述目标管理设备建立连接;

  连接检测重连模块,用于利用网络模块检测连接是否已通;如果否,则利用回调函数,触发所述目标管理设备确定模块,以执行所述从所述管理设备列表中随机选择一个所述管理设备作为目标管理设备的步骤。

  一种连接建立设备,包括:

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

  处理器,用于执行所述计算机程序时实现上述连接建立方法的步骤。

  一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述连接建立方法的步骤。

  应用本发明实施例所提供的方法,获取分布式存储集群中各个管理设备的网络配置信息;其中,各个管理设备部署于不同网段中;利用网络配置信息,构建与本地网段对应的管理设备列表;从管理设备列表中随机选择一个管理设备作为目标管理设备;与目标管理设备建立连接;利用网络模块检测连接是否已通;如果否,则利用回调函数,返回执行从管理设备列表中随机选择一个管理设备作为目标管理设备的步骤。

  在本方法中,管理设备部署于不同网络中。基于网络配置信息构建出与本地网段对应的管理设备列表。也就是说,与本地网段对应的管理设备列表中的管理设备均属于本地网段。在需要与管理设备建立连接的需求下,便可借助于该管理设备列表,从同网段的管理设备中随机选择出一个管理设备作为目标管理设备,然后与该目标管理设备建立连接,利用网络模块检测连接是否已通;如果否,则利用回调函数进行连接重建。如此,便能够有效避免构建跨网段连接,能够有效提高分布式存储集群中的其他模块/设备与管理设备的通信效率,也能够避免因连接检测效率不高,导致无法快速有效的建立连接。

  相应地,本发明实施例还提供了与上述连接建立方法相对应的连接建立装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。

  附图说明

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

  图1为本发明实施例中一种连接建立方法的实施流程图;

  图2为本发明实施例中一种连接建立装置的结构示意图;

  图3为本发明实施例中一种连接建立设备的结构示意图;

  图4为本发明实施例中一种连接建立设备的具体结构示意图。

  具体实施方式

  为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

  在分布式存储集群中,所有的服务都需要与管理设备建立连接。例如,客户端需要与管理设备建立连接,对象存储设备(Object-based Storage Device,OSD)也需要对管理设备建立连接。可在客户端或OSD中设置一个MONC模块,该MONC模块用于实现构建客户端或者是OSD与管理设备的连接。也就是说,本发明实施例所提供的连接建立方法可在MONC模块中实现。另外,考虑到OSD与管理设备之间的交互最为频繁,下面以OSD与管理设备建立连接为例对连接建立方法进行详细说明,对于其他设备/模块与管理设备建立连接的过程可参照与此,在此不再一一赘述。

  请参考图1,图1为本发明实施例中一种连接建立方法的流程图,该方法包括以下步骤:

  S101、获取分布式存储集群中各个管理设备的网络配置信息。

  其中,各个管理设备部署于不同网段中。

  需要说明的是,为了尽量避免与管理设备构建跨网段连接,在部署分布式存储集群时,可采用多网段部署的方式,将管理设备尽可能均匀地部署到各个网段内。

  OSD中的MONC模块可获取分布式存储集群中各个管理设备的网络配置信息。该网络配置信息可具体包括各个管理设备的网段以及用于验证是否属于同一个网段的子网掩码。

  其中,网段(network segment)一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分。例如,从192.168.0.1到192.168.255.255这之间就是一个网段。在同一网段,要求网络标识相同。网络标识就是用IP的二进制与子网掩码的二进制数据作“与”运算(可用WINDOWS计算器算二进制),所得结果,而不是IP地址前几段相同就表示在同一网段。若网络标识相同,就表示在同一网段。

  具体的,获取网络配置信息的过程可包括:

  步骤一、获取配置文件,并从配置文件中获取公网配置;

  步骤二、从公网配置中获取每一个管理设备的网段和子网掩码;

  步骤三、将网段和子网掩码作为网络配置信息。

  为便于描述,下面将上述三个步骤结合起来进行说明。

  MONC模块可以从配置文件获取public网络的配置,遍历管理设备map,为每个管理设备找到匹配的网段和子网掩码。也就是说,网络配置信息至少包括各个管理设备的网段和子网掩码。

  S102、利用网络配置信息,构建与本地网段对应的管理设备列表。

  其中,本地网段即本地OSD对应的网段,可直接根据记载确定出本地网段,也可通过获取本地IP结合网络配置信息中的网段和子网掩码,确定出本地网段。

  与本地网段对应的管理设备列表,即为与本地OSD同属于同一个网段的管理设备的列表。当然,在实际应用中,可将该管理设备列表具体设置为与本地网段对应的一个map。

  具体的,构建管理设备列表的过程,包括:

  步骤一、获取本地节点的IP,结合网段和子网掩码确定出本地网段;

  步骤二、利用各个网段,确定出本地网段对应的各个管理设备,并构建出管理设备列表。

  其中,本地节点即为需要与管理设备建立连接的客户端,或OSD,或其他设备。

  在确定本地网段时,可分别将本地节点的IP与各个管理设备的子网掩码进行“与”计算,根据计算结果可以确定出该IP与哪个网段对应,即可确定出本地网段。

  确定出本地网段之后,便可基于各个管理设备所属的网段,确定出哪些管理设备与本地节点在同一个网段中,为这些设备构建出管理设备类表。

  S103、从管理设备列表中随机选择一个管理设备作为目标管理设备。

  得到管理设备列表之后,在需要与管理设备建立连接的情况下(如OSD启动时),便可从管理设备列表中随机选择一个管理设备作为目标管理设备。

  由于该管理设备列表与本地网段对应,因此,从管理设备列表中随机选择的管理设备也与本地节点属于同一个网段。

  在本发明实施例中,仅为了便于区别,将从管理设备列表中随机选择出的需要与之建立连接的管理设备称之为目标管理设备。

  优选地,考虑到在之际应用中,还可能会因设备故障导致与管理设备建立好的连接断开,为了避免影响业务,在连接断开之后,也需进行连接建立。具体实现过程,包括:

  步骤一、在与目标管理设备断开连接的情况下,从管理设备列表中重新随机选择一个管理设备;

  步骤二、判断重新选出的管理设备是否为指定管理设备;指定管理设备包括上一个目标管理设备和本地管理设备中的至少一个;

  步骤三、如果是,则返回执行从管理设备列表中重新随机选择一个管理设备的步骤;

  步骤四、如果否,则将重新选出的管理设备作为目标管理设备,并与目标管理设备建立连接。

  为便于描述,下面将上述四个步骤结合起来进行说明。

  在与已建立的目标管理设备断开连接后,为了避免出现跨网段连接,仍然可以继续从与本地网段对应的管理设备列表中重新随机选择出一个管理设备。

  为了避免重新选出的管理设备仍然为上一个目标管理设备,导致无法建立连接,还在确定出的管理设备仍然为上一个目标管理设备的情况下,再次随机选择管理设备。

  为了避免出现连接故障无法被目标管理设备有效处理,在确定出管理设备为本地管理设备时,也可采用重新选择管理设备。

  在新确定出的管理设备并非上一个目标管理设备,或并非本地管理设备,或既非上一个目标管理设备又非本地管理设备的情况下,可以将其确定为目标管理设备,并与之建立连接。

  优选地,考虑到与本地网段对应的管理设备列表中的全部设置均属于同一个网段,为了避免因此网络等原因导致管理设备列表中的全部管理设备均宕机,还可从分布式存储集群中其他正常的管理设备中随机确定出一个管理设备作为目标管理设备。具体的,若管理设备列表中的全部管理设备均已故障,则从分布式集群中随机选择一个正常的管理设备作为目标管理设备,并与目标管理设备建立连接。

  S104、与目标管理设备建立连接。

  确定出目标管理设备之后,便可与目标管理设备建立连接。具体的,该连接可以具体为长连接。

  S105、利用网络模块检测连接是否已通。

  如果否,则执行步骤S106;如果是,则无操作。

  S106、利用回调函数,返回执行从管理设备列表中随机选择一个管理设备作为目标管理设备的步骤。

  为便于说明,下面将上述步骤S105和步骤S106结合起来进行说明。

  在已有技术方案中,以OSD为例。在OSD选出一个MON后,开始建立连接,发送消息,但是这个过程是一个异步的过程,MONC模块并不能真正感知是否连接建立成功,所以MONC设置了一个定时器,检查MONC的状态,如果链接建立成功,OSD与MON成功有消息交互,会修改状态,如果定时器发现一定时间内MONC的状态未改变,就重新触发选MON的流程,重新链接。

  显然,这个已有方案的缺点是:在多个节点故障的时候,MONC这里记录的MON down的信息还没有更新,就会造成选择的MON可能是down(故障)的MON,这样会造成OSD模块无法将故障的消息快速通知给MON。

  在上述步骤S105和步骤S106对应的技术方案:增加了一个网络探测的功能,在网络模块(Async层)注册一个回调函数,async层建立链接的时候收到-ECONNREFUSED的错误,就认为该链路不通,async层调用注册的回调函数,回调函数中会立刻触发重新选MON,重连建立链接的工作,能够提高连接建立效率。

  应用本发明实施例所提供的方法,获取分布式存储集群中各个管理设备的网络配置信息;其中,各个管理设备部署于不同网段中;利用网络配置信息,构建与本地网段对应的管理设备列表;从管理设备列表中随机选择一个管理设备作为目标管理设备;与目标管理设备建立连接;利用网络模块检测连接是否已通;如果否,则利用回调函数,返回执行从管理设备列表中随机选择一个管理设备作为目标管理设备的步骤。

  在本方法中,管理设备部署于不同网络中。基于网络配置信息构建出与本地网段对应的管理设备列表。也就是说,与本地网段对应的管理设备列表中的管理设备均属于本地网段。在需要与管理设备建立连接的需求下,便可借助于该管理设备列表,从同网段的管理设备中随机选择出一个管理设备作为目标管理设备,然后与该目标管理设备建立连接,利用网络模块检测连接是否已通;如果否,则利用回调函数进行连接重建。如此,便能够有效避免构建跨网段连接,能够有效提高分布式存储集群中的其他模块/设备与管理设备的通信效率,也能够避免因连接检测效率不高,导致无法快速有效的建立连接。

  需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。

  优选地,考虑到在实际应用中,可能会对分布式存储集群进行扩容或者缩容,这就会导致管理设备的数量发生变化,为了在完成扩容或缩容的情况下,也可与管理设备建立连接,还可对管理设备列表进行更新。具体实现过程包括:

  步骤一、获取分布式存储集群中的管理设备总数;

  步骤二、若管理设备总数发生变化,则更新管理设备列表。

  若对分布式存储集群进行扩容,则会对应增加管理设备的数量;若对分布式存储集群进行缩容,则会对应减少管理设备的数量。因此,在管理设备总数发生变化时,可更新管理设备列表,以避免因缩容而导致无法与某些管理设备建立连接,以及避免因扩容后,因扩容后新增的管理设备未在管理设备列表中导致无法与新增的管理设备建立连接。

  对于更新管理设备列表的具体实现过程可重复执行上述步骤S101和步骤S102即可,具体实现可参见上述步骤S101和步骤S102的详细说明,在此不在一一赘述。

  优选地,考虑到现有的随机选择管理设备的方式多采用伪随机算法,会出现管理设备的连接不均衡,如部分管理设备具有大量连接,而部分管理设备仅有少量连接,影响集群业务的处理;为了避免出现管理设备的连接不均衡在上述实施例的基础上,对随机选择管理设备的过程进行改进,即从管理设备列表中随机选择一个管理设备作为目标管理设备,包括:利用以时间和/或进程号作为随机种子的随机算法,从管理设备列表中随机选择一个管理设备作为目标管理设备。在本方法中,可采用以时间为随机种子,或以进程号为随机种子,或基于时间和进程号作为随机种子的随机算法,随机选择管理设备。如此,便可有效避免设备集中与某部分管理设备连接。其中,进程号即需与管理设备建立连接的模块或设备的一种唯一标识。

  相应于上面的方法实施例,本发明实施例还提供了一种连接建立装置,下文描述的连接建立装置与上文描述的连接建立方法可相互对应参照。

  参见图2所示,该装置包括以下模块:

  网络配置信息获取模块101,用于获取分布式存储集群中各个管理设备的网络配置信息;其中,各个管理设备部署于各个网段中;

  管理设备列表构建模块102,用于利用网络配置信息,构建与本地网段对应的管理设备列表;

  目标管理设备确定模块103,用于从管理设备列表中随机选择一个管理设备作为目标管理设备;

  连接建立模块104,用于与目标管理设备建立连接;

  连接检测重连模块105,用于利用网络模块检测连接是否已通;如果否,则利用回调函数,触发目标管理设备确定模块,以执行从管理设备列表中随机选择一个管理设备作为目标管理设备的步骤。

  应用本发明实施例所提供的装置,获取分布式存储集群中各个管理设备的网络配置信息;其中,各个管理设备部署于不同网段中;利用网络配置信息,构建与本地网段对应的管理设备列表;从管理设备列表中随机选择一个管理设备作为目标管理设备;与目标管理设备建立连接;利用网络模块检测连接是否已通;如果否,则利用回调函数,返回执行从管理设备列表中随机选择一个管理设备作为目标管理设备的步骤。

  在本装置中,管理设备部署于不同网络中。基于网络配置信息构建出与本地网段对应的管理设备列表。也就是说,与本地网段对应的管理设备列表中的管理设备均属于本地网段。在需要与管理设备建立连接的需求下,便可借助于该管理设备列表,从同网段的管理设备中随机选择出一个管理设备作为目标管理设备,然后与该目标管理设备建立连接,利用网络模块检测连接是否已通;如果否,则利用回调函数进行连接重建。如此,便能够有效避免构建跨网段连接,能够有效提高分布式存储集群中的其他模块/设备与管理设备的通信效率,也能够避免因连接检测效率不高,导致无法快速有效的建立连接。

  在本发明的一种具体实施方式中,还包括:

  故障后重连模块,用于在与目标管理设备断开连接的情况下,从管理设备列表中重新随机选择一个管理设备;判断重新选出的管理设备是否为指定管理设备;指定管理设备包括上一个目标管理设备和本地管理设备中的至少一个;如果是,则返回执行从管理设备列表中重新随机选择一个管理设备的步骤;如果否,则将重新选出的管理设备作为目标管理设备,并与目标管理设备建立连接。

  在本发明的一种具体实施方式中,还包括:

  重连模块,用于若管理设备列表中的全部管理设备均已故障,则从分布式集群中随机选择一个正常的管理设备作为目标管理设备,并与目标管理设备建立连接。

  在本发明的一种具体实施方式中,网络配置信息获取模块101,具体用于获取配置文件,并从配置文件中获取公网配置;从公网配置中获取每一个管理设备的网段和子网掩码;将网段和子网掩码作为网络配置信息。

  在本发明的一种具体实施方式中,管理设备列表构建模块102,具体用于获取本地节点的IP,结合网段和子网掩码确定出本地网段;利用各个网段,确定出本地网段对应的各个管理设备,并构建出管理设备列表。

  在本发明的一种具体实施方式中,还包括:

  列表更新模块,用于获取分布式存储集群中的管理设备总数;若管理设备总数发生变化,则更新管理设备列表。

  在本发明的一种具体实施方式中,目标管理设备确定模块103,具体用于利用以时间和/或进程号作为随机种子的随机算法,从管理设备列表中随机选择一个管理设备作为目标管理设备。

  相应于上面的方法实施例,本发明实施例还提供了一种连接建立设备,下文描述的一种连接建立设备与上文描述的一种连接建立方法可相互对应参照。

  参见图3所示,该连接建立设备包括:

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

  处理器322,用于执行计算机程序时实现上述方法实施例的连接建立方法的步骤。

  具体的,请参考图4,图4为本实施例提供的一种连接建立设备的具体结构示意图,该连接建立设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储器332通信,在连接建立设备301上执行存储器332中的一系列指令操作。

  连接建立设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。

  上文所描述的连接建立方法中的步骤可以由连接建立设备的结构实现。

  相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种连接建立方法可相互对应参照。

  一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的连接建立方法的步骤。

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

  本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

《一种连接建立方法、装置、设备及可读存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)