CN105589887A - 分布式文件系统的数据处理方法及分布式文件系统 - Google Patents

分布式文件系统的数据处理方法及分布式文件系统 Download PDF

Info

Publication number
CN105589887A
CN105589887A CN201410578968.2A CN201410578968A CN105589887A CN 105589887 A CN105589887 A CN 105589887A CN 201410578968 A CN201410578968 A CN 201410578968A CN 105589887 A CN105589887 A CN 105589887A
Authority
CN
China
Prior art keywords
fas
flr
data
metadata
file
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
Application number
CN201410578968.2A
Other languages
English (en)
Other versions
CN105589887B (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201410578968.2A priority Critical patent/CN105589887B/zh
Priority to PCT/CN2015/072772 priority patent/WO2016061956A1/zh
Priority to PCT/CN2015/076473 priority patent/WO2015184925A1/zh
Publication of CN105589887A publication Critical patent/CN105589887A/zh
Application granted granted Critical
Publication of CN105589887B publication Critical patent/CN105589887B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor

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)
  • Retry When Errors Occur (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种分布式文件系统的数据处理方法及分布式文件系统,其方法包括:Fac获取文件数据,推送给Fas;Fas记录Fac推送过来的文件数据,在缓冲区记录下此次Fas上对应的元数据的修改,写入日志文件,并向Fac返回文件数据推送完成消息;Fac向Flr发送元数据修改变化请求;Flr根据元数据修改变化请求,修改相应的元数据,并记录至日志文件系统;当监测到Fas异常重启时,Flr根据日志记录,进行相应修改数据的回滚操作。本发明保证了分布式文件系统复位重启后文件的最终高一致性,避免机器宕机重启带来的多副本间数据的不一致性,且最大程度的减少由于日志系统的添加而带来相应的延迟和性能上的损失。

Description

分布式文件系统的数据处理方法及分布式文件系统
技术领域
本发明涉及分布式文件存储技术领域,尤其涉及一种分布式文件系统的数据处理方法及分布式文件系统。
背景技术
随着多媒体产业的迅猛发展,出于成本、可靠性等多方面的考虑,越来越多的厂商选择在产品中部署自研的分布式上层存储系统,分布式文件系统也因此得到了快速的发展。分布式文件系统可以提供高的吞吐率,可以提供普通本地文件系统几倍以上的吞吐率,同时可以提供高可靠性,通过多副本、冗余副本技术,提高单机异常时数据的可靠性,同时对于磁阵这样的设备,具有价格便宜、设备通用的优点。
目前,在大部分的分布式文件系统中,一部分注重吞吐量性能,但是却降低了文件系统一致性的保证。而另一部分在保证了同步的一致性的情况下,却大大降低了写和修改的性能。而对于分布式系统中的大量机器,宕机重启已经是一个常态的问题,如何保证在服务器宕机重启后,保证文件多个副本内数据的一致性,将十分的必要。
发明内容
本发明的主要目的在于提供一种分布式文件系统的数据处理方法及分布式文件系统,避免Fas宕机重启所带来的多副本间数据的不一致性。
为了达到上述目的,本发明提出一种分布式文件系统的数据处理方法,包括:
Fac获取文件数据,推送给Fas;
所述Fas记录Fac推送过来的文件数据,在缓冲区记录下此次Fas上对应的元数据的修改,写入日志文件,并向所述Fac返回文件数据推送完成消息;
所述Fac接收到所述Fas返回的文件数据推送完成消息后,向Flr发送元数据修改变化请求;
所述Flr根据所述元数据修改变化请求,修改相应的元数据,并记录至日志文件系统;
当监测到所述Fas异常重启时,所述Flr根据日志记录,进行相应修改数据的回滚操作,完成日志文件系统的修复。
优选地,所述Flr根据所述元数据修改变化请求,修改相应的元数据,并记录至日志文件系统的步骤中还包括:
所述Flr按照时间的顺序,将相关处理的条目加入对应的Fas的缓冲区。
优选地,所述当监测到Fas异常重启时,所述Flr根据日志记录,进行相应修改数据的回滚操作,完成日志文件系统的修复的步骤包括:
当监测到所述Fas异常重启时,所述Flr根据日志记录,将日志记录的修改数据,从日志记录的当前时间点回退设定时间长度,所述设定时间长度的修改数据对应于所述Fas的所有修改记录;
当所述Fas上电时,发送回滚请求到Flr以回滚相应的数据;
所述Flr根据所述回滚请求回滚相应的数据至对应的Fas的缓冲区,完成日志文件系统的修复。
优选地,所述Flr监测Fas异常的步骤包括:
所述Flr接收所述Fas定期发送的心跳报文;
当监测到连续若干次丢失心跳报文时,判定所述Fas异常。
优选地,所述Fac接收到所述Fas返回的文件数据推送完成消息后,向Flr发送元数据修改变化请求的步骤包括:
所述Fac接收到所述Fas返回的文件数据推送完成消息后,将对应的元数据修改变化请求填入修改待通知缓冲区;
当设定的定时时间到达时,将修改待通知缓冲区内的所有元数据修改变化请求发送至Flr。
本发明实施例还提出一种分布式文件系统,包括:Fac、Fas及Flr,其中:
所述Fac,用于获取文件数据,推送给Fas;
所述Fas,用于记录Fac推送过来的文件数据,在缓冲区记录下此次Fas上对应的元数据的修改,写入日志文件,并向所述Fac返回文件数据推送完成消息;
所述Fac,还用于接收到所述Fas返回的文件数据推送完成消息后,向Flr发送元数据修改变化请求;
所述Flr,用于根据所述元数据修改变化请求,修改相应的元数据,并记录至日志文件系统;
所述Flr,还用于当监测到所述Fas异常重启时,根据日志记录,进行相应修改数据的回滚操作,完成日志文件系统的修复。
优选地,所述Flr,还用于按照时间的顺序,将相关处理的条目加入对应的Fas的缓冲区。
优选地,所述Flr,还用于当监测到所述Fas异常重启时,将日志记录的修改数据,从日志记录的当前时间点回退设定时间长度,所述设定时间长度的修改数据对应于所述Fas的所有修改记录;
所述Fas,还用于当所述Fas上电时,发送回滚请求到Flr以回滚相应的数据;
所述Flr,还用于根据所述回滚请求回滚相应的数据至对应的Fas的缓冲区,完成日志文件系统的修复。
优选地,所述Flr,还用于接收所述Fas定期发送的心跳报文;当监测到连续若干次丢失心跳报文时,判定所述Fas异常。
优选地,所述Fac,还用于接收到所述Fas返回的文件数据推送完成消息后,将对应的元数据修改变化请求填入修改待通知缓冲区;当设定的定时时间到达时,将修改待通知缓冲区内的所有元数据修改变化请求发送至Flr。
本发明实施例提出的一种分布式文件系统的数据处理方法及分布式文件系统,Fac获取文件数据,推送给Fas;Fas记录Fac推送过来的文件数据,在缓冲区记录下此次Fas上对应的元数据的修改,写入日志文件,并向所述Fac返回文件数据推送完成消息;Fac接收到所述Fas返回的文件数据推送完成消息后,向Flr发送元数据修改变化请求;Flr根据所述元数据修改变化请求,修改相应的元数据,并记录至日志文件系统;当监测到所述Fas异常重启时,Flr根据日志记录,进行相应修改数据的回滚操作,完成日志文件系统的修复,保证了分布式文件系统复位重启后文件的最终高一致性,避免机器宕机重启所带来的多副本间数据的不一致性,同时最大程度的减少由于日志系统的添加而带来相应的延迟和性能上的损失。
附图说明
图1是本发明分布式文件系统的数据处理方法一实施例的流程示意图;
图2是本发明实施例Fac、Fas及Flr之间的交互流程示意图;
图3是本发明实施例Fac与Fas之间交互以及Fas刷写时序示意图;
图4是本发明实施例Fac向Flr发送元数据修改变化请求的具体处理流程示意图;
图5是本发明实施例Flr的处理流程示意图;
图6是本发明分布式文件系统一实施例架构示意图。
为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
具体实施方式
本发明实施例的解决方案主要是:Fac获取文件数据,推送给Fas;Fas记录Fac推送过来的文件数据,在缓冲区记录下此次Fas上对应的元数据的修改,写入日志文件,并向所述Fac返回文件数据推送完成消息;Fac接收到所述Fas返回的文件数据推送完成消息后,向Flr发送元数据修改变化请求;Flr根据所述元数据修改变化请求,修改相应的元数据,并记录至日志文件系统;当监测到所述Fas异常重启时,Flr根据日志记录,进行相应修改数据的回滚操作,完成日志文件系统的修复,保证了分布式文件系统复位重启后文件的最终高一致性,避免机器宕机重启所带来的多副本间数据的不一致性,同时最大程度的减少由于日志系统的添加而带来相应的延迟和性能上的损失。
如图2所示,本发明一实施例提出一种分布式文件系统的数据处理方法,包括:
步骤S101,Fac获取文件数据,推送给Fas;
本发明方法实施例涉及的系统运行环境包括:Fac、Fas及Flr,其中:
Fac:文件服务客户端,用于提供用户与分布式文件系统内部数据的衔接。
Fas:文件数据服务器,用于存放文件实际的数据。
Flr:文件位置寄存器,用于存放文件与数据对应的元数据等的相关信息。
由于目前在大部分的分布式文件系统中,一部分注重吞吐量性能,但是却降低了文件系统一致性的保证,并没有提供类似于本地文件系统日志文件系统的保障。而另一部分在保证了同步的一致性的情况下,却大大降低了写和修改的性能。现有方案在服务器宕机重启后,无法保证文件多个副本内数据的一致性。
本实施例方案提出一种针对双层元数据情况下的,滞后形的日志文件系统方式,可以在不降低文件系统响应的前提下,提供滞后的日志文件系统的所有特性,保证系统复位重启后文件的高一致性。
关于日志文件的作用:以本地文件系统为例,ext2文件系统是一个通用的文件系统,本身不带有日志文件系统的功能,在复位、断电过程中很可能会丢失正在写或修改的一些数据,而造成元数据与数据的不一致性。而针对这一问题,ext3文件系统进行了改进,添加了日志系统的功能,在上电的时候通过对日志部分的重放,修正文件系统的一致性。
具体地,本实施例所涉及的双层元数据是指:在Flr和Fas上都有对应元数据的成分,Flr上对应的是文件分片数据位置名称信息,Fas上存放着分片名称与实际磁盘块的对应信息。通俗的讲,构建在本地文件系统之上的含有管理元数据的分布式文件系统,都属于这种双层元数据分布式文件系统范畴。
本实施例方案中,Fac的作用为发送相关元数据修改变化请求,本身可以借助原有分布式文件系统的相关功能。
Fas本身是一个构建于双层元数据类下层元数据上的功能,通过这个部分,保证在Fas上,可以构建一个有效的元数据修改记录的日志部分,保证Fas侧的一致性。
Flr构建在双层元数据的上层元数据上,主要保证关于上层元数据层修改之后的日志重放回滚问题。
系统中Fac、Fas及Flr之间的交互流程可以如图2所示。
更为具体地,首先,Fac获取文件数据,推送给Fas,用于存储数据。
步骤S102,所述Fas记录Fac推送过来的文件数据,在缓冲区记录下此次Fas上对应的元数据的修改,写入日志文件,并向所述Fac返回文件数据推送完成消息;
Fas记录Fac推送过来的文件数据,同时在缓冲区里记录下此次Fas上元数据的修改,并向所述Fac返回文件数据推送完成消息。
此外,Fas定期的先于数据将修改的缓冲区刷写入正常的日志文件中。
Fas刷写数据到磁盘之后,将刷写成功的元数据修改完成放入缓冲区,定期刷写入日志文件中。
其中,Fac与Fas之间交互以及Fas刷写时序可以如图3所示。
以Fac发送数据a和数据b到Fas为例,具体处理流程如下:
1、Fac发送数据a到Fas。
2、Fas将修改数据a的通知插入修改缓冲区。
3、Fas将数据a写入数据缓冲区。
4、Fas返回给Fac,通知Fac,a已经写数据成功。(此时之后就开启了向Flr发送元数据修改通知)
5、Fac发送数据b到Fas。
6、Fas将修改数据b的通知插入修改缓冲区。
7、Fas将数据b写入数据缓冲区。
8、Fas返回给Fac,通知Fac,b已经写数据成功。(步骤5~8代表不同的数据,这里体现出异步通知的速度)
9、定时日志任务刷写,a和b的修改通知被写入磁盘。
10、a的数据被写入磁盘。
11、a数据写入磁盘的完成通知插入修改缓冲区。
12、b的数据被写入磁盘。
13、b数据写入磁盘的完成通知插入修改缓冲区。
14、定时日志任务刷写,a和b的写入磁盘完成通知,被写入磁盘。
此时完整的日志流程被写入,此时Fas侧日志系统被完整写入。
步骤S103,所述Fac接收到所述Fas返回的文件数据推送完成消息后,向Flr发送元数据修改变化请求;
Fac接收到Fas返回的文件数据推送完成消息后,向Flr发送元数据修改变化请求,在元数据修改变化请求中附带上日志文件系统的相关数据。
作为一种优选实施方式,Fac在向Flr发送元数据修改变化请求时,具体可以采用如下方案:
Fac接收到所述Fas返回的文件数据推送完成消息后,将对应的元数据修改变化请求填入修改待通知缓冲区。
当设定的定时时间到达时,将修改待通知缓冲区内的所有元数据修改变化请求发送至Flr。
以Fac向Flr发送数据a的元数据修改变化请求、数据b的元数据修改变化请求、数据c的元数据修改变化请求、数据d的元数据修改变化请求为例,Fac向Flr发送元数据修改变化请求的具体处理流程可以如图4所示。
1、Fac写x文件后将a的修改填入修改待通知缓冲区;
2、Fac写x文件后将b的修改填入修改待通知缓冲区;
3、Fac写x文件后将c的修改填入修改待通知缓冲区;
4、Fac写y文件后将d的修改填入修改待通知缓冲区。
此时是检测时间已经达到要求的时间区间,同时定时器还没有触发,则触发发送元数据同步消息给Flr,同时重新设置定时器。
当一段时间后,定时器触发,将待通知缓冲区内的消息,通知到Flr并重行设置定时器。此种处理方式,可以大大的减轻对于Flr主控消息的数量,同时在短小的时间间隔内又可以尽可能的保持实时性。
步骤S104,所述Flr根据所述元数据修改变化请求,修改相应的元数据,并记录至日志文件系统;
Flr收到元数据修改变化后修改相应元数据,并通过附加日志相关数据记录,将相关元数据修改到日志系统中。与此同时,Fas刷写数据入磁盘,在确定写入成功后刷写日志。
另外,Flr按照时间的顺序,将相关处理的条目加入对应的Fas的缓冲区。
步骤S105,当监测到所述Fas异常重启时,所述Flr根据日志记录,进行相应修改数据的回滚操作,完成日志文件系统的修复。
Flr通过接收Fas定期发送的心跳报文来监测Fas是否异常。
Fas定期发送stillalive消息,以表明Fas依然在工作。
当监测到来自Fas的心跳报文时,判定所述Fas正常,当监测到连续若干次丢失心跳报文时,判定所述Fas异常。
对于Fas发送来的心跳报文,Flr不做处理,但是如果出现某个连续丢失心跳报文的情况,Flr就需要对丢失心跳报文的Fas做滞后处理,保证如果是真实的Fas宕机复位,将做相关操作的回滚动作。
具体地,当监测到所述Fas异常重启时,所述Flr根据日志记录,进行回滚操作,即从当前时间点,将日志记录的修改数据向前回退特定时间长度,该特定时间长度的修改数据对应于所述Fas的所有修改记录,即Fac上报的数据修改变化。
当所述Fas上电时,发送回滚请求到Flr以回滚相应的数据;Flr根据所述回滚请求回滚相应的数据至对应的Fas的缓冲区,完成日志文件系统的修复。
本实施例中Flr的处理流程可以如图5所示。
当其中的一台Fas异常宕机重启的情况下,日志系统进入修复流程。流程首先于Flr上触发,当Flr确认一台Fas重启了,日志系统将通过Flr上的日志记录回滚特定时间长度对应于这台Fas的所有修改记录。同时当这台Fas上电时,通过Fas本地记录的日志,回滚那些写入Fas但是没有写入磁盘的相关数据,发送回滚请求到Flr以回滚相应的数据。
当两个流程运行完成,修复流程顺利完成,同时系统在修复流程中,通过其它副本的存在依然提供一致性的数据,达到对用户的不可见。
本系统可以在不降低文件系统响应的前提下,提供滞后的日志文件系统的所有特性,保证系统复位重启后文件的高一致性。
相比现有技术,本施例方案中,Fac获取文件数据,推送给Fas;Fas记录Fac推送过来的文件数据,在缓冲区记录下此次Fas上对应的元数据的修改,写入日志文件,并向所述Fac返回文件数据推送完成消息;Fac接收到所述Fas返回的文件数据推送完成消息后,向Flr发送元数据修改变化请求;Flr根据所述元数据修改变化请求,修改相应的元数据,并记录至日志文件系统;当监测到所述Fas异常重启时,Flr根据日志记录,进行相应修改数据的回滚操作,完成日志文件系统的修复,保证了分布式文件系统复位重启后文件的最终高一致性,避免机器宕机重启所带来的多副本间数据的不一致性,同时最大程度的减少由于日志系统的添加而带来相应的延迟和性能上的损失。
本日志系统对于分布式系统的规模没有敏感性与相关性,对系统压力是常量,不会因为集群的扩大而增大日志系统的压力。具有良好的收敛性,同时没有网络上的额外开销。对于日志系统所在磁盘压力极小,是一种以较高错杀率为代价的高性能,低延迟的日志文件系统。
如图6所示,本发明一实施例提出一种分布式文件系统,包括:Fac201、Fas202及Flr203,其中:
所述Fac201,用于获取文件数据,推送给Fas202;
所述Fas202,用于记录Fac201推送过来的文件数据,在缓冲区记录下此次Fas202上对应的元数据的修改,写入日志文件,并向所述Fac201返回文件数据推送完成消息;
所述Fac201,还用于接收到所述Fas202返回的文件数据推送完成消息后,向Flr203发送元数据修改变化请求;
所述Flr203,用于根据所述元数据修改变化请求,修改相应的元数据,并记录至日志文件系统;
所述Flr203,还用于当监测到所述Fas202异常重启时,根据日志记录,进行相应修改数据的回滚操作,完成日志文件系统的修复。
具体地,Fac201:文件服务客户端,用于提供用户与分布式文件系统内部数据的衔接。
Fas202:文件数据服务器,用于存放文件实际的数据。
Flr203:文件位置寄存器,用于存放文件与数据对应的元数据等的相关信息。
由于目前在大部分的分布式文件系统中,一部分注重吞吐量性能,但是却降低了文件系统一致性的保证,并没有提供类似于本地文件系统日志文件系统的保障。而另一部分在保证了同步的一致性的情况下,却大大降低了写和修改的性能。现有方案在服务器宕机重启后,无法保证文件多个副本内数据的一致性。
本实施例方案提出一种针对双层元数据情况下的,滞后形的日志文件系统方式,可以在不降低文件系统响应的前提下,提供滞后的日志文件系统的所有特性,保证系统复位重启后文件的高一致性。
关于日志文件的作用:以本地文件系统为例,ext2文件系统是一个通用的文件系统,本身不带有日志文件系统的功能,在复位、断电过程中很可能会丢失正在写或修改的一些数据,而造成元数据与数据的不一致性。而针对这一问题,ext3文件系统进行了改进,添加了日志系统的功能,在上电的时候通过对日志部分的重放,修正文件系统的一致性。
具体地,本实施例所涉及的双层元数据是指:在Flr203和Fas202上都有对应元数据的成分,Flr203上对应的是文件分片数据位置名称信息,Fas202上存放着分片名称与实际磁盘块的对应信息。通俗的讲,构建在本地文件系统之上的含有管理元数据的分布式文件系统,都属于这种双层元数据分布式文件系统范畴。
本实施例方案中,Fac201的作用为发送相关元数据修改变化请求,本身可以借助原有分布式文件系统的相关功能。
Fas202本身是一个构建于双层元数据类下层元数据上的功能,通过这个部分,保证在Fas202上,可以构建一个有效的元数据修改记录的日志部分,保证Fas202侧的一致性。
Flr203构建在双层元数据的上层元数据上,主要保证关于上层元数据层修改之后的日志重放回滚问题。
系统中Fac201、Fas202及Flr203之间的交互流程可以如图2所示。
更为具体地,首先,Fac201获取文件数据,推送给Fas202,用于存储数据。
Fas202记录Fac201推送过来的文件数据,同时在缓冲区里记录下此次Fas202上元数据的修改,并向所述Fac201返回文件数据推送完成消息。
此外,Fas202定期的先于数据将修改的缓冲区刷写入正常的日志文件中。
Fas202刷写数据到磁盘之后,将刷写成功的元数据修改完成放入缓冲区,定期刷写入日志文件中。
其中,Fac201与Fas202之间交互以及Fas202刷写时序可以如图3所示。
以Fac201发送数据a和数据b到Fas202为例,具体处理流程如下:
1、Fac201发送数据a到Fas202。
2、Fas202将修改数据a的通知插入修改缓冲区。
3、Fas202将数据a写入数据缓冲区。
4、Fas202返回给Fac201,通知Fac201,a已经写数据成功。(此时之后就开启了向Flr203发送元数据修改通知)
5、Fac201发送数据b到Fas202。
6、Fas202将修改数据b的通知插入修改缓冲区。
7、Fas202将数据b写入数据缓冲区。
8、Fas202返回给Fac201,通知Fac201,b已经写数据成功。(步骤5~8代表不同的数据,这里体现出异步通知的速度)
9、定时日志任务刷写,a和b的修改通知被写入磁盘。
10、a的数据被写入磁盘。
11、a数据写入磁盘的完成通知插入修改缓冲区。
12、b的数据被写入磁盘。
13、b数据写入磁盘的完成通知插入修改缓冲区。
14、定时日志任务刷写,a和b的写入磁盘完成通知,被写入磁盘。
此时完整的日志流程被写入,此时Fas202侧日志系统被完整写入。
Fac201接收到Fas202返回的文件数据推送完成消息后,向Flr203发送元数据修改变化请求,在元数据修改变化请求中附带上日志文件系统的相关数据。
作为一种优选实施方式,Fac201在向Flr203发送元数据修改变化请求时,具体可以采用如下方案:
Fac201接收到所述Fas202返回的文件数据推送完成消息后,将对应的元数据修改变化请求填入修改待通知缓冲区。
当设定的定时时间到达时,将修改待通知缓冲区内的所有元数据修改变化请求发送至Flr203。
以Fac201向Flr203发送数据a的元数据修改变化请求、数据b的元数据修改变化请求、数据c的元数据修改变化请求、数据d的元数据修改变化请求为例,Fac201向Flr203发送元数据修改变化请求的具体处理流程可以如图4所示。
1、Fac201写x文件后将a的修改填入修改待通知缓冲区;
2、Fac201写x文件后将b的修改填入修改待通知缓冲区;
3、Fac201写x文件后将c的修改填入修改待通知缓冲区;
4、Fac201写y文件后将d的修改填入修改待通知缓冲区。
此时是检测时间已经达到要求的时间区间,同时定时器还没有触发,则触发发送元数据同步消息给Flr203,同时重新设置定时器。
当一段时间后,定时器触发,将待通知缓冲区内的消息,通知到Flr203并重行设置定时器。此种处理方式,可以大大的减轻对于Flr203主控消息的数量,同时在短小的时间间隔内又可以尽可能的保持实时性。
Flr203收到元数据修改变化后修改相应元数据,并通过附加日志相关数据记录,将相关元数据修改到日志系统中。与此同时,Fas202刷写数据入磁盘,在确定写入成功后刷写日志。
另外,Flr203按照时间的顺序,将相关处理的条目加入对应的Fas202的缓冲区。
当监测到所述Fas202异常重启时,所述Flr203根据日志记录,进行相应修改数据的回滚操作,完成日志文件系统的修复。
Flr203通过接收Fas202定期发送的心跳报文来监测Fas202是否异常。
Fas202定期发送stillalive消息,以表明Fas202依然在工作。
当监测到来自Fas202的心跳报文时,判定所述Fas202正常,当监测到连续若干次丢失心跳报文时,判定所述Fas202异常。
对于Fas202发送来的心跳报文,Flr203不做处理,但是如果出现某个连续丢失心跳报文的情况,Flr203就需要对丢失心跳报文的Fas202做滞后处理,保证如果是真实的Fas202宕机复位,将做相关操作的回滚动作。
具体地,当监测到所述Fas202异常重启时,所述Flr203根据日志记录,进行回滚操作,即将日志记录的修改数据,从日志记录的当前时间点回退设定时间长度,所述设定时间长度的修改数据对应于所述Fas202的所有修改记录,即Fac上报的数据修改变化。
当所述Fas202上电时,发送回滚请求到Flr203以回滚相应的数据;Flr203根据所述回滚请求回滚相应的数据至对应的Fas202的缓冲区,完成日志文件系统的修复。
本实施例中Flr203的处理流程可以如图5所示。
当其中的一台Fas202异常宕机重启的情况下,日志系统进入修复流程。流程首先于Flr203上触发,当Flr203确认一台Fas202重启了,日志系统将通过Flr203上的日志记录回滚特定时间长度对应于这台Fas202的所有修改记录。同时当这台Fas202上电时,通过Fas202本地记录的日志,回滚那些写入Fas202但是没有写入磁盘的相关数据,发送回滚请求到Flr203以回滚相应的数据。
当两个流程运行完成,修复流程顺利完成,同时系统在修复流程中,通过其它副本的存在依然提供一致性的数据,达到对用户的不可见。
本系统可以在不降低文件系统响应的前提下,提供滞后的日志文件系统的所有特性,保证系统复位重启后文件的高一致性。
相比现有技术,本施例方案中,Fac201获取文件数据,推送给Fas202;Fas202记录Fac201推送过来的文件数据,在缓冲区记录下此次Fas202上对应的元数据的修改,写入日志文件,并向所述Fac201返回文件数据推送完成消息;Fac201接收到所述Fas202返回的文件数据推送完成消息后,向Flr203发送元数据修改变化请求;Flr203根据所述元数据修改变化请求,修改相应的元数据,并记录至日志文件系统;当监测到所述Fas202异常重启时,Flr203根据日志记录,进行相应修改数据的回滚操作,完成日志文件系统的修复,保证了分布式文件系统复位重启后文件的最终高一致性,避免机器宕机重启所带来的多副本间数据的不一致性,同时最大程度的减少由于日志系统的添加而带来相应的延迟和性能上的损失。
本发明实施例中日志系统对于分布式系统的规模没有敏感性与相关性,对系统压力是常量,不会因为集群的扩大而增大日志系统的压力。具有良好的收敛性,同时没有网络上的额外开销。对于日志系统所在磁盘压力极小,是一种以较高错杀率为代价的高性能,低延迟的日志文件系统。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种分布式文件系统的数据处理方法,其特征在于,包括:
文件服务客户端Fac获取文件数据,推送给文件数据服务器Fas;
所述Fas记录Fac推送过来的文件数据,在缓冲区记录下此次Fas上对应的元数据的修改,写入日志文件,并向所述Fac返回文件数据推送完成消息;
所述Fac接收到所述Fas返回的文件数据推送完成消息后,向文件位置寄存器Flr发送元数据修改变化请求;
所述Flr根据所述元数据修改变化请求,修改相应的元数据,并记录至日志文件系统;
当监测到所述Fas异常重启时,所述Flr根据日志记录,进行相应修改数据的回滚操作,完成日志文件系统的修复。
2.根据权利要求1所述的方法,其特征在于,所述Flr根据所述元数据修改变化请求,修改相应的元数据,并记录至日志文件系统的步骤中还包括:
所述Flr按照时间的顺序,将相关处理的条目加入对应的Fas的缓冲区。
3.根据权利要求1所述的方法,其特征在于,所述当监测到Fas异常重启时,所述Flr根据日志记录,进行相应修改数据的回滚操作,完成日志文件系统的修复的步骤包括:
当监测到所述Fas异常重启时,所述Flr根据日志记录,将日志记录的修改数据,从日志记录的当前时间点回退设定时间长度,所述设定时间长度的修改数据对应于所述Fas的所有修改记录;
当所述Fas上电时,发送回滚请求到Flr以回滚相应的数据;
所述Flr根据所述回滚请求回滚相应的数据至对应的Fas的缓冲区,完成日志文件系统的修复。
4.根据权利要求1、2或3所述的方法,其特征在于,所述Flr监测Fas异常的步骤包括:
所述Flr接收所述Fas定期发送的心跳报文;
当监测到连续若干次丢失心跳报文时,判定所述Fas异常。
5.根据权利要求4所述的方法,其特征在于,所述Fac接收到所述Fas返回的文件数据推送完成消息后,向Flr发送元数据修改变化请求的步骤包括:
所述Fac接收到所述Fas返回的文件数据推送完成消息后,将对应的元数据修改变化请求填入修改待通知缓冲区;
当设定的定时时间到达时,将修改待通知缓冲区内的所有元数据修改变化请求发送至Flr。
6.一种分布式文件系统,其特征在于,包括:文件服务客户端Fac、文件数据服务器Fas及文件位置寄存器Flr,其中:
所述Fac,用于获取文件数据,推送给Fas;
所述Fas,用于记录Fac推送过来的文件数据,在缓冲区记录下此次Fas上对应的元数据的修改,写入日志文件,并向所述Fac返回文件数据推送完成消息;
所述Fac,还用于接收到所述Fas返回的文件数据推送完成消息后,向Flr发送元数据修改变化请求;
所述Flr,用于根据所述元数据修改变化请求,修改相应的元数据,并记录至日志文件系统;
所述Flr,还用于当监测到所述Fas异常重启时,根据日志记录,进行相应修改数据的回滚操作,完成日志文件系统的修复。
7.根据权利要求6所述的系统,其特征在于,
所述Flr,还用于按照时间的顺序,将相关处理的条目加入对应的Fas的缓冲区。
8.根据权利要求6所述的系统,其特征在于,
所述Flr,还用于当监测到所述Fas异常重启时,根据日志记录,将日志记录的修改数据,从日志记录的当前时间点回退设定时间长度,所述设定时间长度的修改数据对应于所述Fas的所有修改记录;
所述Fas,还用于当所述Fas上电时,发送回滚请求到Flr以回滚相应的数据;
所述Flr,还用于根据所述回滚请求回滚相应的数据至对应的Fas的缓冲区,完成日志文件系统的修复。
9.根据权利要求6、7或8所述的系统,其特征在于,
所述Flr,还用于接收所述Fas定期发送的心跳报文;当监测到连续若干次丢失心跳报文时,判定所述Fas异常。
10.根据权利要求9所述的系统,其特征在于,
所述Fac,还用于接收到所述Fas返回的文件数据推送完成消息后,将对应的元数据修改变化请求填入修改待通知缓冲区;当设定的定时时间到达时,将修改待通知缓冲区内的所有元数据修改变化请求发送至Flr。
CN201410578968.2A 2014-10-24 2014-10-24 分布式文件系统的数据处理方法及分布式文件系统 Active CN105589887B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410578968.2A CN105589887B (zh) 2014-10-24 2014-10-24 分布式文件系统的数据处理方法及分布式文件系统
PCT/CN2015/072772 WO2016061956A1 (zh) 2014-10-24 2015-02-11 分布式文件系统的数据处理方法及分布式文件系统
PCT/CN2015/076473 WO2015184925A1 (zh) 2014-10-24 2015-04-13 分布式文件系统的数据处理方法及分布式文件系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410578968.2A CN105589887B (zh) 2014-10-24 2014-10-24 分布式文件系统的数据处理方法及分布式文件系统

Publications (2)

Publication Number Publication Date
CN105589887A true CN105589887A (zh) 2016-05-18
CN105589887B CN105589887B (zh) 2020-04-03

Family

ID=54766145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410578968.2A Active CN105589887B (zh) 2014-10-24 2014-10-24 分布式文件系统的数据处理方法及分布式文件系统

Country Status (2)

Country Link
CN (1) CN105589887B (zh)
WO (2) WO2016061956A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106599046A (zh) * 2016-11-09 2017-04-26 深圳市中博睿存科技有限公司 分布式文件系统的写入方法及装置
CN108021562A (zh) * 2016-10-31 2018-05-11 中兴通讯股份有限公司 应用于分布式文件系统的存盘方法、装置及分布式文件系统
CN109117093A (zh) * 2018-08-20 2019-01-01 赛凡信息科技(厦门)有限公司 保证分布式对象存储中的数据、流量、容量一致性的方案
CN109284066A (zh) * 2017-07-19 2019-01-29 阿里巴巴集团控股有限公司 一种数据处理方法、装置、设备及系统
CN110096358A (zh) * 2019-04-11 2019-08-06 上海交通大学 动力装备远程中心分布式存储与分布式计算方法
CN111522688A (zh) * 2019-02-01 2020-08-11 阿里巴巴集团控股有限公司 分布式系统的数据备份方法及装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143126A (zh) * 2019-12-20 2020-05-12 浪潮电子信息产业股份有限公司 一种分布式文件系统的数据拷贝方法、系统及相关组件
CN114504828B (zh) * 2022-02-08 2023-04-28 北京趣玩天橙科技有限公司 一种数据回滚实现内存一致性的方法及系统
CN117950597B (zh) * 2024-03-22 2024-06-18 浙江大华技术股份有限公司 数据修改写方法、数据修改写装置以及计算机存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100199042A1 (en) * 2009-01-30 2010-08-05 Twinstrata, Inc System and method for secure and reliable multi-cloud data replication
CN102368267A (zh) * 2011-10-25 2012-03-07 曙光信息产业(北京)有限公司 一种维护分布式系统中副本一致性的方法
CN102833273A (zh) * 2011-06-13 2012-12-19 中兴通讯股份有限公司 临时故障时的数据修复方法及分布式缓存系统
CN103051681A (zh) * 2012-12-06 2013-04-17 华中科技大学 一种面向分布式文件系统的协作式日志系统
CN103198159A (zh) * 2013-04-27 2013-07-10 国家计算机网络与信息安全管理中心 一种基于事务重做的异构集群多副本一致性维护方法
CN103297268A (zh) * 2013-05-13 2013-09-11 北京邮电大学 基于p2p技术的分布式数据一致性维护系统和方法
CN103294787A (zh) * 2013-05-21 2013-09-11 成都市欧冠信息技术有限责任公司 分布式数据库系统的多副本存储方法和系统
CN103729436A (zh) * 2013-12-27 2014-04-16 中国科学院信息工程研究所 一种分布式元数据管理方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681072B1 (en) * 2004-08-13 2010-03-16 Panasas, Inc. Systems and methods for facilitating file reconstruction and restoration in data storage systems where a RAID-X format is implemented at a file level within a plurality of storage devices
CN101916215B (zh) * 2010-08-09 2012-02-01 哈尔滨工程大学 一种基于操作截取的分布式关键任务系统悔改方法
CN102024016B (zh) * 2010-11-04 2013-03-13 曙光信息产业股份有限公司 一种分布式文件系统快速数据恢复的方法
CN102662795A (zh) * 2012-03-20 2012-09-12 浪潮电子信息产业股份有限公司 一种分布式存储系统中元数据容错恢复方法
KR101694288B1 (ko) * 2012-06-08 2017-01-09 한국전자통신연구원 비대칭형 클러스터 파일 시스템의 데이터 관리 방법
CN102890716B (zh) * 2012-09-29 2017-08-08 南京中兴新软件有限责任公司 分布式文件系统和分布式文件系统的数据备份方法
CN103077222B (zh) * 2012-12-31 2016-01-27 中国科学院计算技术研究所 机群文件系统分布式元数据一致性保证方法及系统
CN103279568A (zh) * 2013-06-18 2013-09-04 无锡紫光存储系统有限公司 一种元数据管理系统及方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100199042A1 (en) * 2009-01-30 2010-08-05 Twinstrata, Inc System and method for secure and reliable multi-cloud data replication
CN102833273A (zh) * 2011-06-13 2012-12-19 中兴通讯股份有限公司 临时故障时的数据修复方法及分布式缓存系统
CN102368267A (zh) * 2011-10-25 2012-03-07 曙光信息产业(北京)有限公司 一种维护分布式系统中副本一致性的方法
CN103051681A (zh) * 2012-12-06 2013-04-17 华中科技大学 一种面向分布式文件系统的协作式日志系统
CN103198159A (zh) * 2013-04-27 2013-07-10 国家计算机网络与信息安全管理中心 一种基于事务重做的异构集群多副本一致性维护方法
CN103297268A (zh) * 2013-05-13 2013-09-11 北京邮电大学 基于p2p技术的分布式数据一致性维护系统和方法
CN103294787A (zh) * 2013-05-21 2013-09-11 成都市欧冠信息技术有限责任公司 分布式数据库系统的多副本存储方法和系统
CN103729436A (zh) * 2013-12-27 2014-04-16 中国科学院信息工程研究所 一种分布式元数据管理方法及系统

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108021562A (zh) * 2016-10-31 2018-05-11 中兴通讯股份有限公司 应用于分布式文件系统的存盘方法、装置及分布式文件系统
CN108021562B (zh) * 2016-10-31 2022-11-18 中兴通讯股份有限公司 应用于分布式文件系统的存盘方法、装置及分布式文件系统
CN106599046A (zh) * 2016-11-09 2017-04-26 深圳市中博睿存科技有限公司 分布式文件系统的写入方法及装置
CN109284066A (zh) * 2017-07-19 2019-01-29 阿里巴巴集团控股有限公司 一种数据处理方法、装置、设备及系统
CN109284066B (zh) * 2017-07-19 2022-09-30 阿里巴巴集团控股有限公司 一种数据处理方法、装置、设备及系统
CN109117093A (zh) * 2018-08-20 2019-01-01 赛凡信息科技(厦门)有限公司 保证分布式对象存储中的数据、流量、容量一致性的方案
CN111522688A (zh) * 2019-02-01 2020-08-11 阿里巴巴集团控股有限公司 分布式系统的数据备份方法及装置
CN111522688B (zh) * 2019-02-01 2023-09-15 阿里巴巴集团控股有限公司 分布式系统的数据备份方法及装置
CN110096358A (zh) * 2019-04-11 2019-08-06 上海交通大学 动力装备远程中心分布式存储与分布式计算方法

Also Published As

Publication number Publication date
WO2015184925A1 (zh) 2015-12-10
WO2016061956A1 (zh) 2016-04-28
CN105589887B (zh) 2020-04-03

Similar Documents

Publication Publication Date Title
CN105589887A (zh) 分布式文件系统的数据处理方法及分布式文件系统
CN105389230B (zh) 一种结合快照技术的持续数据保护系统及方法
WO2019154394A1 (zh) 分布式数据库集群系统、数据同步方法及存储介质
CN110309218B (zh) 一种数据交换系统和数据写入方法
US8271441B1 (en) Virtualized CG
US8478955B1 (en) Virtualized consistency group using more than one data protection appliance
CN101582920B (zh) 一种分布式文件系统中校验和同步数据块的方法及装置
CN103095769B (zh) 跨机房的数据同步方法以及系统
KR101662212B1 (ko) 부분동기화 지원 데이터베이스 관리 시스템 및 데이터베이스 관리 시스템에서 부분동기화 방법
CN108076090B (zh) 数据处理方法和存储管理系统
JP2019036353A (ja) 索引更新パイプライン
WO2018098972A1 (zh) 一种日志恢复方法、存储装置和存储节点
CN103761165B (zh) 日志备份方法及装置
CN105493474B (zh) 用于支持用于同步分布式数据网格中的数据的分区级别日志的系统及方法
JP2016524750A5 (zh)
CN103116661A (zh) 一种数据库的数据处理方法
CN104111804A (zh) 一种分布式文件系统
CN103186554A (zh) 分布式数据镜像方法及存储数据节点
CN104378423A (zh) 元数据集群分布式存储系统及读取、写入存储数据的方法
CN105574187A (zh) 一种异构数据库复制事务一致性保障方法及系统
CN103207894A (zh) 一种多路实时视频数据存储系统及其进行缓存控制的方法
WO2014060882A1 (en) Consistency group management
CN113268472B (zh) 一种分布式数据存储系统及方法
US10372554B1 (en) Verification and restore of replicated data using a cloud storing chunks of data and a plurality of hashes
CN103902405A (zh) 一种准连续性数据复制方法及装置

Legal Events

Date Code Title Description
C06 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