一种sheepdog集群管理系统转让专利

申请号 : CN201910784508.8

文献号 : CN110519089A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 章恩世

申请人 : 北京浪潮数据技术有限公司

摘要 :

本发明公开了一种sheepdog集群管理系统,包括etcd集群、与etcd集群中的etcd节点连接的etcd通信装置及与etcd通信装置连接的sheepdog节点,etcd节点、etcd通信装置和sheepdog节点均为多个、且一一对应,其中,etcd通信装置,用于将sheepdog节点发送的第一数据信息发送至etcd集群的服务器,以便服务器对第一数据信息进行相应的处理;还用于将服务器返回的第二数据信息转换为与sheepdog节点相对应的格式数据,并将格式数据返回至sheepdog节点;本发明能够对大量sheepdog节点的管理,在增添节点时无需更新配置文件、重启主机,有利于提高管理效率。

权利要求 :

1.一种sheepdog集群管理系统,其特征在于,包括:etcd集群、与所述etcd集群中的etcd节点连接的etcd通信装置及与所述etcd通信装置连接的sheepdog节点,所述etcd节点、所述etcd通信装置和所述sheepdog节点均为多个、且一一对应,其中:所述etcd通信装置,用于将所述sheepdog节点发送的第一数据信息发送至所述etcd集群的服务器,以便所述服务器对所述第一数据信息进行相应的处理;还用于将所述服务器返回的第二数据信息转换为与所述sheepdog节点相对应的格式数据,并将所述格式数据返回至所述sheepdog节点。

2.根据权利要求1所述的sheepdog集群管理系统,其特征在于,所述etcd通信装置包括与所述sheepdog节点连接的etcd驱动以及一端与所述etcd驱动连接、另一端与所述服务器连接的etcd客户端;其中:所述etcd驱动,用于在接收到所述sheepdog节点发送的第一数据信息后调用所述etcd客户端,并通过所述etcd客户端将所述第一数据信息发送至所述服务器;还用于将etcd客户端返回的格式数据发送至所述sheepdog节点;

所述etcd客户端,用于将所述第一数据信息发送至所述服务器;还用于将所述服务器返回的第二数据信息转换为与所述sheepdog节点对应的所述格式数据,并将所述格式数据通过所述etcd驱动返回至所述sheepdog节点。

3.根据权利要求2所述的sheepdog集群管理系统,其特征在于,所述etcd客户端包括etcd客户端API、通信接口和格式转换接口;

所述通信接口,用于将所述etcd客户端API发送的第一数据信息发送至所述服务器;还用于接收所述服务器返回的第二数据信息,并将所述第二数据信息发送至所述格式转换接口;

所述格式转换接口,用于将所述第二数据信息转换为与所述sheepdog节点对应的格式数据,并将所述格式数据通过所述etcd客户端API发送至所述sheepdog节点。

4.根据权利要求3所述的sheepdog集群管理系统,其特征在于,所述格式数据的格式为JSON格式。

5.根据权利要求3所述的sheepdog集群管理系统,其特征在于,所述通信接口为基于Libcurl库建立的。

6.根据权利要求3所述的sheepdog集群管理系统,其特征在于,所述格式转换接口为基于Libyajl库建立的。

说明书 :

一种sheepdog集群管理系统

技术领域

[0001] 本发明实施例涉及分布式存储技术领域,特别是涉及一种sheepdog集群管理系统背景技术
[0002] 在sheepdog分布式存储系统中,sheepdog作为一个稳定的分布式存储框架,其采用无中心节点的全对称架构,内部使用集群管理工具来实现sheepdog集群中各节点之间的信息交互。
[0003] 目前,在对sheepdog进行集群管理时,所使用的集群管理工具包括:zookeeper、corosync和loca。但是,local只适用于本地单节点集群模式,无法与其他主机互联;zookeeper与corosync的问题在于每次添加管理集群节点时都必须要更新配置文件,并重启所有的主机,并且zookeeper与corosync最大支持的集群节点数只有几百个,无法应用于超大规模集群中。

发明内容

