一种分布式系统容灾方法、装置和系统与流程

文档序号:14914407发布日期:2018-07-11 00:19阅读:192来源:国知局

本发明涉及计算机技术领域,尤其涉及一种分布式系统容灾方法、装置和系统。



背景技术:

随着各行业数字化进程的推进,数据逐渐成为企事业单位的运营核心。用户对承载数据的存储系统的稳定性要求也越来越高,这包括存储数据可靠性和业务延续性。越来越多的企业把应用、数据、系统进行集中处理,数据大集中的同时也面临风险。虽然不少存储厂商能够向用户提供稳定性极高的存储设备,但还是无法防止自然灾难等突发事件。突发事件造成的非计划宕机的事件不可避免,数据中心断电等不可抗逆因素对生产系统造成不可恢复的毁坏。

现有技术中,包括采用分布式存储系统为用户提供服务。但是,分布式存储系统虽然能够增强了系统地运算性能。但是,分布式系统也存在多个业务服务器之间信息交互不畅、分布式系统某个业务服务器故障的问题。



技术实现要素:

本发明的目的是提供一种分布式系统容灾的方法、装置和系统。通过设置多个监测单元确定业务服务器的状态和信息。从而在主业务服务器故障时快速的将其它的业务服务器切换为主业务服务器。

一方面,本发明具体实施例提供了一种分布式系统容灾方法。多个监测单元中的第一监测单元确定所述主业务服务器客观下线。确定所述第一监测单元在当前纪元为多个监测单元的主监测单元。确定新的主业务服务器,以完成主业务服务器迁移。

在一个可能的设计中,所述第一监测单元还用于向主业务服务器发送第二信息,根据所述主业务服务器根据第二信息返回的结果或第一监测单元在在第一时间范围内没有收到主业务服务器返回的结果时,确定所述主业务服务器主观下线。向多个监测单元中的其他监测单元发送主业务服务器主观下线的结果。

在一个可能的设计中,所述第一监测单元确定所述主业务服务器客观下线具体包括第一监测单元接收多个监测单元发送的第一信息,所述信息包括主业务服务器主观下线。第一监测单元接收发送第一信息的监测单元的数量大于第一阈值时,确定所述主业务服务器客观下线。

在一个可能的设计中,所述确定所述第一监测单元在当前纪元为多个监测单元的主监测单元具体包括向多个监测单元发送第三消息,所述第三消息包括第一监测单元期望成为的主监测单元。并且,接收其它多个监测单元中的每个监测单元发送的多个第三消息。所述第一监测单元根据第三消息确定在当前纪元为多个监测单元的主监测单元。

在一个可能的设计中,所述确定新的主业务服务器,以完成主业务服务器迁移具体包括所述主监测单元确定新的主业务服务器后,将新的主业务服务器信息分别向其他监测单元和新的主业务服务器发送,以使所述其它监测单元和主业务服务器完成相应工作。

在一个可能的设计中,所述方法还包括主业务服务器迁移时间阈值。所述主业务服务器不能在所述主业务服务器迁移时间阈值范围内完成所述主业务服务器迁移时,还将重新确定新的主业务服务器。

另一方,本发明具体实施例提供可一种分布式系统容灾装置。所述装置为监测单元,所述监测单元用于执行第一方面任一项的方法。

再一方面,本发明具体实施例提供了一种分布式系统容灾系统。所述系统包括多个监测单元,所述多个监测单元中的每个监测单元用于执行第一方面任一项所述的方法。

本发明具体实施例提供了一种分布式系统容灾方法、装置和系统。通过设置多个监测单元确定业务服务器的状态和信息。并且,所述多个监测单元之间相互发送所确定的业务服务器的状态和信息。所述业务服务器也保存监控该业务服务器的监测单元。从而使业务服务器与监测单元之间的通信更加便利。在主业务服务器故障时快速的将其它的业务服务器切换为主业务服务器。

附图说明

图1为本发明具体实施例提供的一种分布式存储系统容灾系统的结构示意图;

图2为本发明具体实施例提供的一种包括独立容灾系统的分布式系统;

图3为本发明具体实施例提供的一种分布式系统容灾方法流程示意图。

具体实施方式

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

本发明具体实施例提供一种分布式系统容灾方法、装置和系统。多个监测单元中的每个监测单元对业务服务器的状态进行监测。在确定主业务服务器故障时,确定一个监测单元选定新的主业务服务器。从而使分布式存储系统能够快速的确定新的主业务服务器,并与主业务服务器进行通信。

图1为本发明具体实施例提供的一种分布式存储系统容灾系统的结构示意图。如图1所示,所示系统包括集群服务器、容灾系统和多个业务服务器。其中,所述多个业务服务器组成集群,通过所述集群服务器对客户端的访问进行处理。所述客户端访问所述分布式存储系统时,通过集群服务器对客户端的访问进行调度。

所述容灾系统包括多个监测单元。所述多个监测单元分别与每个业务服务器连接,获取业务服务器的状态和信息。在本发明的具体实施例中,所述业务服务器还相互通信,从而相互发送监测到的多个业务服务器的状态和信息。

所述业务服务器中,包括一个主业务服务器和多个从业务服务器。在一个例子中,所述监测单元设置在业务服务器中。

在本发明的具体实施例中,所述监测单元还可以是独立的设备。图2为本发明具体实施例提供的一种包括独立容灾系统的分布式系统。包括集群服务器、容灾系统和多个业务服务器。所述容灾系统包括多个监测单元,所述多个监测单元分别与每个业务服务器连接从而获取业务服务器的状态和信息。所述多个监测单元还相互连接,从而相互发送监测到的多个业务服务器的状态和信息。

在本发明具体实施例中,所述每个业务服务器中都包括系统中包括的监测单元的信息。所述监测单元周期性的向业务服务器发送当前监测单元的信息。同时,所述监测单元还获取所述业务服务器中包括的第一列表。所述第一列表包括监测该业务服务器的所有监测单元的的IP地址、端口号和运行ID。在所述列表中包括当前监测单元未知的监测单元时,还将所述监测单元的信息加入自身保存的第监测单元列表,从而与所述未知的监测单元通信。

在一个例子中,每个监测单元订阅了被它监视的所有主业务服务器和从业务服务器的第一频道,例如(__sentinel__:hello频道)。每个监测单元以每两秒一次的频率,通过发布与订阅功能向所有主业务服务器和从业务服务器的第一频道发送信息。所述信息中包括监测单元的IP地址、端口号和运行ID。所述业务服务器确定在自身所保存的第一列表中不包括所述监测单元时,还将该监测单元加入到第一列表中。

在一个例子中,当一个第一监测单元在第一列表中发现一个新的第N监测单元时,会将所述第N监测单元的IP地址、端口号和运行ID添加到第一监测单元存储的第二列表中。所述第一列表保存了第一监测单元已知的、监视同一个主业务服务器的所有其他所以的监测单元的IP地址、端口号和运行ID。

在一个将新的监测单元添加到第二列表前,还包括确定所述第二列表中不包括与将要添加的监测单元相同运行身份标识(ID,IDentity)或者相同地址(包括网络之间互联协议(IP,Internet Protocol)地址和端口号)的监测单元。当确定所述第二列表中包括与要添加的监测单元相同运行ID或者相同地址(包括IP地址和端口号)的监测单元时,先移除列表中已有的那些拥有相同运行ID或者相同地址的监测单元,再添加新监测单元到第二列表。

在本发明的具体实施例中,所述监测单元中还包括存储第三列表。所述第三列表为监视的业务服务器的状态信息和配置信息。所述监测单元根据通过发布与订阅功能在对所述第三列表的内容进行更新。在本发明的具体实施例中,所述监测单元相互之间的通信还发送第三列表,从而对当前监测单元没有更新而其他监测单元更新的内容进行更新。

当所述第一监测单元监测到主业务服务器主观下线时,将所述第三列表中主业务服务器的状态进行修改。并且,在与其他监测单元通信时,所述其它监测单元将获取当前监测单元将主业务服务器标记为已下线。所述第一监测单元也接收其它监测单元发送的第三列表,所述三个其它监测单元发送的第三列表中的主业务服务器的状态为主观下行。所述第一监测单元根据接收到的其它监测单元的第三列表中主业务服务器的状态,确定所述主业务服务器客观下线。

监测单元在确定主业务服务器客观下线后,还执行主业务服务器的迁移操作。从而将主业务服务器从当前业务服务器迁移到其它的业务服务器上。

所述监测单元确定进入主业务服务器迁移的操作时,首先需要确定当前监测单元的主监测单元,通过所述主监测单元完成主业务服务器的迁移。

