CN107707402A - 一种分布式系统中服务仲裁的管理系统及其管理方法 - Google Patents
一种分布式系统中服务仲裁的管理系统及其管理方法 Download PDFInfo
- Publication number
- CN107707402A CN107707402A CN201710944089.0A CN201710944089A CN107707402A CN 107707402 A CN107707402 A CN 107707402A CN 201710944089 A CN201710944089 A CN 201710944089A CN 107707402 A CN107707402 A CN 107707402A
- Authority
- CN
- China
- Prior art keywords
- node
- service
- management
- arbitration
- mediation service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种分布式系统中服务仲裁的管理系统,包括管理节点和服务节点,各节点通过网线与交换机连接,所述管理节点上设置有自动化管理模块。其中管理系统的管理方法,步骤为:1、设定定时执行步骤,然后进入自动化管理模块;2、读取配置文件;3、判断仲裁服务是否存在,如果存在则从仲裁服务自身内容中再读取仲裁成员记录,如果不存在则设置仲裁成员记录为空;4、把获得的仲裁成员记录保存为SelfMemberlnfo;5、对比配置文件中仲裁成员记录和SelfMemberlnfo成员记录,并通过不同的情况用ssh方式登录访问各节点服务管理检查模块,并最后完成对各节点的操作。本发明可以实现对需要仲裁类的服务进行自动化管理操作。
Description
技术领域
本发明属于计算机应用领域,特别涉及一种分布式系统中服务仲裁的管理系统及其管理方法。
背景技术
在一个典型的分布式系统中,是由多个服务组成,比如元数据管理服务、监控服务。为了保证服务的可靠行,很多服务都会启动多个实例,运行在不同的节点上。但是同一个服务的多个实例状态不一致时,需要决定以那个实例的信息为准,这就需要进行服务仲裁。
比如分布式存储中的管理节点服务会记录当前集群中有那些节点、每个节点的用途、每个节点的当前状态、以及每个节点有那些硬盘等状态信息等等,这些信息至关重要,并且经常变化。所以这个管理节点服务需要有多份,并运行在不同的物理机上,这样当任何一个管理节点服务出现故障时,集群仍然能够通过另外的管理节点服务获得整个集群的状态。
服务仲裁是指对于一个服务实例只要超过半数的大多数实例达成一致,就以这超过半数实例的数据为准。对于那些少数数据不一致的实例会在后续逐渐与多数实例进行同步。在分布式系统中Paxos和Raft算法就是解决这种问题的典型算法,有着广泛的应用,比如ZooKeeper和etcd之类的分布式存储系统,就是采用这类算法来进行仲裁的。
这样如果服务实例数目不变,只是部分实例出现故障时,参与仲裁的服务实例数目没有发现变化,能够很好的保证服务的一致行。但是在增减服务实例时,这时参与仲裁的服务实例数目发现变化,因此需要区分是旧服务实例的故障恢复,还是实例数目发生变化。比如在etcd服务创建时,需要有一个参数initial_cluster_state指定该服务实例是existing或者new,如果initial_cluster_state为existing,表明是服务实例恢复;如果为new,表明为新服务实例。对于丢失或者不可恢复的服务实例,还需要从仲裁中摘除。这导致在增减服务实例或者恢复服务实例需要人工判断当前状态,根据增减或者恢复实例走不同的流程,但是难以实现机器的自动化操作。
发明内容
发明目的:针对现有技术中存在的问题,本发明提供一种可以实现对需要仲裁类的服务进行自动化管理操作,包括自动增加节点、减少节点,自动处理相关节点的故障服务,实现了一种分布式系统中服务仲裁的管理系统及其管理方法。
技术方案:为解决上述技术问题,本发明提供一种分布式系统中服务仲裁的管理系统,包括管理节点和服务节点,各节点通过网线与交换机连接,所述管理节点上设置有自动化管理模块,所述每个服务节点上均设置有仲裁服务模块和服务管理检查模块。
进一步的,所述服务节点个数不少于三个,对外提供仲裁类型的服务,这样可以用少数服从多少的原则进行仲裁。
一种如上所述的分布式系统中服务仲裁的管理系统的管理方法,
(1)设定定时执行步骤,然后进入自动化管理模块并进入步骤(2)和步骤(3);
(2)读取配置文件并进入步骤(5),配置文件中包含用户指定好的仲裁服务成员。
(3)判断仲裁服务是否存在,如果存在则从仲裁服务自身内容中再读取仲裁成员记录,如果不存在则设置仲裁成员记录为空,并进入步骤(4);
(4)把步骤(3)中获得的仲裁成员记录保存为SelfMemberlnfo并进入步骤(5);
(5)对比配置文件中仲裁成员记录和SelfMemberlnfo成员记录,并通过不同的情况用ssh方式登录访问各节点服务管理检查模块,并最后完成对各节点的操作。
进一步的,所述步骤(5)的数据对比后分为三种情况,具体如下;
(5.1)当一个节点在配置文件中存在,但SelfMemberlnfo记录中不存在,则通过ssh访问该节点服务管理检查模块,在该节点中创建仲裁服务,以及服务管理检查模块,然后把本节点添加到SelfMemberlnfo中记录,并更新集群自身的仲裁成员记录,最后完成该节点操作;
(5.2)当一个节点在配置文件中不存在,但SelfMemberlnfo中存在,则通过ssh访问该节点服务管理检查模块,在该节点中删除仲裁服务,以及服务管理检查模块,然后把本节点从SelfMemberlnfo记录中删除,并更新集群自身的仲裁成员记录,最后完成该节点操作;
(5.3)当两者中都存在,则通过ssh访问该节点服务管理检查模块,并判断该节点仲裁服务是否退出,最后完成该节点操作。
5、所述步骤(5.3)中判断节点仲裁服务是否退出存在三种情况:
(5.3.1)当该节点仲裁服务正常,则该节点操作完成;
(5.3.2)当该节点仲裁服务退出,则重启该节点服务,最后该节点操作完成;
(5.3.3)当该节点仲裁服务丢失,即节点上没有该仲裁服务模块,则先在该节点删除原仲裁服务残留信息,然后在该节点上重新创建仲裁服务,最后该节点操作完成。
与现有技术相比,本发明的优点在于:
本发明是在原有服务仲裁机制的基础上实现服务仲裁的自动管理方法。主要方法是在分布式系统中,进行参与仲裁的服务自身记录相关仲裁的服务实例信息,自动判断是原有服务实例,还是新服务实例。对于原有服务实例,如果不正常,先尝试恢复;如果不可恢复,则摘除该服务实例,在重建该服务实例。通过本发明的操作可以实现对需要仲裁类的服务进行自动化管理操作,包括自动增加节点、减少节点,自动处理相关节点的故障服务。
附图说明
图1为本发明的结构示意图;
图2为本发明的总体流程图。
具体实施方式
下面结合附图和具体实施方式,进一步阐明本发明:
本发明的系统结构如附图1。在这种分布式系统中需要进行仲裁的服务需要部署到多个物理机上,各物理机通过网络交换机连接,每个物理机都有一个集群中唯一的主机名。
客户端应用能够通过访问仲裁服务获取集群相关信息。如果仲裁服务正常,即大多数服务实例数据一致,客户端应用可以访问任意一个正在运行的服务实例,获得相关服务内容;如果仲裁服务不正常,即大多数服务实例数据不一致,那么客户端应用访问任意一个服务实例都返回错误。本发明是在原有的仲裁服务基本上,实现自动化管理的增强功能。
本发明中图1所示主要模块包括:
1.仲裁服务模块:部署仲裁服务自身的软件包,如zookeeper或者etcd服务。
2.服务管理检查模块:这是针对仲裁服务当前的增强功能。
3.自动化管理模块:该模块可以安装到局域网中任何节点上,该模块通过ssh访问和调用“服务管理检查模块”。
4.各节点直接由网络交换机形成局域网连接。
本发明的操作流程如下:
一、仲裁服务创建和增加
本发明并不涉及单个节点服务本身的创建过程,比如对于zookeeper或者etcd一类的仲裁服务程序,都可以通过一条自身提供的命令完成在某一个物理机节点上的创建过程。创建成功的服务都会把相关数据保存到本节点上指定的目录。
本发明在原有某一个节点上服务部署完成后,在这类仲裁服务自身中增加一些记录,内容为记录了参与服务仲裁的节点数,以及每个节点的IP地址,我们把这些信息称为仲裁成员记录。比如在第一个物理机上创建完成仲裁服务实例后,记录内容为:
SelfMemberInfo/MemberList:hostname1
SelfMemberInfo/hostname1:ip1
其中SelfMemberInfo主要用于归类和查询使用,没有特殊用途。在第一个物理机上操作完成后,就完成了仲裁服务的创建,其它客户端应用也就可以访问本仲裁服务了。
当在第二个物理机上增加仲裁服务的数目时,保存记录内容为:
SelfMemberInfo/MemberList:hostname1,hostname2
SelfMemberInfo/hostname1:ip1
SelfMemberInfo/hostname2:ip2
以此类推到多个节点部署服务的情况。因为zookeeper或者etcd一类的仲裁服务本身就是一个分布式键值存储,可以保存key-value类型的数据,所以记录内容直接就是以key-value数据直接保存到服务本身中。
二、仲裁服务减少和删除
服务节点的删除,是上述新建的逆过程。
首先,删除记录中SelfMemberInfo/hostname:ip,即本节点中主机名和IP地址对应的记录。
其次,删除记录SelfMemberInfo/MemberList:hostname1,hostname2…中有关本机主机名的内容。如果SelfMemberInfo/MemberList为空,说明所有仲裁服务被删除,那么删除完整的SelfMemberInfo/MemberList记录。
最后:调用服务本身的卸载和删除操作,把该节点的相关安装包和数据删除。
三、节点服务状态判定
对于一个节点上创建好的仲裁服务,本发明中规定:
如果该节点服务进程存在,那么就认为该节点服务正常;
如果节点服务进程不存在,但是该仲裁服务的数据目录存在,那么认为该节点服务退出;这种情况,一般重启服务即可正常;
如果节点服务进程不存在,且该仲裁服务的数据目录不存在,但仲裁记录(SelfMemberInfo)中表明该节点为成员节点,那么认为该节点服务丢失。对于服务丢失的情况,不能简单的重启,而是需要进行服务重建。重建过程本发明中规定,先执行节点服务的删除操作,即从仲裁服务自身先摘除该成员,SelfMemberInfo也摘除该成员,再执行节点服务的创建操作;
如果节点服务进程不存在,且该仲裁服务的数据目录不存在,但仲裁记录(SelfMemberInfo)中表明该节点不为成员节点,那么可以直接执行节点服务的创建操作。
四、服务检查
为了保证仲裁服务能够随时为客户端应用提供健康的服务,经常需要检测相关节点的服务情况。服务检测方法如下:
1.读取SelfMemberInfo中相关key-value值,获得需要检查的节点和IP地址
2.通过ssh远程登录到各节点上,检查该物理节点上的仲裁服务是否运行,即执行“节点服务状态判定”。
3.如果节点服务正常,该物理节点的检查结束。
4.如果节点服务退出,执行该服务的重启操作,即启动服务进程,并直接使用已存在目录的数据。
5.如果节点服务丢失,执行该服务的重建操作
五、仲裁服务的自动化管理
对于仲裁类的服务部署到多个节点,随着可能出现希望增加节点、减少节点、节点出现宕机重启、节点服务本身出现故障退出、或者节点上硬盘损坏出现数据丢失。通过前面的仲裁服务的功能增强,可以实现仲裁服务的自动化管理,主要方法为增加一个自动化管理模块,该模块主要功能:
1.首先读取一个人工撰写的配置文件。该配置文件一般可为文本文件,每行为一个主机名,说明部署参与仲裁服务的节点名称。但配置文件格式并不限,只要能够读取到仲裁服务中所有节点的主机名即可。该配置文件为自动化管理模块的输入。
2.自动化管理模块可以部署到任一节点上,只要该节点可以通过ssh访问所有的仲裁服务节点。
3.自动化管理程序定时运行,用户可以指定定时的间隔时间,比如可以指定每小时运行一次。
4.读取配置文件记录,形成配置文件中的服务仲裁成员记录。
5.如果仲裁服务还没有开始创建,即刚开始任何服务节点都还没有部署仲裁服务模块,设置SelfMemberlnfo信息为空;如果仲裁服务已经存在,那么从仲裁服务中读取自身保存的仲裁成员记录SelfMemberlnfo相关信息。
6.对比配置文件中读到的节点主机和SelfMemberlnfo中的记录。
7.如果一个节点在配置文件存在,而SelfMemberInfo记录中不存在,登录该节点,创建仲裁服务模块和服务管理检查模块,并添加该主机名相关信息到SelfMemberInfo记录中。这样相当于添加了一个仲裁服务节点。
8.如果一个节点在配置文件中不存在,而SelfMemberInfo记录中存在,从SelfMemberInfo记录中删除该主机名相关信息,然后登录该节点,删除仲裁服务模块和服务管理检查模块。这样相当于减少了一个仲裁服务节点。
9.对于配置文件和SelfMemberlnfo都存在的记录,登录该节点,执行“节点服务检测操作”。如果该节点仲裁服务正常,则不做任何操作,完成该节点检查;如果该节点仲裁服务退出,则重启该仲裁服务,完成该节点检查;如果该节点仲裁服务丢失,则先执行该节点仲裁服务的删除操作,然后在执行该节点仲裁服务的创建操作,达到仲裁服务的重建目的,最终完成该节点的检查。
因此,本发明针对zookeeper或者etcd之类具有仲裁能力的服务程序,提供了自动化管理方法。通过这种自动化管理过程,能够自动的添加或者删除相关服务实例。对于原有服务实例,能够自动处理相关异常状态,明显简化了相关应用对这类仲裁服务的管理。
Claims (5)
1.一种分布式系统中服务仲裁的管理系统,包括管理节点和服务节点,其特征在于:各节点通过网线与交换机连接,所述管理节点上设置有自动化管理模块,所述每个服务节点上均设置有仲裁服务模块和服务管理检查模块。
2.根据权利要求1所述的一种分布式系统中服务仲裁的管理系统,其特征在于:所述服务节点个数不少于三个。
3.一种如权利要求1所述的分布式系统中服务仲裁的管理系统的管理方法,其特征在于,具体步骤如下:
(1)设定定时执行步骤,然后进入自动化管理模块并进入步骤(2)和步骤(3);
(2)读取配置文件并进入步骤(5),配置文件中包含用户指定好的仲裁服务成员;
(3)判断仲裁服务是否存在,如果存在则从仲裁服务自身内容中再读取仲裁成员记录,如果不存在则设置仲裁成员记录为空,并进入步骤(4);
(4)把步骤(3)中获得的仲裁成员记录保存为SelfMemberlnfo并进入步骤(5);
(5)对比配置文件中仲裁成员记录和SelfMemberlnfo成员记录,并通过不同的情况用ssh方式登录访问各节点服务管理检查模块,并最后完成对各节点的操作。
4.根据权利要求3所述的一种分布式系统中服务仲裁的管理系统的管理方法,其特征在于,所述步骤(5)的数据对比后分为三种情况,具体如下;
(5.1)当一个节点在配置文件中存在,但SelfMemberlnfo记录中不存在,则通过ssh访问该节点服务管理检查模块,在该节点中创建仲裁服务,以及服务管理检查模块,然后把本节点添加到SelfMemberlnfo中记录,并更新集群自身的仲裁成员记录,最后完成该节点操作;
(5.2)当一个节点在配置文件中不存在,但SelfMemberlnfo中存在,则通过ssh访问该节点服务管理检查模块,在该节点中删除仲裁服务,以及服务管理检查模块,然后把本节点从SelfMemberlnfo记录中删除,并更新集群自身的仲裁成员记录,最后完成该节点操作;
(5.3)当两者中都存在,则通过ssh访问该节点服务管理检查模块,并判断该节点仲裁服务是否退出,最后完成该节点操作。
5.根据权利要求4所述的一种分布式系统中服务仲裁的管理系统的管理方法,其特征在于,所述步骤(5.3)中判断节点仲裁服务是否退出存在三种情况:
(5.3.1)当该节点仲裁服务正常,则该节点操作完成;
(5.3.2)当该节点仲裁服务退出,则重启该节点服务,最后该节点操作完成;
(5.3.3)当该节点仲裁服务丢失,即节点上没有该仲裁服务模块,则先在该节点删除原仲裁服务残留信息,然后在该节点上重新创建仲裁服务,最后该节点操作完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710944089.0A CN107707402B (zh) | 2017-09-30 | 2017-09-30 | 一种分布式系统中服务仲裁的管理系统及其管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710944089.0A CN107707402B (zh) | 2017-09-30 | 2017-09-30 | 一种分布式系统中服务仲裁的管理系统及其管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107707402A true CN107707402A (zh) | 2018-02-16 |
CN107707402B CN107707402B (zh) | 2021-02-26 |
Family
ID=61184156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710944089.0A Active CN107707402B (zh) | 2017-09-30 | 2017-09-30 | 一种分布式系统中服务仲裁的管理系统及其管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107707402B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009136533A1 (ja) * | 2008-05-08 | 2009-11-12 | 日本電気株式会社 | 分散データ格納システムの応答調停システム、分散データ格納システムの応答調停方法 |
CN101963978A (zh) * | 2010-09-21 | 2011-02-02 | 卓望数码技术(深圳)有限公司 | 一种分布式数据库的管理方法、装置及系统 |
CN105095317A (zh) * | 2014-05-23 | 2015-11-25 | 中国银联股份有限公司 | 分布式数据库服务管理系统 |
CN106550010A (zh) * | 2016-09-21 | 2017-03-29 | 南京途牛科技有限公司 | 一种实时控制分布式系统调用外系统服务频次的方法及系统 |
CN106789155A (zh) * | 2016-11-16 | 2017-05-31 | 深圳市中博睿存科技有限公司 | 元数据仲裁服务器、控制方法和通讯系统 |
-
2017
- 2017-09-30 CN CN201710944089.0A patent/CN107707402B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009136533A1 (ja) * | 2008-05-08 | 2009-11-12 | 日本電気株式会社 | 分散データ格納システムの応答調停システム、分散データ格納システムの応答調停方法 |
CN101963978A (zh) * | 2010-09-21 | 2011-02-02 | 卓望数码技术(深圳)有限公司 | 一种分布式数据库的管理方法、装置及系统 |
CN105095317A (zh) * | 2014-05-23 | 2015-11-25 | 中国银联股份有限公司 | 分布式数据库服务管理系统 |
CN106550010A (zh) * | 2016-09-21 | 2017-03-29 | 南京途牛科技有限公司 | 一种实时控制分布式系统调用外系统服务频次的方法及系统 |
CN106789155A (zh) * | 2016-11-16 | 2017-05-31 | 深圳市中博睿存科技有限公司 | 元数据仲裁服务器、控制方法和通讯系统 |
Also Published As
Publication number | Publication date |
---|---|
CN107707402B (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7870230B2 (en) | Policy-based cluster quorum determination | |
US7668943B2 (en) | Method for real-time synchronizing configuration data between element management systems and network elements | |
CN100465919C (zh) | 应用服务器的健康监视和控制的技术 | |
US20070088763A1 (en) | Methods and systems for validating accessibility and currency of replicated data | |
CN110807064B (zh) | Rac分布式数据库集群系统中的数据恢复装置 | |
US8380951B1 (en) | Dynamically updating backup configuration information for a storage cluster | |
CN106657167B (zh) | 管理服务器、服务器集群、以及管理方法 | |
CN106874136A (zh) | 一种存储系统的故障处理方法及装置 | |
CN102394914A (zh) | 集群脑裂处理方法和装置 | |
CN109286529A (zh) | 一种恢复RabbitMQ网络分区的方法及系统 | |
CN106484565A (zh) | 多数据中心间的数据同步方法及相关设备 | |
CN111796959B (zh) | 宿主机容器自愈方法、装置及系统 | |
CN111857592A (zh) | 基于对象存储系统的数据存储方法及装置、电子设备 | |
WO2022037268A1 (zh) | 一种容器管理方法、设备以及介质 | |
CN108600284B (zh) | 一种基于Ceph的虚拟机高可用实现方法及系统 | |
CN111752488B (zh) | 存储集群的管理方法、装置、管理节点及存储介质 | |
CN111342986B (zh) | 分布式节点管理方法及装置、分布式系统、存储介质 | |
CN104158843B (zh) | 分布式文件存储系统的存储单元失效检测方法及装置 | |
CN108021431B (zh) | 基于Web数据交互管理Hive的方法及其系统 | |
CN104811348A (zh) | 可用性装置、具有可用性装置的储存局域网络及其操作方法 | |
CN111309515B (zh) | 一种容灾控制方法、装置及系统 | |
CN107707402A (zh) | 一种分布式系统中服务仲裁的管理系统及其管理方法 | |
CN105988885B (zh) | 基于补偿回滚的操作系统故障自恢复方法 | |
CN115328735A (zh) | 一种基于容器化应用管理系统的故障隔离方法和系统 | |
CN109324925A (zh) | 分布式框架的事务处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |