CN112714143A - 分布式存储系统的服务协调方法、装置及电子设备 - Google Patents

分布式存储系统的服务协调方法、装置及电子设备 Download PDF

Info

Publication number
CN112714143A
CN112714143A CN201911024570.3A CN201911024570A CN112714143A CN 112714143 A CN112714143 A CN 112714143A CN 201911024570 A CN201911024570 A CN 201911024570A CN 112714143 A CN112714143 A CN 112714143A
Authority
CN
China
Prior art keywords
control server
service coordination
master
servers
query result
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.)
Pending
Application number
CN201911024570.3A
Other languages
English (en)
Inventor
黎海兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Original Assignee
Beijing Kingsoft Cloud Network Technology Co Ltd
Beijing Kingsoft Cloud Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kingsoft Cloud Network Technology Co Ltd, Beijing Kingsoft Cloud Technology Co Ltd filed Critical Beijing Kingsoft Cloud Network Technology Co Ltd
Priority to CN201911024570.3A priority Critical patent/CN112714143A/zh
Priority to PCT/CN2020/123516 priority patent/WO2021078294A1/zh
Publication of CN112714143A publication Critical patent/CN112714143A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及分布式存储系统的服务协调方法、装置及电子设备。该方法包括:向服务协调设备发送查询请求,以得到查询结果,查询结果表征多个控制服务器中是否包含有主控制服务器;根据查询结果确定是否向其他控制服务器发送选主指令,选主指令用于从多个控制服务器中确定一个主控制服务器。

Description

