CN112286889B - 一种面向广域网的分布式文件***元数据副本同步方法 - Google Patents

一种面向广域网的分布式文件***元数据副本同步方法 Download PDF

Info

Publication number
CN112286889B
CN112286889B CN202011002772.0A CN202011002772A CN112286889B CN 112286889 B CN112286889 B CN 112286889B CN 202011002772 A CN202011002772 A CN 202011002772A CN 112286889 B CN112286889 B CN 112286889B
Authority
CN
China
Prior art keywords
node
nodes
request
storage
read
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
Application number
CN202011002772.0A
Other languages
English (en)
Other versions
CN112286889A (zh
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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN202011002772.0A priority Critical patent/CN112286889B/zh
Publication of CN112286889A publication Critical patent/CN112286889A/zh
Application granted granted Critical
Publication of CN112286889B publication Critical patent/CN112286889B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed 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)

Abstract

本公开提出了一种面向广域网的分布式文件***元数据副本同步方法。在本公开实施例中,可以构建副本空间的元数据同步服务,获取客户端的请求,根据广域网上运行的共识协议维护的文件访问状态树选择不同层级的共识组提交请求并且进行冲突避免;与在广域网上运行无层级区别的共识协议而言,本方法能够减少广域网上提案的数量,进而提高元数据操作的IOPS。

Description