[0004] 本发明实施例的目的是提供一种sheepdog集群管理系统,在使用过程中有利于提高sheepdog集群的节点容量及对sheepdog节点的管理效率。
[0005] 为解决上述技术问题,本发明实施例提供了一种sheepdog集群管理系统,包括:etcd集群、与所述etcd集群中的etcd节点连接的所述etcd通信装置及与etcd通信装置连接的sheepdog节点,所述etcd节点、所述etcd通信装置和所述sheepdog节点均为多个、且一一对应,其中:
[0006] 所述etcd通信装置,用于将所述sheepdog节点发送的第一数据信息发送至所述etcd集群的服务器,以便所述服务器对所述第一数据信息进行相应的处理;还用于将所述服务器返回的第二数据信息转换为与所述sheepdog节点相对应的格式数据,并将所述格式数据返回至所述sheepdog节点。
[0007] 可选的,所述etcd通信装置包括与所述sheepdog节点连接的etcd驱动以及一端与所述etcd驱动连接、另一端与所述服务器连接的etcd客户端;其中:
[0008] 所述etcd驱动,用于在接收到所述sheepdog节点发送的第一数据信息后调用所述etcd客户端,并通过所述etcd客户端将所述第一数据信息发送至所述服务器;还用于将etcd客户端返回的格式数据发送至所述sheepdog节点;
[0009] 所述etcd客户端,用于将所述第一数据信息发送至所述服务器;还用于将所述服务器返回的第二数据信息转换为与所述sheepdog节点对应的所述格式数据,并将所述格式数据通过所述etcd驱动返回至所述sheepdog节点。
[0010] 可选的,所述etcd客户端包括etcd客户端API、通信接口和格式转换接口;
[0011] 所述通信接口,用于将所述etcd客户端API发送的第一数据信息发送至所述服务器;还用于接收所述服务器返回的第二数据信息,并将所述第二数据信息发送至所述格式转换接口;
[0012] 所述格式转换接口,用于将所述第二数据信息转换为与所述sheepdog节点对应的格式数据,并将所述格式数据通过所述etcd客户端API发送至所述sheepdog节点。
[0013] 可选的,所述格式数据的格式为JSON格式。
[0014] 可选的,所述通信接口为基于Libcurl库建立的。
[0015] 可选的,所述格式转换接口为基于Libyajl库建立的。
[0016] 本发明实施例提供了一种sheepdog集群管理系统,包括:etcd集群、与etcd集群中的etcd节点连接的etcd通信装置及与etcd通信装置连接的sheepdog节点,etcd节点、etcd通信装置和sheepdog节点均为多个、且一一对应;本申请中的etcd通信装置能够将sheepdog节点发送的第一数据信息发送至etcd集群的服务器,使etcd集群的服务器对该第一数据信息进行相应的处理,该etcd通信装置还能够将etcd服务器返回的第二数据信息进行格式转换,转换为符合sheepdog节点的格式数据,并将该格式数据返回至sheepdog节点,使sheepdog节点与etcd集群的服务器之间能够进行数据通信,以便etcd集群的服务器对sheepdog节点进行管理,并且由于etcd集群中有多个etcd节点,从而能够实现对sheepdog的集群管理。由于etcd集群具有可在线添加节点及高性能的特点,所以采用etcd实现对sheepdog节点进行管理时,能够实现对大量sheepdog节点的管理,并且在添加sheepdog节点时无需更新配置文件,并重启主机,有利于提高sheepdog集群的节点容量及对sheepdog节点的管理效率。

附图说明

[0017] 为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018] 图1为本发明实施例提供的一种sheepdog集群管理系统的结构示意图;
[0019] 图2为本发明实施例提供的一种etcd通信装置的结构示意图;
[0020] 图3为本发明实施例提供的一种etcd客户端的结构示意图。

具体实施方式