分布式存储系统的服务协调方法、装置及电子设备
技术领域
本发明涉及分布式存储技术领域,更具体地,涉及一种分布式存储系统的服务协调方法、一种分布式存储系统的服务协调装置、一种电子设备以及一种分布式存储系统。
背景技术
分布式存储是将数据分散存储在多台独立的设备上的存储方案。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。
在分布式存储系统中,通常由专门的控制服务器来协调数据在多台数据服务器上的存储。控制服务器中存储有用于描述数据属性的元数据,可以实现存储位置记录、历史数据记录、资源查找等功能。为了提高系统的可靠性,控制服务器的数目通常为多个,由其中的主控制服务器提供控制服务,其它控制服务器作为备份。
可以通过分布式应用程序协调服务Zookeeper来协调多个控制服务器的运行,例如通知多个控制服务器进行选主操作。但是,现有的协调方案容易出现无主、双主等情况,从而影响分布式存储系统的稳定性。
发明内容
本发明的一个目的是提供一种分布式存储系统的服务协调的新的技术方案。
根据本发明的第一方面,提供了一种分布式存储系统的服务协调方法,所述分布式存储系统包括服务协调设备和多个控制服务器,所述方法由任意所述控制服务器实施,所述方法包括:
向所述服务协调设备发送查询请求,以得到查询结果,所述查询结果表征所述多个控制服务器中是否包含有主控制服务器;
根据所述查询结果确定是否向其他所述控制服务器发送选主指令,所述选主指令用于从所述多个控制服务器中确定一个主控制服务器。
可选地,所述向所述服务协调设备发送查询请求,以得到查询结果,所述查询结果表征所述多个控制服务器中是否包含有主控制服务器,包括:
以预设的第一时间间隔,向所述服务协调设备发送查询请求;
接收来自所述服务协调设备响应于所述查询请求发送的查询结果,所述查询结果表征所述多个控制服务器中是否包含有主控制服务器;
其中,所述第一时间间隔小于所述服务协调设备的预设的会话超时时长。
可选地,所述查询结果为所述服务协调设备是否记录有主控制服务器的标识。
可选地,所述方法还包括:
在所述控制服务器为主控制服务器时,定时向所述服务协调设备发送连接请求;
若在设定时间窗口内,未接收到所述服务协调设备针对所述连接请求的响应,则停止作为所述主控制服务器提供的服务。
可选地,所述在所述控制服务器为主控制服务器时的情况下,定时向所述服务协调设备发送连接请求,包括:
以预设的第二时间间隔,向所述服务协调设备发送所述连接请求;
其中,所述第二时间间隔小于所述服务协调设备的预设的会话超时时长。
可选地,所述设定时间窗口小于所述服务协调设备的设定的会话超时时长。
可选地,所述根据所述查询结果确定是否向其他所述控制服务器发送选主指令,所述选主指令用于从所述多个控制服务器中确定一个主控制服务器包括:
当所述查询结果表征所述多个控制服务器中未包含有主控制服务器时,向其他所述控制服务器发送选主指令,以从所述多个控制服务器中确定一个主控制服务器。
可选地,所述方法还包括
在从所述多个控制服务器中确定一个主控制服务器后,向所述服务协调设备发送所确定的主控制服务器的标识。
根据本发明的第二方面,提供了一种分布式存储系统的服务协调方法,所述分布式存储系统包括服务协调设备和多个实施本发明第一方面所述方法的控制服务器,所述方法由所述服务协调设备实施,所述方法包括:
接收所述控制服务器发送的查询请求;
响应于所述查询请求,获取查询结果,所述查询结果表征所述多个控制服务器中是否包含有主控制服务器;
向所述控制服务器发送所述查询结果。
可选地,所述查询结果为所述服务器协调设备是否记录有主控制服务器的标识。
可选地,所述方法还包括:
接收所述多个控制服务器中的主控制服务器定时发送的连接请求;
向所述主控制服务器发送针对所述连接请求的响应消息。
可选地,所述方法还包括:
接收所述控制服务器发送的所确定的主控制服务器的标识;
记录所述主控制服务器的标识。
可选地,所述服务协调设备基于Zookeeper提供协调服务。
根据本发明的第三方面,提供了一种分布式存储系统的服务协调装置,所述分布式存储系统包括服务协调设备和多个控制服务器,所述装置应用于任意所述控制服务器,包括:
查询模块,用于向所述服务协调设备发送查询请求,以得到查询结果,所述查询结果表征所述多个控制服务器中是否包含有主控制服务器;
判断模块,用于根据所述查询结果确定是否向其他所述控制服务器发送选主指令,所述选主指令用于从所述多个控制服务器中确定一个主控制服务器。
可选地,所述查询模块在向所述服务协调设备发送查询请求,以得到查询结果,所述查询结果表征所述多个控制服务器中是否包含有主控制服务器时,用于:
以预设的第一时间间隔,向所述服务协调设备发送查询请求;
接收来自所述服务协调设备响应于所述查询请求发送的查询结果,所述查询结果表征所述多个控制服务器中是否包含有主控制服务器;
其中,所述第一时间间隔小于所述服务协调设备的预设的会话超时时长。
可选地,所述查询结果为所述服务协调设备是否记录有主控制服务器的标识。
可选地,所述装置还包括连接检测模块,所述连接检测模块用于:
在所述控制服务器为主控制服务器时,定时向所述服务协调设备发送连接请求;
若在设定时间窗口内,未接收到所述服务协调设备针对所述连接请求的响应,则停止作为所述主控制服务器提供的服务。
可选地,所述连接检测模块在所述控制服务器为主控制服务器时的情况下,定时向所述服务协调设备发送连接请求时,用于:
以预设的第二时间间隔,向所述服务协调设备发送所述连接请求;
其中,所述第二时间间隔小于所述服务协调设备的预设的会话超时时长。
可选地,所述设定时间窗口小于所述服务协调设备的设定的会话超时时长。
可选地,所述判断模块在根据所述查询结果确定是否向其他所述控制服务器发送选主指令时,用于:
当所述查询结果表征所述多个控制服务器中未包含有主控制服务器时,向其他所述控制服务器发送选主指令,以从所述多个控制服务器中确定一个主控制服务器。
可选地,所述装置还包括标识发送模块,所述标识发送模块用于:
在从所述多个控制服务器中确定一个主控制服务器后,向所述服务协调设备发送所确定的主控制服务器的标识。
根据本发明的第四方面,提供了一种分布式存储系统的服务协调装置,所述分布式存储系统包括服务协调设备和多个实施本发明第一方面所述方法的控制服务器,所述装置应用于所述服务协调设备,包括:
第一接收模块,用于接收所述控制服务器发送的查询请求;
结果获取模块,用于响应于所述查询请求,获取查询结果,所述查询结果表征所述多个控制服务器中是否包含有主控制服务器;
第一发送模块,用于向所述控制服务器发送所述查询结果。
可选地,所述查询结果为所述服务器协调设备是否记录有主控制服务器的标识。
可选地,所述装置还包括第二接收模块和第二发送模块:
所述第二接收模块用于接收所述多个控制服务器中的主控制服务器定时发送的连接请求;
所述第二发送模块用于向所述主控制服务器发送针对所述连接请求的响应消息。
可选地,所述装置还包括第三接收模块和记录模块:
所述第三接收模块用于接收所述控制服务器发送的所确定的主控制服务器的标识;
所述记录模块用于记录所述主控制服务器的标识。
可选地,所述服务协调设备基于Zookeeper提供协调服务。
根据本发明的第五方面,提供了一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现本发明第一方面或者第二方面所述的分布式存储系统的服务协调方法。
根据本发明的第六方面,提供了一种分布式存储系统,包括用户代理服务器、多个存储服务器、多个实施本发明第一方面所述方法的控制服务器以及实施本发明第二方面所述方法的服务协调设备,其中,所述控制服务器分别于所述用户代理服务器、所述多个存储服务器通信连接和所述服务协调设备通信连接。
在本实施例一个实施例中,控制服务器主动查询多个控制服务器中是否包含有主控制服务器,根据查询结果确定是否向其他控制服务器发送选主指令,能够避免出现系统无主的情况,提高系统的稳定性。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1示出了可用于实现本发明的实施例的分布式存储系统的硬件配置示意图。
图2示出了可用于实现本发明实施例的服务器的结构示意图。
图3示出了根据本发明实施例的分布式存储系统的服务协调方法的流程图。
图4示出了根据本发明实施例的分布式存储系统服务协调方法实施的具体例子的流程图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1示出了可用于实现本发明实施例的分布式存储系统的结构示意图。
如图1所示,分布式存储系统100包括用户代理服务器1000、存储服务器2000、控制服务器3000以及服务协调设备4000。其中,存储服务器2000和控制服务器3000的数目均为多个(两个以上)。
存储服务器2000用于存储目标数据。
用户代理服务器1000用于接收用户端发送的针对目标数据的数据读写请求,并将该数据读写请求转发至控制服务器3000。
控制服务器3000用于从自身存储的元数据中查询对应于目标数据的存储服务器2000,并将存储服务器2000的标识信息返回至用户代理服务器1000。用户代理服务器1000根据该标识信息与对应的存储服务器2000交互,完成对目标数据的读写操作。
服务协调设备4000用于协调多个控制服务器3000的运行,例如为控制服务器3000分配身份标识、通知控制服务器3000选举主控制服务器等。服务协调设备4000例如是安装有分布式应用程序协调软件的电子设备。
需要说明的是,在一些实施例中,可以将分布式应用程序协调服务布置在多个控制服务器3000中,这种情况下,多个控制服务器3000可以基于分布式应用程序协调服务实现自身的服务协调,不再需要额外的服务协调设备4000。
用户代理服务器1000、存储服务器2000、控制服务器3000以及服务协调设备4000之间可以通过有线网或者无线网进行通信。在分布式应用程序协调服务布置在多个控制服务器中的情况下,控制服务器和服务协调设备实际上是同一设备中不同进程间的通信。
用户代理服务器1000、存储服务器2000、控制服务器3000以及服务协调设备4000都具有如图2所示的服务器1100的硬件配置。如图2所示,服务器1100可以包括处理器1110、存储器1120、接口装置1130、通信装置1140、显示装置1150和输入装置1160。处理器1110例如可以是中央处理器CPU等。存储器1120例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1130例如包括USB接口、串行接口等。通信装置1140例如能够进行有线或无线通信。显示装置1150例如是液晶显示屏。输入装置1160例如可以包括触摸屏、键盘等。
应用于本说明书的实施例中,服务器1100的存储器1120用于存储指令,该指令用于控制处理器1110进行操作以支持实现根据本说明书任意实施例的服务协调方法。技术人员可以根据本说明书所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
本领域技术人员应当理解,尽管在图2中示出了服务器1100的多个装置,但是,本说明书实施例的服务器1100可以仅涉及其中的部分装置,例如,只涉及处理器1110、存储器1120和通信装置1140。
图1所示的文件批量对比系统1000仅是解释性的,并且决不是为了要限制本说明书、其应用或用途。
<方法实施例>
本实施例提供了一种分布式存储系统的服务协调方法,该方法例如由图1中任意的控制服务器3000实施。如图3所示,该方法包括以下步骤S1100-S1200:
步骤S1100,向服务协调设备发送查询请求,以得到查询结果,查询结果表征多个控制服务器中是否包含有主控制服务器。
本实施例中,分布式存储系统包括多个控制服务器。通过选举等方式从多个控制服务器中选出一个主控制服务器,由主控制服务器提供控制服务,其它控制服务器作为备份。
在一个例子中,控制服务器在初始启动阶段,向服务协调设备发送注册请求。服务协调设备响应于注册请求,按照预设规则为每个控制服务器分配唯一的身份标识。
本实施例中,由服务协调设备协调选主过程并记录主控制服务器的标识。在本步骤中,向服务器协调设备发送查询请求,示例性地,可以为向服务协调设备询问当前的多个控制服务器中,哪一个具有主控制服务器标识,以及该主控制服务器的状态。进而可以确定当前分布式存储系统的系统状态为具有主控制服务器、或者不具有主控制服务器、或者具有两个主控制服务器。本实施例中,分布式存储系统的系统状态可以包括:多个控制服务器包含有主控制服务器的系统状态(以下称为有主状态,有主状态例如包括一个主控制服务器,或者包括两个主控制服务器)和多个控制服务器不包含有主控制服务器的系统状态(以下称为缺主状态)。
本实施例中,控制服务器主动向服务协调设备发送查询请求,以得到查询结果。查询结果表征多个控制服务器中是否包含有主控制服务器。
在一个实施例中,步骤S1100进一步包括:以预设的第一时间间隔,向服务协调设备发送查询请求;接收来自服务协调设备响应于查询请求发送的查询结果,查询结果表征多个控制服务器中是否包含有主控制服务器;其中,第一时间间隔小于服务协调设备的预设的会话超时时长。
本实施例中,控制服务器与服务协调设备之间维持长连接,在预设的会话超时时长内,如果服务协调设备接收到了控制服务器发送的关于自身处于活跃状态的消息(例如心跳包),则服务协调设备判断该连接处于正常状态,并继续监听二者之间的连接状态。
本实施例中,控制服务器以预设的第一时间间隔定期查询当前系统状态。第一时间间隔小于服务协调设备的设定的会话超时时长,有利于避免会话过期。
在一个实施例中,查询结果为服务协调设备是否记录有主控制服务器的标识。主控制服务器的标识例如是主控制服务器的IP或者其他标识,或者服务协调设备分配的唯一身份标识(例如,分配一个特定的字符串作为身份标识,或者在主控制服务器的IP地址跟添加字符串作为身份标识等)。
在一个实施例中,控制服务器查询当前系统状态是否为缺主状态的过程包括:请求服务协调设备提供当前系统状态;根据服务协调设备响应于请求提供的当前系统状态,确定当前系统状态。在一个例子中,服务协调设备记录当前系统处于有主状态或者无主状态,以及有主状态下当前主控制服务器的身份标识。控制服务器向服务协调设备发送了提供当前系统状态的请求后,根据接收到的服务协调设备返回的当前系统处于有主状态或者无主状态的信息,确定当前系统为有主状态或者无主状态。
步骤S1200,根据查询结果确定是否向其他控制服务器发送选主指令,选主指令用于从多个控制服务器中确定一个主控制服务器。
在一个实施例中,当查询结果表征多个控制服务器中未包含有主控制服务器时,控制服务器向其他控制服务器发送选主指令,以从多个控制服务器中确定一个主控制服务器。
本实施例中,控制服务器在查询到的当前系统状态是缺主状态的情况下,主动发送选主指令,从而发起与其他控制服务器共同选举主控制服务器的选主操作,无需等待服务协调设备通知后再发起选主操作。
本实施例中,在系统正常运行的情况下,主控制服务器之外的控制服务器处于非选举状态,可以只与服务协调设备通信,无需与其他控制服务器通信。在查询到的当前系统状态是缺主状态的情况下,主控制服务器之外的控制服务器进入选举状态,与其他控制服务器进行通信并发起选主操作。
本实施例中,选主的过程例如是:每个控制服务器发出投票并接收其他控制服务器发出的投票;按照预设的选举规则对投票进行处理和统计;根据选举结果更新自身的状态,例如将自身状态更新为主控制服务器或者非主(从)控制服务器。
在一些实施方式中,在选举阶段,多个控制服务器按照身份标识最小者当选的原则进行投票,选出主控制服务器。
选主完成后,多个控制服务器可只与服务协调设备通信,无需相互通信。在分布式应用程序协调服务布置在多个控制服务器中的情况下,控制服务器和服务协调设备通信之间的通信表现为控制服务对应的进程和协调服务对应的进程之间的通信。本实施例提供的分布式存储系统的服务协调方法,控制服务器主动查询多个控制服务器中是否包含有主控制服务器,根据查询结果确定是否向其他控制服务器发送选主指令,有利于避免出现系统无主的情况。例如,在一种场景中,当前主控制服务器出现死机故障,服务协调设备清除了该主控制服务器的身份标识,但是由于网络连接不通等原因不能通知其他控制服务器重新选主,这种情况下,根据本实施例提供的方法,其他控制服务器可基于查询到的系统状态主动发起选主,从而避免了系统出现无主状态。
在一个实施例中,分布式存储系统的服务协调方法还包括:在控制服务器为主控制服务器时,定时向服务协调设备发送连接请求;若在设定时间窗口内,未接收到服务协调设备针对连接请求的响应,则停止作为主控制服务器提供的服务。
本实施例中,对于系统当前的主控制服务器,该主控制服务器主动与服务协调设备进行连接,例如主动向发送获取连接状态的请求,并根据服务协调设备是否返回相应的消息来判断连接是否成功。如果在设定时间窗口内进行的连接均失败,那么该主控制服务器主动停止作为主控制服务器提供的服务,即从主控制服务器的节点位置上退出。如此,有利于避免系统出现双主状态。
例如,在一种场景中,系统当前的主控制服务器能够正常工作,但是与服务协调设备之间的通信连接中断,服务协调设备将记录的主控制服务器的身份标识清除,并通知其他控制服务器重新发起选主。重新选主后,会出现系统存在两个主控制服务器的情况。这种情况下,根据本实施例提供的服务协调方法,原来的主控制服务器因为不能与服务协调设备成功连接,会主动退出主节点位置,从而避免系统出现双主状态。
在一个实施例中,主控制服务器主动连接服务协调设备的过程包括:以预设的第二时间间隔,主动连接服务协调设备,其中,第二时间间隔小于服务协调设备的设定的会话超时时长。
本实施例中,主控制服务器以预设的第二时间间隔主动连接服务协调设备。第二时间间隔小于服务协调设备的设定的会话超时时长,有利于避免出现主控制服务器和服务协调设备之间的会话过期的情况。
在一个实施例中,上述设定时间窗口也小于服务协调设备的设定的会话超时时长。
在一个实施例中,分布式存储系统的服务协调方法还包括:在从多个控制服务器中确定一个主控制服务器后,向服务协调设备发送所确定的主控制服务器的标识。主控制服务器的标识例如是主控制服务器的IP或者其他标识,例如服务协调设备分配的唯一身份标识。如此,有利于服务协调设备及时获取重新选出的主控制服务器的标识,从而保持分布式存储系统的正常运行。
本实施例还提供另外一种分布式存储系统的服务协调方法,该方法例如由图1中的服务协调设备4000实施,或者在分布式应用程序协调服务布置在多个控制服务器中的情况下,由多个控制服务器共同实施。该方法包括如下步骤:接收控制服务器发送的查询请求;响应于查询请求,获取查询结果,查询结果表征多个控制服务器中是否包含有主控制服务器;向控制服务器发送查询结果。
在一个实施例中,述查询结果为服务器协调设备是否记录有主控制服务器的标识。主控制服务器的标识例如是主控制服务器的IP或者其他标识,例如服务协调设备分配的唯一身份标识。
在一个实施例中,分布式存储系统的服务协调方法还包括:接收多个控制服务器中的主控制服务器定时发送的连接请求;向主控制服务器发送针对连接请求的响应消息。
本实施例中,对于系统当前的主控制服务器,该主控制服务器主动与服务协调设备进行连接,例如主动向发送获取连接状态的请求,并根据服务协调设备是否返回相应的消息来判断连接是否成功。如果在设定时间窗口内进行的连接均失败,那么该主控制服务器主动停止作为主控制服务器提供的服务,即从主控制服务器的节点位置上退出。如此,有利于避免系统出现双主状态。
本实施例中,服务协调设备定时获取主控制服务器的存活状态过程例如是:服务协调设备接收由主控制服务器定时发送的关于自身活跃状态的消息,在获取到该消息的情况下判断主控制服务器处于存活状态。
在一个实施例中,分布式存储系统的服务协调方法还包括:接收多个控制服务器中的主控制服务器定时发送的连接请求;接收控制服务器发送的所确定的主控制服务器的标识;记录主控制服务器的标识。如此,有利于服务协调设备及时获取重新选出的主控制服务器的标识,从而保持分布式存储系统的正常运行。
在一个实施例中,服务协调设备为基于Zookeeper提供协调服务的服务协调设备。Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。基于Zookeeper分布式应用程序协调服务,服务协调设备能够有效管理多个控制服务器组成的集群,协调多个控制服务器对外提供控制服务。
图4示出了本实施例提供的分布式存储系统的服务协调方法实施的一个具体例子。如图4所示,在多个控制服务器的初始启动阶段,每一控制服务器均向服务协调设备发送注册请求,即执行步骤S101。服务协调设备响应于控制服务器发送的注册请求,为每个控制服务器分配全局唯一的身份标识,即执行步骤S102。多个控制服务器根据控制服务器分配的身份标识进行选举,按照标识最小者当选的原则选出主控制服务器,由主控制服务器对外提供控制服务器,其他控制服务器作为备份,即执行步骤S103。在系统运行过程中,主控制服务器定期主动连接服务协调设备,并且该定期连接的时间间隔小于服务协调设备的设定的会话超时时间,即执行步骤S104a。另外,从控制服务器也主动向服务协调设备定期查询系统状态,并且该定期查询的时间间隔小于服务协调设备的设定的会话超时时间,即执行步骤S104b。在该例子中,假设在系统运行过程中出现了主控制服务器能正常提供服务但是与服务协调设备通信断开的情况,这种情况下服务协调设备由于不能获取主控制服务器上报的存活状态,因此将主控制服务器的记录清除,系统变为缺主状态,即执行步骤S105。之后,从控制服务器通过定期查询系统状态,获知系统当前状态为缺主状态,在此基础上向其他控制服务器发送选主指令,主动发起重新选主的操作,选出新的主控制服务器,即执行步骤S106和步骤S107。原主控制服务器在设定时间窗口内与服务协调设备进行的主控连接均失败,在此基础上主动退出主节点位置,即执行步骤S108和步骤S109。
在该例子中,即使出现服务协调设备无法通知从控制服务器重新选主的情况,从控制服务器也基于查询到系统处于缺主状态而主动发起重新选主,有利于避免出现系统无主的情况。另外,原主控制服务器在与服务协调设备的连接失败的情况下主动退出主节点位置,避免了新的主控制服务器和原来的主控制服务器同时存在的情况,有利于避免出现系统双主的情况。
<控制服务器实施例>
本实施例提供了一种分布式存储系统的服务协调装置,该分布式存储系统包括服务协调设备和多个控制服务器,该装置应用于任意该控制服务器,包括查询模块和判断模块。
查询模块,用于向服务协调设备发送查询请求,以得到查询结果,查询结果表征多个控制服务器中是否包含有主控制服务器。
判断模块,用于根据查询结果确定是否向其他控制服务器发送选主指令,选主指令用于从多个控制服务器中确定一个主控制服务器。
在一个实施例中,查询模块在向服务协调设备发送查询请求,以得到查询结果,查询结果表征多个控制服务器中是否包含有主控制服务器时,用于:以预设的第一时间间隔,向服务协调设备发送查询请求;接收来自服务协调设备响应于查询请求发送的查询结果,查询结果表征多个控制服务器中是否包含有主控制服务器;其中,第一时间间隔小于服务协调设备的预设的会话超时时长。
在一个实施例中,查询结果为服务协调设备是否记录有主控制服务器的标识。
在一个实施例中,该装置还包括连接检测模块,连接检测模块用于:在控制服务器为主控制服务器时,定时向服务协调设备发送连接请求;若在设定时间窗口内,未接收到服务协调设备针对连接请求的响应,则停止作为主控制服务器提供的服务。
在一个实施例中,连接检测模块在控制服务器为主控制服务器时的情况下,定时向服务协调设备发送连接请求时,用于:以预设的第二时间间隔,向服务协调设备发送连接请求;其中,第二时间间隔小于服务协调设备的预设的会话超时时长。
在一个实施例中,设定时间窗口小于服务协调设备的设定的会话超时时长。
在一个实施例中,判断模块在根据查询结果确定是否向其他控制服务器发送选主指令时,用于:当查询结果表征多个控制服务器中未包含有主控制服务器时,向其他控制服务器发送选主指令,以从多个控制服务器中确定一个主控制服务器。
在一个实施例中,该装置还包括标识发送模块,标识发送模块用于:在从多个控制服务器中确定一个主控制服务器后,向服务协调设备发送所确定的主控制服务器的标识。
本实施例还提供一种分布式存储系统的服务协调装置,该分布式存储系统包括服务协调设备和多个实施方法实施例中描述的方法的控制服务器,该装置应用于服务协调设备,包括:第一接收模块、结果获取模块和第一发送模块。
第一接收模块,用于接收控制服务器发送的查询请求。
结果获取模块,用于响应于查询请求,获取查询结果,查询结果表征多个控制服务器中是否包含有主控制服务器。
第一发送模块,用于向控制服务器发送查询结果。
在一个实施例中,查询结果为服务器协调设备是否记录有主控制服务器的标识。
在一个实施例中,该装置还包括第二接收模块和第二发送模块:第二接收模块用于接收多个控制服务器中的主控制服务器定时发送的连接请求;第二发送模块用于向主控制服务器发送针对连接请求的响应消息。
在一个实施例中,该装置还包括第三接收模块和记录模块:第三接收模块用于接收控制服务器发送的所确定的主控制服务器的标识;记录模块用于记录主控制服务器的标识。
在一个实施例中,服务协调设备基于Zookeeper提供协调服务。
<电子设备实施例>
本实施例提供一种电子设备,包括处理器和存储器,存储器存储有能够被处理器执行的机器可执行指令,处理器执行机器可执行指令以实现本发明方法实施例描述的分布式存储系统的服务协调方法。
<系统实施例>
本实施例提供一种分布式存储系统,包括用户代理服务器、多个存储服务器、多个实施本发明方法实施例描述的第一种方法的控制服务器以及实施本发明方法实施例描述的第二种方法的服务协调设备,其中,控制服务器分别于用户代理服务器、多个存储服务器通信连接和服务协调设备通信连接。
<机器可读存储介质实施例>
本实施例提供一种机器可读存储介质,机器可读存储介质存储有机器可执行指令,机器可执行指令在被处理器调用和执行时,机器可执行指令促使处理器实现本发明方法实施例描述的分布式存储系统的服务协调方法。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。

Claims (16)

1.一种分布式存储系统的服务协调方法,所述分布式存储系统包括服务协调设备和多个控制服务器,所述方法由任意所述控制服务器实施,所述方法包括:
向所述服务协调设备发送查询请求,以得到查询结果,所述查询结果表征所述多个控制服务器中是否包含有主控制服务器;
根据所述查询结果确定是否向其他所述控制服务器发送选主指令,所述选主指令用于从所述多个控制服务器中确定一个主控制服务器。
2.根据权利要求1所述的方法,其中,所述向所述服务协调设备发送查询请求,以得到查询结果,所述查询结果表征所述多个控制服务器中是否包含有主控制服务器,包括:
以预设的第一时间间隔,向所述服务协调设备发送查询请求;
接收来自所述服务协调设备响应于所述查询请求发送的查询结果,所述查询结果表征所述多个控制服务器中是否包含有主控制服务器;
其中,所述第一时间间隔小于所述服务协调设备的预设的会话超时时长。
3.根据权利要求2所述的方法,其中,所述查询结果为所述服务协调设备是否记录有主控制服务器的标识。
4.根据权利要求1所述的方法,其中,所述方法还包括:
在所述控制服务器为主控制服务器时,定时向所述服务协调设备发送连接请求;
若在设定时间窗口内,未接收到所述服务协调设备针对所述连接请求的响应,则停止作为所述主控制服务器提供的服务。
5.根据权利要求4所述的方法,其中,所述在所述控制服务器为主控制服务器时的情况下,定时向所述服务协调设备发送连接请求,包括:
以预设的第二时间间隔,向所述服务协调设备发送所述连接请求;
其中,所述第二时间间隔小于所述服务协调设备的预设的会话超时时长。
6.根据权利要求4所述的方法,其中,所述设定时间窗口小于所述服务协调设备的设定的会话超时时长。
7.根据权利要求1至6中任一项所述的方法,其中,所述根据所述查询结果确定是否向其他所述控制服务器发送选主指令,所述选主指令用于从所述多个控制服务器中确定一个主控制服务器包括:
当所述查询结果表征所述多个控制服务器中未包含有主控制服务器时,向其他所述控制服务器发送选主指令,以从所述多个控制服务器中确定一个主控制服务器。
8.根据权利要求7所述的方法,其中,所述方法还包括
在从所述多个控制服务器中确定一个主控制服务器后,向所述服务协调设备发送所确定的主控制服务器的标识。
9.一种分布式存储系统的服务协调方法,所述分布式存储系统包括服务协调设备和多个实施权利要求1-8中任一项所述方法的控制服务器,所述方法由所述服务协调设备实施,所述方法包括:
接收所述控制服务器发送的查询请求;
响应于所述查询请求,获取查询结果,所述查询结果表征所述多个控制服务器中是否包含有主控制服务器;
向所述控制服务器发送所述查询结果。
10.根据权利要求9所述的方法,其中,所述查询结果为所述服务器协调设备是否记录有主控制服务器的标识。
11.根据权利要求9所述的方法,其中,所述方法还包括:
接收所述多个控制服务器中的主控制服务器定时发送的连接请求;
向所述主控制服务器发送针对所述连接请求的响应消息。
12.根据权利要求9所述的方法,其中,所述方法还包括:
接收所述控制服务器发送的所确定的主控制服务器的标识;
记录所述主控制服务器的标识。
13.一种分布式存储系统的服务协调装置,所述分布式存储系统包括服务协调设备和多个控制服务器,所述装置应用于任意所述控制服务器,包括:
查询模块,用于向所述服务协调设备发送查询请求,以得到查询结果,所述查询结果表征所述多个控制服务器中是否包含有主控制服务器;
判断模块,用于根据所述查询结果确定是否向其他所述控制服务器发送选主指令,所述选主指令用于从所述多个控制服务器中确定一个主控制服务器。
14.一种分布式存储系统的服务协调装置,所述分布式存储系统包括服务协调设备和多个实施权利要求1-8中任一项所述方法的控制服务器,所述装置应用于所述服务协调设备,包括:
第一接收模块,用于接收所述控制服务器发送的查询请求;
结果获取模块,用于响应于所述查询请求,获取查询结果,所述查询结果表征所述多个控制服务器中是否包含有主控制服务器;
第一发送模块,用于向所述控制服务器发送所述查询结果。
15.一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器执行所述机器可执行指令以实现权利要求1至12中任一项所述的分布式存储系统的服务协调方法。
16.一种分布式存储系统,包括用户代理服务器、多个存储服务器、多个实施权利要求1-8中任一项所述方法的控制服务器以及实施权利要求9-12中任一项所述方法的服务协调设备,其中,所述控制服务器分别与所述用户代理服务器、所述多个存储服务器通信连接和所述服务协调设备通信连接。
CN201911024570.3A 2019-10-25 2019-10-25 分布式存储系统的服务协调方法、装置及电子设备 Pending CN112714143A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911024570.3A CN112714143A (zh) 2019-10-25 2019-10-25 分布式存储系统的服务协调方法、装置及电子设备
PCT/CN2020/123516 WO2021078294A1 (zh) 2019-10-25 2020-10-26 分布式存储系统的服务协调方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911024570.3A CN112714143A (zh) 2019-10-25 2019-10-25 分布式存储系统的服务协调方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN112714143A true CN112714143A (zh) 2021-04-27