一种面向广域网的分布式文件***元数据副本同步方法
技术领域
本发明公开了一种面向广域网的分布式文件***元数据副本同步方法,涉及广域高性能计算面临的挑战,属于计算机技术领域。
背景技术
跨域虚拟数据空间是广域高性能计算环境中为了发挥分散资源的聚合效应、有效支撑大型计算应用而诞生的重要研究课题。当前广域高性能计算环境中,各超算中心地理位置分散,网络拓扑结构复杂,导致跨域虚拟数据空间中的远程访问延迟较大且易受干扰。为了提高访问性能、增加数据安全性以及支持存储数据的调度,跨域副本技术的研究成为了跨域虚拟数据空间的迫切需求。
跨域虚拟数据空间中,跨域空间的访问性能受到了超算中心地理位置分散的挑战。以全基因组关联分析应用为例,基因数据文件分散在多个数据中心,远程访问带来的延迟将浪费计算节点大量宝贵的时间。欧洲网格基础项目EGI的OneData存储***以及美国国家科学基金会的XSEDE的联合文件***GFFS都采用了副本技术,通过文件数据跨中心分布来达到提升虚拟空间总体访问性能的目的。科学计算应用的计算节点能够通过访问本中心或者最近数据中心的副本,大幅减少等待数据的时间,节省昂贵的计算费。因此,跨域虚拟数据空间迫切需要一套副本机制。
首先,一致性问题一直是分布式存储副本机制的最大挑战,Bengfort在研究中指出,单数据中心内分布式存储***能够通过放松强一致来达到一致性与性能的平衡,然而对于广域分布的存储***而言,极大的数据同步延迟以及过小的带宽将会放大多中心副本之间的一致性问题。而多中心间不一致的副本则会引发各中心应用更多相互冲突的操作,最终导致应用奔溃或者数据集损坏。
为了保证跨域虚拟数据空间副本的一致性,就需要保证元数据副本操作的一致性以及数据访问一致性。Glass的研究中指出,元数据操作与副本数据访问在很多重要的方面是不同的。元数据操作可以被认为是目录及文件级别的操作,例如文件的创建、删除、重命名、设置拓展属性、查看权限等,而副本数据访问操作通常是针对数据块的读写访问。元数据操作的请求频率不如数据操作频繁,然而元数据操作产生冲突的后果比数据操作更加严重。因为数据损坏通常是可以通过主从副本的数据复制进行幂等的恢复步骤,然而元数据冲突导致的损坏需要更加复杂的机制进行恢复,例如预写日志***或者文件***卷快照,最终引入较大开销。
一般可以用两类方法保证元数据操作的一致性,一是通过合理组织元数据服务架构,使得所有元数据操作请求以类似单点FIFO队列的形式应用在元数据存储中。由于这种提交的形式能够保证所有元数据操作在执行、同步过程中的原子性、顺序性与最终一致,因此相当于实现了元数据副本操作的线性化,进而保证了一致性。二是允许元数据操作请求的任意点提交,但是通过一致性协议协商来保证一致性。
第一类方法,即基于主从架构的元数据一致性方法,常被应用在单中心存储***中,对于单一FIFO执行队列引发的负载均衡、单点故障、横向拓展性等问题,研究人员也提出了大量的方法来进行优化,例如哈希分区、故障迁移、冷热备份等。第一类方法已经在GlusterFS、Ceph、HDFS等中心内文件***中得到了充分的验证。
第二类方法,即基于共识协议的元数据一致性方法,常被应用在多中心存储***中,因为跨中心网络通信质量与中心内网络通信质量差距过大,导致单点提交法对于不同的客户端节点有极大的性能差距,由于木桶效应最终为多中心环境下的应用执行引入极大的延迟。而第二类方法允许元数据操作请求在任意点提交,并通过节点间执行前协商或者执行同步的方式来保证一定程度的一致性。
GlusterFS架构上最重要的特性就是“无元数据服务器架构”。GlusterFS基于DHT分布式哈希表来计算文件以及副本所在服务器的位置,目录会主要创建在其哈希值对应的子卷中,然后尝试在其他GlusterFS存储服务器的子卷上创建该目录。GlusterFS通过哈希分区方式让客户端向确定性单点发送元数据操作请求来保证一致性。
HDFS使用单个名字节点存储所有文件的元数据,为了防止单点故障,还设置了后备(secondary)名字节点对主名字节点中的元数据进行在线热备。HDFS通过单一元数据服务器接收客户端发起的元数据操作请求,以保证元数据一致性。
Ceph-RADOS的对象位置计算与GlusterFS类似,通过一致性哈希算法决定对象的放置组,通过CRUSH算法维护放置组主从副本之间的负载均衡和高可用。
限制元数据操作请求仅能通过某一固定FIFO队列提交能够保证元数据一致性,然而也将极大降低跨域存储集群的访问性能与可用性。
基于广播的元数据同步方法相比基于周期性扫描的同步方法更进一步保证了元数据之间的一致性。
OneData是欧洲网格基础项目中的存储项目,其基于文档数据库建立元数据管理层,为了提高本地中心的文件***访问速度,Space所在的多个计算中心的Provider都会存储Space内文件***所有元数据的副本。在元数据产生变更,例如文件访问时间、文件权限、目录结构发生变化后,OneData会通过DBSync机制将元数据管理层的所有相关文档的变更通过订阅分发机制广播给订阅者。
基于广播的元数据同步方法相比基于周期扫描的同步方法,将元数据不一致的窗口期缩小到了网络延迟的数量级。然而基于广播的元数据同步方法并没有保证元数据操作执行和同步时的顺序性、原子性、隔离性等,因此在发生冲突的时候依然有可能导致数据集的损坏。
基于二阶段提交协议的元数据同步方法相比单纯的广播同步能够进一步保证元数据操作在各个中心内执行的顺序性、原子性以及隔离性。大部分共识协议均通过全局自增序号,并且采用了二阶段提交方法以实现请求的线性化提交,最终保证存储***元数据副本之间的一致性。例如Zookeeper与Chubby均依赖共识协议来保证类Unix目录结构的一致性。
Glass研究了高延迟网络下的文件***副本同步方法,为元数据在跨中心副本上的操作设计了基于二阶段提交的同步协议。Glass的协议中,每个跨中心节点的空间中都有一份隐藏的日志用以记录待执行的元数据操作。Glass使用基于日志的二阶段提交协议保证了请求执行的一致性。如果限制只有主节点能够使用FIFO队列提交请求,则还能保证了顺序性。最终可以保证元数据操作在广域存储环境中的线性化执行。
分布式***无法通过逻辑时间达成请求执行线性化的主要原因在于,逻辑时间在各个节点上并不一致,而是受限于网络延迟以及节点内硬件及操作***的时钟分辨率,NTP时钟同步服务的误差有可能达到数毫秒。这种误差在广域网上将被放大,无法满足应用严格一致的需求,在数毫秒时间窗口内两个冲突的文件***元数据请求依然有破坏数据集的可能。一个严格有序的序列号能够保证请求的线性化执行,避免共识协议中的提案(propose)阶段可以被当做自增ID的争抢阶段,通过争抢一个唯一的自增ID来保证顺序性,这能够避免逻辑时钟带来的误差。然而共识协议的缺陷是长时间的提案协商等待阶段,这在广域网的跨中心存储环境下会为性能带来较大的降幅。
发明内容
本公开提出了一种面向广域网的分布式文件***元数据副本同步方法。
在本公开实施例中,可以构建副本空间的元数据同步服务,获取客户端的请求,根据广域网上运行的共识协议维护的文件访问状态树选择不同层级的共识组提交请求并且进行冲突避免;与在广域网上运行无层级区别的共识协议而言,本方法能够减少广域网上共识协议中提案的数量,进而提高元数据操作的IOPS。
本发明的技术解决方案如下:
一种面向广域网的分布式文件***元数据副本同步方法,其特征在于,包括:
通过一种分布式的文件元数据操作冲突检测方法检测冲突发生的可能性;
存储中心内节点组成一个二级共识组,其内部共识协议接受客户端提交的元数据请求并返回中心内强一致的操作结果;
多个存储中心的共识组中的边界节点组成一级共识组,其跨存储中心的共识协议接受中心提交的元数据请求并返回跨中心强一致的操作结果。
包括以下步骤:
步骤1,在构建副本空间时,在每个存储中心内部的存储网关节点构建二级共识组,将广域网上多个存储中心的二级共识组中的边界节点构建成一级共识组,在每个存储中心内部构建一棵该副本空间文件及目录的访问状态树,同步副本空间中已有文件与目录;
步骤2,在客户端提交副本空间的只读操作时,存储网关节点会根据访问状态树中的记录一级文件句柄的一致性需求等级进行冲突退避,向一级或者二级共识组提交操作,并返回只读请求的执行结果;
步骤3,在客户端提交副本空间的读写操作时,存储网关节点会根据访问状态树中的进行冲突退避,向一级或二级共识组提交读写请求,并且更新文件及目录状态树,并返回读写请求的执行结果。
所述步骤1中在每个存储中心内部的存储网关节点构建二级共识组,包括:
A1)由管理节点组织与分发的集群节点状态图进行存储中心内部的存储网关节点的相互发现;
A2)基于传统的leader-based共识协议将存储中心内部的存储网关节点构建为二级共识组,并在二级共识组中进行leader节点的选举,leader节点将负责接受副本空间根目录下所有文件及目录的元数据读写请求;
A3)选举完成后,由leader节点根据管理员预先设置的权重指定其二级共识组中的边界节点角色;
A4)leader节点在运行过程中,将根据负载均衡模块提出的建议,通过共识协议的提案下放leadership,即将副本空间目录树中的某一子树下接受客户端请求与发起提案的leadership外借给二级共识组中其他存储网关节点,一旦下放某一子树的leadership,在leadership收回或者在当前任期内leader节点将拒绝该子树下的所有客户端请求;
A5)若客户端提交的读写操作仅涉及到副本空间目录树下的单个子树,则向根目录方最近分配点的leadership所属的存储网关节点发送读写操作的请求,并由该存储网关节点跳过准备阶段直接在二级共识组中进行提案阶段;
A6)若客户端提交的读写操作涉及到副本空间目录树下的多个子树,且共识协议中这些子树的leadership已经被分配给不同的存储网关节点,则客户端会向这些子树的共有父节点的最近分配点发送读写操作,最近分配点对应的存储网关节点会向二级共识组发起提案暂时冻结其操作涉及的子树的leadership分配点,并在读写操作完成后发起提案解除冻结。
所述在将广域网上多个存储中心的二级共识组中的边界节点构建成一级共识组时,还包括:
B1)由管理节点组织与分发的集群节点状态图进行多个存储中心之间的边界节点的相互发现;
B2)基于传统的leader-based共识协议将存储中心内部的存储网关节点构建为一级共识组,并在一级共识组中进行leader节点的选举,leader节点将负责接受副本空间根目录下所有文件及目录的元数据读写请求;
B3)在选举阶段结束以后,leader节点会根据负载监控模块给出的建议,将leader角色转移给一级共识组中的一个边界节点;
B4)一级共识组中只有leader节点允许发起提案,当提案被其他存储中心的边界节点接受的时候,提案的副作用将直接由边界节点应用在实际存储中。
所述在每个存储中心内部构建一棵该副本空间文件及目录的访问状态树时,还包括:
C1)访问状态树由多个存储中心的边界节点组成的一级共识组维护,所有对于树的更改请求都需要经过一级共识组的提案过程;
C2)树的叶子节点为当前正在被某个客户端访问的目录或者副本文件的访问状态,树的非叶子节点为目录名组成的中间路径,树的根节点为副本空间的根目录;
C3)树的节点拥有状态颜色与访问组,其中黄色代表节点正在被只读访问,红色代表节点正在被读写访问,访问组为存储中心ID组成的位图。
所述步骤2中在客户端提交副本空间的只读操作时,还包括:
D1)当客户端提交只读元数据请求时,客户端会根据请求目标文件的句柄选择请求的一致性级别;
D2)当一致性级别为容许不一致时,客户端直接向目标文件最近分配点的存储网关节点发送请求,并且不经过提案过程直接读取目标元数据;
D3)当一致性级别为中心内一致时,客户端直接向目标文件最近分配点的存储网关节点发送请求,该存储网关节点将通过共识协议发出提案,待提案完成后执行元数据读取过程并回复结果;
D4)当一致性级别为强一致时,客户端直接向本存储中心的边界节点发送请求,由边界节点根据该元数据请求的目标文件或目录在状态树中的节点状态决定提案级别;
D5)当一致性级别为强一致且文件或目录状态树中对应的节点不存在或者存在于非叶子节点的中间路径中时,向边界节点组成的一级共识组提交一个请求,请求内容为创建或者***非叶子节点的方式创建目标文件或目录对应的叶子结点,并将该叶子结点颜色设置为黄色,节点内位图追加写入发起请求的存储中心的ID号;
D6)当一致性级别为强一致且状态树中对应的节点存在且为黄色时,若节点位图中无本存储中心ID则发起添加ID的提案;若节点位图中已存在ID则直接执行只读操作并回复结果;
D7)当一致性级别为强一致且状态树中对应的节点存在且为红色时,边界节点作为代理将只读请求重定向到一级共识组的leader,并且由一级共识组leader所在存储中心的二级共识组提出该只读请求对应的提案并执行读元数据的操作。
所述步骤3中在客户端提交副本空间的读写操作时,还包括:
F1)在副本空间中读写请求的一致性级别总是为强一致;
F2)客户端直接向本存储中心的边界节点发送请求,由边界节点根据该元数据请求的目标文件或目录在状态树中的节点状态决定;
F3)当一致性级别为强一致且文件或目录状态树中对应的节点不存在或者存在于非叶子节点的中间路径中或者对应节点为黄色时,向边界节点组成的一级共识组提交一个请求,请求内容为创建或者***非叶子节点的方式创建目标文件或目录对应的叶子结点,并将该叶子结点颜色设置为红色,节点内位图追加写入发起请求的存储中心的ID号;
F4)当一致性级别为强一致且状态树中对应的节点存在且为红色时,若节点位图中无本存储中心ID则发起添加ID的提案;若节点位图中仅存在当前存储中心的ID则向当前存储中心的二级共识组提交读写请求并回复结果;
F5)当一致性级别为强一致且状态树中对应的节点存在且为红色时,若节点位图中存在多个存储中心的ID,则向一级共识组提交读写请求,边界节点在一级共识组的共识协议的应用阶段将向本中心的二级共识组提交读写请求。
附图说明
图1为一种面向广域网的分布式文件***元数据副本同步方法流程图。
图2为一种面向广域网的分布式文件***元数据副本同步方法架构图。
图3为面向广域网的分布式文件***元数据副本同步方法元数据操作冲突检测方法图。
图中概念简要说明如下:超算中心:使用超级计算机以及相关网络、存储设施提供服务的机构。共识组:一组内部状态采用共识协议等技术达成强一致的节点。一级共识组:当共识组内部的节点分布在不同中心时,本专利称之为一级共识组。二级共识组:当共识组内部的节点仅分布在同一中心内时,本专利称之为二级共识组。GVDS:为本专利技术所依托的底层软件***,图中GVDS表示GVDS***中的一个基本实例。GVDS Edge:GVDS实例中,承担跨中心信息同步任务的节点。冲突检测层:本专利中,基于一级共识组保持同步的一颗树状结构,存储GVDS环境中不同中心对目录树节点的访问状态。目录项操作映射层:将posix语义的文件***接口请求转换成GVDS语义的目录树资源操作请求的一个请求转换层。创建、列目录、删除等:基础的符合posix语义的文件***目录树操作。冲突:如果两个请求的并发执行可能导致最终真实结果与预期结果的不一致,即认为这两个请求存在并发冲突。目录树访问状态:记录目录树中节点被所有中心访问的状态,其信息从目录树同步日志中获取,并更新到节点中。应用N:分布在某一个中心的超算应用实例,一个应用实例可能是一个大型分布式应用的一部分。
具体实施方式
本公开实施例提供了一种面向广域网的分布式文件***元数据副本同步方法,其通过一种分布式的文件元数据操作冲突检测方法检测冲突发生的可能性;将存储中心内节点组成一个二级共识组,其内部共识协议接受客户端提交的元数据请求并返回中心内强一致的操作结果;将多个存储中心的共识组中的边界节点组成一级共识组,其跨存储中心的共识协议接受中心提交的元数据请求并返回跨中心强一致的操作结果;并最终通过检测冲突可能性选择合适的共识达成方式实现了性能与一致性的平衡。下面对本发明作进一步详细的说明。
图1示出根据本公开实施例的分布式文件***元数据副本同步方法的流程图,主要有如下三个步骤组成。
S1)创建多级共识组,在构建副本空间时,在每个存储中心内部的存储网关节点构建二级共识组,将广域网上多个存储中心的二级共识组中的边界节点构建成一级共识组。
S2)创建文件及目录访问状态树,在每个存储中心内部构建一棵基于一级共识组的文件及目录的访问状态树。
S3)处理客户端提交的请求,在客户端提交副本空间的只读操作时,存储网关节点会根据访问状态树中的记录一级文件句柄的一致性需求等级进行冲突退避,向一级或者二级的共识组提交操作,并返回只读请求的执行结果;在客户端提交副本空间的读写操作时,存储网关节点会根据访问状态树中的进行冲突退避,向一级或二级的共识组提交读写请求,并且更新文件及目录状态树,并返回读写请求的执行结果。
S11)构建二级共识组,在本公开实施例中,构建二级共识组的步骤如下:
由管理节点组织与分发的集群节点状态图进行存储中心内部的存储网关节点的相互发现;基于传统的leader-based共识协议将存储中心内部的存储网关节点构建为二级共识组,并在二级共识组中进行leader节点的选举,leader节点将负责接受副本空间根目录下所有文件及目录的元数据读写请求;选举完成后,由leader节点根据管理员预先设置的权重指定其二级共识组中的边界节点角色;leader节点在运行过程中,将根据负载均衡模块提出的建议,通过共识协议的提案下放leadership,即将副本空间目录树中的某一子树下接受客户端请求与发起提案的leadership外借给二级共识组中其他存储网关节点,一旦下放某一子树的leadership,在leadership收回或者在当前任期内leader节点将拒绝该子树下的所有客户端请求;若客户端提交的读写操作仅涉及到副本空间目录树下的单个子树,则向根目录方最近分配点的leadership所属的存储网关节点发送读写操作的请求,并由该存储网关节点跳过准备阶段直接在二级共识组中进行提案阶段;若客户端提交的读写操作涉及到副本空间目录树下的多个子树,且共识协议中这些子树的leadership已经被分配给不同的存储网关节点,则客户端会向这些子树的共有父节点的最近分配点发送读写操作,最近分配点对应的存储网关节点会向二级共识组发起提案暂时冻结其操作涉及的子树的leadership分配点,并在读写操作完成后发起提案解除冻结。
S12)构建一级共识组,在本公开实施例中,构建二级共识组的步骤如下:
由管理节点组织与分发的集群节点状态图进行多个存储中心之间的边界节点的相互发现;基于传统的leader-based共识协议将存储中心内部的存储网关节点构建为一级共识组,并在一级共识组中进行leader节点的选举,leader节点将负责接受副本空间根目录下所有文件及目录的元数据读写请求;在选举阶段结束以后,leader节点会根据负载监控模块给出的建议,将leader角色转移给一级共识组中的一个边界节点;一级共识组中只有leader节点允许发起提案,当提案被其他存储中心的边界节点接受的时候,提案的副作用将直接由边界节点应用在实际存储中。
S21)构建文件与目录访问状态树,在本公开实施例中,构建文件与目录访问状态树的步骤如下:
访问状态树由多个存储中心的边界节点组成的一级共识组维护,所有对于树的更改请求都需要经过一级共识组的提案过程;树的叶子节点为当前正在被某个客户端访问的目录或者副本文件的访问状态,树的非叶子节点为目录名组成的中间路径,树的根节点为副本空间的根目录;树的节点拥有状态颜色与访问组,其中黄色代表节点正在被只读访问,红色代表节点正在被读写访问,访问组为存储中心ID组成的位图。
S31)提交只读请求,在本公开实施例中,向广域分布式文件***提交元数据只读请求的步骤如下:
当客户端提交只读元数据请求时,客户端会根据请求目标文件的句柄选择请求的一致性级别;当一致性级别为容许不一致时,客户端直接向目标文件最近分配点的存储网关节点发送请求,并且不经过提案过程直接读取目标元数据;当一致性级别为中心内一致时,客户端直接向目标文件最近分配点的存储网关节点发送请求,该存储网关节点将通过共识协议发出提案,待提案完成后执行元数据读取过程并回复结果;当一致性级别为强一致时,客户端直接向本存储中心的边界节点发送请求,由边界节点根据该元数据请求的目标文件或目录在状态树中的节点状态决定提案级别;当一致性级别为强一致且文件或目录状态树中对应的节点不存在或者存在于非叶子节点的中间路径中时,向边界节点组成的一级共识组提交一个请求,请求内容为创建或者***非叶子节点的方式创建目标文件或目录对应的叶子结点,并将该叶子结点颜色设置为黄色,节点内位图追加写入发起请求的存储中心的ID号;当一致性级别为强一致且状态树中对应的节点存在且为黄色时,若节点位图中无本存储中心ID则发起添加ID的提案;若节点位图中已存在ID则直接执行只读操作并回复结果;当一致性级别为强一致且状态树中对应的节点存在且为红色时,边界节点作为代理将只读请求重定向到一级共识组的leader,并且由一级共识组leader所在存储中心的二级共识组提出该只读请求对应的提案并执行读元数据的操作。
S32)提交读写请求,在本公开实施例中,向广域分布式文件***提交元数据读写请求的步骤如下:
在副本空间中读写请求的一致性级别总是为强一致;客户端直接向本存储中心的边界节点发送请求,由边界节点根据该元数据请求的目标文件或目录在状态树中的节点状态决定;当一致性级别为强一致且文件或目录状态树中对应的节点不存在或者存在于非叶子节点的中间路径中或者对应节点为黄色时,向边界节点组成的一级共识组提交一个请求,请求内容为创建或者***非叶子节点的方式创建目标文件或目录对应的叶子结点,并将该叶子结点颜色设置为红色,节点内位图追加写入发起请求的存储中心的ID号;当一致性级别为强一致且状态树中对应的节点存在且为红色时,若节点位图中无本存储中心ID则发起添加ID的提案;若节点位图中仅存在当前存储中心的ID则向当前存储中心的二级共识组提交读写请求并回复结果;当一致性级别为强一致且状态树中对应的节点存在且为红色时,若节点位图中存在多个存储中心的ID,则向一级共识组提交读写请求,边界节点在一级共识组的共识协议的应用阶段将向本中心的二级共识组提交读写请求。
本发明说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。在此指明,以上叙述有助于本领域技术人员理解本发明创造,但并非限制本发明创造的保护范围。任何没有脱离本发明创造实质内容的对以上叙述的等同替换、修饰改进和/或删繁从简而进行的实施,均落入本发明创造的保护范围。

