CN105630810B - 一种对于海量小文件在分布式存储系统中上载的方法 - Google Patents
一种对于海量小文件在分布式存储系统中上载的方法 Download PDFInfo
- Publication number
- CN105630810B CN105630810B CN201410603326.3A CN201410603326A CN105630810B CN 105630810 B CN105630810 B CN 105630810B CN 201410603326 A CN201410603326 A CN 201410603326A CN 105630810 B CN105630810 B CN 105630810B
- Authority
- CN
- China
- Prior art keywords
- file
- data server
- meta data
- metadata
- creation
- 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)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及一种对于海量小文件在分布式存储系统中上载的方法,该方法包括:客户端根据操作系统的标准POSIX语义,查找带有创建请求的目标文件;元数据服务器对文件进行预创建,建立文件池;利用元数据服务器聚合管理文件元数据;经内核模块对文件排序后批量同步上载。解决了小文件创建延迟大、数目少的问题,大大提高了上载速率,且减少了硬件资源浪费,节约了成本。
Description
技术领域
本发明涉及一种上载方法,具体涉及一种对于海量小文件在分布式存储系统中上载的方法。
背景技术
数字化时代的今天,随着需要存储的数据量日益增长,单一的存储硬件设备已经难以在容量和性能上满足数目众多的行业的存储需求。为了满足数目繁多的行业对非结构化数据的存储需求,一批分布式文件系统应运而生,这其中的代表者如PNFS、GPFS、Lustre、GoogleFS、HDFS等。这些分布式文件系统都是通过软件来将硬件集群进行统一管理,对外展现一个统一的存储池,从而达到对硬件资源进行虚拟化整合的目的。
对于目前分布式结构数据存储来说,根据其存储性,大致可分为大文件存储和小文件存储。大文件存储例如:视频存储、高性能计算等,小文件存储例如:数字图书馆、网上商城等。对于目前成熟的分布式文件系统,对大文件的存储可谓是得心应手,而当面临海量小文件时,却往往显得力不从心。为了减少小文件存储对分布式文件系统的压力,很多专用接口的文件系统,如GoogleFS、HDFS、TBFS,均采用将多个小文件聚合成大文件的方式,来减缓频繁访问对于底层磁盘件的压力,从而达到提供服务能力的效果。而提供通用接口的分布式文件系统,对于小文件存储则没有对应的优化策略,导致在数字图书馆、网上商城等小文件应用的表现不容乐观。
数字图书馆和网上商城这类应用的访问模式是集中上载,然后进行随机读取。上载时,通常需要在短时间内创建和写入上亿个小文件;上载完毕后,这些小文件会随时被读取。据用户测试反应,通常一个TB的小文件上载需要的时间往往大于48小时,这样的性能令人无法忍受。
对于分布式文件系统的小文件上载压力可归为以下两个方面:其一是上载时元数据和数据的创建压力,即需要在短时间内创建上亿个文件;其二是上载时数据的写压力,即需要在短时间内将上亿个小文件写入磁盘。为了解决第一个问题,GPFS等文件系统采用了多元数据服务器的方法,其不足在于对于硬件资源比较浪费,成本相对较高;对于第二个问题,GoogleFS等文件系统采用了多个小文件聚合成大文件的方式来提高硬盘的IO带宽,不足之处在于需要增加额外的管理数据,复杂度较高。
发明内容
针对现有技术的不足,本发明提出一种对于海量小文件在分布式存储系统中上载的方法,根据操作系统的标准POSIX语义,合并文件的查找和创建动作;该方法操作简单,克服了小文件上载速率不足的缺陷,提高了整体上载的性能,从而减少了硬件资源浪费,降低了成本。
本发明的目的是采用下述技术方案实现的:
针对现有技术的不足,本发明提出一种对于海量小文件在分布式存储系统中上载的方法,所述上载方法包括下述步骤:
(1)客户端根据操作系统的标准POSIX语义,查找带有创建请求的目标文件;
(2)元数据服务器对文件进行预创建,建立文件池;
(3)利用元数据服务器聚合管理文件元数据;
(4)经内核模块对文件排序后批量同步上载。
优选的,所述步骤(1)中,所述客户端为分布式文件系统的入口,根据文件系统的标准POSIX语义,合并文件的查找和创建动作;如果检测到本次查找的意图是创建,则在服务端完成创建动作,并由查找请求将对应文件元数据带回。
优选的,所述步骤(2)中,所述元数据服务器对文件进行预创建步骤如下:
2-1为待创建文件分配唯一标识;
2-2向数据服务器发起对象创建请求,并等待处理完成;
2-3进行元数据创建操作;
2-4返回客户端。
进一步地,所述步骤2-3中,所述进行元数据创建操作,包括在元数据服务器上预先创建一定数目的文件,并放入备用文件池中;当客户端有创建请求到来时,从文件池中分配一个文件,返回给客户端即可;当空闲文件池中没有可用文件时,元数据服务器直接向数据服务器发起对象创建请求,同时,唤醒后台线程向文件池填充空闲文件。
优选的,所述步骤(3)中,所述聚合管理是将文件的元数据存放在一个元数据文件中。
进一步地,如果一个元数据文件管理N个元数据,此时操作磁盘的次数将由原来的N次减小为1次。
优选的,所述步骤(4)中,所述批量同步上载的方法包括下述步骤:
步骤4-1.将多个小文件同时写入操作系统的文件缓存,由系统后台线程回写,回写时按批聚合,不进行单次操作的磁盘同步;
步骤4-2.引入内核模块,按照文件在磁盘上的数据块排列顺序,从小到大并发同步,使得磁盘访问按顺序进行,减少磁头跳动,提高磁盘性能;
步骤4-3.对由元数据发起的创建对象请求进行批量聚合处理,完成同步上载。
与最接近的现有技术比,本发明的优异效果为:
本发明针对海量小文件在分布式存储系统中上载的方法,结合分布式文件系统客户端、元数据服务器和数据服务器各个组件的特性,对客户端、元数据服务器和数据服务器三个组件进行同时优化。一方面大大提高了海量小文件上载性能,优化了系统总文件上载过程中创建速率,另一方面,减少了磁盘访问频率和硬件资源浪费,降低了成本,对于保护硬盘、延长其硬盘使用寿命也大有裨益。
附图说明
如图1所示为本发明中元数据服务器创建请求的流程图。
具体实施方式
下面结合附图对本发明作进一步详细说明。
如图1所示,所述上载方法包括下述步骤:
(1)客户端根据操作系统的标准POSIX(Portable Operating System Interface表示可移植操作系统接口)语义,查找带有创建请求的目标文件;
其中,所述客户端为分布式文件系统的入口,根据文件系统的标准POSIX(Portable Operating System Interface表示可移植操作系统接口)语义,合并文件的查找和创建动作;如果检测到本次查找的意图是创建,则在服务端完成创建动作,并由查找请求将对应文件元数据带回。
(2)元数据服务器对文件进行预创建,建立文件池;
其中,所述元数据服务器对文件进行预创建步骤如下:
2-1为待创建文件分配唯一标识;
2-2向数据服务器发起对象创建请求,并等待处理完成;
2-3进行元数据创建操作;
其中,所述进行元数据创建操作,包括在元数据服务器上预先创建一定数目的文件,并放入备用文件池中;当客户端有创建请求到来时,从文件池中分配一个文件,返回给客户端即可;当空闲文件池中没有可用文件时,元数据服务器直接向数据服务器发起对象创建请求,同时,唤醒后台线程向文件池填充空闲文件。
2-4返回客户端。
(3)利用元数据服务器聚合管理文件元数据;
其中,所述聚合管理是将文件的元数据存放在一个元数据文件中;
如果一个元数据文件管理N个元数据,此时操作磁盘的次数将由原来的N次减小为1次。
(4)经内核模块对文件排序后批量同步上载。
其中,其方法包括下述步骤:
步骤4-1.将多个小文件同时写入操作系统的文件缓存,由系统后台线程回写,回写时按批聚合,不进行单次操作的磁盘同步;
步骤4-2.引入内核模块,按照文件在磁盘上的数据块排列顺序,从小到大并发同步,使得磁盘访问按顺序进行,减少磁头跳动,提高磁盘性能;
步骤4-3.对由元数据发起的创建对象请求进行批量聚合处理,完成同步上载。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员依然可以对本发明的具体实施方式进行修改或者等同替换,而这些未脱离本发明精神和范围的任何修改或者等同替换,其均在申请待批的本发明的权利要求保护范围之内。
Claims (5)
1.一种对于海量小文件在分布式存储系统中上载的方法,所述上载方法包括下述步骤:
(1)客户端根据操作系统的标准POSIX语义,查找带有创建请求的目标文件;
(2)元数据服务器对文件进行预创建,建立文件池;
(3)利用元数据服务器聚合管理文件元数据;
(4)经内核模块对文件排序后批量同步上载;
所述步骤(2)中,所述元数据服务器对文件进行预创建,建立文件池步骤如下:
2-1为待创建文件分配唯一标识;
2-2向数据服务器发起对象创建请求,并等待处理完成;
2-3进行元数据创建操作;
2-4返回客户端;
所述步骤2-3中,所述进行元数据创建操作,包括在元数据服务器上预先创建一定数目的文件,并放入备用文件池中;当客户端有创建请求到来时,从文件池中分配一个文件,返回给客户端即可;当空闲文件池中没有可用文件时,元数据服务器直接向数据服务器发起对象创建请求,同时,唤醒后台线程向文件池填充空闲文件。
2.如权利要求1所述的上载方法,其特征在于,所述步骤(1)中,所述客户端为分布式文件系统的入口,根据文件系统的标准POSIX语义,合并文件的查找和创建动作;如果检测到本次查找的意图是创建,则在服务端完成创建动作,并由查找请求将对应文件元数据带回。
3.如权利要求1所述的上载方法,其特征在于,所述步骤(3)中,所述聚合管理是将文件的元数据存放在一个元数据文件中。
4.如权利要求3所述的上载方法,其特征在于,如果一个元数据文件管理N个元数据,此时操作磁盘的次数将由原来的N次减小为1次。
5.如权利要求1所述的上载方法,其特征在于,所述步骤(4)中,批量同步上载的方法包括下述步骤:
步骤4-1.将多个小文件同时写入操作系统的文件缓存,由系统后台线程回写,回写时按批聚合,不进行单次操作的磁盘同步;
步骤4-2.引入内核模块,按照文件在磁盘上的数据块排列顺序,从小到大并发同步;
步骤4-3.对由元数据发起的创建对象请求进行批量聚合处理,完成同步上载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410603326.3A CN105630810B (zh) | 2014-10-30 | 2014-10-30 | 一种对于海量小文件在分布式存储系统中上载的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410603326.3A CN105630810B (zh) | 2014-10-30 | 2014-10-30 | 一种对于海量小文件在分布式存储系统中上载的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105630810A CN105630810A (zh) | 2016-06-01 |
CN105630810B true CN105630810B (zh) | 2019-05-21 |
Family
ID=56045760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410603326.3A Active CN105630810B (zh) | 2014-10-30 | 2014-10-30 | 一种对于海量小文件在分布式存储系统中上载的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105630810B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106776131B (zh) * | 2016-11-30 | 2020-07-07 | 华为技术有限公司 | 一种数据备份方法及服务器 |
CN107589915B (zh) * | 2017-09-25 | 2020-05-29 | 郑州云海信息技术有限公司 | 一种分布式存储系统的容量信息监控方法、装置及设备 |
CN107958034A (zh) * | 2017-11-20 | 2018-04-24 | 郑州云海信息技术有限公司 | 分布式文件系统的inode号的分配方法、装置及介质 |
CN110659250B (zh) * | 2018-06-13 | 2022-02-22 | 中国电信股份有限公司 | 文件处理方法和系统 |
CN109325000A (zh) * | 2018-07-24 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种文件创建的方法和装置 |
CN110502485B (zh) * | 2019-08-16 | 2022-04-22 | 北京浪潮数据技术有限公司 | 文件创建方法、客户端、元数据服务器及系统 |
CN111046001B (zh) * | 2019-12-28 | 2023-03-14 | 浪潮电子信息产业股份有限公司 | 一种批量创建文件的方法、装置、设备及存储介质 |
CN112035428A (zh) * | 2020-09-11 | 2020-12-04 | 科大讯飞股份有限公司 | 分布式存储系统、方法、装置、电子设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101567001B (zh) * | 2009-05-22 | 2012-05-16 | 清华大学 | 并行文件系统的元数据文件布局管理方法 |
CN101854388B (zh) * | 2010-05-17 | 2014-06-04 | 浪潮(北京)电子信息产业有限公司 | 一种集群存储中并行访问大量小文件的方法及系统 |
CN104281414B (zh) * | 2013-07-10 | 2018-07-06 | 南京中兴软件有限责任公司 | 分布式文件系统及其小文件访问方法 |
CN103577123B (zh) * | 2013-11-12 | 2016-06-22 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
-
2014
- 2014-10-30 CN CN201410603326.3A patent/CN105630810B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN105630810A (zh) | 2016-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105630810B (zh) | 一种对于海量小文件在分布式存储系统中上载的方法 | |
US11093466B2 (en) | Incremental out-of-place updates for index structures | |
US10754550B2 (en) | Optimized data placement for individual file accesses on deduplication-enabled sequential storage systems | |
US11741053B2 (en) | Data management system, method, terminal and medium based on hybrid storage | |
CN107169083B (zh) | 公安卡口海量车辆数据存储与检索方法及装置、电子设备 | |
US11429630B2 (en) | Tiered storage for data processing | |
US10042885B2 (en) | Index table based routing for query resource optimization | |
CN113836084A (zh) | 一种数据存储方法、装置和系统 | |
CN112307037A (zh) | 一种数据同步方法和装置 | |
US9195611B2 (en) | Efficiently updating and deleting data in a data storage system | |
US9262511B2 (en) | System and method for indexing streams containing unstructured text data | |
WO2016070529A1 (zh) | 一种实现重复数据删除的方法及装置 | |
US20190034445A1 (en) | Cognitive file and object management for distributed storage environments | |
CN110727406A (zh) | 一种数据存储调度方法及装置 | |
WO2023185111A1 (zh) | 一种数据文件的快速存取方法及装置 | |
US9734171B2 (en) | Intelligent redistribution of data in a database | |
CN104391961A (zh) | 千万级小文件数据的一种读写解决策略 | |
Qian et al. | An evaluation of Lucene for keywords search in large-scale short text storage | |
WO2018111696A1 (en) | Partial storage of large files in distinct storage systems | |
CN105302669A (zh) | 一种云备份过程中数据去重的方法和系统 | |
Li et al. | Design of the mass multimedia files storage architecture based on Hadoop | |
US10360234B2 (en) | Recursive extractor framework for forensics and electronic discovery | |
US8700583B1 (en) | Dynamic tiermaps for large online databases | |
CN107741940B (zh) | 一种数据储存方法及存储系统 | |
CN108509438A (zh) | 一种ElasticSearch分片扩展方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |