CN102024017A - 一种无重复无遗漏遍历分布式文件系统目录项的方法 - Google Patents
一种无重复无遗漏遍历分布式文件系统目录项的方法 Download PDFInfo
- Publication number
- CN102024017A CN102024017A CN 201010536528 CN201010536528A CN102024017A CN 102024017 A CN102024017 A CN 102024017A CN 201010536528 CN201010536528 CN 201010536528 CN 201010536528 A CN201010536528 A CN 201010536528A CN 102024017 A CN102024017 A CN 102024017A
- Authority
- CN
- China
- Prior art keywords
- file
- mds
- hash
- burst
- directory
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种无重复无遗漏遍历分布式文件系统目录项的方法。目录项通过Hash函数映射到多个节点的可扩展Hash桶中,目录文件由若干个分布在不同节点的可扩展Hash文件组成,每个可扩展Hash文件称为目录文件的一个分片;可扩展Hash文件的桶页面形式存在,每个桶的大小为一个页面;在MDS运行期间,随时可能添加或删除目录项;在MDS运行期间,目录文件分片可能会增长,但是不会被截断;MDS在启动或管理员干预时可以通过将目录文件分片重新写入到一个新的目录文件分片实现空间回收;客户端一次可以从若干个分片上同时读取多个目录项块,且客户端不会缓存目录项块。
Description
技术领域
本发明涉及的是计算机存储技术,具体的涉及一种无重复无遗漏遍历分布式文件系统目录项的方法。
背景技术
长期以来,磁盘带宽的增长都远小于计算能力的增长,而多核服务器的普及及发展让这种不匹配的差距进一步拉大。包括RAID阵列等,我们目前有多种技术可以提高I/O性能,并行文件系统也是其中之一。它可以把多个节点上的磁盘组织成为一个大的存储系统,提供更大的存储容量和聚合的I/O带宽,并随着系统规模的扩大而扩展,在多种存储环境发挥着重要的作用,尤其是集群结构的高性能计算领域。
当并行文件系统达到一定规模后,单元数据存储服务器可能成为系统的性能瓶颈,此时通过将元数据分布到多个元数据存储服务器可以降低单个元数据的压力,提高系统的吞吐率和性能。
在实现多元数据存储服务器时,通过将大的目录项文件分片存储到多个不同的元数据存储服务器上可以降低系统延迟,提高目录项文件的读写性能;该方法带来的一个比较严重的负作用是客户端保存的目录文件的元数据信息随时可能过期,客户端不能及时同步所有分片的元数据信息。客户端readdir操作可能面临漏读或多次重读目录项块的问题。
发明内容
本发明的目的在于提供一种复杂度低,效率高,保证客户端可以快速遍历完整的目录项文件的方法。
一种无重复无遗漏遍历分布式文件系统目录项的方法,其特征在于:
A、目录项通过Hash函数映射到多个节点的可扩展Hash桶中,目录文件由若干个分布在不同节点的可扩展Hash文件组成,每个可扩展Hash文件称为目录文件的一个分片;
B、可扩展Hash文件的桶页面形式存在,每个桶的大小为一个页面;
C、在MDS运行期间,随时可能添加或删除目录项;
D、在MDS运行期间,目录文件分片可能会增长,但是不会被截断;
E、MDS在启动或管理员干预时可以通过将目录文件分片重新写入到一个新的目录文件分片实现空间回收;
F、客户端一次可以从若干个分片上同时读取多个目录项块,且客户端不会缓存日录项块。
本发明具有如下有益效果:
1.本发明通过在目录项中记录目录项的创建时间,简化了可扩展Hash桶分裂后的重建工作;
2.本发明通过在客户端的file结构中记录readdir每个分片的时间戳、分片内的偏移量、分片的size等信息实现按时间戳重建指定时间点的目录文件重建;
3.本发明通过将目录文件偏移弱化为所有目录文件分片的和,使客户端能够并行访问目录文件分片。
附图说明
无
具体实施方式
一个分布式文件系统分为MDS,DS和Client三个模块,其中DS与readdir操作没有直接关系。
目录文件的布局
目录文件的目录项按照Hash算法分布在最多MAX_DIR_SPAN个MDS上,为了简化讨论,限定所有的目录文件都正好分布在MAX_DIR_SPAN个MDS上。每个MDS上保存有目录文件分片和该分片的布局信息dir_layout;第一个分片上除了自身分片的布局信息,还包括其它分片的dir_layout信息;其它分片修改目录项操作最后一个步骤都是将该分片修改过的dir_layout信息同步到第一个目录文件分片上。
目录文件布局信息dir_layout结构如下:
struct dir_layout{
u32_t nr_mds;//分片数目
u32_t mds_id[MAX_DIR_SPAN];//元数据服务器ID号,用于索引元数
据服务器的IP地址
u64_t mds_mtime[MAX_DIR_SPAN];//分片最近修改时间
u64_t mds_size[MAX_DIR_SPAN];//分片大小
u64_t mds_gdepth[MAX_DIR_SPAN];//分片上可扩展Hash结构的桶的
全局深度
u64_t mds_nlink[MAX_DIR_SPAN];//分片上目录项数目
};
日录项结构:
struct dentry{
u64_t d_ino;//inode号
u64_t d_off;//目录项在目录项块中的偏移
u64_t d_ctime;//目录项创建时间
u64_t d_reclen;//文件名长度
char d_name[8];//文件名
};
客户端file结构中保存有目录文件分片大小,偏移量和最近修改的时间戳。
struct dir_cookie {
u64_t clt_fpos[MAX_DIR_SPAN];
u64_t mds_size[MAX_DIR_SPAN];
u64_t mds_mtime[MAX_DIR_SPAN];
};
客户端readdir请求参数:
struct readdir_args {
u64_t clt_fpos;
u64_t clt_mtime;
u64_t clt_size;
u64_t clt_gdepth;
u64_t page_nr;
};
具体步骤
readdir流程如下:
1.客户端在发起readdir操作之前将dir_cookie中所有数据数据清0;
2.客户端从MDS更新inode信息和layout信息,并更新dir_cookie中的mds_size和mds_mtime信息;
3.客户端根据应用层请求的目录项块数目REQ_PAGE_NR,向MAX_DIR_SPAN个目录项分片发送读取目录项块的请求,请求构造流程如下:
a)按照目录文件分片剩余目录项块数目(mds_size[i]-clt_fpos[i])给目录文件的MDS排序;
b)如果REQ_PAGE_NR大于MAX_DIR_SPAN,将REQ_PAGE_NR个页面平均分摊到所有有剩余页面需要访问的MDS上,如果有MDS页面数不足REQ_PAGE_NR/MAX_DIR_SPAN个,则将不足的页面摊到其它MDS请求;
c)否则,向前REQ_PAGE_NR个MDS发起readdir请求;
4.目录文件分片所在的MDS收到readdir请求后,该分片上的目录文件分片的layout可能出于如下几种状态:
a)layout信息没有发生变化,readdir请求参数中clt_mtime与当前分片的mds_mtime相等:MDS读取从clt_fpos开始的page_nr个页面返回给
b)layout信息发生变化,readdir请求参数中的clt_mtime小于当前分片的mds_mtime,但是可扩展Hash没有发生分裂,即readdir请求参数中clt_size和当前分片的mds_size相等:MDS从clt_fpos位置开始读取page_nr个页面返回给客户端,此时可能读取到部分最新添加或删除的目录项;
c)layout信息改变,可扩展Hash的桶发生分裂,按照时间戳重建目录项分片的Hash桶:
i.从偏移为clt_fpos位置开始读取页面PAGE;
ii.如果PAGE发生过分裂,假设PAGE和由PAGE分裂出来的子孙桶PAGE’,PAGE”构成集合PAGES,读取页面集合PAGES中所有创建时间在clt_mtime之前的目录项;由于在PAGE发生分裂之前PAGE上的所有目录项总长度不超过一个页面大小,在重建过程中不会引入目录项块分裂后新添加的目录项,故重建的页面大小不会超过一个页面大小;
iii.如果PAGE没有发生分裂,直接读取该页面上的所有dentry项;
iv.重复以上操作,直到完全读取page_nr个页面。
d)客户端收到从一个分片读取的页面后,更新该分片cookie信息的clt_fpos信息。
Claims (1)
1.一种无重复无遗漏遍历分布式文件系统目录项的方法,其特征在于:
A、目录项通过Hash函数映射到多个节点的可扩展Hash桶中,目录文件由若干个分布在不同节点的可扩展Hash文件组成,每个可扩展Hash文件称为目录文件的一个分片;
B、可扩展Hash文件的桶页面形式存在,每个桶的大小为一个页面;
C、在MDS运行期间,随时可能添加或删除目录项;
D、在MDS运行期间,目录文件分片可能会增长,但是不会被截断;
E、MDS在启动或管理员干预时可以通过将目录文件分片重新写入到一个新的目录文件分片实现空间回收;
F、客户端一次可以从若干个分片上同时读取多个目录项块,且客户端不会缓存目录项块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010536528 CN102024017A (zh) | 2010-11-04 | 2010-11-04 | 一种无重复无遗漏遍历分布式文件系统目录项的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010536528 CN102024017A (zh) | 2010-11-04 | 2010-11-04 | 一种无重复无遗漏遍历分布式文件系统目录项的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102024017A true CN102024017A (zh) | 2011-04-20 |
Family
ID=43865315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010536528 Pending CN102024017A (zh) | 2010-11-04 | 2010-11-04 | 一种无重复无遗漏遍历分布式文件系统目录项的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102024017A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541985A (zh) * | 2011-10-25 | 2012-07-04 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统中客户端目录缓存的组织方法 |
CN105630688A (zh) * | 2014-10-30 | 2016-06-01 | 国际商业机器公司 | 聚集文件的存储方法和系统以及聚集文件压缩方法和系统 |
CN106599102A (zh) * | 2016-11-29 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种基于目录切分机制的元数据性能提升方法 |
CN108319634A (zh) * | 2017-12-15 | 2018-07-24 | 创新科存储技术(深圳)有限公司 | 分布式文件系统的目录访问方法和装置 |
CN111241040A (zh) * | 2020-01-10 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 信息获取方法、装置、电子设备及计算机存储介质 |
CN113485639A (zh) * | 2021-06-18 | 2021-10-08 | 济南浪潮数据技术有限公司 | 分布式存储的io速度优化方法、系统、终端及存储介质 |
WO2022016865A1 (zh) * | 2020-07-24 | 2022-01-27 | 苏州浪潮智能科技有限公司 | 一种业务处理方法、系统、设备以及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020191791A1 (en) * | 2001-06-13 | 2002-12-19 | Anand Satish N. | Apparatus and method for a hash processing system using multiple hash storage areas |
CN1614591A (zh) * | 2004-12-02 | 2005-05-11 | 中国科学院计算技术研究所 | 一种组织和访问分布式文件系统目录的方法 |
CN101692239A (zh) * | 2009-10-19 | 2010-04-07 | 浙江大学 | 一种分布式文件系统元数据分配方法 |
-
2010
- 2010-11-04 CN CN 201010536528 patent/CN102024017A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020191791A1 (en) * | 2001-06-13 | 2002-12-19 | Anand Satish N. | Apparatus and method for a hash processing system using multiple hash storage areas |
CN1614591A (zh) * | 2004-12-02 | 2005-05-11 | 中国科学院计算技术研究所 | 一种组织和访问分布式文件系统目录的方法 |
CN101692239A (zh) * | 2009-10-19 | 2010-04-07 | 浙江大学 | 一种分布式文件系统元数据分配方法 |
Non-Patent Citations (1)
Title |
---|
《计算机工程》 20080831 黎浩宏 一种新型索引结构 第85-86页 1 第34卷, 第16期 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541985A (zh) * | 2011-10-25 | 2012-07-04 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统中客户端目录缓存的组织方法 |
CN105630688A (zh) * | 2014-10-30 | 2016-06-01 | 国际商业机器公司 | 聚集文件的存储方法和系统以及聚集文件压缩方法和系统 |
US10423580B2 (en) | 2014-10-30 | 2019-09-24 | International Business Machines Corporation | Storage and compression of an aggregation file |
CN106599102A (zh) * | 2016-11-29 | 2017-04-26 | 郑州云海信息技术有限公司 | 一种基于目录切分机制的元数据性能提升方法 |
CN108319634A (zh) * | 2017-12-15 | 2018-07-24 | 创新科存储技术(深圳)有限公司 | 分布式文件系统的目录访问方法和装置 |
CN108319634B (zh) * | 2017-12-15 | 2021-08-06 | 深圳创新科技术有限公司 | 分布式文件系统的目录访问方法和装置 |
CN111241040A (zh) * | 2020-01-10 | 2020-06-05 | 阿里巴巴集团控股有限公司 | 信息获取方法、装置、电子设备及计算机存储介质 |
CN111241040B (zh) * | 2020-01-10 | 2023-04-18 | 阿里巴巴集团控股有限公司 | 信息获取方法、装置、电子设备及计算机存储介质 |
WO2022016865A1 (zh) * | 2020-07-24 | 2022-01-27 | 苏州浪潮智能科技有限公司 | 一种业务处理方法、系统、设备以及介质 |
CN113485639A (zh) * | 2021-06-18 | 2021-10-08 | 济南浪潮数据技术有限公司 | 分布式存储的io速度优化方法、系统、终端及存储介质 |
CN113485639B (zh) * | 2021-06-18 | 2024-02-20 | 济南浪潮数据技术有限公司 | 分布式存储的io速度优化方法、系统、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102024017A (zh) | 一种无重复无遗漏遍历分布式文件系统目录项的方法 | |
Ungureanu et al. | HydraFS: A High-Throughput File System for the HYDRAstor Content-Addressable Storage System. | |
EP2898432B1 (en) | Table format for map reduce system | |
CN102158546B (zh) | 一种集群文件系统及其文件服务方法 | |
CN110825748B (zh) | 利用差异化索引机制的高性能和易扩展的键值存储方法 | |
Bhagwat et al. | Extreme binning: Scalable, parallel deduplication for chunk-based file backup | |
CA2811437C (en) | Distributed storage system with duplicate elimination | |
AU2010239529B2 (en) | Asynchronous distributed object uploading for replicated content addressable storage clusters | |
JP5671615B2 (ja) | マップリデュース即時分散ファイルシステム | |
CN101866305B (zh) | 支持数据查询和快速恢复的连续数据保护方法及系统 | |
US20150347553A1 (en) | Object Storage System with Local Transaction Logs, a Distributed Namespace, and Optimized Support for User Directories | |
EP2615566A2 (en) | Unified local storage supporting file and cloud object access | |
US20230046216A1 (en) | Data management system and method of controlling | |
CN103002027A (zh) | 基于键值对系统实现树形目录结构的数据存储系统及方法 | |
US9002906B1 (en) | System and method for handling large transactions in a storage virtualization system | |
US11334523B2 (en) | Finding storage objects of a snapshot group pointing to a logical page in a logical address space of a storage system | |
CN105045850A (zh) | 云存储日志文件系统中垃圾数据回收方法 | |
Lensing et al. | File system scalability with highly decentralized metadata on independent storage devices | |
WO2022262381A1 (zh) | 一种数据压缩方法及装置 | |
EP2402861A1 (en) | Storage system | |
Venish et al. | Framework of data deduplication: a survey | |
Patil et al. | A case for scaling HPC metadata performance through de-specialization | |
Klein et al. | Dxram: A persistent in-memory storage for billions of small objects | |
Ren et al. | TABLEFS: Embedding a NoSQL database inside the local file system | |
Vohra et al. | Apache HBase and HDFS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20110420 |