Family

ID=75541527

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911024570.3A Pending CN112714143A (zh) 2019-10-25 2019-10-25 分布式存储系统的服务协调方法、装置及电子设备

Country Status (2)

Country Link
CN (1) CN112714143A (zh)
WO (1) WO2021078294A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115242720A (zh) * 2022-08-03 2022-10-25 北京达佳互联信息技术有限公司 长连接服务的连接方法、装置、电子设备以及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436209A (zh) * 2008-12-15 2009-05-20 中兴通讯股份有限公司 一种多数据库同步的方法和装置
CN104754029A (zh) * 2014-12-31 2015-07-01 北京天诚盛业科技有限公司 确定主管理服务器的方法、装置和系统
CN106533738A (zh) * 2016-10-20 2017-03-22 中国民生银行股份有限公司 分布式批处理的方法、装置和系统
CN106789197A (zh) * 2016-12-07 2017-05-31 高新兴科技集团股份有限公司 一种集群选举方法及系统
CN107528730A (zh) * 2017-08-28 2017-12-29 北京格是菁华信息技术有限公司 多重冗余方法、多重冗余服务器以及系统
CN107579860A (zh) * 2017-09-29 2018-01-12 新华三技术有限公司 节点选举方法及装置
CN108717379A (zh) * 2018-05-08 2018-10-30 平安证券股份有限公司 电子装置、分布式任务调度方法及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9819541B2 (en) * 2015-03-20 2017-11-14 Cisco Technology, Inc. PTP over IP in a network topology with clock redundancy for better PTP accuracy and stability
CN105306566A (zh) * 2015-10-22 2016-02-03 创新科存储技术(深圳)有限公司 一种云存储系统中选举主控节点的方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101436209A (zh) * 2008-12-15 2009-05-20 中兴通讯股份有限公司 一种多数据库同步的方法和装置
CN104754029A (zh) * 2014-12-31 2015-07-01 北京天诚盛业科技有限公司 确定主管理服务器的方法、装置和系统
CN106533738A (zh) * 2016-10-20 2017-03-22 中国民生银行股份有限公司 分布式批处理的方法、装置和系统
CN106789197A (zh) * 2016-12-07 2017-05-31 高新兴科技集团股份有限公司 一种集群选举方法及系统
CN107528730A (zh) * 2017-08-28 2017-12-29 北京格是菁华信息技术有限公司 多重冗余方法、多重冗余服务器以及系统
CN107579860A (zh) * 2017-09-29 2018-01-12 新华三技术有限公司 节点选举方法及装置
CN108717379A (zh) * 2018-05-08 2018-10-30 平安证券股份有限公司 电子装置、分布式任务调度方法及存储介质