Claims (6)

1.一种面向广域网的分布式文件***元数据副本同步方法,其特征在于,包括:
通过一种分布式的文件元数据操作冲突检测方法检测冲突发生的可能性;
存储中心内节点组成一个二级共识组,其内部共识协议接受客户端提交的元数据请求并返回中心内强一致的操作结果;
多个存储中心的共识组中的边界节点组成一级共识组,其跨存储中心的共识协议接受中心提交的元数据请求并返回跨中心强一致的操作结果;
包括以下步骤:
步骤1,在构建副本空间时,在每个存储中心内部的存储网关节点构建二级共识组,将广域网上多个存储中心的二级共识组中的边界节点构建成一级共识组,在每个存储中心内部构建一棵该副本空间文件及目录的访问状态树,同步副本空间中已有文件与目录;
步骤2,在客户端提交副本空间的只读操作时,存储网关节点会根据访问状态树中的记录一级文件句柄的一致性需求等级进行冲突退避,向一级或者二级共识组提交操作,并返回只读请求的执行结果;
步骤3,在客户端提交副本空间的读写操作时,存储网关节点会根据访问状态树中的进行冲突退避,向一级或二级共识组提交读写请求,并且更新文件及目录状态树,并返回读写请求的执行结果。
2.根据权利要求1所述的方法,其特征在于,所述步骤1中在每个存储中心内部的存储网关节点构建二级共识组,包括:
A1)由管理节点组织与分发的集群节点状态图进行存储中心内部的存储网关节点的相互发现;
A2)基于传统的leader-based共识协议将存储中心内部的存储网关节点构建为二级共识组,并在二级共识组中进行leader节点的选举,leader节点将负责接受副本空间根目录下所有文件及目录的元数据读写请求;
A3)选举完成后,由leader节点根据管理员预先设置的权重指定其二级共识组中的边界节点角色;
A4)leader节点在运行过程中,将根据负载均衡模块提出的建议,通过共识协议的提案下放leadership,即将副本空间目录树中的某一子树下接受客户端请求与发起提案的leadership外借给二级共识组中其他存储网关节点,一旦下放某一子树的leadership,在leadership收回或者在当前任期内leader节点将拒绝该子树下的所有客户端请求;
A5)若客户端提交的读写操作仅涉及到副本空间目录树下的单个子树,则向根目录方最近分配点的leadership所属的存储网关节点发送读写操作的请求,并由该存储网关节点跳过准备阶段直接在二级共识组中进行提案阶段;
A6)若客户端提交的读写操作涉及到副本空间目录树下的多个子树,且共识协议中这些子树的leadership已经被分配给不同的存储网关节点,则客户端会向这些子树的共有父节点的最近分配点发送读写操作,最近分配点对应的存储网关节点会向二级共识组发起提案暂时冻结其操作涉及的子树的leadership分配点,并在读写操作完成后发起提案解除冻结。
3.根据权利要求1所述的方法,其特征在于,所述将广域网上多个存储中心的二级共识组中的边界节点构建成一级共识组时,还包括:
B1)由管理节点组织与分发的集群节点状态图进行多个存储中心之间的边界节点的相互发现;
B2)基于传统的leader-based共识协议将存储中心内部的存储网关节点构建为一级共识组,并在一级共识组中进行leader节点的选举,leader节点将负责接受副本空间根目录下所有文件及目录的元数据读写请求;
B3)在选举阶段结束以后,leader节点会根据负载监控模块给出的建议,将leader角色转移给一级共识组中的一个边界节点;
B4)一级共识组中只有leader节点允许发起提案,当提案被其他存储中心的边界节点接受的时候,提案的副作用将直接由边界节点应用在实际存储中。
4.根据权利要求1所述的方法,其特征在于,所述在每个存储中心内部构建一棵该副本空间文件及目录的访问状态树时,还包括:
C1)访问状态树由多个存储中心的边界节点组成的一级共识组维护,所有对于树的更改请求都需要经过一级共识组的提案过程;
C2)树的叶子节点为当前正在被某个客户端访问的目录或者副本文件的访问状态,树的非叶子节点为目录名组成的中间路径,树的根节点为副本空间的根目录;
C3)树的节点拥有状态颜色与访问组,其中黄色代表节点正在被只读访问,红色代表节点正在被读写访问,访问组为存储中心ID组成的位图。
5.根据权利要求1所述的方法,其特征在于,所述步骤2中在客户端提交副本空间的只读操作时,还包括:
D1)当客户端提交只读元数据请求时,客户端会根据请求目标文件的句柄选择请求的一致性级别;
D2)当一致性级别为容许不一致时,客户端直接向目标文件最近分配点的存储网关节点发送请求,并且不经过提案过程直接读取目标元数据;
D3)当一致性级别为中心内一致时,客户端直接向目标文件最近分配点的存储网关节点发送请求,该存储网关节点将通过共识协议发出提案,待提案完成后执行元数据读取过程并回复结果;
D4)当一致性级别为强一致时,客户端直接向本存储中心的边界节点发送请求,由边界节点根据该元数据请求的目标文件或目录在状态树中的节点状态决定提案级别;
D5)当一致性级别为强一致且文件或目录状态树中对应的节点不存在或者存在于非叶子节点的中间路径中时,向边界节点组成的一级共识组提交一个请求,请求内容为创建或者***非叶子节点的方式创建目标文件或目录对应的叶子结点,并将该叶子结点颜色设置为黄色,节点内位图追加写入发起请求的存储中心的ID号;
D6)当一致性级别为强一致且状态树中对应的节点存在且为黄色时,若节点位图中无本存储中心ID则发起添加ID的提案;若节点位图中已存在ID则直接执行只读操作并回复结果;
D7)当一致性级别为强一致且状态树中对应的节点存在且为红色时,边界节点作为代理将只读请求重定向到一级共识组的leader,并且由一级共识组leader所在存储中心的二级共识组提出该只读请求对应的提案并执行读元数据的操作。
6.根据权利要求1所述的方法,其特征在于,所述步骤3中在客户端提交副本空间的读写操作时,还包括:
F1)在副本空间中读写请求的一致性级别总是为强一致;
F2)客户端直接向本存储中心的边界节点发送请求,由边界节点根据该元数据请求的目标文件或目录在状态树中的节点状态决定;
F3)当一致性级别为强一致且文件或目录状态树中对应的节点不存在或者存在于非叶子节点的中间路径中或者对应节点为黄色时,向边界节点组成的一级共识组提交一个请求,请求内容为创建或者***非叶子节点的方式创建目标文件或目录对应的叶子结点,并将该叶子结点颜色设置为红色,节点内位图追加写入发起请求的存储中心的ID号;
F4)当一致性级别为强一致且状态树中对应的节点存在且为红色时,若节点位图中无本存储中心ID则发起添加ID的提案;若节点位图中仅存在当前存储中心的ID则向当前存储中心的二级共识组提交读写请求并回复结果;
F5)当一致性级别为强一致且状态树中对应的节点存在且为红色时,若节点位图中存在多个存储中心的ID,则向一级共识组提交读写请求,边界节点在一级共识组的共识协议的应用阶段将向本中心的二级共识组提交读写请求。
CN202011002772.0A 2020-09-22 2020-09-22 一种面向广域网的分布式文件***元数据副本同步方法 Active CN112286889B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011002772.0A CN112286889B (zh) 2020-09-22 2020-09-22 一种面向广域网的分布式文件***元数据副本同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011002772.0A CN112286889B (zh) 2020-09-22 2020-09-22 一种面向广域网的分布式文件***元数据副本同步方法

