CN107817951B - 一种实现Ceph集群融合的方法及装置 - Google Patents
一种实现Ceph集群融合的方法及装置 Download PDFInfo
- Publication number
- CN107817951B CN107817951B CN201711047246.4A CN201711047246A CN107817951B CN 107817951 B CN107817951 B CN 107817951B CN 201711047246 A CN201711047246 A CN 201711047246A CN 107817951 B CN107817951 B CN 107817951B
- Authority
- CN
- China
- Prior art keywords
- cluster
- ceph
- copy
- osd
- global
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供一种实现Ceph集群融合的方法及装置,该方法包括:当所述目标监视器为所述目标Ceph集群的Leader时,与需要与所述目标Ceph集群进行融合的其它Ceph集群的Leader进行全局Leader选举;当所述目标监视器被选举为全局Leader时,获取所述目标Ceph集群的集群Map以及所述其它Ceph集群的集群Map,并根据获取到的各Ceph集群的集群Map生成全局集群Map;将全局集群Map发布给目标Ceph集群的其它监视器以及所述其它Ceph集群的监视器。应用本发明可以实现Ceph集群融合。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种实现Ceph集群融合的方法及装置。
背景技术
Ceph(分布式存储系统)是一个开源项目,提供软件定义的、统一的存储解决方案,具备可大规模扩展、高性能、无单点故障的优点。
当应用程序访问Ceph集群并执行写操作时,数据将会以对象的形式存储在Ceph的对象存储设备(Object Storage Device,简称OSD)中。
Ceph Monitor(监视器)负责整个集群的健康状态,一般来说Monitor节点可单独部署在物理主机上,也可以将Monitor节点和存储节点均部署在该物理主机上。初始时多个Monitor先选举出一个Leader(领导者),该Leader协调其他Monitor的Cluster Map(集群映射)的更新,每隔固定周期Leader向其他Monitor发放Lease(租约),持有Lease的Monitor才能够对外提供读服务,否则认为该Monitor上的数据已经过时,不能提供服务。
然而实践发现,现有技术中不存在一种实现不同Ceph集群融合的方案。
发明内容
本发明提供一种实现Ceph集群融合的方法及装置,以解决现有技术中不存在实现不同Ceph集群融合方案的问题。
根据本发明实施例的第一方面,提供一种实现分布式存储系统Ceph集群融合的方法,应用于目标Ceph集群的目标监视器,该方法包括以下步骤:
当所述目标监视器为所述目标Ceph集群的领导者Leader时,与待融合的其它Ceph集群的Leader进行全局Leader选举;
当所述目标监视器被选举为全局Leader时,获取所述目标Ceph集群的集群映射Map以及所述其它Ceph集群的集群Map,并根据获取到的各Ceph集群的集群Map生成全局集群Map;
将所述全局集群Map发布给所述目标Ceph集群的其它监视器以及所述其它Ceph集群的监视器。
根据本发明实施例的第二方面,提供一种实现分布式存储系统Ceph集群融合的装置,应用于目标Ceph集群的目标监视器,该装置包括:
选举单元,用于当所述目标监视器为所述目标Ceph集群的领导者Leader时,与待融合的其它Ceph集群的Leader进行全局Leader选举;
获取单元,用于当所述目标监视器被选举为全局Leader时,获取所述目标Ceph集群的集群映射Map以及所述其它Ceph集群的集群Map;
生成单元,用于根据所述获取单元获取到的各Ceph集群的集群Map生成全局集群Map;
发送单元,用于将所述全局集群Map发布给所述目标Ceph集群的其它监视器以及所述其它Ceph集群的监视器。
应用本发明实施例,通过在参与融合的各Ceph集群的Leader之间选举全局Leader,由全局Leader获取参与融合的各Ceph集群的集群Map,并根据获取到的集群Map生成全局集群Map,并将全局集群Map发布给参与融合的各Ceph集群的各监视器,从而各Ceph集群的监视器可以根据该全局集群Map进行跨集群数据读写,实现了Ceph集群融合。
附图说明
图1是本发明实施例提供的一种实现Ceph集群融合的方法的流程示意图;
图2是本发明实施例提供的一种实现Ceph集群融合的装置的结构示意图;
图3是本发明实施例提供的另一种实现Ceph集群融合的装置的结构示意图;
图4是本发明实施例提供的另一种实现Ceph集群融合的装置的结构示意图;
图5是本发明实施例提供的一种实现Ceph集群融合的装置的硬件结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
请参见图1,为本发明实施例提供的一种实现Ceph集群融合的方法的流程示意图,其中,该方法可以应用于需要进行Ceph集群融合的任一Ceph集群(本文中称为目标Ceph集群)的任一监视器(本文中称为目标监视器),如图1所示,该方法可以包括以下步骤:
需要说明的是,为了便于理解和说明,在本发明实施例中引入域的概念,一个Ceph集群对应一个域,不同的Ceph集群对应不同的域;各Ceph集群的Leader可以称为域集群Leader,例如,Ceph集群A的Leader可以称为域A集群leader,Ceph集群B的Leader可以称为域B集群Leader;全局Leader可以称为域主Leader;各Ceph集群的集群标识可以称为域ID(标识)。
此外,在本发明实施例中,进行Ceph集群融合的Ceph集群的数量可以为两个或两个以上,为便于理解和说明,下文中以两个Ceph集群进行融合为例进行说明,三个或三个以上Ceph集群融合的实现可以同理推之。
步骤101、当目标监视器为目标Ceph集群的Leader时,与待融合的其它Ceph集群的Leader进行全局Leader选举。
本发明实施例中,每个Ceph集群内部监视器进行Leader选举的具体实现可以参见现有流程中的相关描述,本发明实施例对此不做赘述。
本发明实施例中,为了实现Ceph集群的融合,实现跨域(即跨集群)的数据读写,可以从需要进行融合的各Ceph集群的Leader中选举一个作为融合后的Ceph集群的Leader(本文中可以称为域主Leader),由该域主Leader来协调参与融合的Ceph集群的数据读写等工作。
相应地,当目标监视器被选举为目标Ceph集群的Leader时,目标监视器需要与参与融合的另一个(或多个)Ceph集群的Leader进行域主Leader选举。
在本发明其中一个实施例中,目标Ceph集群的监视器的Leader与其它Ceph集群的监视器的Leader根据以下参数中的一个或多个进行全局Leader选举:
Ceph集群中监视器的数量、Ceph集群中OSD、Leader所在主机的CPU(CenterProcess Unit,中央处理器)性能。
举例来说,假设监视器A为域A(对应Ceph集群A,下同)集群Leader,监视器B为域B(对应Ceph集群B,下同)集群Leader,当Ceph集群A需要与Ceph集群B进行融合时,监视器A(监视器B)可以向监视器B(监视器A)发送域主Leader选举报文,该选举报文中可以携带发送方所在Ceph集群中监视器的数量、OSD的数量以及所在主机的CPU性能等参数,监视器A(监视器B)接收到监视器B(监视器A)发送的选举报文时,可以比较Ceph集群A和Ceph集群B中监视器的数量,将监视器数量较多的Ceph集群的Leader选举为域主Leader;若两个Ceph集群的监视器的数量相同,则进一步比较Ceph集群A和Ceph集群B中OSD的数量,将OSD的数量较多的Ceph集群的Leader选举为域主Leader;若两个Ceph集群的OSD的数量也相同,则进一步比较监视器A所在主机的CPU性能和监视器B所在主机的CPU性能,将性能更优的选举为域主Leader。
需要说明的是,上述列举的用于进行域主Leader的参数以及根据上述参数进行域主Leader选举的具体方式仅仅是本发明实施例中的具体示例,而不是对本发明保护范围的限定,在本发明实施例中,用于进行域主Leader选举的参数也可以包括其它参数,如监视器所在主机启动的时间、监视器所在主机的设备标识(如MAC(Media Access Control,媒体访问控制)地址)等;根据上述参数进行域主Leader选举的方式也可以包括其它方式,如先比较两个Ceph集群中OSD的数量,后比较监视器的数量和所在主机的CPU性能;或先比较所在主机的CPU性能,后比较两个Ceph集群中的OSD的数量、监视器的数量等。
步骤102、当目标监视器被选举为全局Leader时,获取目标Ceph集群的集群Map以及参与融合的其它Ceph集群的集群Map,并根据获取到的各Ceph集群的集群Map生成全局集群Map。
本发明实施例中,参与融合的各Ceph集群的各域集群Leader选举出域主集群Leader之后,该域主集群Leader需要维护全局集群Map,以便各Ceph集群的监视器可以根据该全局集群Map实现跨域数据读写。
相应地,在本发明实施例中,当目标监视器被选举为域主Leader时,目标监视器可以获取参与融合的各Ceph集群的集群Map,并根据获取到的各Ceph集群的集群Map生成全局集群Map。
举例来说,假设Ceph集群A与Ceph集群B进行融合,且选举出的域主Leader为监视器A,则监视器A可以分别获取Ceph集群A的集群Map和Ceph集群B的集群Map,并根据获取到的集群Map生成全局集群Map。
其中,域主Leader根据参与融合的各Ceph集群的集群Map生成全局集群Map的具体实现与集群Leader生成集群Map相类似,本发明实施例对此不做赘述。
步骤103、将全局集群Map发布给目标Ceph集群的其它监视器以及待融合的其它Ceph集群的监视器。
本发明实施例中,目标监视器生成全局集群Map之后,一方面,可以将该全局集群Map发布给目标Ceph集群的其它监视器;另一方面,可以将该全局集群Map发布给其它Ceph集群的监视器的Leader,其它Ceph集群监视器的Leader接收到全局集群Map之后,可以将该全局集群Map发布给自身所在Ceph集群的其它监视器,进而,参与融合的各Ceph集群中各监视器可以根据该全局集群Map进行跨域数据读写。
可见,在图1所示的方法流程中,通过在参与融合的各Ceph集群的Leader之间选举全局Leader,由该全局Leader根据各Ceph集群的集群Map生成全局集群Map,并将该全局集群Map发布到各Ceph集群的各监视器,从而可以实现跨集群数据读写,实现Ceph集群融合。
进一步地,在本发明实施例中,为了进一步提高集群数据的可靠性,可以对集群数据进行跨集群备份。
相应地,在本发明其中一个实施例中,当目标监视器被选举为全局Leader时,上述实现Ceph集群融合的方法还可以包括:
对于目标Ceph集群或参与融合的其它Ceph集群中的任一对象,将该对象的一个或多个辅副本分布到该对象的主副本所在Ceph集群之外的其它Ceph集群。
在该实施例中,对于参与融合的各Ceph集群中的任一对象(本文中称为目标对象),目标监视器可以将该目标对象的一个或多个辅副本分布到目标对象的主副本所在Ceph集群之外的其它Ceph集群,以实现集群数据跨域备份,提高集群数据可靠性。
举例来说,仍以Ceph集群A与Ceph集群B融合,且监视器A被选举为域主Leader为例,当对象A在Ceph集群A中存在4个副本(包括1个主副本和3个辅副本),则监视器A可以将对象A的1~3个辅副本分布到Ceph集群B,例如,监视器A可以将对象A的2个辅副本通过CRUSH(Controlled Replication Under Scalable Hashing,可扩展哈希下的受控复制)算法计算重新分布到Ceph集群B,进而,对象A在Ceph集群A中存在1个主副本和1个辅副本,在Ceph集群B中存在2个辅副本,实现了集群数据的跨域备份。
进一步地,在该实施例中,考虑到Ceph集群中进行数据读取时需要从主副本所在OSD(下文中称为主副本OSD)中读取,因此,主副本OSD所在Ceph集群之外的参与融合的其它Ceph集群所处域内,存在客户端需要读取数据时,需要进行跨域数据读取,而跨域进行数据读取时效率比较差,因此,为了提高数据读取效率,可以在主副本OSD所在集群之外的参与融合的其它Ceph集群内设置次主副本,该次主副本所在OSD(下文中称为次主副本OSD)也可以用于响应数据读取。
相应地,在该实施例其中一个方式中,上述将该对象的一个或多个辅副本分布到该对象的主副本所在Ceph集群之外的其它Ceph集群之后,还可以包括:
将分布到该对象的主副本所在Ceph集群之外的其它Ceph集群中的一个或多个辅副本中的一个辅副本设置为次主副本。
仍以上一示例为例,假设对象A的2个辅副本被分布到Ceph集群B时,监视器A可以将该2个辅副本中的一个辅副本设置为次主副本。
其中,监视器A在Ceph集群B的2个辅副本中选择一个作为次主副本的具体实现方式可以参见现有Ceph集群中选择主副本的相关实现,本发明实施例在此不做赘述。
进一步地,在该实施方式中,各Ceph集群的Leader将全局集群Map发布给自身所在Ceph集群的其它监视器时,在该全局集群Map中携带自身所在Ceph集群的集群标识;
相应地,上述实现Ceph集群融合的方法还可以包括:
当接收到客户端发送的数据读取请求时,向所述客户端发送所述全局集群Map,以使所述客户端根据所述全局集群Map确定待读取数据对应的主副本OSD和次主副本OSD,并从所述主副本OSD和次主副本OSD中选择所在集群的集群标识与该全局集群Map携带的集群标识相同的OSD进行数据读取。
在该实施方式中,各Ceph集群的Leader向自身所在Ceph集群的监视器发布全局集群Map时,可以在该集群Map中携带自身所在Ceph集群的域ID(即集群标识)。
例如,监视器A向Ceph集群A中其它各监视器发布全局集群Map时,可以在该全局集群Map中携带域A的域ID(假设为ID1);监视器B向Ceph集群B中其它各监视器发布全局集群Map时,可以在该全局集群Map中携带域B的域ID(假设为ID2)。
在该实施方式中,当目标监视器接收到客户端发送的数据读取请求时,目标监视器可以向该客户端返回全局集群Map;客户端接收到该全局集群Map之后,可以根据全局集群Map,通过CRUSH算法查找到待读取数据对应的主副本OSD和次主副本OSD。
在该实施方式中,为了提高数据读取效率,需要按照就近原则选择响应数据读取的OSD。
相应地,客户端查找到待读取数据对应的主副本OSD和次主副本OSD时,可以分别将获取到的全局集群Map携带的域ID与主副本OSD所在Ceph集群的域ID和次主副本OSD所在Ceph集群的域ID进行比较。
若客户端确定本地的全局集群Map携带的域ID与主副本OSD所在Ceph集群的域ID相同,则客户端可以选择主副本OSD来响应接收到的数据读取请求;
若客户端确定本地全局集群Map携带的域ID与主副本OSD所在Ceph集群的域ID相同,则客户端可以选择次主副本OSD来响应接收到的数据读取请求。
仍以上一示例为例,当Ceph集群A所处区域的客户端A向监视器A发送数据读取请求时,监视器A可以向客户端A返回本地的全局集群Map(携带的域ID为ID1),客户端A接收到该全局Map之后,通过CRUSH算法查找到待读取数据的主副本OSD和次主副本OSD,假设主副本OSD所在Ceph集群的域ID为ID2,次主副本OSD所在Ceph集群的域ID为ID1,则客户端A可以选择次主副本OSD用于接收到的数据读取请求。
可见,在该实施例中,可以在主副本所在Ceph集群之外的参与融合的其它Ceph集群中设置次主副本,当需要进行数据读取时,选择主副本OSD和次主副本OSD中所在集群的域ID与本地的全局集群Map携带的域ID相同的OSD来响应数据读取请求,实现数据就近读取,提高了集群数据读取效率。
进一步地,在本发明其中一个实施例中,上述实现Ceph集群融合的方法还可以包括:
对于目标Ceph集群或参与融合的其它Ceph集群中的任一对象,当该对象的主副本所在OSD故障时,若该主副本所在Ceph集群中存在该对象的辅副本,则从该对象的辅副本中选择一个辅副本设置为新的主副本,并在该Ceph集群中重新确定该对象的一个新的辅副本所在的OSD;当该对象的主副本所在OSD故障时,若该主副本所在Ceph集群中不存在该对象的辅副本,则根据该对象的其它副本在原主副本所在Ceph集群中重新确定该对象的一个新的辅副本所在的OSD,并将该新的辅副本设置为新的主副本;
当该对象的辅副本故障时,在该辅副本所在Ceph集群中重新确定该对象的一个新的辅副本所在的OSD。
在该实施例中,当参与融合的各Ceph集群中目标对象的主副本OSD故障时,目标监视器需要判断该主副本所在Ceph集群中是否存在该对象的辅副本。
若该主副本所在Ceph集群中存在该对象的辅副本,则目标监视器可以在该对象的辅副本中选择一个辅副本设置为新的主副本,并通过CRUSH算法在该Ceph集群中重新确定目标对象的一个新的辅副本所在的OSD(即存储该新的辅副本的OSD的位置);
若该主副本所在Ceph集群中不存在该对象的辅副本,则目标监视器可以根据目标对象的其它副本在原主副本所在Ceph集群中重新计算该对象的一个新的辅副本所在的OSD,并将该新的辅副本设置为新的主副本。其中,上述其他副本可以为待融合的其他Ceph集群中的次主副本,也可以为该其他Ceph集群中的辅副本。具体的,可以利用上述其他副本对原主副本所在的Ceph集群进行副本恢复。
举例来说,假设Ceph集群A中包括对象A的1个主副本和1个辅副本,Ceph集群B中包括对象A的1个辅副本,则当对象A的主副本故障时,监视器A可以将Ceph集群A中对象A的辅副本设置为新的主副本,并在Ceph集群A中重新确定一个新的辅副本所在的OSD。
又举例来说,假设Ceph集群A中包括对象A的1个主副本,Ceph集群B中包括对象A的1个辅副本,则当对象A的主副本故障时,监视器A可以根据Ceph集群B中包括的对象A的辅副本在Ceph集群A中重新确定一个新的辅副本所在的OSD。其中,监视器A可以将该新的辅副本设置为新的主副本。
可见,在本发明实施例中,当任一对象的主副本OSD故障时,优先在该主副本所在Ceph集群中恢复该对象的主副本,避免迁移原始数据存放时的主副本所处域的位置。
在该实施例中,当目标对象的辅副本所在OSD(下文中称为辅副本OSD)故障时,目标监视器可以直接在该辅副本OSD所在Ceph集群中重新确定该对象的一个新的辅副本所在的OSD。
举例来说,假设Ceph集群A中包括对象A的1个主副本和1个辅副本,Ceph集群B中包括对象A的1个辅副本,则当对象A在Ceph集群A中的辅副本故障时,监视器A可以直接在Ceph集群A中重新计算一个新的辅副本的位置;当对象A在Ceph集群B中的辅副本故障时,监视器A可以根据Ceph集群A中对象A的辅副本在Ceph集群B中重新确定该对象的一个新的辅副本所在的OSD。
需要说明的是,在本发明实施例中,当目标对象在参与融合的某一Ceph集群中存在次主副本时,则该次主副本故障时恢复的处理流程可以与目标对象的主副本故障时恢复的实现相类似,本发明实施例在此不再赘述。
举例来说,假设Ceph集群A中包括对象A的1个主副本和1个辅副本,Ceph集群B中包括对象A的1个次主副本和1个辅副本,则当对象A的次主副本故障时,监视器A可以将对象A在Ceph集群B中辅副本设置为新的次主副本,并在Ceph集群中重新确定该对象的一个新的辅副本所在的OSD。
通过以上描述可以看出,在本发明实施例提供的技术方案中,通过在参与融合的各Ceph集群的Leader之间选举全局Leader,由全局Leader获取参与融合的各Ceph集群的集群Map,并根据获取到的集群Map生成全局集群Map,并将全局集群Map发布给参与融合的各Ceph集群的各监视器,从而各Ceph集群的监视器可以根据该全局集群Map进行跨集群数据读写,实现了Ceph集群融合。
请参见图2,为本发明实施例提供的一种实现Ceph集群融合的装置的结构示意图,其中,该装置可以应用于上述方法实施例中的目标监视器,如图2所示,该实现Ceph集群融合的装置可以包括:
选举单元210,用于当所述目标监视器为所述目标Ceph集群的领导者Leader时,与待融合的其它Ceph集群的Leader进行全局Leader选举;
获取单元220,用于当所述目标监视器被选举为全局Leader时,获取所述目标Ceph集群的集群映射Map以及所述其它Ceph集群的集群Map;
生成单元230,用于根据所述获取单元获取到的各Ceph集群的集群Map生成全局集群Map;
发送单元240,用于将所述全局集群Map发布给所述目标Ceph集群的其它监视器以及所述其它Ceph集群的监视器。
在可选实施例中,所述选举单元210,具体用于与所述其它Ceph集群的监视器的Leader根据以下参数中的一个或多个进行全局Leader选举:
Ceph集群中监视器的数量、Ceph集群中对象存储设备OSD的数量、Leader所在主机的中央处理器CPU性能。
请一并参见图3,为本发明实施例提供的另一种实现Ceph集群融合的装置的结构示意图,如图3所示,在图2所示实现Ceph集群融合的装置的基础上,图3所示的实现Ceph集群融合的装置还可以包括:
OSD处理单元250,用于当所述目标监视器被选举为全局Leader时,对于所述目标Ceph集群或所述其它Ceph集群中的任一对象,将该对象的一个或多个辅副本分布到该对象的主副本所在Ceph集群之外的其它Ceph集群。
在可选实施例中,所述OSD处理单元250,还用于将所述分布到该对象的主副本OSD所在Ceph集群之外的其它Ceph集群中的一个或多个辅副本OSD中的一个辅副本OSD设置为次主副本OSD。
在可选实施例中,各Ceph集群的Leader将全局集群Map发布给自身所在Ceph集群的其它监视器时,在该全局集群Map中携带自身所在Ceph集群的集群标识;
相应地,请一并参见图4,为本发明实施例提供的另一种实现Ceph集群融合的装置的结构示意图,如图4所示,在图3所示实现Ceph集群融合的装置的基础上,图4所示的实现Ceph集群融合的装置还可以包括:
接收单元260,用于接收客户端发送的数据读取请求;
所述发送单元240,还用于当所述接收单元260接收到客户端发送的数据读取请求时,向所述客户端发送所述全局集群Map,以使所述客户端根据所述全局集群Map确定待读取数据对应的主副本所在OSD和次主副本所在OSD,并从所述主副本所在OSD和次主副本所在OSD中选择所在集群的集群标识与该全局集群Map携带的集群标识相同的OSD进行数据读取。
在可选实施例中,所述OSD处理单元250,还用于对于所述目标Ceph集群或所述其它Ceph集群中的任一对象,当该对象的主副本所在OSD故障时,若该主副本所在Ceph集群中存在该对象的辅副本,则从该对象的辅副本中选择一个辅副本设置为新的主副本,并在该Ceph集群中重新确定该对象的一个新的辅副本所在的OSD;当该对象的主副本所在OSD故障时,若该主副本所在Ceph集群中不存在该对象的辅副本,则根据该对象的其它副本在原主副本所在Ceph集群中重新确定该对象的一个新的辅副本所在的OSD,并将该新的辅副本设置为新的主副本;当该对象的辅副本故障时,在该辅副本所在Ceph集群中重新确定该对象的一个新的辅副本所在的OSD,并将该新的辅副本设置为新的主副本。
图5为本公开示例提供的一种实现Ceph集群融合的装置的硬件结构示意图。该实现Ceph集群融合的装置可包括处理器501、存储有机器可执行指令的机器可读存储介质502。处理器501与机器可读存储介质502可经由系统总线503通信。并且,通过读取并执行机器可读存储介质502中与Ceph集群融合逻辑对应的机器可执行指令,处理器501可执行上文描述的Ceph集群融合方法。
本文中提到的机器可读存储介质502可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种实现分布式存储系统Ceph集群融合的方法,应用于目标Ceph集群的目标监视器,其特征在于,该方法包括以下步骤:
当所述目标监视器为所述目标Ceph集群的领导者Leader时,与待融合的其它Ceph集群的Leader进行全局Leader选举;
当所述目标监视器被选举为全局Leader时,获取所述目标Ceph集群的集群映射Map以及所述其它Ceph集群的集群Map,并根据获取到的各Ceph集群的集群Map生成全局集群Map;以及
将所述全局集群Map发布给所述目标Ceph集群的其它监视器以及所述其它Ceph集群的监视器;
对于所述目标Ceph集群或所述其它Ceph集群中的任一对象,将该对象的一个或多个辅副本分布到该对象的主副本所在Ceph集群之外的其它Ceph集群。
2.根据权利要求1所述的方法,其特征在于,所述目标Ceph集群监视器的Leader与所述其它Ceph集群的监视器的Leader根据以下参数中的一个或多个进行全局Leader选举:
Ceph集群中监视器的数量、Ceph集群中对象存储设备OSD的数量、Leader所在主机的中央处理器CPU性能。
3.根据权利要求1所述的方法,其特征在于,将该对象的一个或多个辅副本分布到该对象的主副本所在Ceph集群之外的其它Ceph集群之后,还包括:
将所述分布到该对象的主副本所在Ceph集群之外的其它Ceph集群中的一个或多个辅副本中的一个辅副本设置为次主副本。
4.根据权利要求3所述的方法,其特征在于,各Ceph集群的Leader将全局集群Map发布给自身所在Ceph集群的其它监视器时,在该全局集群Map中携带自身所在Ceph集群的集群标识;
所述方法还包括:
当接收到客户端发送的数据读取请求时,向所述客户端发送所述全局集群Map,以使所述客户端根据所述全局集群Map确定待读取数据对应的主副本所在OSD和次主副本所在OSD,并从所述主副本所在OSD和次主副本所在OSD中选择所在集群的集群标识与该全局集群Map携带的集群标识相同的OSD进行数据读取。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
对于所述目标Ceph集群或所述其它Ceph集群中的任一对象,当该对象的主副本所在OSD故障时,若该主副本所在Ceph集群中存在该对象的辅副本,则从该对象的辅副本中选择一个辅副本设置为新的主副本,并在该Ceph集群中重新确定该对象的一个新的辅副本所在的OSD;当该对象的主副本所在OSD故障时,若该主副本所在Ceph集群中不存在该对象的辅副本,则根据该对象的其它副本在原主副本所在Ceph集群中重新确定该对象的一个新的辅副本所在的OSD,并将该新的辅副本设置为新的主副本;
当该对象的辅副本故障时,在该辅副本所在Ceph集群中重新确定该对象的一个新的辅副本所在的OSD。
6.一种实现分布式存储系统Ceph集群融合的装置,应用于目标Ceph集群的目标监视器,其特征在于,该装置包括:
选举单元,用于当所述目标监视器为所述目标Ceph集群的领导者Leader时,与待融合的其它Ceph集群的Leader进行全局Leader选举;
获取单元,用于当所述目标监视器被选举为全局Leader时,获取所述目标Ceph集群的集群映射Map以及所述其它Ceph集群的集群Map;
生成单元,用于根据所述获取单元获取到的各Ceph集群的集群Map生成全局集群Map;
发送单元,用于将所述全局集群Map发布给所述目标Ceph集群的其它监视器以及所述其它Ceph集群的监视器;
OSD处理单元,用于当所述目标监视器被选举为全局Leader时,对于所述目标Ceph集群或所述其它Ceph集群中的任一对象,将该对象的一个或多个辅副本分布到该对象的主副本所在Ceph集群之外的其它Ceph集群。
7.根据权利要求6所述的装置,其特征在于,
所述选举单元,具体用于与所述其它Ceph集群的监视器的Leader根据以下参数中的一个或多个进行全局Leader选举:
Ceph集群中监视器的数量、Ceph集群中对象存储设备OSD的数量、Leader所在主机的中央处理器CPU性能。
8.根据权利要求6所述的装置,其特征在于,
所述OSD处理单元,还用于将所述分布到该对象的主副本所在Ceph集群之外的其它Ceph集群中的一个或多个辅副本中的一个辅副本设置为次主副本。
9.根据权利要求6所述的装置,其特征在于,各Ceph集群的Leader将全局集群Map发布给自身所在Ceph集群的其它监视器时,在该全局集群Map中携带自身所在Ceph集群的集群标识;
所述装置还包括:
接收单元,用于接收客户端发送的数据读取请求;
所述发送单元,还用于当所述接收单元接收到客户端发送的数据读取请求时,向所述客户端发送所述全局集群Map,以使所述客户端根据所述全局集群Map确定待读取数据对应的主副本所在OSD和次主副本所在OSD,并从所述主副本所在OSD和次主副本所在OSD中选择所在集群的集群标识与该全局集群Map携带的集群标识相同的OSD进行数据读取。
10.根据权利要求6-9任一项所述的装置,其特征在于,
所述OSD处理单元,还用于对于所述目标Ceph集群或所述其它Ceph集群中的任一对象,当该对象的主副本所在OSD故障时,若该主副本所在Ceph集群中存在该对象的辅副本,则从该对象的辅副本中选择一个辅副本设置为新的主副本,并在该Ceph集群中重新确定该对象的一个新的辅副本所在的OSD;当该对象的主副本所在OSD故障时,若该主副本所在Ceph集群中不存在该对象的辅副本,则根据该对象的其它副本在原主副本所在Ceph集群中重新确定该对象的一个新的辅副本所在的OSD,并将该新的辅副本设置为新的主副本;当该对象的辅副本故障时,在该辅副本所在Ceph集群中重新确定该对象的一个新的辅副本所在的OSD,并将该新的辅副本设置为新的主副本。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711047246.4A CN107817951B (zh) | 2017-10-31 | 2017-10-31 | 一种实现Ceph集群融合的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711047246.4A CN107817951B (zh) | 2017-10-31 | 2017-10-31 | 一种实现Ceph集群融合的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107817951A CN107817951A (zh) | 2018-03-20 |
CN107817951B true CN107817951B (zh) | 2021-03-23 |
Family
ID=61604393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711047246.4A Active CN107817951B (zh) | 2017-10-31 | 2017-10-31 | 一种实现Ceph集群融合的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107817951B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109960469B (zh) * | 2019-03-25 | 2022-05-31 | 新华三技术有限公司 | 数据处理方法和装置 |
CN110018800A (zh) * | 2019-04-12 | 2019-07-16 | 苏州浪潮智能科技有限公司 | 分布式存储系统中归置组选主方法、装置、设备和介质 |
CN111291063B (zh) * | 2020-01-21 | 2022-03-08 | 深圳华锐金融技术股份有限公司 | 主备副本选举方法、系统、计算机设备和存储介质 |
CN111756571B (zh) * | 2020-05-28 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种集群节点故障的处理方法、装置、设备及可读介质 |
CN112307045A (zh) * | 2020-11-11 | 2021-02-02 | 支付宝(杭州)信息技术有限公司 | 一种数据同步方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010071884A2 (en) * | 2008-12-19 | 2010-06-24 | Watchguard Technologies, Inc. | Self-monitoring cluster of network security devices |
CN102411637B (zh) * | 2011-12-30 | 2013-07-24 | 创新科软件技术(深圳)有限公司 | 分布式文件系统的元数据管理方法 |
BR112016023105A2 (pt) * | 2014-04-04 | 2018-05-22 | Jonathon Joseph Mccormack Mark | escalonamento de processos e métodos |
CN104408086B (zh) * | 2014-11-07 | 2018-02-06 | 北京奇虎科技有限公司 | 数据全局处理系统和方法 |
CN106951445A (zh) * | 2017-02-17 | 2017-07-14 | 深圳市中博睿存信息技术有限公司 | 一种分布式文件系统及其存储节点上线方法 |
-
2017
- 2017-10-31 CN CN201711047246.4A patent/CN107817951B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107817951A (zh) | 2018-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107817951B (zh) | 一种实现Ceph集群融合的方法及装置 | |
ES2703901T3 (es) | Sistema de archivo distribuido mediante nodos de consenso | |
CN103354923B (zh) | 一种数据重建方法、装置和系统 | |
CN107544871B (zh) | 一种虚拟机磁盘备份方法及装置 | |
TWI689181B (zh) | 資料處理方法和系統 | |
CN111182067B (zh) | 一种基于星际文件系统ipfs的数据写入方法及设备 | |
US9031906B2 (en) | Method of managing data in asymmetric cluster file system | |
US10021186B2 (en) | Guaranteed delivery of replication message | |
CN103218248A (zh) | 一种虚拟机镜像的更新方法、服务器和桌面云系统 | |
CN105052111A (zh) | 跨群集边界的服务迁移 | |
US20210320977A1 (en) | Method and apparatus for implementing data consistency, server, and terminal | |
CN104580439A (zh) | 一种云存储系统中使数据均匀分布的方法 | |
US20180121305A1 (en) | Storage system and storage device | |
WO2023207492A1 (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
CN109407975B (zh) | 写数据方法与计算节点以及分布式存储系统 | |
CN104793981A (zh) | 一种虚拟机集群的在线快照管理方法及装置 | |
CN106339176B (zh) | 中间文件处理方法、客户端、服务器和系统 | |
US20170353515A1 (en) | Techniques for warming up a node in a distributed data store | |
CN105740091B (zh) | 数据备份、恢复方法和设备 | |
CN109298977A (zh) | 一种虚拟机业务快速恢复方法、系统、装置及存储介质 | |
US11188258B2 (en) | Distributed storage system | |
CN111831221B (zh) | 一种基于云存储的分布式存储方法及系统 | |
CN115955488B (zh) | 基于副本冗余的分布式存储副本跨机房放置方法与装置 | |
JP2005284980A (ja) | 2重化システム及びリモートディスクミラーリングの初期化処理方法 | |
JP6708923B2 (ja) | ストレージシステム |
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 |