Also Published As

Publication number Publication date
WO2021078294A1 (zh) 2021-04-29

Similar Documents

Publication Publication Date Title
CN109729111B (zh) 用于管理分布式系统的方法、设备和计算机程序产品
US10509680B2 (en) Methods, systems and apparatus to perform a workflow in a software defined data center
US10298436B2 (en) Arbitration processing method after cluster brain split, quorum storage apparatus, and system
US8055735B2 (en) Method and system for forming a cluster of networked nodes
CN107526659B (zh) 用于失效备援的方法和设备
US7225356B2 (en) System for managing operational failure occurrences in processing devices
CN103460203A (zh) 群集唯一标识符
CN106230622B (zh) 一种集群实现方法及装置
CN109189854B (zh) 提供持续业务的方法及节点设备
CN111708668A (zh) 集群故障的处理方法、装置及电子设备
CN111342986B (zh) 分布式节点管理方法及装置、分布式系统、存储介质
CN111262720A (zh) 设备管理服务器及方法、和计算机可读存储介质
US10637748B2 (en) Method and apparatus for establishing interface between VNFMS, and system
CN108509296B (zh) 一种处理设备故障的方法和系统
CN112714143A (zh) 分布式存储系统的服务协调方法、装置及电子设备
EP3525400A1 (en) Network service management method and system
CN112751693B (zh) 分布式存储系统的数据处理方法、装置及电子设备
US20230291643A1 (en) Monitoring device, network device, control method of monitoring device, control method of network device, and recording medium
CN114124803B (zh) 设备管理方法、装置、电子设备及存储介质
EP3346671B1 (en) Service processing method and equipment
JP2017027166A (ja) 運用管理装置、運用管理プログラムおよび情報処理システム
US20240028611A1 (en) Granular Replica Healing for Distributed Databases
US10972343B2 (en) System and method for device configuration update
US20150142960A1 (en) Information processing apparatus, information processing method and information processing system
US9548940B2 (en) Master election among resource managers

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210427