[0021] 本发明实施例提供了一种sheepdog集群管理系统,在使用过程中有利于提高sheepdog集群的节点容量及对sheepdog节点的管理效率。
[0022] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0023] 请参照图1,图1为本发明实施例提供的一种sheepdog集群管理系统的结构示意图。
[0024] 该sheepdog集群管理系统,包括:etcd集群1、与etcd集群1中的etcd节点11连接的etcd通信装置2及与etcd通信装置2连接的sheepdog节点3,etcd节点11、etcd通信装置2和sheepdog节点3均为多个、且一一对应,其中:
[0025] etcd通信装置2,用于将sheepdog节点3发送的第一数据信息发送至etcd集群1的服务器,以便etcd集群1的服务器对第一数据信息进行相应的处理;还用于将etcd集群1的服务器返回的第二数据信息转换为与sheepdog节点3相对应的格式数据,并将格式数据返回至sheepdog节点3。
[0026] 需要说明的是,由于etcd集群1可以在线添加节点,也即在etcd集群1中添加etcd节点11时无需重启主机,并且etcd具有高性能的特点,因此本实施例中采用etcd集群1实现对sheepdog集群的管理。
[0027] 具体的,etcd集群1中有大量的etcd节点11,本实施例中可以通过etcd通信装置2将sheepdog节点3与相应的etcd节点11进行绑定,使sheepdog节点3通过etcd通信装置2实现与etcd集群1的服务器之间的信息交互,以便etcd集群1的服务器对各个sheepdog节点3进行管理。其中,本实施例中的etcd通信装置2作为sheepdog节点3与etcd集群1的服务器之间的通信装置,在接收到sheepdog节点3发送的第一数据信息后,将该第一数据信息发送至etcd集群1的服务器,以便etcd集群1的服务器对该第一数据信息进行相应的处理,在接收到etcd集群1的服务器返回的第二数据信息后,能够将该第二数据信息进行格式转换,转换为满足sheepdog节点3格式要求的格式数据,并将该格式数据返回至sheepdog节点3,从而实现对sheepdog节点3的管理。
[0028] 例如,sheepdog节点3可以通过etcd通信装置2向etcd集群1的服务器发送待存储数据,etcd集群1的服务器在通过etcd通信装置2接收到待存储数据后,将该待存储数据存储至etcd集群1中,以便当有其他的sheepdog节点3需要获取该数据时,etcd集群1可以将该数据同步给其他相应的sheepdog节点3,当然在存储成功后etcd集群1的服务器还可以通过etcd通信装置2向相应的sheepdog节点3返回存储成功消息;再例如,sheepdog节点3还可以通过etcd通信装置2向etcd集群1的服务器发送数据获取请求,etcd集群1中的服务器可以根据该数据获取请求从etcd集群1中获取对应的数据信息,并将该数据信息通过etcd通信装置2返回至相应的sheepdog节点3;另外,sheepdog节点3还可以通过etcd通信装置2向etcd集群1的服务器发送数据监控请求,并且etcd集群1中的服务器在通过etcd通信装置2接收到数据监控请求后,可以根据该数据监控请求对相应的数据进行监控,并且当监控到对应的数据后,向对应的sheepdog节点3返回对应的数据信息或者返回监控信息,以便对应的sheepdog节点3在接收到监控响应信息后,向etcd集群1的服务器发送数据读取请求。
[0029] 也即,通过etcd集群1能够实现对sheepdog集群资源的操作,例如对键值对的增删改等操作,具体实现哪些操作可以根据实际sheepdog的需要,本实施例对此不做具体限定。
[0030] 另外,本实施例中的一个etcd节点11对应一个etcd通信装置2、对应一个sheepdog节点3,也即etcd节点11、etcd通信装置2和sheepdog节点3一一对应,当需要在集群中增添sheepdog节点3时,可以先在etcd集群1中添加etcd节点11,再通过添加与该etcd节点11对应的etcd通信装置2及相应的sheepdog节点3即可实现在集群中添加sheepdog节点3,并且无需重启主机,etcd集群1能够管理多少etcd节点11,就能够相应的管理多少sheepdog节点3,可以使sheepdog集群达到上千个节点以上的规模。
[0031] 进一步的,请参照图2,本实施例中的etcd通信装置2具体可以包括与sheepdog节点3连接的etcd驱动21以及一端与etcd驱动21连接、另一端与etcd集群1的服务器连接的etcd客户端22;其中:
[0032] etcd驱动21,用于在接收到sheepdog节点3发送的第一数据信息后调用etcd客户端22,并通过etcd客户端将第一数据信息发送至服务器;还用于将etcd客户端22返回的格式数据发送至sheepdog节点3;
[0033] etcd客户端22,用于将第一数据信息发送至etcd集群1的服务器;还用于将etcd集群1的服务器返回的第二数据信息转换为与sheepdog节点3对应的格式数据,并将格式数据通过etcd驱动21返回至sheepdog节点3。
[0034] 具体的,本实施例中的etcd驱动21(etcd driver)能够实现etcd客户端22与sheepdog节点3之间的交互,sheepdog节点3调用etcd驱动21、etcd驱动21调用etcd客户端22,sheepdog节点3通过etcd驱动21和etcd客户端22向etcd集群1中的服务器发送第一数据信息,并且还可以通过etcd驱动21和etcd客户端22接收etcd集群1中的服务器返回的第二数据信息,具体的第二数据信息可以通过etcd客户端22转换为满足sheepdog节点3格式要求的格式数据。
[0035] 更进一步的,请参照图3,本实施例中的etcd客户端22包括etcd客户端API 221、通信接口222和格式转换接口223;
[0036] 通信接口222,用于将etcd客户端API 221发送的第一数据信息发送至etcd集群1的服务器;还用于接收etcd集群1的服务器返回的第二数据信息,并将第二数据信息发送至格式转换接口223;
[0037] 格式转换接口223,用于将第二数据信息转换为与sheepdog节点3对应的格式数据,并将格式数据通过etcd客户端API 221发送至sheepdog节点3。
[0038] 具体的,本实施例中的etcd客户端22具体可以由etcd客户端API 221、通信接口222和格式转换接口223构成的,sheepdog节点3通过etcd驱动21向etcd客户端API 221发送第一数据信息,etcd客户端API 221将该第一数据信息通过通信接口222发送至etcd集群1的服务器;通信接口222还可以接受etcd集群1的服务器返回的第二数据信息,并将该第二数据信息发送至格式转换接口223,该格式转换接口223将该第二数据信息转换为满足对应的sheepdog节点格式要求的格式数据后,将该格式数据通过etcd客户端API 221返回至对应的sheepdog节点3。本实施例中的格式转换接口223可以将第二数据信息转换为具有JSON格式的格式数据,并将该格式数据通过etcd发送至相应的sheepdog节点3。
[0039] 其中,本实施例中的通信接口222具体可以为基于Libcurl库建立的通信接口,其中,Libcurl库libcurl库的主要功能是用不同的协议连接和沟通不同的服务器12,其支持多种通信协议,例如http、https、ftp、gopher、telnet、dict、file和ldap等协议,本实施例中的通信接口222可以但不仅限于采用HTTP协议实现。
[0040] 另外,本实施例中的格式转换接口223为基于Libyajl库建立的接口,其中,libyajl库为JSON编码与解码库,可以将etcd集群1的服务器返回的第二数据信息(例如键值对信息)编码成JSON格式的数据信息,以便在各种不同的协议中传输,或者将JSON解码为键值对方便机器识别。
[0041] 本发明实施例提供了一种sheepdog集群管理系统,包括:etcd集群、与etcd集群中的etcd节点连接的etcd通信装置及与etcd通信装置连接的sheepdog节点;本申请中的etcd通信装置能够将sheepdog节点发送的第一数据信息发送至etcd集群的服务器,使etcd集群的服务器对该第一数据信息进行相应的处理,该etcd通信装置还能够将etcd集群的服务器返回的第二数据信息进行格式转换,转换为符合sheepdog节点的格式数据,并将该格式数据返回至sheepdog节点,使sheepdog节点与etcd集群的服务器之间能够进行数据通信,以便etcd集群的服务器对sheepdog节点进行管理,并且由于etcd集群中有多个etcd节点,从而能够实现对sheepdog的集群管理。由于etcd集群具有可在线添加节点及高性能的特点,所以采用etcd实现对sheepdog节点进行管理时,能够实现对大量sheepdog节点的管理,并且在添加sheepdog节点时无需更新配置文件,并重启主机,有利于提高sheepdog集群的节点容量及对sheepdog节点的管理效率。
[0042] 还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0043] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。