Publications (2)

Publication Number Publication Date
CN112286889A CN112286889A (zh) 2021-01-29
CN112286889B true CN112286889B (zh) 2022-07-26

Family

ID=74421939

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011002772.0A Active CN112286889B (zh) 2020-09-22 2020-09-22 一种面向广域网的分布式文件***元数据副本同步方法

Country Status (1)

Country Link
CN (1) CN112286889B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115996177B (zh) * 2022-10-17 2024-05-07 北京航空航天大学 一种面向周期性复制***的成本最小化一致性维护方法
CN116737810B (zh) * 2023-05-06 2024-06-25 清华大学 一种用于分布式时序数据库的共识服务接口

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150394A (zh) * 2013-03-25 2013-06-12 中国人民解放军国防科学技术大学 面向高性能计算的分布式文件***元数据管理方法
CN106462544A (zh) * 2014-03-31 2017-02-22 亚马逊科技公司 分布式存储***中的会话管理
CN110213352A (zh) * 2019-05-17 2019-09-06 北京航空航天大学 名字空间统一的分散自治存储资源聚合方法
CN110221779A (zh) * 2019-05-29 2019-09-10 清华大学 分布式持久性内存存储***的构建方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417193B2 (en) * 2016-05-24 2019-09-17 Vmware, Inc. Distributed file system consistency check

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150394A (zh) * 2013-03-25 2013-06-12 中国人民解放军国防科学技术大学 面向高性能计算的分布式文件***元数据管理方法
CN106462544A (zh) * 2014-03-31 2017-02-22 亚马逊科技公司 分布式存储***中的会话管理
CN110213352A (zh) * 2019-05-17 2019-09-06 北京航空航天大学 名字空间统一的分散自治存储资源聚合方法
CN110221779A (zh) * 2019-05-29 2019-09-10 清华大学 分布式持久性内存存储***的构建方法