所述确定主监测单元可以是通过所有的监测单元投票决定,从而确保当前只有一个主监测单元。例如,所述分布式系统中包括10个监测单元,当其中4个监测单元确定第一监测单元为主业务单元、3个监测单元确定第3监测单元为主监测单元、3个监测单元确定第8监测单元为主监测单元时,确定所述第一监测单元为主监测单元。

所述第一监测单元为当前主监测单元时。所述第一监测单元确定一个第一从主业务服务器为新的主业务服务器,并且向所述第一从业务服务器发送指令,使其成为新的主业务服务器。所述第一主监测单元还将自身保存的第三列表进行修改,在与其他监测单元通信时,将所述第三列表向其他的监测单元发送。以使其他的监测单元对自身保存的第三列表进行修改。所述新的主业务服务器向所有的从业务服务发送命令,以使从业务服务器从新的主业务服务器进行信息的同步。

在一个例子中,所述主监测单元确定新的主业务服务器可以是:

在失效主业务服务器属下的从业务服务器当中,那些被标记为主观下线、已断线、或者最后一次回复PING命令的时间大于五秒钟的从业务服务器淘汰;

在失效主业务服务器属下的从业务服务器当中,那些与失效主业务服务器连接断开的时长超过一个时间阈值时,从业务服务器淘汰;

在经历了以上两轮淘汰之后剩下来的从业务服务器中,我们选出复制偏移量(replication offset)最大的那个从业务服务器作为新的主业务服务器;如果复制偏移量不可用,或者从业务服务器的复制偏移量相同,那么带有最小运行ID的那个从业务服务器成为新的主业务服务器。

在本发明的具体实施例中,所述主监测单元执行故障迁移包括时间的限制。当所述主监测单元在完成上述的故障迁移后,将所述故障迁移状态删除。当所述主监测单元不能再上述的故障迁移时间限制内解除故障迁移的状态,所述监测单元还将确定出新的主监测单元,并且由新的主监测单元完成故障迁移。

下面,通过方法流程对本发明具体实施例中故障迁移的方法作更加详细的说明。所述故障迁移的方法可以运用在图1或图2所示的系统中,当然也可以运用在其他的系统中,本发明对此不作任何限定。

图3为本发明具体实施例提供的一种分布式系统容灾方法流程示意图。如图3所示,所述方法具体包括:

S301、多个监测单元中的第一监测单元确定所述主业务服务器客观下线。

S302、确定所述第一监测单元在当前纪元为多个监测单元的主监测单元。

S303、确定新的主业务服务器,以完成主业务服务器迁移。

下面,对所述多个步骤进行更加详细的描述。

S301、多个监测单元中的第一监测单元确定所述主业务服务器客观下线。

在本发明的具体实施例中,包括多个监测单元和多个业务服务器。所述多个业务服务器包括一个主业务服务器和其它的从业务服务器。所述多个业务服务器为一个集群。所述客户端通过访问主业务服务器获取信息或写入信息。所述从业务服务器与主业务服务器连接,并且对主业务服务器中包括的信息进行同步。

当主业务服务器出现故障时,将其它的从业务服务器切换为新的主业务服务器。其它的业务服务器对新的

所述多个监测单元中的第一监测单元在确定所述业务服务器客观下线前,还需要确定所述主业务服务器主观下线。可以理解为,主观下线为一个监测单元对业务服务器下线的判断结果,客观下线为多个监测单元对业务服务器下线的判断结果。

所述监测单元向主业务服务器发送信息,所述主业务服务器需要根据监测单元发送的信息向监测单元返回。所述监测单元可以根据所述主业务服务器返回的结果在确定所述主业务服务器是否主观下线。或,所述监测单元没有在规定的时间范围内收到主业务服务器返回的结果时,确定所述主业务服务器主观下线。所述监测单元在确定主业务服务器主观下线后,还需要向多个监测单元中的其他监测单元发送主业务服务器主观下线的结果。

所述监测单元,还接收多个监测单元发送的信息。当所述监测单元接收到多个其它监测单元发送的主业务服务器主观下线的结果后,确定所述主业务服务器客观下线。根据接收的其它监测单元发送的主业务服务器主观下线,所述第一监测单元确定所述主业务服务器客观下线。

在一个例子中,监测单元向主业务服务器发的信息可以是A信息,例如,ping信息(一种操作命令)。所述ping信息包括规定返回信息的时间,所述主业务服务器需要根据所述时间向监测单元返回结果。

