CN102567442B - 一种分布式文件系统中元数据磁盘同步的方法 - Google Patents
一种分布式文件系统中元数据磁盘同步的方法 Download PDFInfo
- Publication number
- CN102567442B CN102567442B CN201110326012.XA CN201110326012A CN102567442B CN 102567442 B CN102567442 B CN 102567442B CN 201110326012 A CN201110326012 A CN 201110326012A CN 102567442 B CN102567442 B CN 102567442B
- Authority
- CN
- China
- Prior art keywords
- file
- user
- disk
- interval
- page
- 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
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明中,元数据服务器由内核态模块和用户态守护进程两部分组成。这两个模块通过字符设备进行通信,当用户态收集到一批需要同步的文件后,会将文件句柄和修改区间传递给内核态的模块,由内核态的模块将这些修改数据传递给块设备,然后统一等待完毕后,再返回用户态进程。实验数据显示,这种由内核态模块集中进行文件同步的方式,能将文件同步的平均时间至少缩短一半,因而大大加快了前端元数据的处理能力。
Description
技术领域
本发明涉及分布式文件系统中元数磁盘同步,具体来说,涉及一种分布式文件系统中元数据磁盘同步的方法。
背景技术
随着存储技术的发展,越来越多的分布式文件系统应运而生。这其中,有完全基于内核态的文件系统,如NFS、Lustre、GPFS等;也有完全位于用户态的分布式文件系统,如近几年新兴的分布式文件系统Google FS、HDFS、MooseFS等。基于内核态的分布式文件系统的优势在于效率相对较高,但是不足在于开发难度较高;而基于用户态的分布式文件系统,则刚好相反,这类文件系统以一定的效率损失为代价,来换取开发和维护上的低成本。
位于用户态的分布式文件系统,其总体结构和基于内核态的分布式文件比较相似,不同的是,其存储元数据和数据时,并不是直接面向块设备,而是基于本地文件系统之上,即将元数据或数据存储于文件当中。目前各种本地文件系统,为了加速访问效率,通常配备有各种元数据和数据缓存。在文件系统之上的修改,并非立即写入磁盘,而是先写到缓存中,在合适的时机由操作系统回写到磁盘,或者由用户程序触发回写,将数据刷回磁盘。
对于元数据服务器而言,为了保证元数据的一致性,往往元数据管理需要引入日志系统,采用类似数据库的事务处理方案。对于元数据的修改,需要发起一次事务,先将修改记录成为日志,然后交由日志处理模块来完成后续的磁盘操作。日志系统需要先将日志写入日志设备,然后再将元数据写入元数据文件,最后完成元数据文件的磁盘同步后,才能够将记入日志设备的日志条目删除。通常情况下,日志设备的容量相对较小,因而能承载的日志条目有限,因此当日志设备没有空间时,只能等待元数据文件同步完成后,将日志空间释放出来,才能继续处理后续的元数据修改。因此,在元数据系统压力比较大时,回写磁盘的效率往往成为系统处理能力的关键。
在用户态的元数据文件同步,由于Linux操作系统提供接口的限制,只能每次操作一个文件,当该文件同步完成后,才能继续处理下一个文件。而实际应用中,由于元数据的修改数据量通常较少,但修改次数相对较多,而且短时间内的修改往往涉及多个元数据文件。如果按文件一个个进行同步,则会导致对磁盘带宽不能充分利用。通常情况下,磁盘访问的时间大部分会消耗在磁头启动和寻道上了,如果写入文件在磁盘上的位置随机,且每次写入量不大的话,会造成磁头不断在前后移动,大大影响写入磁盘的性能。
发明内容
本发明旨在公开一种高效的元数据文件同步方案,该方案能够充分利用磁盘寻道的特性,有效提高元数据磁盘同步的效率,提高元数据服务器的负载能力。
一种分布式文件系统中元数据磁盘同步的方法,
用户态守护进程将要修改写入元数据文件的页面缓存在一起,一起将文件句柄和修改区间传递给内核态模块,内核态模块将修改数据传递给块设备,在所有文件同步完成后,返回用户态守护进程。
优选的,所述内核态模块注册一个字符设备,所述用户态守护进程通过ioct1的方式与所述内核态模块通信。
优选的,所述用户态守护进程将需要修改的元数据文件页面中连续的页面合并成一个区间。
优选的,所述页面在提交到用户态守护进程后,需要在日志文件中记录该页面区间。
优选的,所述内核态模块接收到ioct1请求后,从中取出需要同步的文件句柄和相应区间,先根据文件句柄获得文件的索引节点,然后根据索引节点进行排序。
优选的,所述排序完成后,遍历所有所有节点,对需要同步的文件区间,向磁盘设备提交修改请求,并逐个等待期磁盘同步完成。
本发明中,元数据服务器由内核态模块和用户态守护进程两部分组成。这两个模块通过字符设备进行通信,当用户态收集到一批需要同步的文件后,会将文件句柄和修改区间传递给内核态的模块,由内核态的模块将这些修改数据传递给块设备,然后统一等待完毕后,再返回用户态进程。实验数据显示,这种由内核态模块集中进行文件同步的方式,能将文件同步的平均时间至少缩短一半,因而大大加快了前端元数据的处理能力。
具体实施方式
发明中的技术方案具体描述如下:
(1)内核态模块注册一个字符设备,用户态进程通过ioct1的方式来和该模块进行通信。
(2)用户态进程对元数据事务的处理采用批处理的方式,即一次处理多个事务。将元数据文件的修改分为两步:第一步,将修改写入元数据文件的页面缓存;第二步,进行磁盘同步。这两步由不同的线程来并行处理,以提高效率。
(3)磁盘同步处理方式如下:
第一步,提取各个事务修改元数据所涉及的元数据文件,以及修改的区间。对于同一个文件的多个修改区间,尽可能合并成一个大的区间。然后将文件句柄和对应区间以ioct1的方式传递给内核态模块。这里之所以按区间进行,是因为在同步磁盘的同时,其他线程还在不断修改元数据文件的页面缓存,为了在本次同步磁盘时,不会将其他写入文件页面缓存的修改也一起同步到磁盘,节省单次请求的处理时间,需要记录本次处理事务所涉及的文件区间。
第二步,内核态模块接收到ioct1请求后,从其中取出需要同步的文件句柄和相应区间,先根据文件句柄获得文件的索引节点,然后根据索引节点进行排序。通常文件系统在创建文件时,文件在磁盘的排布总是尽可能的按照索引节点创建的先后顺序来进行,因此按照索引节点排序之后,能够基本保证同步磁盘时,磁头的移动是顺序进行的,这能够大大降低磁盘的寻道时间。
在对索引节点排序完成后,将同步磁盘的操作分为两个阶段:第一阶段,遍历所有的索引节的,对需要同步的文件区间,向磁盘设备提交修改请求;第二阶段,对所有索引节点的修改区间,逐个等待其磁盘同步完成。之所以将同步磁盘的动作分为两步,是为了充分利用磁盘的特性。磁盘在运转时,当给其提交的请求比较多时,它能够对请求进行合并和排序,同时能够保证磁头一直处于运转当中,而不会中断下来,在这种模式下,可以比较充分的利用磁盘的处理能力。
Claims (2)
1.一种分布式文件系统中元数据磁盘同步的方法,其特征在于:
用户态守护进程将要修改写入元数据文件的页面缓存在一起,一起将文件句柄和修改区间传递给内核态模块,内核态模块将修改数据传递给块设备,在所有文件同步完成后,返回用户态守护进程;
所述用户态守护进程将需要修改的元数据文件页面中连续的页面合并成一个区间;
所述页面在提交到用户态守护进程后,需要在日志文件中记录页面区间;
所述内核态模块接收到ioctl请求后,从中取出需要同步的文件句柄和相应修改区间,先根据文件句柄获得文件的索引节点,然后根据索引节点进行排序;
所述排序完成后,遍历所有节点,对需要同步的文件区间,向磁盘设备提交修改请求,并逐个等待其磁盘同步完成。
2.如权利要求1所述的方法,其特征在于:所述内核态模块注册一个字符设备,所述用户态守护进程通过ioct1的方式与所述内核态模块通信。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110326012.XA CN102567442B (zh) | 2011-10-25 | 2011-10-25 | 一种分布式文件系统中元数据磁盘同步的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110326012.XA CN102567442B (zh) | 2011-10-25 | 2011-10-25 | 一种分布式文件系统中元数据磁盘同步的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102567442A CN102567442A (zh) | 2012-07-11 |
CN102567442B true CN102567442B (zh) | 2014-07-23 |
Family
ID=46412866
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110326012.XA Active CN102567442B (zh) | 2011-10-25 | 2011-10-25 | 一种分布式文件系统中元数据磁盘同步的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102567442B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105511811B (zh) * | 2015-12-07 | 2018-09-07 | 浪潮(北京)电子信息产业有限公司 | 一种提高文件系统吞吐量的方法与系统 |
CN106873917A (zh) * | 2017-02-24 | 2017-06-20 | 深圳市中博睿存信息技术有限公司 | 一种基于磁盘的对象存储系统 |
CN108052294B (zh) * | 2017-12-26 | 2021-05-28 | 郑州云海信息技术有限公司 | 一种分布式存储系统的修改写方法和修改写系统 |
CN108897822A (zh) * | 2018-06-21 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种数据更新方法、装置、设备及可读存储介质 |
CN108989432B (zh) * | 2018-07-20 | 2022-01-07 | 南京中兴新软件有限责任公司 | 用户态的文件发送方法、文件接收方法和文件收发装置 |
CN109165206B (zh) * | 2018-08-27 | 2022-02-22 | 中科曙光国际信息产业有限公司 | 基于容器的hdfs高可用实现方法 |
CN109462640B (zh) * | 2018-10-29 | 2021-07-20 | 上海掌门科技有限公司 | 一种元数据同步方法、数据端、交互系统及介质 |
-
2011
- 2011-10-25 CN CN201110326012.XA patent/CN102567442B/zh active Active
Non-Patent Citations (2)
Title |
---|
一种基于块级的连续数据捕获方法研究;李巍等;《计算机研究与发展》;20110228(第48期);第126-131页 * |
李巍等.一种基于块级的连续数据捕获方法研究.《计算机研究与发展》.2011,(第48期), |
Also Published As
Publication number | Publication date |
---|---|
CN102567442A (zh) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102567442B (zh) | 一种分布式文件系统中元数据磁盘同步的方法 | |
CN102222085B (zh) | 一种基于相似性与局部性结合的重复数据删除方法 | |
Andersen et al. | FAWN: A fast array of wimpy nodes | |
Lin et al. | Log analysis in cloud computing environment with Hadoop and Spark | |
Vora | Hadoop-HBase for large-scale data | |
CN106663047A (zh) | 用于优化的签名比较和数据复制的系统和方法 | |
CN105938457B (zh) | 数据的过滤方法、装置及数据读取系统 | |
CN101777017B (zh) | 一种连续数据保护系统的快速恢复方法 | |
Saharan et al. | QuickDedup: Efficient VM deduplication in cloud computing environments | |
CN102541757A (zh) | 写缓存方法、缓存同步方法和装置 | |
CN103873559A (zh) | 一种高速存储的数据库一体机 | |
CN102890722A (zh) | 应用于时序历史数据库的索引方法 | |
CN103678036B (zh) | 一种基于虚拟机运行信息数据发现的备份方法 | |
CN102033930A (zh) | 分布式内存数据库系统 | |
Mortazavi et al. | Toward session consistency for the edge | |
CN102508727A (zh) | 一种通过软件实现磁盘阵列中的缓存掉电保护方法 | |
Prout et al. | Cloud-native transactions and analytics in singlestore | |
CN105468297A (zh) | 一种云存储系统内主从设备数据快速同步的方法 | |
CN105930101A (zh) | 一种基于闪存固态盘的弱指纹重复数据删除机制 | |
CN105353988A (zh) | 一种元数据读写方法及装置 | |
CN103473258A (zh) | 云存储文件系统 | |
CN102820998B (zh) | 实现面向办公应用的双机容错服务系统及其数据存储方法 | |
CN102385624B (zh) | 一种面向分布式文件系统的日志数据组织的方法 | |
CN102609335B (zh) | 一种实现写时复制保护元数据的装置及方法 | |
Dinu et al. | Rcmp: Enabling efficient recomputation based failure resilience for big data analytics |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220729 Address after: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing Patentee after: Dawning Information Industry (Beijing) Co.,Ltd. Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd. Address before: 100084 Beijing Haidian District City Mill Street No. 64 Patentee before: Dawning Information Industry (Beijing) Co.,Ltd. |