Also Published As

Publication number Publication date
CN112286889A (zh) 2021-01-29

Similar Documents

Publication Publication Date Title
US10078681B2 (en) Differentiated secondary index maintenance in log structured NoSQL data stores
CN106874383B (zh) 一种分布式文件***元数据的解耦合分布方法
US7702640B1 (en) Stratified unbalanced trees for indexing of data items within a computer system
US7437407B2 (en) File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator
US6453354B1 (en) File server system using connection-oriented protocol and sharing data sets among data movers
US7120631B1 (en) File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator
US11442961B2 (en) Active transaction list synchronization method and apparatus
US20130110781A1 (en) Server replication and transaction commitment
US7054887B2 (en) Method and system for object replication in a content management system
US11157455B2 (en) Inofile management and access control list file handle parity
CN102129469A (zh) 一种面向虚拟实验的非结构化数据访问方法
US10852985B2 (en) Persistent hole reservation
CN112286889B (zh) 一种面向广域网的分布式文件***元数据副本同步方法
CN111984696A (zh) 一种新型数据库和方法
Waqas et al. Transaction management techniques and practices in current cloud computing environments: A survey
JP2023541298A (ja) トランザクション処理方法、システム、装置、機器、及びプログラム
US20100145911A1 (en) Serverless Replication of Databases
EP3942397A1 (en) Timestamp consistency for synchronous replication
US20180276267A1 (en) Methods and system for efficiently performing eventual and transactional edits on distributed metadata in an object storage system
JP2023546897A (ja) オブジェクト処理方法、装置、及びコンピュータ機器
CN107896248B (zh) 一种基于客户端通信的并行文件***应用方法
Hiraga et al. PPMDS: A distributed metadata server based on nonblocking transactions
Hiraga et al. Scalable Distributed Metadata Server Based on Nonblocking Transactions.
US10628391B1 (en) Method and system for reducing metadata overhead in a two-tier storage architecture
CN116561217A (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