所述主业务服务器在规定的时间内返回“+PONG”信息、“-LOADING错误”信息和“-MASTERDOWN错误”信息中的任意一个时,确定所述主业务服务器在线。其中,所述“+PONG”信息用于表示正常,所述“-LOADING错误”信息用于表示载入数据中,所述“-MASTERDOWN错误”信息用于表示主业务服务器宕机。

所述主业务服务器没有在规定的时间返回信息,或所返回的信息不属于上述三种信息中的任意一种时,所述监测单元确定所述主业务服务器主观下线。在一个例子中,所述规定的时间信息为30000毫秒(30秒),那么只要主业务服务器能在30秒之内返回至少一次有效回复,该业务服务器就仍然会被认为是处于正常状态的。

在一个例子中,所述监测单元根据接收的其它监测单元发送主观下线的监测单元的数量来确定所述主业务服务器客观下线。在一个例子中,所述监测单元在监测到主业务服务器主观下线后,可以向其他监测单元发送第二命令来询问对方是否认为给定主业务服务器已下线。例如,系统中包括10个监测单元,当一个监测单元接收到5个不同的监测单元发送的主业务服务器客观下线的消息后,确定所述主业务服务器客观下线。在一个例子中,所述第二命令为“SENTINEL is-master-down-by-addr”

在本发明的具体实施例中,并不对所述监测单元从主观下线状态切换到客观下线状态的数量进行限定。在一个例子中,可以使用流言协议。即如果监测单元在给定的时间范围内,从其他监测单元接收到足够数量的主业务服务器下线报告。将主业务服务器的状态从主观下线改变为客观下线。如果之后其他监测单元不再报告主业务服务器已下线,客观下线状态就会被移除。

S302、确定所述第一监测单元在当前纪元为多个监测单元的主监测单元。

所述第一监测单元在确定主业务服务器客观下线后,还将所述主业务服务器客观下线的信息向其他监测单元发送。同时,所述第一监测单元还确定,当前进入主业务服务器迁移状态。

在进入主业务服务器迁移状态时,需要从多个监测单元中确定一个监测单元为主监测单元。

所述确定主监测单元可以是通过所有的监测单元投票决定,从而确保当前只有一个主监测单元。

S303、确定新的主业务服务器,以完成主业务服务器迁移。

通过主监测单元来确定新的主业务服务器。在一个例子中,所述主监测单元确定新的主业务服务器可以是:

在失效主业务服务器属下的从业务服务器当中,主观下线、已断线、或者最后一次回复PING命令的时间大于五秒钟的从业务服务器淘汰;

在失效主业务服务器属下的从业务服务器当中,与失效主业务服务器连接断开的时长超过一个时间阈值的从业务服务器淘汰;

在经历了以上两轮淘汰之后剩下来的从业务服务器中,我们选出复制偏移量(replication offset)最大的那个从业务服务器作为新的主业务服务器。如果复制偏移量不可用,或者从业务服务器的复制偏移量相同,那么带有最小运行ID的那个从业务服务器成为新的主业务服务器。

其中,所述是根据数据来标记,其中第一块数据偏移量为0,第二块数据偏移量为2。于是,偏移量越大,数据越全。从而使业务服务器中包括的数据相对更加全面的业务服务器为主业务服务器。

所述主监测单元在所述主业务服务器迁移状态包括将主业务服务器切换为其它业务服务器。并且将所述信息通知其他的

例如,所述第一监测单元为当前主监测单元时。所述第一监测单元确定一个第一从主业务服务器为新的主业务服务器,并且向所述第一从业务服务器发送指令,使其成为新的主业务服务器。并且,所述第一主监测单元还将第三列表进行修改,并且将修改后的第三列表向其他的监测单元发送。以使其他的监测单元确定新的主业务服务器。所述新的主业务服务器向所有的从业务服务发送命令,以使从业务服务器从新的主业务服务器进行信息的同步。

在本发明的具体实施例中,所述主监测单元执行故障迁移包括时间的限制。当所述主监测单元在完成上述的故障迁移后,将所述故障迁移状态删除。当所述主监测单元不能再上述的故障迁移时间限制内解除故障迁移的状态,所述监测单元还将确定出新的主监测单元,并且由新的主监测单元完成故障迁移。

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

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM,random access memory)、内存、只读存储器(ROM,Read-Only Memory)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM(Compact Disc Read-Only Memory)、或技术领域内所公知的任意其它形式的存储介质中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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