CN102567445A - 一种分布式文件系统中保证元数据一致性的方法 - Google Patents
一种分布式文件系统中保证元数据一致性的方法 Download PDFInfo
- Publication number
- CN102567445A CN102567445A CN2011103265104A CN201110326510A CN102567445A CN 102567445 A CN102567445 A CN 102567445A CN 2011103265104 A CN2011103265104 A CN 2011103265104A CN 201110326510 A CN201110326510 A CN 201110326510A CN 102567445 A CN102567445 A CN 102567445A
- Authority
- CN
- China
- Prior art keywords
- metadata
- data block
- write
- revised
- file system
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种分布式文件系统中保证元数据一致性的方法,将分布式文件系统以块为单位进行组织存储;在元数据修改时,首先修改内存数据块,同时将对数据块的修改记录下来;将元数据数据块修改信息写到日志文件,并将修改后的元数据数据块同步到磁盘;在修改后的元数据数据块同步到磁盘后,丢弃日志文件中对元数据块的记录条目,只保留修改记录;在故障发生后,进入恢复流程,根据日志文件中对元数据块的修改信息,再次将相应修改应用到元数据块。本发明在不影响元数据操作效率的前提下,能够保证故障发生后,通过恢复来清除故障发生时尚未来得及完全同步到磁盘上的元数据,使整个文件系统的元数据达到一致性。
Description
技术领域
本发明涉及分布式文件系统中数据存储,具体来说,涉及一种分布式文件系统中保证元数据一致性的方法。
背景技术
在分布式文件系统中,元数据信息是整个文件系统的核心,一旦元数据损坏而丢失一致性,则轻则会导致部分文件丢失,重则导致整个文件系统的瘫痪,无法对外提供正常的服务,其后果将非常严重。
当前常用的分布式文件系统,如NFS、Lustre等,均依赖于ext3等本地文件系统的日志机制来组织元数据,这样使元数据存储局限于单个元数据服务节点,在很多应用场景下,如互联网应用,元数据服务器将会成为瓶颈,极大地限制了分布式文件系统提供服务的能力。而对于一些自己在用户态组织元数据的分布式文件系统,如Google FS,Hadoop等,这些文件系统的元数据则通过在远程节点记录逻辑日志的方式来保证一旦元数据服务节点发生故障后能够恢复到一致的状态,这种方式下,需要和远程机器通信,因而使得元数据操作的时间变长,从而使得整个系统的元数据服务能力大大降低。
用户态组织元数据的问题在于,内核线程会不定时回刷写入的 数据,因此对于元数据的修改何时到达磁盘是未知的,因此难以保证其一致性。
发明内容
为解决上述问题,本发明提供了一种分布式文件系统中保证元数据一致性的方法。
一种分布式文件系统中保证元数据一致性的方法,将分布式文件系统以块为单位进行组织存储;
在元数据修改时,首先修改内存数据块,同时将对数据块的修改记录下来;
将元数据数据块修改信息写到日志文件,并将修改后的元数据数据块同步到磁盘;
在修改后的元数据数据块同步到磁盘后,丢弃日志文件中对元数据块的记录条目,只保留修改记录;
在故障发生后,进入恢复流程,根据日志文件中对元数据块的修改信息,再次将相应修改应用到元数据块。
优选的,所述分布式文件系统是在用户态下组织管理的。
优选的,所述数据块使用Linux系统提供的私有内存映射机制将数据块映射到内存。
优选的,所述私有内存映射机制在修改内存数据时,将页面缓存中的页面进行一份拷贝,直接修改拷贝的页面。
优选的,如果需要修改的数据块已经存在于日志队列中,则复制 一份日志记录,保证日志记录与实际操作的元数据一致。
优选的,所述日志文件中的记录条目丢弃过程为:日志处理线程收到日志记录时,逐条进行处理,将收到的日志记录一同写到日志文件,并同步到磁盘上;
将修改记录挂入元数据回写队列,提交给元数据回写线程,修改回写线程对于接收到的请求,写入磁盘同步后,将对应的日志记录进行丢弃。
本发明在不影响元数据操作效率的前提下,能够保证故障发生后,通过恢复来清除故障发生时尚未来得及完全同步到磁盘上的元数据,使整个文件系统的元数据达到一致性。
具体实施方式
在本发明中,整个分布式文件系统的元数据在用户态自己组织,整个元数据存储介质以类似ext3的形式,以块为单位进行组织。将元数据操作分为三个阶段:第一阶段,是元数据的内存操作,该阶段仅仅操作内存数据块,同时将对数据块的修改记录下来,由于这些内存不受操作系统内核页面缓存回刷线程的监控,因此不会被同步到磁盘上;第二阶段,将元数据的数据块修改信息写到日志文件,并同步到磁盘;第三阶段,将对于元数据的修改,更新到磁盘元数据文件并同步的磁盘之后,丢弃日志文件上的记录条目。在故障发生后,进入恢复流程,根据日志文件上尚存在的块修改信息,将相应修改再次应用的元数据文件即可。
发明中的技术方案具体描述如下:
(1)文件系统的所有元数据存储于同一个的文件中,对文件采用类似ext3等磁盘文件系统的块组织方式进行管理。这样,对整个文件系统元数据的存取和基于块设备的文件系统基本一致,但由于出于用户态,因此开发和调试成本较低。
(2)对于该存储元数据的文件,采取分区管理,每个区域可以是若干个块。对于操作的块,使用Linux操作系统提供的私有内存映射(private方式的mmap)将文件的该区映射到内存区域。私有内存映射机制可以保证,在修改内存区域时,不会直接修改文件页面缓存中的页面,而是对页面进行一份拷贝,在拷贝上进行修改,因此不会修改磁盘上的内容,及该修改对于磁盘是不可见的。在发生元数据修改时,同时记录修改涉及到的块号,将修改记录挂入日志队列,提交给日志处理线程,即可给客户端返回,以保证客户端的响应速度。
(3)如果对于同一数据块有多次修改,则需要保证提交给日志处理队列的记录中,块内容仍然是该修改记录发生的块内容,而非最新的修改内容,否则会导致日志应用后,磁盘元数据与操作顺序不吻合。因此,本发明中,当发现数据块已经存在于日志队列时,会为日志记录重新拷贝一份,保证日志记录与其实际对应的操作产生的元数据是一致的。
(4)当日志处理线程收到日志记录时,会逐条进行处理,将收到的日志记录一同写到日志文件,并同步到磁盘上。之后,将修 改记录挂入元数据回写队列,提交给元数据回写线程,修改回写线程对于接收到的请求,写入磁盘,并同步后,将对应的日志记录进行丢弃即可
(5)当发生故障时,对于那些正在往磁盘上同步的元数据修改,由于其状态未知,因此需要重新从日志文件中读出,并再次写入到元数据文件中,以保证这些操作完整地同步到磁盘上。
Claims (6)
1.一种分布式文件系统中保证元数据一致性的方法,其特征在于:将分布式文件系统以块为单位进行组织存储;
在元数据修改时,首先修改内存数据块,同时将对数据块的修改记录下来;
将元数据数据块修改信息写到日志文件,并将修改后的元数据数据块同步到磁盘;
在修改后的元数据数据块同步到磁盘后,丢弃日志文件中对元数据块的记录条目,只保留修改记录;
在故障发生后,进入恢复流程,根据日志文件中对元数据块的修改信息,再次将相应修改应用到元数据块。
2.如权利要求1所述的方法,其特征在于:所述分布式文件系统是在用户态下组织管理的。
3.如权利要求1所述的方法,其特征在于:所述数据块使用Linux系统提供的私有内存映射机制将数据块映射到内存。
4.如权利要求3所述的方法,其特征在于:所述私有内存映射机制在修改内存数据时,将页面缓存中的页面进行一份拷贝,直接修改拷贝的页面。
5.如权利要求1所述的方法,其特征在于:如果需要修改的数据块已经存在于日志队列中,则复制一份日志记录,保证日志记录与实际操作的元数据一致。
6.如权利要求1所述的方法,其特征在于:所述日志文件中的记录条目丢弃过程为:日志处理线程收到日志记录时,逐条进行处理,将收到的日志记录一同写到日志文件,并同步到磁盘上;
将修改记录挂入元数据回写队列,提交给元数据回写线程,修改回写线程对于接收到的请求,写入磁盘同步后,将对应的日志记录进行丢弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110326510.4A CN102567445B (zh) | 2011-10-25 | 2011-10-25 | 一种分布式文件系统中保证元数据一致性的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110326510.4A CN102567445B (zh) | 2011-10-25 | 2011-10-25 | 一种分布式文件系统中保证元数据一致性的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102567445A true CN102567445A (zh) | 2012-07-11 |
CN102567445B CN102567445B (zh) | 2014-07-02 |
Family
ID=46412869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110326510.4A Active CN102567445B (zh) | 2011-10-25 | 2011-10-25 | 一种分布式文件系统中保证元数据一致性的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102567445B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103095687A (zh) * | 2012-12-19 | 2013-05-08 | 华为技术有限公司 | 元数据处理方法及装置 |
CN103235754A (zh) * | 2013-04-24 | 2013-08-07 | 曙光信息产业(北京)有限公司 | 分布式文件系统中请求的处理方法和装置 |
CN104462261A (zh) * | 2014-11-23 | 2015-03-25 | 国云科技股份有限公司 | 一种仅有mdf文件附加还原数据库的方法 |
CN104731827A (zh) * | 2013-12-24 | 2015-06-24 | 重庆新媒农信科技有限公司 | 快速分布式文件系统文件元数据的生成方法及装置 |
CN105556462A (zh) * | 2013-07-29 | 2016-05-04 | 惠普发展公司,有限责任合伙企业 | 写入文件和文件元数据 |
CN105630413A (zh) * | 2015-12-23 | 2016-06-01 | 中国科学院深圳先进技术研究院 | 一种磁盘数据的同步回写方法 |
CN105808152A (zh) * | 2014-12-29 | 2016-07-27 | 曙光云计算技术有限公司 | 一种优化raid全局元数据读写性能的方法 |
CN103210389B (zh) * | 2012-07-31 | 2016-08-10 | 华为技术有限公司 | 一种元数据的处理方法和装置 |
WO2016134639A1 (zh) * | 2015-02-27 | 2016-09-01 | 阿里巴巴集团控股有限公司 | 一种数据块处理方法和设备 |
CN108121514A (zh) * | 2017-12-29 | 2018-06-05 | 北京奇虎科技有限公司 | 元信息更新方法、装置、计算设备及计算机存储介质 |
CN108427728A (zh) * | 2018-02-13 | 2018-08-21 | 百度在线网络技术(北京)有限公司 | 元数据的管理方法、设备及计算机可读介质 |
CN108900337A (zh) * | 2018-06-29 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种元数据服务的故障恢复方法、服务器、客户端及系统 |
CN109117093A (zh) * | 2018-08-20 | 2019-01-01 | 赛凡信息科技(厦门)有限公司 | 保证分布式对象存储中的数据、流量、容量一致性的方案 |
CN109241004A (zh) * | 2018-09-26 | 2019-01-18 | 郑州云海信息技术有限公司 | 元数据文件大小恢复方法、系统、装置及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7631009B1 (en) * | 2007-01-02 | 2009-12-08 | Emc Corporation | Redundancy check of transaction records in a file system log of a file server |
CN101697168A (zh) * | 2009-10-22 | 2010-04-21 | 中国科学技术大学 | 一种分布式文件系统动态元数据管理方法及系统 |
CN102024021A (zh) * | 2010-11-04 | 2011-04-20 | 曙光信息产业(北京)有限公司 | 一种逻辑文件系统元数据的日志方法 |
-
2011
- 2011-10-25 CN CN201110326510.4A patent/CN102567445B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7631009B1 (en) * | 2007-01-02 | 2009-12-08 | Emc Corporation | Redundancy check of transaction records in a file system log of a file server |
CN101697168A (zh) * | 2009-10-22 | 2010-04-21 | 中国科学技术大学 | 一种分布式文件系统动态元数据管理方法及系统 |
CN102024021A (zh) * | 2010-11-04 | 2011-04-20 | 曙光信息产业(北京)有限公司 | 一种逻辑文件系统元数据的日志方法 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103210389B (zh) * | 2012-07-31 | 2016-08-10 | 华为技术有限公司 | 一种元数据的处理方法和装置 |
CN103095687A (zh) * | 2012-12-19 | 2013-05-08 | 华为技术有限公司 | 元数据处理方法及装置 |
CN103095687B (zh) * | 2012-12-19 | 2015-08-26 | 华为技术有限公司 | 元数据处理方法及装置 |
CN103235754A (zh) * | 2013-04-24 | 2013-08-07 | 曙光信息产业(北京)有限公司 | 分布式文件系统中请求的处理方法和装置 |
CN103235754B (zh) * | 2013-04-24 | 2016-10-05 | 曙光信息产业(北京)有限公司 | 分布式文件系统中请求的处理方法和装置 |
CN105556462A (zh) * | 2013-07-29 | 2016-05-04 | 惠普发展公司,有限责任合伙企业 | 写入文件和文件元数据 |
CN104731827B (zh) * | 2013-12-24 | 2018-02-23 | 重庆新媒农信科技有限公司 | 快速分布式文件系统文件元数据的生成方法及装置 |
CN104731827A (zh) * | 2013-12-24 | 2015-06-24 | 重庆新媒农信科技有限公司 | 快速分布式文件系统文件元数据的生成方法及装置 |
CN104462261A (zh) * | 2014-11-23 | 2015-03-25 | 国云科技股份有限公司 | 一种仅有mdf文件附加还原数据库的方法 |
CN105808152A (zh) * | 2014-12-29 | 2016-07-27 | 曙光云计算技术有限公司 | 一种优化raid全局元数据读写性能的方法 |
CN105808152B (zh) * | 2014-12-29 | 2018-11-27 | 曙光云计算集团有限公司 | 一种优化raid全局元数据读写性能的方法 |
WO2016134639A1 (zh) * | 2015-02-27 | 2016-09-01 | 阿里巴巴集团控股有限公司 | 一种数据块处理方法和设备 |
CN105989140A (zh) * | 2015-02-27 | 2016-10-05 | 阿里巴巴集团控股有限公司 | 一种数据块处理方法和设备 |
CN105989140B (zh) * | 2015-02-27 | 2019-09-03 | 阿里巴巴集团控股有限公司 | 一种数据块处理方法和设备 |
CN105630413B (zh) * | 2015-12-23 | 2018-09-28 | 中国科学院深圳先进技术研究院 | 一种磁盘数据的同步回写方法 |
CN105630413A (zh) * | 2015-12-23 | 2016-06-01 | 中国科学院深圳先进技术研究院 | 一种磁盘数据的同步回写方法 |
CN108121514A (zh) * | 2017-12-29 | 2018-06-05 | 北京奇虎科技有限公司 | 元信息更新方法、装置、计算设备及计算机存储介质 |
CN108427728A (zh) * | 2018-02-13 | 2018-08-21 | 百度在线网络技术(北京)有限公司 | 元数据的管理方法、设备及计算机可读介质 |
CN108900337A (zh) * | 2018-06-29 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种元数据服务的故障恢复方法、服务器、客户端及系统 |
CN109117093A (zh) * | 2018-08-20 | 2019-01-01 | 赛凡信息科技(厦门)有限公司 | 保证分布式对象存储中的数据、流量、容量一致性的方案 |
CN109241004A (zh) * | 2018-09-26 | 2019-01-18 | 郑州云海信息技术有限公司 | 元数据文件大小恢复方法、系统、装置及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102567445B (zh) | 2014-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102567445B (zh) | 一种分布式文件系统中保证元数据一致性的方法 | |
JP5539683B2 (ja) | 拡張可能な2次ストレージシステムと方法 | |
US9020996B2 (en) | Synthetic view | |
US9785518B2 (en) | Multi-threaded transaction log for primary and restore/intelligence | |
CN103116661B (zh) | 一种数据库的数据处理方法 | |
Vorapongkitipun et al. | Improving performance of small-file accessing in Hadoop | |
CN100583050C (zh) | 基于时间戳日志存储的连续数据保护和恢复方法 | |
CN105453021B (zh) | 用于原子存储操作的系统和方法 | |
US9798486B1 (en) | Method and system for file system based replication of a deduplicated storage system | |
CN105718548B (zh) | 基于去重复存储系统中用于可扩展引用管理的系统和方法 | |
US8782005B2 (en) | Pruning previously-allocated free blocks from a synthetic backup | |
US10262004B2 (en) | Native snapshots in distributed file systems | |
US20170315882A1 (en) | Protected write-back cache transaction replication | |
CN102541983B (zh) | 一种分布式文件系统中多客户端缓存同步的方法 | |
CN102662795A (zh) | 一种分布式存储系统中元数据容错恢复方法 | |
CN106959996B (zh) | 一种基于互联网电视的后台数据同步方法 | |
CN107798130A (zh) | 一种分布式存储的快照方法 | |
US20150288758A1 (en) | Volume-level snapshot management in a distributed storage system | |
CN103595797B (zh) | 一种分布式存储系统中的缓存方法 | |
WO2016010570A1 (en) | Partial snapshot creation | |
Strzelczak et al. | Concurrent Deletion in a Distributed {Content-Addressable} Storage System with Global Deduplication | |
US11567680B2 (en) | Method and system for dynamic storage scaling | |
CN104965835B (zh) | 一种分布式文件系统的文件读写方法及装置 | |
CN102521114A (zh) | 一种虚拟化环境下的文件系统日志存储系统 | |
CN103473258A (zh) | 云存储文件系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |