CN113553308A - 一种基于CephFS分布式文件系统的多集群多活实现方法及系统 - Google Patents
一种基于CephFS分布式文件系统的多集群多活实现方法及系统 Download PDFInfo
- Publication number
- CN113553308A CN113553308A CN202110685283.8A CN202110685283A CN113553308A CN 113553308 A CN113553308 A CN 113553308A CN 202110685283 A CN202110685283 A CN 202110685283A CN 113553308 A CN113553308 A CN 113553308A
- Authority
- CN
- China
- Prior art keywords
- cluster
- mds
- data
- client
- master
- 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
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000000694 effects Effects 0.000 title claims abstract description 27
- 238000010586 diagram Methods 0.000 claims description 24
- 230000001360 synchronised effect Effects 0.000 claims description 11
- 238000000125 metastable de-excitation spectroscopy Methods 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 8
- 238000012423 maintenance Methods 0.000 abstract 1
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 101100226364 Arabidopsis thaliana EXT1 gene Proteins 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种基于CephFS分布式文件系统的多集群多活实现方法及系统,其包括元数据树图表模块,主集群MDS模块、主集群OSD模块、从集群MDS模块及从集群OSD模块。本发明通过主集群接收客户端的数据请求后,在主集群的MDS判断客户端的数据请求对应的子树的版本号与数据信息是否是最新的,如果是最新的主集群直接响应客户端的请求;如果不是最新的,该集群的MDS会转发该客户端的数据请求到对应的子树的版本号与数据信息是最新的从集群的MDS,之后由从集群的MDS返回客户的数据请求并转发给主集群的MDS,最后由主集群的MDS转发数据信息给客户端,进而实现多集群多活技术的应用。
Description
技术领域
本发明涉及数据管理技术领域,尤其是涉及一种基于CephFS分布式文件系统的多集群多活实现方法及系统。
背景技术
文件系统是人们日常工作中经常接触到的存储系统,从主流的本地文件系统XFS、EXT4、BtrFS到目前为满足大数据需要而流行的分布式文件系统GlasterFS、HDFS和CephFS等,尤其是CephFS近年来伴随着openstack云计算技术的兴起也得到了快速的发展。
但是目前的CephFS文件系统只能在单个Ceph集群中使用,当用户想要在不同的区域、不同的Ceph集群访问相同的数据时,目前还没有实现多个CephFS分布式文件系统存储集群的多活技术,这样对于用户来讲非常不方便,尤其是边缘计算技术技术的兴起,服务边缘化,就近化是一种趋势。
发明内容
基于此,有必要针对现有技术的不足,提供一种基于CephFS分布式文件系统的多集群多活实现方法及系统,保证用户对资源访问的就近原则,保证用户访问数据的多活性能,满足不同地域的用户可以访问相同的数据实现文件系统的共享。
为解决上述技术问题,本发明采用以下技术方案:
本发明提供了一种基于CephFS分布式文件系统的多集群多活实现方法,其包括如下步骤:
步骤S110、建立元数据树图表;其中,元数据树图表包括多集群中MDS的主机名称、IP地址、MDS负责的子树、以及MDS负责的子树的版本号信息;
步骤S120、接收主客户端的数据请求;其中,主客户端的数据请求包括元数据请求及数据请求,多集群包括主集群及从集群,主集群为直接接收主客户端的数据请求对应的集群,从集群为多集群中除主集群以外的集群;
步骤S130、基于PAXOS一致性算法更新多集群中MDS负责的子树在元数据树图表中最新版本信息;
步骤S140、在主集群中判断主客户端的数据请求对应的子树的版本号与数据信息是否是最新的,其中,主客户端的数据请求对应的子树为主集群的其中一MDS负责的子树,数据信息包括元数据信息及数据信息;若是,则执行步骤S150;若否,则执行步骤S170;
步骤S150、主集群的MDS返回主客户端请求的元数据信息,通过CRUSH分布式算法计算数据信息在主集群的OSD上;
步骤S160、主集群的OSD接收到主客户端的数据请求,返回给主客户端相应的数据信息;
步骤S170、主集群的MDS转发主客户端的数据请求给子树的当前版本及数据信息为最新的从集群;
步骤S180、从集群的MDS返回客户端请求的元数据信息,通过CRUSH分布式算法计算数据信息在从集群的OSD上;其中,元数据信息可通过从集群的MDS本身可以查到;
步骤S190、从集群的OSD接收到主客户端的数据请求,返回给主集群相应的元数据信息及数据信息;
步骤S200、主集群的MDS收到从集群相应的元数据信息及数据信息,将从集群相应的元数据信息及数据信息返回给主客户端。
在其中一个实施例中,所述步骤S170、主集群的MDS转发主客户端的数据请求给子树的当前版本及数据信息为最新的从集群之前,还包括:
步骤S300、从客户端发送相同数据请求给从集群,使得从集群的其中一MDS负责的子树的当前版本及数据信息更新为最新状态。
在其中一个实施例中,所述步骤S200之后,还包括:
步骤S210、主客户端在收到主集群的MDS返回的从集群相应的元数据信息及数据信息后,完成数据请求操作。
在其中一个实施例中,所述步骤S140、在主集群中判断主客户端的数据请求对应的子树的版本号与数据信息是否是最新的具体操作过程为:
判断主集群的其中一MDS负责的子树的版本号是否是最新的,且判断主集群的其中一MDS负责的子树的数据信息是否处于同步更新中。
在其中一个实施例中,所述步骤130、基于PAXOS一致性算法更新多集群中MDS负责的子树在元数据树图表中最新版本信息的方法,具体操作包括:
步骤S131、主集群的MDS基于PAXOS一致性算法向第一从集群的MDS发起子树的更新请求,第一从集群的MDS完成更新后通知主集群的MDS;
步骤S132、主集群的MDS或第一从集群的MDS基于PAXOS一致性算法向第二从集群的MDS发起子树的更新请求,第二从集群的MDS完成更新后通知主集群的MDS或第一从集群的MDS;
步骤S133、主集群的MDS确认第二集群的MDS完成更新请求;
步骤S134、完成对元数据树图表的更新。
在其中一个实施例中,所述步骤S131、主集群的MDS基于PAXOS一致性算法向第一从集群的MDS发起子树的更新请求,第一从集群的MDS完成更新后通知主集群的MDS的方法,具体操作包括:
步骤S1311、主集群中一MDS负责的子树会进行更新,生成元数据日志和数据日志,元数据日志记录了用户此次更新子树所进行的元数据的操作,这些元数据会保存在METADATA POOL中;数据日志记录了此次更新子树所进行的数据操作,这些数据会保存在DATA POOL中;
步骤S1312、主集群及第一从集群中的MDS负责的子树会根据元数据日志和数据日志进行版本号的一一对应;
步骤S1313、比较第一从集群中MDS负责的子树的当前版本号是否与第一从集群中MDS负责的子树的最新版本号存在差异;若是,则执行步骤S1314;
步骤S1314、发送增量数据请求给第一从集群中MDS,第一从集群中MDS根据增量数据请求进行增量的修改数据操作,实现第一从集群中MDS的同步更新并通知主集群的MDS。
在其中一个实施例中,所述步骤S1314中修改数据的操作包括观察者模式或者拉模式/推模式两种更新方式。
在其中一个实施例中,所述步骤S1314之后,还包括:
步骤S1315、获取主集群中的各个MDS负责的子树热度值;
步骤S1316、判断主集群中的各个MDS负责的子树热度值是否大于预设值,若是,执行步骤S1317;若否,执行步骤S1318;
步骤S1317、对MDS负责的子树的数据同步采用观察者模式进行同步;
步骤S1318、对MDS负责的子树的数据同步采用拉模式/推模式进行同步。
在其中一个实施例中,所述步骤S1315、获取主集群中的各个MDS负责的子树热度值的方法,具体操作包括:
基于LRU算法获得集群中MDS负责的子树中每个叶子节点的热度值Rj=K1*read+K2*write+K3*delete,K1+K2+K3=1,其中,Rj表示第j个叶子节点的热度值,read指代为该叶子节点的读取次数,write指代为该叶子节点的写入次数,delete指代为该叶子节点的删除次数,K1、K2、K3分别指代为该叶子节点的读取、写入、删除次数对应的因子系数得到。
一种基于CephFS分布式文件系统的多集群多活实现系统,其包括:
元数据树图表模块,用于建立元数据树图表及用于基于PAXOS一致性算法更新多集群中MDS负责的子树在元数据树图表中最新版本信息;
主集群MDS模块,用于接收主客户端的数据请求、用于在主集群中判断主客户端的数据请求对应的子树的版本号与数据信息是否是最新的、用于返回主客户端请求的元数据信息、用于转发主客户端的数据请求给子树的当前版本及数据信息为最新的从集群;
主集群OSD模块,用于接收到主客户端的数据请求,返回给主客户端相应的数据信息;
从集群MDS模块,用于返回客户端请求的元数据信息;
从集群OSD模块,用于接收到客户端的数据请求,返回给主集群相应的元数据信息及数据信息。
综上所述,本发明提供的一种基于CephFS分布式文件系统的多集群多活实现方法及系统通过主集群接收客户端的数据请求后,在主集群的MDS判断客户端的数据请求对应的子树的版本号与数据信息是否是最新的,如果是最新的主集群直接响应客户端的请求;如果不是最新的,该集群的MDS会转发该客户端的数据请求到对应的子树的版本号与数据信息是最新的从集群的MDS,之后由从集群的MDS返回客户的数据请求并转发给主集群的MDS,最后由主集群的MDS转发数据信息给客户端,进而实现多集群多活技术的应用,保证用户对资源访问的就近原则,保证用户访问数据的多活性能,满足不同地域的用户可以访问相同的数据实现文件系统的共享。
附图说明
图1为本发明实施例提供的一种基于CephFS分布式文件系统的多集群多活实现方法的流程示意图;
图2为本发明实施例提供的一种基于CephFS分布式文件系统的多集群多活实现方法另一实施例的流程示意图;
图3为本发明实施例提供的一种基于CephFS分布式文件系统的多集群多活实现系统的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
术语解释如下:
MDS:元数据服务器,用于管理文件元数据信息;
OSD:对象存储设备,用于存储数据信息;
Ceph集群中还引入了MDS TREE MAP、METADATAPOOL及DATA POOL,具体为,
MDS TREE MAP:元数据树图表,包括MDS的hostname、IP地址、以及该MDS负责的子树、该MDS负责的子树的当前版本号等信息;
METADATAPOOL:元数据池,用于存储元数据日志(METADATA LOG)信息,元数据日志信息包括更新子树所进行的元数据操作,如创建目录、上传目录、目录重命名等元数据数据;
DATAPOOL:数据池,用于存储数据日志(DATALOG)信息,数据日志信息包括用户的修改、删除、新加等数据操作。
该一种基于CephFS分布式文件系统的多集群多活实现方法,应用于多Ceph集群中,多个Ceph集群中的MDS通过光纤网络进行连接,部分核心MDS的交换机可进行堆叠操作,各个MDS通过端口聚合(bond)的方式来保证服务的高可用性。
图1是本发明实施例提供的一种基于CephFS分布式文件系统的多集群多活实现方法的流程示意图,如图1所示,一种基于CephFS分布式文件系统的多集群多活实现方法,具体包括如下步骤:
步骤S110、建立元数据树图表(MDS TREE MAP);其中,元数据树图表包括但不限于多集群中MDS的主机名称(hostname)、IP地址、MDS负责的子树、以及MDS负责的子树的版本号等信息。
步骤S120、接收主客户端的数据请求;其中,主客户端的数据请求包括元数据请求及数据请求,当主客户端发起数据请求时,会先发送元数据请求;多集群包括主集群及从集群,主集群为直接接收主客户端的数据请求对应的集群,从集群为多集群中除主集群以外的集群。
步骤S130、基于PAXOS一致性算法更新多集群中MDS负责的子树在元数据树图表中最新版本信息。
在其中一个实施例中,所述步骤130、基于PAXOS一致性算法更新多集群中MDS负责的子树在元数据树图表中最新版本信息的方法,具体操作包括:
步骤S131、主集群的MDS基于PAXOS一致性算法向第一从集群的MDS发起子树的更新请求,第一从集群的MDS完成更新后通知主集群的MDS;本实施例中,所述从集群包括第一从集群及第二从集群;
具体地,所述步骤S131、主集群的MDS基于PAXOS一致性算法向第一从集群的MDS发起子树的更新请求,第一从集群的MDS完成更新后通知主集群的MDS的方法,具体操作包括:
步骤S1311、主集群中一MDS负责的子树会进行更新,生成元数据日志和数据日志,元数据日志记录了用户此次更新子树所进行的元数据的操作,例如创建目录、上传目录、目录重命名等,这些元数据会保存在METADATA POOL中;数据日志记录了此次更新子树所进行的数据操作,例如用户的修改、删除、新加等操作,这些数据会保存在DATA POOL中;
步骤S1312、主集群及第一从集群中的MDS负责的子树会根据元数据日志和数据日志进行版本号的一一对应,使得主集群及第一从集群中MDS负责的子树的当前版本号与主集群中MDS负责的子树的最新版本号相同,进而保证不同集群的MDS负责的子树可以分别进行增量同步,优先进行数据量较小的元数据日志同步,之后进行数据量较大的数据日志同步;当多集群内所有的MDS都完成某一版本号的元数据日志或者数据日志的数据同步,该元数据日志或者数据日志就可以清除掉;
步骤S1313、比较第一从集群中MDS负责的子树的当前版本号是否与第一从集群中MDS负责的子树的最新版本号存在差异;若是,则执行步骤S1314;若否,则不执行任何操作;
步骤S1314、发送增量数据请求给第一从集群中MDS,第一从集群中MDS根据增量数据请求进行增量的修改数据操作,实现第一从集群中MDS的同步更新并通知主集群的MDS。
在其中一个实施例中,所述步骤S1314、发送增量数据请求给第一从集群中MDS,第一从集群中MDS根据增量数据请求进行增量的修改数据操作,实现第一从集群中MDS的同步更新并通知主集群的MDS中修改数据的操作包括观察者模式或者拉模式/推模式两种更新方式,其中,观察者模式或者拉模式/推模式为已知技术,在此不必赘述。
在其中一个实施例中,所述步骤S1314之后,还包括:
步骤S1315、获取主集群中的各个MDS负责的子树热度值;
步骤S1316、判断主集群中的各个MDS负责的子树热度值是否大于预设值,若是,执行步骤S1317;若否,执行步骤S1318;
步骤S1317、对MDS负责的子树的数据同步采用观察者模式进行同步;
步骤S1318、对MDS负责的子树的数据同步采用拉模式/推模式进行同步。
具体地,对于多集群,当主集群中的其一MDS负责的子树更新比其他MDS负责的子树更新频繁时,至少一个第一从集群的MDS对于该主集群中更新比较频繁的MDS负责的子树的数据同步可以采用观察者模式进行同步;至少一个第一从集群的MDS对于该主集群中其他更新不频繁的MDS负责的子树的数据同步可以采用拉模式/推模式进行同步。
进一步地,所述步骤S1315、获取主集群中的各个MDS负责的子树热度值的方法,具体操作包括:
基于LRU算法获得集群中MDS负责的子树中每个叶子节点的热度值Rj=K1*read+K2*write+K3*delete,K1+K2+K3=1,其中,Rj表示第j个叶子节点的热度值,read指代为该叶子节点的读取次数,write指代为该叶子节点的写入次数,delete指代为该叶子节点的删除次数,K1、K2、K3分别指代为该叶子节点的读取、写入、删除次数对应的因子系数得到。
集群中MDS负责的子树中叶子节点的热度值越高,说明该MDS负责的子树被访问和修改的越频繁,会优先进行数据同步。
步骤S132、主集群的MDS或第一从集群的MDS基于PAXOS一致性算法向第二从集群的MDS发起子树的更新请求,第二从集群的MDS完成更新后通知主集群的MDS或第一从集群的MDS;其中,所述步骤S132的具体操作过程同步骤S131,在此不必进行赘述。
步骤S133、主集群的MDS确认第二集群的MDS完成更新请求。
步骤S134、完成对元数据树图表的更新。
步骤S140、在主集群中判断主客户端的数据请求对应的子树的版本号与数据信息是否是最新的,其中,主客户端的数据请求对应的子树为主集群的其中一MDS负责的子树,数据信息包括元数据信息及数据信息;若是,则执行步骤S150;若否,则执行步骤S170。
具体地,所述步骤S140、在主集群中判断主客户端的数据请求对应的子树的版本号与数据信息是否是最新的具体操作过程为:
判断主集群的其中一MDS负责的子树的版本号是否是最新的,且判断主集群的其中一MDS负责的子树的数据信息是否处于同步更新中。
步骤S150、主集群的MDS返回主客户端请求的元数据信息,通过CRUSH分布式算法计算数据信息在主集群的OSD上。
步骤S160、主集群的OSD接收到主客户端的数据请求,返回给主客户端相应的数据信息。
步骤S170、主集群的MDS转发主客户端的数据请求给子树的当前版本及数据信息为最新的从集群。
在其中一个实施例中,所述步骤S170、主集群的MDS转发主客户端的数据请求给子树的当前版本及数据信息为最新的从集群之前,还包括
步骤S300、从客户端发送相同数据请求给从集群,使得从集群的其中一MDS负责的子树的当前版本及数据信息更新为最新状态。
步骤S180、从集群的MDS返回客户端请求的元数据信息,通过CRUSH分布式算法计算数据信息在从集群的OSD上;其中,元数据信息可通过从集群的MDS本身可以查到;
步骤S190、从集群的OSD接收到主客户端的数据请求,返回给主集群相应的元数据信息及数据信息;
步骤S200、主集群的MDS收到从集群相应的元数据信息及数据信息,将从集群相应的元数据信息及数据信息返回给主客户端。
步骤S210、主客户端在收到主集群的MDS返回的从集群相应的元数据信息及数据信息后,完成数据请求操作。
请参考图2,为了更加清晰本发明的技术方案,下面再阐述优选实施例。
步骤S110、建立元数据树图表;其中,元数据树图表包括多集群中MDS的主机名称、IP地址、MDS负责的子树、以及MDS负责的子树的版本号信息;
步骤S120、接收主客户端的数据请求;其中,主客户端的数据请求包括元数据请求及数据请求,多集群包括主集群及从集群,主集群为直接接收主客户端的数据请求对应的集群,从集群为多集群中除主集群以外的集群;
步骤S130、基于PAXOS一致性算法更新多集群中MDS负责的子树在元数据树图表中最新版本信息;
步骤S140、在主集群中判断主客户端的数据请求对应的子树的版本号与数据信息是否是最新的,其中,主客户端的数据请求对应的子树为主集群的其中一MDS负责的子树,数据信息包括元数据信息及数据信息;若是,则执行步骤S150;若否,则执行步骤S170;
步骤S150、主集群的MDS返回主客户端请求的元数据信息,通过CRUSH分布式算法计算数据信息在主集群的OSD上;
步骤S160、主集群的OSD接收到主客户端的数据请求,返回给主客户端相应的数据信息;
步骤S300、从客户端发送相同数据请求给从集群,使得从集群的其中一MDS负责的子树的当前版本及数据信息更新为最新状态;
步骤S170、主集群的MDS转发主客户端的数据请求给子树的当前版本及数据信息为最新的从集群;
步骤S180、从集群的MDS返回客户端请求的元数据信息,通过CRUSH分布式算法计算数据信息在从集群的OSD上;其中,元数据信息可通过从集群的MDS本身可以查到;
步骤S190、从集群的OSD接收到主客户端的数据请求,返回给主集群相应的元数据信息及数据信息;
步骤S200、主集群的MDS收到从集群相应的元数据信息及数据信息,将从集群相应的元数据信息及数据信息返回给主客户端。
步骤S210、主客户端在收到主集群的MDS返回的从集群相应的元数据信息及数据信息后,完成数据请求操作。
图3示出了本发明提供的一种基于CephFS分布式文件系统的多集群多活实现系统的结构框图,如图3所示,对应于上述一种基于CephFS分布式文件系统的多集群多活实现方法,本发明还提供一种基于CephFS分布式文件系统的多集群多活实现系统,该基于CephFS分布式文件系统的多集群多活实现装置系统包括用于执行上述基于CephFS分布式文件系统的多集群多活实现装置方法的模块,该基于CephFS分布式文件系统的多集群多活实现系统可以被配置于云平台,本发明提供一种基于CephFS分布式文件系统的多集群多活实现装置系统,通过主集群接收客户端的数据请求后,在主集群的MDS判断客户端的数据请求对应的子树的版本号与数据信息是否是最新的,如果是最新的主集群直接响应客户端的请求;如果不是最新的,该集群的MDS会转发该客户端的数据请求到对应的子树的版本号与数据信息是最新的从集群的MDS,之后由从集群的MDS返回客户的数据请求并转发给主集群的MDS,最后由主集群的MDS转发数据信息给客户端,进而实现多集群多活技术的应用,保证用户对资源访问的就近原则,保证用户访问数据的多活性能,满足不同地域的用户可以访问相同的数据实现文件系统的共享。
具体地,请参考图3,该一种基于CephFS分布式文件系统的多集群多活实现系统包括元数据树图表模块110、主集群MDS模块120、主集群OSD模块130、从集群MDS模块140、从集群OSD模块150。
元数据树图表模块110,用于建立元数据树图表及用于基于PAXOS一致性算法更新多集群中MDS负责的子树在元数据树图表中最新版本信息;
主集群MDS模块120,用于接收主客户端的数据请求、用于在主集群中判断主客户端的数据请求对应的子树的版本号与数据信息是否是最新的、用于返回主客户端请求的元数据信息、用于转发主客户端的数据请求给子树的当前版本及数据信息为最新的从集群;
主集群OSD模块130,用于接收到主客户端的数据请求,返回给主客户端相应的数据信息;
从集群MDS模块140,用于返回客户端请求的元数据信息;
从集群OSD模块150,用于接收到客户端的数据请求,返回给主集群相应的元数据信息及数据信息。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述一种基于CephFS分布式文件系统的多集群多活实现系统和各模块的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
综上所述,本发明一种基于CephFS分布式文件系统的多集群多活实现方法及系统通过主集群接收客户端的数据请求后,在主集群的MDS判断客户端的数据请求对应的子树的版本号与数据信息是否是最新的,如果是最新的主集群直接响应客户端的请求;如果不是最新的,该集群的MDS会转发该客户端的数据请求到对应的子树的版本号与数据信息是最新的从集群的MDS,之后由从集群的MDS返回客户的数据请求并转发给主集群的MDS,最后由主集群的MDS转发数据信息给客户端,进而实现多集群多活技术的应用,保证用户对资源访问的就近原则,保证用户访问数据的多活性能,满足不同地域的用户可以访问相同的数据实现文件系统的共享。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于CephFS分布式文件系统的多集群多活实现方法,其特征在于,包括如下步骤:
步骤S110、建立元数据树图表;其中,元数据树图表包括多集群中MDS的主机名称、IP地址、MDS负责的子树、以及MDS负责的子树的版本号信息;
步骤S120、接收主客户端的数据请求;其中,主客户端的数据请求包括元数据请求及数据请求,多集群包括主集群及从集群,主集群为直接接收主客户端的数据请求对应的集群,从集群为多集群中除主集群以外的集群;
步骤S130、基于PAXOS一致性算法更新多集群中MDS负责的子树在元数据树图表中最新版本信息;
步骤S140、在主集群中判断主客户端的数据请求对应的子树的版本号与数据信息是否是最新的,其中,主客户端的数据请求对应的子树为主集群的其中一MDS负责的子树,数据信息包括元数据信息及数据信息;若是,则执行步骤S150;若否,则执行步骤S170;
步骤S150、主集群的MDS返回主客户端请求的元数据信息,通过CRUSH分布式算法计算数据信息在主集群的OSD上;
步骤S160、主集群的OSD接收到主客户端的数据请求,返回给主客户端相应的数据信息;
步骤S170、主集群的MDS转发主客户端的数据请求给子树的当前版本及数据信息为最新的从集群;
步骤S180、从集群的MDS返回客户端请求的元数据信息,通过CRUSH分布式算法计算数据信息在从集群的OSD上;其中,元数据信息可通过从集群的MDS本身可以查到;
步骤S190、从集群的OSD接收到主客户端的数据请求,返回给主集群相应的元数据信息及数据信息;
步骤S200、主集群的MDS收到从集群相应的元数据信息及数据信息,将从集群相应的元数据信息及数据信息返回给主客户端。
2.根据权利要求1所述的一种基于CephFS分布式文件系统的多集群多活实现方法,其特征在于,所述步骤S170、主集群的MDS转发主客户端的数据请求给子树的当前版本及数据信息为最新的从集群之前,还包括:
步骤S300、从客户端发送相同数据请求给从集群,使得从集群的其中一MDS负责的子树的当前版本及数据信息更新为最新状态。
3.根据权利要求1所述的一种基于CephFS分布式文件系统的多集群多活实现方法,其特征在于,所述步骤S200之后,还包括:
步骤S210、主客户端在收到主集群的MDS返回的从集群相应的元数据信息及数据信息后,完成数据请求操作。
4.根据权利要求1所述的一种基于CephFS分布式文件系统的多集群多活实现方法,其特征在于,所述步骤S140、在主集群中判断主客户端的数据请求对应的子树的版本号与数据信息是否是最新的具体操作过程为:
判断主集群的其中一MDS负责的子树的版本号是否是最新的,且判断主集群的其中一MDS负责的子树的数据信息是否处于同步更新中。
5.根据权利要求1~4任一项所述的一种基于CephFS分布式文件系统的多集群多活实现方法,其特征在于,所述步骤130、基于PAXOS一致性算法更新多集群中MDS负责的子树在元数据树图表中最新版本信息的方法,具体操作包括:
步骤S131、主集群的MDS基于PAXOS一致性算法向第一从集群的MDS发起子树的更新请求,第一从集群的MDS完成更新后通知主集群的MDS;
步骤S132、主集群的MDS或第一从集群的MDS基于PAXOS一致性算法向第二从集群的MDS发起子树的更新请求,第二从集群的MDS完成更新后通知主集群的MDS或第一从集群的MDS;
步骤S133、主集群的MDS确认第二集群的MDS完成更新请求;
步骤S134、完成对元数据树图表的更新。
6.根据权利要求5所述的一种基于CephFS分布式文件系统的多集群多活实现方法,其特征在于,所述步骤S131、主集群的MDS基于PAXOS一致性算法向第一从集群的MDS发起子树的更新请求,第一从集群的MDS完成更新后通知主集群的MDS的方法,具体操作包括:
步骤S1311、主集群中一MDS负责的子树会进行更新,生成元数据日志和数据日志,元数据日志记录了用户此次更新子树所进行的元数据的操作,这些元数据会保存在METADATAPOOL中;数据日志记录了此次更新子树所进行的数据操作,这些数据会保存在DATA POOL中;
步骤S1312、主集群及第一从集群中的MDS负责的子树会根据元数据日志和数据日志进行版本号的一一对应;
步骤S1313、比较第一从集群中MDS负责的子树的当前版本号是否与第一从集群中MDS负责的子树的最新版本号存在差异;若是,则执行步骤S1314;
步骤S1314、发送增量数据请求给第一从集群中MDS,第一从集群中MDS根据增量数据请求进行增量的修改数据操作,实现第一从集群中MDS的同步更新并通知主集群的MDS。
7.根据权利要求6所述的一种基于CephFS分布式文件系统的多集群多活实现方法,其特征在于,所述步骤S1314中修改数据的操作包括观察者模式或者拉模式/推模式两种更新方式。
8.根据权利要求7所述的一种基于CephFS分布式文件系统的多集群多活实现方法,其特征在于,所述步骤S1314之后,还包括:
步骤S1315、获取主集群中的各个MDS负责的子树热度值;
步骤S1316、判断主集群中的各个MDS负责的子树热度值是否大于预设值,若是,执行步骤S1317;若否,执行步骤S1318;
步骤S1317、对MDS负责的子树的数据同步采用观察者模式进行同步;
步骤S1318、对MDS负责的子树的数据同步采用拉模式/推模式进行同步。
9.根据权利要求8所述的一种基于CephFS分布式文件系统的多集群多活实现方法,其特征在于,所述步骤S1315、获取主集群中的各个MDS负责的子树热度值的方法,具体操作包括:
基于LRU算法获得集群中MDS负责的子树中每个叶子节点的热度值Rj=K1*read+K2*write+K3*delete,K1+K2+K3=1,其中,Rj表示第j个叶子节点的热度值,read指代为该叶子节点的读取次数,write指代为该叶子节点的写入次数,delete指代为该叶子节点的删除次数,K1、K2、K3分别指代为该叶子节点的读取、写入、删除次数对应的因子系数得到。
10.一种基于CephFS分布式文件系统的多集群多活实现系统,其特征在于,包括:
元数据树图表模块,用于建立元数据树图表及用于基于PAXOS一致性算法更新多集群中MDS负责的子树在元数据树图表中最新版本信息;
主集群MDS模块,用于接收主客户端的数据请求、用于在主集群中判断主客户端的数据请求对应的子树的版本号与数据信息是否是最新的、用于返回主客户端请求的元数据信息、用于转发主客户端的数据请求给子树的当前版本及数据信息为最新的从集群;
主集群OSD模块,用于接收到主客户端的数据请求,返回给主客户端相应的数据信息;
从集群MDS模块,用于返回客户端请求的元数据信息;
从集群OSD模块,用于接收到客户端的数据请求,返回给主集群相应的元数据信息及数据信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110685283.8A CN113553308B (zh) | 2021-06-21 | 2021-06-21 | 基于CephFS文件系统的多集群多活实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110685283.8A CN113553308B (zh) | 2021-06-21 | 2021-06-21 | 基于CephFS文件系统的多集群多活实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113553308A true CN113553308A (zh) | 2021-10-26 |
CN113553308B CN113553308B (zh) | 2024-07-05 |
Family
ID=78130751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110685283.8A Active CN113553308B (zh) | 2021-06-21 | 2021-06-21 | 基于CephFS文件系统的多集群多活实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113553308B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291579A (zh) * | 2017-07-05 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种基于静态子树分区的元数据集群文件快照方法 |
WO2020118955A1 (zh) * | 2018-12-13 | 2020-06-18 | 中山大学 | 分布式元数据管理一致性保证方法、装置、系统及应用 |
CN112270410A (zh) * | 2020-10-19 | 2021-01-26 | 北京达佳互联信息技术有限公司 | 在线推理服务系统、提供在线推理服务的方法及装置 |
-
2021
- 2021-06-21 CN CN202110685283.8A patent/CN113553308B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107291579A (zh) * | 2017-07-05 | 2017-10-24 | 郑州云海信息技术有限公司 | 一种基于静态子树分区的元数据集群文件快照方法 |
WO2020118955A1 (zh) * | 2018-12-13 | 2020-06-18 | 中山大学 | 分布式元数据管理一致性保证方法、装置、系统及应用 |
CN112270410A (zh) * | 2020-10-19 | 2021-01-26 | 北京达佳互联信息技术有限公司 | 在线推理服务系统、提供在线推理服务的方法及装置 |
Non-Patent Citations (1)
Title |
---|
王召福, 章文嵩, 刘仲: "大规模集群文件系统LCFS的元数据管理与访问机制", 计算机工程与科学, no. 08, 30 August 2005 (2005-08-30), pages 103 - 105 * |
Also Published As
Publication number | Publication date |
---|---|
CN113553308B (zh) | 2024-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9052962B2 (en) | Distributed storage of data in a cloud storage system | |
CN102148850B (zh) | 一种集群系统的业务处理方法及集群系统 | |
CN105138571B (zh) | 分布式文件系统及其存储海量小文件的方法 | |
US11068499B2 (en) | Method, device, and system for peer-to-peer data replication and method, device, and system for master node switching | |
CN101771723A (zh) | 数据同步方法 | |
US8572201B2 (en) | System and method for providing a directory service network | |
CN108989419B (zh) | 一种基于云存储的存储节点部署方法 | |
CN111225003B (zh) | 一种nfs节点配置方法和装置 | |
CN111694865A (zh) | 基于分布式系统的四层结构数据获取方法和装置 | |
CN109299225A (zh) | 日志检索方法、系统、终端及计算机可读存储介质 | |
CN111651424B (zh) | 一种数据处理方法、装置、数据节点及存储介质 | |
CN115150410A (zh) | 多集群访问方法和系统 | |
CN107239235B (zh) | 一种多控多活raid同步方法及系统 | |
CN101778131A (zh) | 数据同步系统 | |
CN114610680A (zh) | 分布式文件系统元数据管理方法、装置、设备及存储介质 | |
CN101789963A (zh) | 数据同步系统 | |
CN111064643B (zh) | 一种节点服务器及其数据交互方法和相关装置 | |
CN110798358B (zh) | 分布式服务标识方法、装置、计算机可读介质及电子设备 | |
WO2018010603A1 (zh) | 基于视频云存储系统的存储模式升级方法、装置和系统 | |
CN114661690A (zh) | 多版本并发控制和日志清除方法、节点、设备和介质 | |
CN112910796A (zh) | 流量管理方法、装置、设备、存储介质以及程序产品 | |
CN113553308B (zh) | 基于CephFS文件系统的多集群多活实现方法及系统 | |
CN106657360A (zh) | 一种Linux系统下NIS服务器的同步方法和系统 | |
KR100492167B1 (ko) | 비공유 구조의 데이터베이스 클러스터 서버 시스템과온라인 확장 방법 | |
CN114528274A (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 |