CN114968966A - 分布式元数据远程异步复制方法、装置和设备 - Google Patents
分布式元数据远程异步复制方法、装置和设备 Download PDFInfo
- Publication number
- CN114968966A CN114968966A CN202210604933.6A CN202210604933A CN114968966A CN 114968966 A CN114968966 A CN 114968966A CN 202210604933 A CN202210604933 A CN 202210604933A CN 114968966 A CN114968966 A CN 114968966A
- Authority
- CN
- China
- Prior art keywords
- metadata
- directory
- synchronization
- log
- request
- 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
Links
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/18—File system types
- G06F16/182—Distributed file systems
- G06F16/184—Distributed file systems implemented as replicated file system
- G06F16/1844—Management specifically adapted to replicated file systems
-
- 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/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- 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/178—Techniques for file synchronisation in file systems
-
- 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/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling 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)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种分布式元数据远程异步复制方法、装置和设备,用于解决同步效率低的技术问题。本发明基于目录锚定技术,将异步远程复制特性目录的元数据修改都归属到锚定元数据服务节点,从锚定元数据服务节点读取异步远程复制特性目录的元数据日志,从元数据日志中提取元数据修改内容,然后经语义冲突处理后并发进行即时同步。本发明能够提高特性目录元数据的同步效率。
Description
技术领域
本发明涉及通信及云计算技术领域,尤其涉及一种分布式元数据远程异步复制方法、装置和设备。
背景技术
远程复制是容灾备份的核心技术,同时也是远程数据(和元数据)同步和实现灾难恢复的基础。远程复制利用物理位置上分离的存储设备节点之间的可连通的物理链路,复制主端数据至从端存储设备节点,并在从端保存一套数据备份。在灾难发生时,使用备份数据在短时间内进行数据恢复,并且丢失数据程度在用户可接受范围内。通常,在数据同步的过程中,从端还能提供数据读取服务。
异步远程复制是指在主端接收到前端业务写操作并完成写业务处理之后,记录写操作的修改内容,先将写完成回复给客户端,后续手动或自动地再将这些修改内容同步给从端的技术。
为了获得很好的恢复点目标(Recovery Point Objective,RPO)和恢复时间目标(Recovery Time Objective,RTO),异步远程复制的同步操作需要实现不间断的即时同步。对于分布式文件系统,即时同步需要不间断地将元数据的修改,形成同步内容发送到从端,并在从端写入分布式存储集群。对于分布式文件系统,同一个异步远程复制目录下的元数据修改,可能在不同的元数据服务节点上处理。即时同步还需要并发地执行元数据同步,保证同步的高效率。对于分布式文件存储,存在海量的元数据,还需要避免额外记录修改内容而导致大量存储空间的占用。
现有技术中,在主端集群的多个节点部署多个同步程序,每个同步程序内包含一个能访问分布式文件系统的客户端,通过这个客户端对分布式文件系统中需进行异步远程复制的特性目录打快照,并且通过客户端读取相邻两个快照版本的元数据内容,比对两个快照版本的元数据内容,形成两个快照版本之间的元数据差异,将差异元数据内容发送给从端分布式文件存储集群并写入,实现了元数据修改内容的同步。
上述元数据同步方法对业务性能影响较大。原因之一是dd间断的即时同步,必须不断地创建快照,采用写时拷贝(Copy On Write,COW)机制大量产生快照会带来额外的负载,不断地读取不同版本的元数据快照内容,也会较大程度地影响分布式集群性能。原因之二是必须遍历快照版本下异步远程复制特性目录的所有元数据内容、逐个进行比对,才能得到需要同步的差异内容,对于分布式文件存储的超大目录和海量元数据,遍历所有元数据内容的效率很低,无法实现真正的不间断的即时同步。
另一种分布式元数据同步方法中,在分布式文件系统的多个元数据服务节点,同步程序不断地将元数据服务产生的元数据修改日志,从分布式文件系统的底层分布式存储中读取出来,并传输到从端。从端部署了同样数量和类型的元数据服务节点。在对应的元数据服务节点上,不间断地重放元数据修改日志,从而使从端元数据服务节点,达到和主端元数据服务节点完全一致的状态,实现即时的元数据同步。
上述方案中,客户端发送元数据修改请求到主端集群,主端集群的元数据服务节点接收并处理元数据修改请求,将元数据修改记录到日志,日志会存储到高速存储介质,然后元数据服务发送修改完成的回复给客户端。异步远程复制的同步程序,不间断地读取存入的日志内容,传输到从端。从端的异步远程复制的同步程序,接收传输过来的元数据修改日志,在一对一的元数据服务节点,执行重放日志操作,实现从端的元数据状态同步到和主端一致的状态。主端和从端的元数据服务节点部署形态,必须是同构的(一一对应的)。
由于从端的元数据服务节点不断地重放日志,元数据内容一直在变化过程中,导致元数据服务节点无法提供正常的元数据服务,从而导致从端集群只能提供灾备功能,不能提供文件和目录的访问功能。另外,受限于日志重放的单线程模型,同步效率较低,对于分布式文件系统,海量的元数据,元数据服务节点负载很大时,无法实现即时同步的效果。而且,从端集群的元数据服务节点的部署需和主端集群的元数据服务节点的部署一一对应,不支持异构的部署形态,部署形态受限。
发明内容
有鉴于此,本发明提供一种分布式元数据远程异步复制方法、装置和设备,用于解决同步效率低的技术问题。
基于本发明实施例的一方面,本发明提供了一种分布式元数据远程异步复制方法,该方法包括:
在特性目录的锚定节点上执行针对特性目录的元数据修改操作,所述特性目录指配置了异步远程复制属性的目录,所述锚定节点是指拥有特性目录的权威元数据缓存结构且设定有锚定标识的元数据服务节点;
从锚定节点上日志服务生成的日志文件中提取特性目录的元数据修改内容,采用语义并行同步模式将元数据修改内容同步给从端元数据服务节点。
进一步地,所述方法还包括:
针对锚定节点上的指定目录进行迁移操作时,递归判断该指定目录所在目录树中该指定目录的父目录到根目录的路径上的所有上级节点,以及该指定目录到所有分支的叶子节点的路径上的所有下级节点的元数据缓存结构中是否有锚定标识,如果任一节点的元数据缓存结构有锚定标识,则阻止迁移操作。
进一步地,所述从锚定节点上日志服务生成的日志文件中提取特性目录的元数据修改内容,采用语义并行同步模式将元数据修改内容同步给从端元数据服务节点的方法为:
在日志服务执行日志裁剪之前,从日志文件中提取目录的元数据修改内容;
将提取的元数据修改内容形成同步请求,对不存在语义冲突的同步请求进行并行执行,对存在语义冲突的同步请求进行串行执行;
按同步请求的执行先后顺序基于先入先出规则向日志服务反馈同步请求执行完成响应以通知日志服务执行日志裁剪。
进一步地,所述将提取的元数据修改内容形成同步请求,对不存在语义冲突的同步请求进行并行执行,对存在语义冲突的同步请求进行串行执行方法为:
将正在被执行的同步请求的放入正在同步队列;
当接收到新的元数据修改内容的同步请求时,判断新的同步请求与正在同步队列中的同步请求是否存在语义冲突;
当判定存在语义冲突时,将新同步请求加入等待同步队列中并同时将正在同步队列中的所有队列项中最大的同步请求标识记录到该新同步请求的等待请求标识属性中;
当判定不存在语义冲突时,将新同步请求加入正在同步队列,并行执行该新同步请求;
当接收到从端反馈的同步请求的响应消息时,根据响应消息中的同步请求标识将正在同步队列中对应的队列项出队,并检查是否存在等待同步队列中的队列项的等待请求标识小于当前响应消息中的同步请求标识且当前响应消息中的同步请求标识已经是正在同步队列中的最小值,将满足条件的等待同步队列中的队列项出队并加入正在同步队列。
进一步地,所述将元数据修改内容同步给从端元数据服务节点的方法为:将元数据修改内容同步给位于从端的多个分布式文件存储客户端,以使所述多个分布式文件存储客户端将元数据修改内容写入从端的一个或多个元数据服务节点。
基于本发明实施例的另一方面,本发明还提供了一种分布式元数据远程异步复制装置,该装置可以软件模块的形式应用于计算设备的存储介质中,也可以硬件模块的形式应用于计算设备中,或软硬件模块相结合的方式应用于计算设备中,所述装置包括:
修改模块,用于在特性目录的锚定节点上执行针对特性目录的元数据修改操作,所述特性目录指配置了异步远程复制属性的目录,所述锚定节点是指拥有特性目录的权威元数据缓存结构且设定有锚定标识的元数据服务节点;
同步模块,用于从锚定节点上日志服务生成的日志文件中提取特性目录的元数据修改内容,采用语义并行同步模式将元数据修改内容同步给从端元数据服务节点。
进一步地,所述装置还包括:
迁移判断模块,用于在针对锚定节点上的指定目录进行迁移操作时,递归判断该指定目录所在目录树中该指定目录的父目录到根目录的路径上的所有上级节点,以及该指定目录到所有分支的叶子节点的路径上的所有下级节点的元数据缓存结构中是否有锚定标识,如果任一节点的元数据缓存结构有锚定标识,则阻止迁移操作。
进一步地,所述同步模块包括:
提取模块,用于在日志服务执行日志裁剪之前,从日志文件中提取目录的元数据修改内容;
语义同步模块,用于将提取的元数据修改内容形成同步请求,对不存在语义冲突的同步请求进行并行执行,对存在语义冲突的同步请求进行串行执行;
同步反馈模块,用于按同步请求的执行先后顺序基于先入先出规则向日志服务反馈同步请求执行完成响应以通知日志服务执行日志裁剪。
进一步地,所述同步模块将元数据修改内容同步给位于从端的多个分布式文件存储客户端,以使所述多个分布式文件存储客户端将元数据修改内容写入从端的一个或多个元数据服务节点。
本发明基于目录锚定技术,将异步远程复制特性目录的元数据修改都归属到锚定元数据服务节点,从锚定元数据服务节点读取异步远程复制特性目录的元数据日志,从元数据日志中提取元数据修改内容,然后经语义冲突处理后并发进行即时同步。本发明能够提高特性目录元数据的同步效率。
附图说明
为了更加清楚地说明本发明实施例或者现有技术中的技术方案,下面将对本发明实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本发明实施例的这些附图获得其他的附图。
图1为本发明一实施例提供的分布式元数据远程异步复制方法的应用环境示意图;
图2为本发明一实施例中分布式文件系统基于日志服务实现元数据修改的处理过程示意图;
图3为本发明一实施例提供的采用语义并行同步模式进行元数据修改内容同步的步骤流程示意图;
图4为本发明一实施例中采用双队列实现语义并行模式执行同步的示意图;
图5为本发明一实施例提供的用于实现本发明实施例提供的分布式元数据远程异步复制方法的电子设备结构示意图。
具体实施方式
在本发明实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明实施例。本发明实施例中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。本发明中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
分布式文件系统中的两种典型的异步远程复制所采用的即时同步方法分别依赖于创建快照或者重放日志。快照方式需要不断地创建快照,并遍历快照版本特性目录下所有的元数据,对于分布式文件存储的超大目录海量元数据,效率会很低。日志方式需要不断地重放日志,从端无法提供正常的元数据服务,单线程重放效率很低,且集群部署形态受限。
本发明的目的是提供一种分布式元数据远程异步复制方法,该方法能够实现分布式文件系统中设置异步远程复制特性的目录(简称特性目录)的元数据的高效同步。本发明的基本思想是:基于目录锚定技术,将异步远程复制特性目录的元数据修改都归属到锚定元数据服务节点,从锚定元数据服务节点读取异步远程复制特性目录的元数据日志,从元数据日志中提取元数据修改内容,然后经语义冲突处理后并发进行即时同步。本发明能够提高特性目录元数据的同步效率。基于本发明的基本思想,以下结合实施例详细描述本发明技术方案的具体实现方法。
图1为本发明一实施例提供的分布式元数据远程异步复制方法的应用环境示意图。主端分布式文件存储集群中的元数据服务节点与从端分布式文件存储集群中的元数据服务节点之间建立有异步远程复制关系,主从端分布式文件存储集群可异构。主端的特性目录需采用目录锚定技术将特性目录锚定在主端的某个元数据服务节点上,例如特性目录1锚定在元数据服务节点1上。以下以主端元数据服务节点为执行主体描述本发明提供的分布式元数据远程异步复制方法的具体实现步骤:
步骤S10、在特性目录的锚定节点上执行针对特性目录的元数据修改操作,所述特性目录指配置了异步远程复制属性的目录,所述锚定节点是指拥有特性目录的权威元数据缓存结构且设定有锚定标识的元数据服务节点;
在处理大量数据的分布式文件存储集群中,通常会部署有多个元数据服务节点,为了均衡多个元数据服务节点之间的负载,通常会启用目录迁移机制。当启用目录迁移机制的元数据服务节点中的某个或某些目录满足了迁移条件时,这些目录对应的元数据缓存内容会从一个元数据服务节点迁移到另一个负载较轻的元数据服务节点,这些目录下的子文件和子目录的元数据缓存,也会跟随迁移到其他元数据服务节点中。在迁移时,目录的元数据会以子树为基本单位进行迁移,子树的根就是某个目录元数据结构。为了避免特性目录被迁移,本发明提出了目录锚定技术。
分布式文件存储集群中,多个元数据服务节点的缓存中,存在元数据的多份副本,其中,只有一个元数据服务节点的元数据副本能够接受并处理元数据的修改请求,该元数据服务节点上的元数据副本称为权威元数据副本,其它元数据服务节点都以权威元数据副本为准进行同步。本发明将分布式文件系统中特性目录的元数据副本中能够接受修改的元数据副本称为该特性目录的权威元数据副本,将权威元数据副本中特性目录的元数据缓存结构称为该特性目录的权威元数据缓存结构。分布式文件存储集群中,为实现针对指定目录元数据的异步远程复制,需要为指定目录配置异步远程复制属性,本发明中将配置了异步远程复制属性的目录简称为特性目录。
本发明一实施例中,为特性目录的权威元数据缓存结构设置锚定标识以避免特性目录的元数据被迁移到其它元数据服务节点。具体地,在针对锚定节点上的指定目录进行迁移操作时,递归判断该指定目录所在目录树中该指定目录的父目录到根目录的路径上的所有上级节点,以及该指定目录到所有分支的叶子节点的路径上的所有下级节点的元数据缓存结构中是否有锚定标识,如果任一节点元数据缓存结构有锚定标识,则向迁移操作调用者返回不能迁移的操作结果,阻止迁移操作。
本发明通过对特性目录的权威元数据缓存结构设置锚定标识,从而限制子树的迁移,特性目录下所有的目录和文件的元数据修改,就只能发生在所锚定的元数据服务节点上。通过上述目录锚定技术,能够保证所有对特性目录下的目录和文件的修改请求,都归属到所锚定的元数据服务节点上进行处理,从而避免元数据在元数据服务节点之间迁移,无法协调有序地进行并发同步的情况发生。
除通过上述给元数据缓存结构打锚定标识实现将指定目录锚定在指定元数据服务节点的方式外,也可以采用数据库或其它数据结构类型来记录被锚定的目录的方式来实现,只要能够实现目录锚定之功能目的即可,本发明不做具体限定。
步骤S11、从锚定节点上日志服务生成的日志文件中提取特性目录的元数据修改内容,采用语义并行同步模式将元数据修改内容同步给从端元数据服务节点。
图2为本发明一实施例中分布式文件系统基于日志服务实现元数据修改的处理过程示意图。元数据服务节点的操作系统在数据写入时,写入的文件数据及目录元数据修改内容会首先通过日志服务写入日志文件,再由其他线程异步从日志文件刷新到后端存储池中。当集群故障时,首先从日志文件中读取未下刷的内容,重新回放到内存中,然后再由后台线程刷新到后端存储池中。以CentOS操作系统为例,CentOS中有两种日志服务,分别是rsyslog和systemd-journal。systemd-journal(简称Journal)是一个改进型日志管理服务,可以收集来自内核、系统早期启动阶段的日志、系统守护进程在启动和运行中的标准输出和错误信息,还有syslog的日志。日志文件通常持久化存储到固态硬盘SSD、非易失性接口NVMe存储介质等高速存储介质中。
本发明实施例提供的一种在分布式文件存储集群的元数据服务节点上采用语义并行同步模式将特性目录的元数据修改内容同步给从端元数据服务节点的方法包括:
步骤S21、在日志服务执行日志裁剪之前,从日志文件中提取目录的元数据修改内容;
图2的示例中,在远程异步复制的主端在接收到数据处理请求到日志服务裁剪日志分段释放日志分段空间的处理步骤包括:
步骤①:元数据服务节点接收存储服务的客户端发出的元数据修改请求;元数据修改请求中携带元数据修改内容;
步骤②:元数据修改内容通过日志服务记录到日志文件中的日志分段中,日志分段通常位于高速持久化存储介质中;
步骤③:将日志分段中的元数据修改内容提取出来更新到元数据服务节点的元数据内存缓存中,并标记内存缓存中的元数据缓存结构为脏的元数据缓存结构;
步骤④:将脏的元数据缓存结构入队到内存中的脏元数据队列;
步骤⑤:遍历脏元数据队列,并将脏的元数据缓存结构下刷到低速的持久化空间中;
步骤⑥:在脏的元数据缓存结构下刷完成后,执行前述语义并行模式的元数据修改内容同步处理,在接收到从端反馈的成功响应后,日志服务即可释放日志空间中存储脏的元数据缓存结构的日志分段空间。
本发明将日志服务释放位于日志文件中的已完成脏的元数据下刷处理的日志分段的操作称为日志裁剪。本发明实施例在结合特性目录锚定技术的基础上,在日志服务执行日志裁剪之前,将脏的元数据修改内容形成同步请求采用语义并行模式发送到从端,从端将元数据修改内容写入从端分布式文件系统,主端接收到从端反馈的同步成功的响应消息后,才会执行相应的日志裁剪操作。采用语义并行模式向从端发送目录元数据修改同步请求,能够保证同步请求在从端并发执行处理,实现同步的高效率。
脏元数据队列的队列项内容通常包括:有修改的Inode的元数据内容(包括元数据索引号ino、用户标识uid、用户组标识gid、打开模式mode、修改时间mtime、创建时间ctime、访问时间atime、文件大小size、扩展属性xattrs)、有修改的Inode的完整路径(Inode节点到根节点的完整路径字符串)、有删除或重命名的Inode的删除标记和原路径。其中,Inode指代元数据索引节点,元数据索引节点包含了元数据本身的内容,存放了一个文件或目录全部元数据内容。ino号为Inode的唯一编号,可用于在元数据服务端检索得到Inode。
受限制于Journal保存的内容(不保存客户端的元数据请求操作类型OpType,只保存被修改后的元数据的全部内容以及删除标记),在Journal裁剪前,已经无法获得导致元数据修改的操作类型(创建CREATE、删除REMOVE、重命名RENAME、设置属性SETATTR、设置扩展属性SETXATTR、删除扩展属性RMXATTR等),其中,“设置属性”是指对除了扩展属性xattrs之外的属性值进行设置,“扩展属性”是指包含多个字符串类型的key/value键值对的map结构,用户可以插入删除对应的key/value键值对,“设置扩展属性”是指插入一个扩展属性键值对,“删除扩展属性”是指对某个扩展属性键值对进行删除。
在Journal执行日志裁剪前,能够获得修改的元数据内容(包括路径等)、删除的元数据的标记和原路径。如果是RENAME操作生成的Journal日志内容,对应的是RENAME操作产生的在新路径上的元数据内容、RENAME删除原路径上的元数据的标记和原路径。为描述简洁,本发明将能够导致目录元数据变化的操作(例如对目录或文件进行新增、修改、删除、重命名、属性修改等操作)所产生的元数据的变化内容统称为元数据修改内容。
本发明一实施例在执行步骤⑥之前,从日志文件的日志分段中提取出目录元数据修改内容(包括路径等),在满足日志服务的日志裁剪条件且成功将元数据修改内容同步到从端后,才执行步骤⑥的Journal日志裁剪处理,否则不执行裁剪操作,从而保证主从端的元数据修改的同步一致。
步骤S22,将提取的元数据修改内容形成同步请求,对所提取的目录的元数据修改内容进行语义并行化处理,采用语义并行同步模式将元数据修改内容同步给从端元数据服务节点,在同步相应执行完成后通知日志服务执行相应的日志裁剪;
本发明实施例中,将不会产生语义冲突的目录元数据修改内容并行同步到从端,将会产生语义冲突的目录元数据内容串行同步到从端的模式称为语义并行同步模式,即语义之间并行,语义内串行的同步模式。语义并行同步模式能够保证同步请求发送到远端后,无语义冲突的同步请求能够在从端并发执行从而提高远程异步复制的效率。
本发明将指两个目录元数据修改内容存在元数据路径的前缀匹配关系称为语义相关。将由于同步时序错误导致语义相关的两个目录元数据修改内容的同步结果错误或与主端不一致的情况称为语义冲突。例如,两个元数据修改操作,由于修改本身的语义,两个操作按照不同的顺序执行,产生的结果是不同的。以同步请求A:创建目录“dir/”,同步请求B:创建文件“dir/file”为例,按照先A后B的顺序执行同步,在从端得到的同步结果是dir/file元数据结构;若按照先B后A的顺序执行同步,则会产生错误结果,产生同步失败的结果,因为在语义上,从端无法在未创建目录“dir/”的情况下创建文件“dir/file”。
图3为本发明一实施例提供的采用语义并行同步模式进行元数据修改内容同步的步骤流程示意图,该流程图假设先后接收到第一同步请求和第二同步请求,在第一同步请求正在执行的过程中接收到第二同步请求,该流程包括:
步骤301.接收第二同步请求,其中包括第二目录元数据修改内容;
步骤302.判断是否与第一同步请求有语义冲突,若存在语义冲突,则执行步骤303,否则执行步骤306;
步骤303.等待第一同步请求的成功响应;
步骤304.判断是否收到第一同步请求的成功响应,若收到,则执行步骤305,否则返回步骤303继续等待;
步骤305.发送第二同步请求;
步骤306.在执行第一同步请求的同时,并行执行第二同步请求。
本发明提供的语义并行同步模式的同步策略遵守如下的原则:
原则1、对不存在语义冲突的同步请求进行并行执行;
原则2、对存在语义冲突的同步请求按依赖关系进行串行执行。即在存在语义冲突的情况下,按依赖关系先执行被依赖的同步请求的同步,在被依赖的同步请求成功响应后,即刻开始执行依赖该被依赖的同步请求的同步请求;
原则3、按同步请求的执行先后顺序(非接收到成功响应的先后顺序)基于先入先出规则向日志服务反馈同步请求执行完成响应以通知日志服务执行日志裁剪。
图4为本发明一实施例中采用双队列实现语义并行模式执行同步的示意图,在主端的分布式存储集群的元数据服务节点,设置一个“正在同步队列”WKseq、一个“等待同步队列”WTseq。WTseq的一个主要功能是解决语义冲突问题。每个同步请求都会被分配一个同步请求id,即WKseq和WTseq中的每个的队列项都包括一个请求id,但WTseq中的每个队列项还额外包括一个“等待请求id”属性。“等待请求id”用于标识该队列项中的同步请求需要等待该“等待请求id”所标识的同步请求执行完成才能被执行。实现的具体步骤如下:
步骤401.将正在被执行的同步请求即已经向从端发送同步请求但还未收到完成响应的同步请求放入正在同步队列WKseq;
在WTseq队列没有队列项的情况下,新来的包含元数据修改内容的同步请求可直接放入WKseq队列。
正在同步队列WKseq中的同步请求可通过多个线程并行执行同步操作。
步骤402.当接收到新的元数据修改内容的同步请求时,判断新的同步请求与WKseq队列中的同步请求是否存在语义冲突;
当新同步请求中的元数据修改内容的路径(第一路径)和所检查比对的同步请求中的元数据修改内容的路径(第二路径)存在前缀匹配关系时说明二者存在语义冲突。所述的前缀匹配关系包括第一路径是第二路径字符串的前缀和第二路径字符串是第一路径字符串的前缀的两种情况。
步骤403.当判定存在语义冲突时,将新同步请求加入“等待同步队列”WTseq中并同时将WKseq队列中的所有队列项中最大的同步请求id记录到该新同步请求的“等待请求id”属性中。
步骤404.当判定不存在语义冲突时,将新同步请求加入WKseq队列,并行执行该新同步请求;
步骤405.当接收到从端反馈的同步请求的响应消息时,根据响应消息中的同步请求id将正在同步队列WKseq中对应的队列项出队,并检查是否存在等待同步队列WTseq中的队列项的“等待请求id”小于当前响应消息中的同步请求id且当前响应消息中的同步请求id已经是正在同步队列WKseq中的最小值,将满足以上条件的等待同步队列WTseq中的队列项出队并加入正在同步队列WKseq。
从端分布式存储集群的接入节点,通过分布式文件存储客户端将主端同步过来的元数据修改内容并发地写入分布式存储集群。从端收到同步请求后,根据同步请求中的元数据修改内容,如果是更新类型的元数据内容(包括路径),就按照更新的元数据路径和更新的元数据内容,通过从端分布式文件存储集群的客户端,写入从端的分布式文件存储集群;如果是删除类型的元数据标记(和路径),就按照删除的元数据路径,通过从端分布式文件存储集群的客户端,将元数据从从端的分布式文件存储集群中删除。
如图1所示,从端可以配置多个分布式文件存储客户端接收主端的同步请求,从端集群可以实现和主端集群不同的部署形态或结构,例如主端包括n个元数据服务节点,从端包括m个元数据服务节点。
本发明实现了一种在分布式文件存储系统的异步远程复制中的元数据的不间断即时同步方法。在主端的多个元数据服务节点,使用目录锚定技术将异步复制特性目录锚定在固定的元数据服务节点上,并从锚定节点中的日志服务生成的日志中提取元数据修改内容,即时地不间断地同步到从端。在主端的元数据服务节点上,还对同步请求进行语义并行化处理,保证同步的高效率。在从端通过分布式文件存储的客户端,将元数据修改内容写入从端分布式文件存储集群,避免了对从端分布式文件存储集群的部署形态的限制。
图5为本发明一实施例提供的用于实现本发明实施例提供的分布式元数据远程异步复制方法的电子设备结构示意图,该设备500包括:诸如中央处理单元(CPU)的处理器510、通信总线520、通信接口540以及存储介质530。其中,处理器510与存储介质530可以通过通信总线520相互通信。存储介质530内存储有计算机程序,当该计算机程序被处理器510执行时即可实现本发明提供的分布式元数据远程异步复制方法中的一个或多个步骤的功能。
其中,存储介质可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。另外,存储介质还可以是至少一个位于远离前述处理器的存储装置。处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术,包括配置有计算机程序的非暂时性存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。此外,可按任何合适的顺序来执行本发明描述的过程的操作,除非本发明另外指示或以其他方式明显地与上下文矛盾。本发明描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本发明所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
以上所述仅为本发明的实施例而已,并不用于限制本发明。对于本领域技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种分布式元数据远程异步复制方法,其特征在于,该方法包括:
在特性目录的锚定节点上执行针对特性目录的元数据修改操作,所述特性目录指配置了异步远程复制属性的目录,所述锚定节点是指拥有特性目录的权威元数据缓存结构且设定有锚定标识的元数据服务节点;
从锚定节点上日志服务生成的日志文件中提取特性目录的元数据修改内容,采用语义并行同步模式将元数据修改内容同步给从端元数据服务节点。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对锚定节点上的指定目录进行迁移操作时,递归判断该指定目录所在目录树中该指定目录的父目录到根目录的路径上的所有上级节点,以及该指定目录到所有分支的叶子节点的路径上的所有下级节点的元数据缓存结构中是否有锚定标识,如果任一节点的元数据缓存结构有锚定标识,则阻止迁移操作。
3.根据权利要求1所述的方法,其特征在于,所述从锚定节点上日志服务生成的日志文件中提取特性目录的元数据修改内容,采用语义并行同步模式将元数据修改内容同步给从端元数据服务节点的方法为:
在日志服务执行日志裁剪之前,从日志文件中提取目录的元数据修改内容;
将提取的元数据修改内容形成同步请求,对不存在语义冲突的同步请求进行并行执行,对存在语义冲突的同步请求进行串行执行;
按同步请求的执行先后顺序基于先入先出规则向日志服务反馈同步请求执行完成响应以通知日志服务执行日志裁剪。
4.根据权利要求3所述的方法,其特征在于,所述将提取的元数据修改内容形成同步请求,对不存在语义冲突的同步请求进行并行执行,对存在语义冲突的同步请求进行串行执行方法为:
将正在被执行的同步请求的放入正在同步队列;
当接收到新的元数据修改内容的同步请求时,判断新的同步请求与正在同步队列中的同步请求是否存在语义冲突;
当判定存在语义冲突时,将新同步请求加入等待同步队列中并同时将正在同步队列中的所有队列项中最大的同步请求标识记录到该新同步请求的等待请求标识属性中;
当判定不存在语义冲突时,将新同步请求加入正在同步队列,并行执行该新同步请求;
当接收到从端反馈的同步请求的响应消息时,根据响应消息中的同步请求标识将正在同步队列中对应的队列项出队,并检查是否存在等待同步队列中的队列项的等待请求标识小于当前响应消息中的同步请求标识且当前响应消息中的同步请求标识已经是正在同步队列中的最小值,将满足条件的等待同步队列中的队列项出队并加入正在同步队列。
5.根据权利要求1所述的方法,其特征在于,所述将元数据修改内容同步给从端元数据服务节点的方法为:将元数据修改内容同步给位于从端的多个分布式文件存储客户端,以使所述多个分布式文件存储客户端将元数据修改内容写入从端的一个或多个元数据服务节点。
6.一种分布式元数据远程异步复制装置,其特征在于,所述装置包括:
修改模块,用于在特性目录的锚定节点上执行针对特性目录的元数据修改操作,所述特性目录指配置了异步远程复制属性的目录,所述锚定节点是指拥有特性目录的权威元数据缓存结构且设定有锚定标识的元数据服务节点;
同步模块,用于从锚定节点上日志服务生成的日志文件中提取特性目录的元数据修改内容,采用语义并行同步模式将元数据修改内容同步给从端元数据服务节点。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
迁移判断模块,用于在针对锚定节点上的指定目录进行迁移操作时,递归判断该指定目录所在目录树中该指定目录的父目录到根目录的路径上的所有上级节点,以及该指定目录到所有分支的叶子节点的路径上的所有下级节点的元数据缓存结构中是否有锚定标识,如果任一节点的元数据缓存结构有锚定标识,则阻止迁移操作。
8.根据权利要求6所述的装置,其特征在于,所述同步模块包括:
提取模块,用于在日志服务执行日志裁剪之前,从日志文件中提取目录的元数据修改内容;
语义同步模块,用于将提取的元数据修改内容形成同步请求,对不存在语义冲突的同步请求进行并行执行,对存在语义冲突的同步请求进行串行执行;
同步反馈模块,用于按同步请求的执行先后顺序基于先入先出规则向日志服务反馈同步请求执行完成响应以通知日志服务执行日志裁剪。
9.根据权利要求6所述的装置,其特征在于,
所述同步模块将元数据修改内容同步给位于从端的多个分布式文件存储客户端,以使所述多个分布式文件存储客户端将元数据修改内容写入从端的一个或多个元数据服务节点。
10.一种电子设备,其特征在于,包括处理器、通信接口、存储介质和通信总线,其中,处理器、通信接口、存储介质通过通信总线完成相互间的通信;
存储介质,用于存放计算机程序;
处理器,用于执行存储介质上所存放的计算机程序时,实施权利要求1-5中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210604933.6A CN114968966A (zh) | 2022-05-31 | 2022-05-31 | 分布式元数据远程异步复制方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210604933.6A CN114968966A (zh) | 2022-05-31 | 2022-05-31 | 分布式元数据远程异步复制方法、装置和设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114968966A true CN114968966A (zh) | 2022-08-30 |
Family
ID=82957278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210604933.6A Pending CN114968966A (zh) | 2022-05-31 | 2022-05-31 | 分布式元数据远程异步复制方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114968966A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115292419A (zh) * | 2022-10-09 | 2022-11-04 | 深圳市明源云科技有限公司 | 基于poH共识的数据处理方法、装置、设备及存储介质 |
CN115328880A (zh) * | 2022-10-13 | 2022-11-11 | 浙江智臾科技有限公司 | 分布式文件在线恢复方法、系统、计算机设备及存储介质 |
CN117290328A (zh) * | 2023-11-22 | 2023-12-26 | 苏州元脑智能科技有限公司 | 存储系统文件并发同步方法、装置、设备及可读存储介质 |
-
2022
- 2022-05-31 CN CN202210604933.6A patent/CN114968966A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115292419A (zh) * | 2022-10-09 | 2022-11-04 | 深圳市明源云科技有限公司 | 基于poH共识的数据处理方法、装置、设备及存储介质 |
CN115328880A (zh) * | 2022-10-13 | 2022-11-11 | 浙江智臾科技有限公司 | 分布式文件在线恢复方法、系统、计算机设备及存储介质 |
CN117290328A (zh) * | 2023-11-22 | 2023-12-26 | 苏州元脑智能科技有限公司 | 存储系统文件并发同步方法、装置、设备及可读存储介质 |
CN117290328B (zh) * | 2023-11-22 | 2024-02-27 | 苏州元脑智能科技有限公司 | 存储系统文件并发同步方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11429641B2 (en) | Copying data changes to a target database | |
JP4699516B2 (ja) | 名前空間複製プログラム、名前空間複製装置、名前空間複製方法 | |
US8959227B2 (en) | In-flight block map for a clustered redirect-on-write filesystem | |
CN114968966A (zh) | 分布式元数据远程异步复制方法、装置和设备 | |
US8250033B1 (en) | Replication of a data set using differential snapshots | |
US10628378B2 (en) | Replication of snapshots and clones | |
US8458181B2 (en) | Distributed free block map for a clustered redirect-on-write file system | |
CN108255647B (zh) | 一种samba服务器集群下的高速数据备份方法 | |
US11321291B2 (en) | Persistent version control for data transfer between heterogeneous data stores | |
CN110262929B (zh) | 一种保证复制事务一致性的方法以及相应的复制装置 | |
CN105574187A (zh) | 一种异构数据库复制事务一致性保障方法及系统 | |
CN107402841B (zh) | 大规模分布式文件系统数据修复方法及设备 | |
CN111930828B (zh) | 一种基于日志解析的数据同步方法和数据同步系统 | |
CN113420081A (zh) | 数据校验方法、装置、电子设备及计算机存储介质 | |
US11079960B2 (en) | Object storage system with priority meta object replication | |
CN110109934B (zh) | 一种数据库管理方法、装置、服务器及存储介质 | |
US11074002B2 (en) | Object storage system with meta object replication | |
US11093465B2 (en) | Object storage system with versioned meta objects | |
CN114791901A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN112416885A (zh) | 一种文件的实时同步方法 | |
CN114090538A (zh) | 数据回溯方法及装置 | |
CN111522688A (zh) | 分布式系统的数据备份方法及装置 | |
WO2024131057A1 (zh) | 获取文件系统差异数据的方法、装置、设备及介质 | |
CN111797062B (zh) | 数据处理方法、装置和分布式数据库系统 | |
CN116755827A (zh) | 一种ClickHouse集群的数据管理方法及相关装置 |
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 |