CN108763589B - 一种分布式文件系统的目录系统及其实现方法 - Google Patents
一种分布式文件系统的目录系统及其实现方法 Download PDFInfo
- Publication number
- CN108763589B CN108763589B CN201810632685.XA CN201810632685A CN108763589B CN 108763589 B CN108763589 B CN 108763589B CN 201810632685 A CN201810632685 A CN 201810632685A CN 108763589 B CN108763589 B CN 108763589B
- Authority
- CN
- China
- Prior art keywords
- directory
- stripe
- file
- files
- subdirectories
- 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
Images
Abstract
本发明公开了一种分布式文件系统的目录系统,定义为混合条带,应用于普通目录成为热点目录以后,在同一目录下同时兼容普通目录和条带目录,其中普通目录对应原有文件和子目录,条带目录对应新创建的文件和子目录。本发明提出的新型的目录类型能够同时兼容普通目录和条带目录,当普通目录下的文件变成热点时,能够在不迁徙原文件和目录的前提下消除热点问题,摒弃了现有技术所存在的弊端。
Description
技术领域
本发明涉及分布式文件系统,具体是一种分布式文件系统的目录系统及其实现方法。
背景技术
本地文件系统是指文件的数据和元数据都保存在同一个服务器上,即所有的操作都是服务器的本地操作,而不需要将数据和元数据发送到远程服务器。本地文件系统包括Ext3、Ext4、XFS、ZFS等等。而分布式文件系统是相对本地文件系统而言的。分布式文件系统是指一个文件系统的各种操作(如文件和目录的创建、删除、修改、查找等)分布到多个台服务器上。分布式文件系统非常多,业界著名的文件包括GPFS、Lustre、GoogleFS、Hadoop FS、CephFS、Glustrefs、MooseFS、BeeGFSet等等。
在分布式文件系统中,经常出现热点数据。这些热点数据包括:(1)文件系统中的某个目录是大目录,该目录下有几万、几十万甚至上百万个文件。(2)文件系统同时出现多个热点目录和热点文件,在该目录下频繁地进行文件和子目录的创建、删除、修改、查找等操作。当文件系统的这些热点数据同时出现在某个服务器上,将会导致该服务器负荷非常重,而其他服务器负荷很轻,从而出现严重的负载不均,大幅降低整个文件系统的总体性能。
为了解决分布式文件系统的热点数据问题,业界提出了多种解决方案。著名的文件系统lustre提出了条带目录(stripe directory)和远程目录(remote directory)的方案。
如图1所示,远程目录是将目录中的子目录发给不同的服务器处理,而文件仍然由父目录所在的服务器处理。
如图2所示,条带目录是针对大目录的,将大目录下的文件和子目录分成多个条带,每个条带放到不同的服务器上。这样文件和子目录的操作就发给不同的服务器,从而减少单个服务器的压力。
但上述解决方案都存在着同一个问题,那就是创建目录时必须指定是条带目录还是普通目录,一旦指定类型,就不改变。而实际应用中,很多目录刚开始都是普通目录,没有将文件打散到不同的服务器上处理,过一段时间后,这些目录变得越来越大,里面的文件越来越多,变成了热点,对服务器的压力越来越大,但是没有办法动态地改变目录类型,也就不能动态地从普通目录变成条带,没有办法消除热点问题,此时就需要迁移文件和目录到其他元数据服务器上。但是文件迁移存在很多问题:其一,需要搬移数据;其二,迁移过程对上层应用有影响;其三,其一存在多种状态,如迁移前,迁移中,迁移后等。这些状态很容易出现异常情况,处理非常复杂。
故发明提出了一种新型的目录系统-混合条带,同时支持普通目录和条带目录,当普通目录下的文件变成热点时,能够在不迁徙原文件和目录的前提下消除热点问题。
发明内容
本发明的目的在于提供一种分布式文件系统的目录系统及其实现方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种分布式文件系统的目录系统,定义为混合条带,应用于普通目录成为热点目录以后,在同一目录下同时兼容普通目录和条带目录,其中普通目录对应原有文件和子目录,条带目录对应新创建的文件和子目录。
所述分布式文件系统的目录系统的实现方法,包括以下步骤:
1)为热点目录设置标识以及时间戳
将成为热点目录的普通目录进行混合条带的标识,打上时间戳,以时间戳为基准,时间戳之前的文件和子目录定义为普通类型,不需要打散,时间戳之后的文件和子目录定义为条带类型,需要打散;同时给目录设置条带信息;
2)创建条带对象
在原有的dentry基础上,给该目录创建条带信息,表明目录的不同条带放在哪些MDS上,创建时利用本地文件系统mkdir创建普通目录;
3)新文件和子目录的创建
在步骤1)和步骤2)完成以后,后续再有文件创建操作时,先读父目录的标识和时间戳,判断目录的条带类型和设置标识的时间,当文件的创建时间在时间戳之后,则将其打散到条带中,在各个条带所对应的元数据服务器MDS上,创建文件和子目录;
4)文件查找操作
读取父目录的条带信息和时间戳,如果为混合条带类型,则首先在父目录本地的dentry项里找文件名,如果没有找到,则到目录条带里去找。
5)目录查找readdir
首先读本地所有dentry项,即本地所有文件和子目录,其次读所有条带的dentry项,即所有在远端的文件和子目录,最后将本地dentry和条带的dentry合并在一起,即本地文件和远程文件。
作为本发明进一步的方案:所述步骤1)中所述的条带信息包括条带深度和起始位置。
作为本发明进一步的方案:所述步骤2)中也可以采用KVDB数据库系统创建条带对象。
与现有技术相比,本发明的有益效果是:
本发明提出了一种新型的目录类型,同时兼容普通目录和条带目录,当普通目录下的文件变成热点时,能够在不迁徙原文件和目录的前提下消除热点问题,摒弃了现有技术所存在的弊端。
附图说明
图1为现有技术中远程目录方案的原理图。
图2为现有技术中条带目录方案的原理图。
图3为本发明中步骤1)的原理图。
图4为本发明中步骤2)的原理图。
图5为本发明中步骤3)的原理图。
图6为本发明中步骤4)的原理图。
图7为本发明中步骤5)的原理图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中,一种分布式文件系统的目录系统,在普通目录成为热点目录以后,在同一目录下同时兼容普通目录和条带目录,其中普通目录对应原有文件和子目录,条带目录对应新创建的文件和子目录。
所述分布式文件系统的目录系统的实现方法,包括以下步骤:
1)为热点目录设置标识以及时间戳
如图3所示,当某个普通目录突然有大量的创建和删除操作,成为了热点目录后,通过工具或接口给该目录打上混合条带的标识,同时打上时间戳,以时间戳为基准,时间戳之前的文件和子目录定义为普通类型,不需要打散,时间戳之后的文件和子目录定义为条带类型,需要打散;同时给目录设置条带信息;
时间戳的标记方法为HybridStripe_20**_****,如HybridStripe_20180601_10:00:00所表示的时间为2018年6月1日10点整;
给目录设置条带信息,信息包括条带深度stripe_count,起始位置offset,如Stripe_count=3,表示新文件和子目录将打散到3个MDS上。Offset=2,表示从MDS2开始,即MDS2,3,4;
2)创建条带对象
如图4所示,在原有的dentry基础上,给该目录创建条带信息,表明目录的不同条带放在哪些MDS上,如dir_stripe1, MDS2则表明目录的第1个条带在MDS2上,dir_stripe3,MDS4则表明目录的第3个条带在MDS4上,在各个条带所对应的元数据服务器MDS上创建条带对象,如MDS2,3,4。创建的方式可以利用本地文件系统mkdir创建普通目录,也可以用KVDB数据库系统创建object。优选地,本实施例中采用mkdir方法;
3)新文件和子目录的创建
在步骤1)和步骤2)完成以后,后续有文件创建操作时,先读父目录的标识和时间戳,判断目录的条带类型和设置标识的时间。如HybridStripe_20180601_10:00:00,且文件的创建时间在这之后,就需要打散到条带中。在各个条带所对应的元数据服务器MDS上,创建文件和子目录,方法同普通文件系统的文件和目录的创建,如图5所示;
4)文件查找操作
如图6所示,对文件进行lookup操作,由于不知道文件是新文件还是老文件,所以首先读父目录的条带标识和时间戳。如果是Hybrid_stripe类型,则首先需要在父目录本地的dentry项里找文件名。如果没有找到,则到目录条带里去找;
5)目录查找readdir
如图7所示,当进行目录查找readdir时,读父目录的条带标识和时间戳,首先读本地所有dentry项,即本地所有文件和子目录,其次读所有条带的dentry项,即所有在远端的文件和子目录,最后将本地dentry和条带的dentry合并在一起,即本地文件和远程文件。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (3)
1.一种分布式文件系统的目录系统的实现方法,所述分布式文件系统的目录系统定义为混合条带,应用于普通目录成为热点目录以后,其特征在于,在同一目录下同时兼容普通目录和条带目录,其中普通目录对应原有文件和子目录,条带目录对应新创建的文件和子目录;包括以下步骤:
1)为热点目录设置标识以及时间戳
将成为热点目录的普通目录进行混合条带的标识,打上时间戳,以时间戳为基准,时间戳之前的文件和子目录定义为普通类型,不需要打散,时间戳之后的文件和子目录定义为条带类型,需要打散;同时给目录设置条带信息;
2)创建条带对象
在原有的dentry基础上,给该目录创建条带信息,表明目录的不同条带放在哪些MDS上,创建时利用本地文件系统mkdir创建普通目录;
3)新文件和子目录的创建
在步骤1)和步骤2)完成以后,后续再有文件创建操作时,先读父目录的标识和时间戳,判断目录的条带类型和设置标识的时间,当文件的创建时间在时间戳之后,则将其打散到条带中,在各个条带所对应的元数据服务器MDS上,创建文件和子目录;
4)文件查找操作
读取父目录的条带信息和时间戳,如果为混合条带类型,则首先在父目录本地的dentry项里找文件名,如果没有找到,则到目录条带里去找;
5)目录查找readdir
首先读本地所有dentry项,即本地所有文件和子目录;其次读所有条带的dentry项,即所有在远端的文件和子目录;最后将本地dentry和条带的dentry合并在一起,即本地文件和远程文件。
2.根据权利要求1所述的分布式文件系统的目录系统的实现方法,其特征在于,所述步骤1)中所述的条带信息包括条带深度和起始位置。
3.根据权利要求1所述的分布式文件系统的目录系统的实现方法,其特征在于,所述步骤2)中也可以采用KVDB数据库系统创建条带对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810632685.XA CN108763589B (zh) | 2018-06-20 | 2018-06-20 | 一种分布式文件系统的目录系统及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810632685.XA CN108763589B (zh) | 2018-06-20 | 2018-06-20 | 一种分布式文件系统的目录系统及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108763589A CN108763589A (zh) | 2018-11-06 |
CN108763589B true CN108763589B (zh) | 2021-12-07 |
Family
ID=63979067
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810632685.XA Active CN108763589B (zh) | 2018-06-20 | 2018-06-20 | 一种分布式文件系统的目录系统及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108763589B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110245122B (zh) * | 2019-05-08 | 2022-08-09 | 华为技术有限公司 | 一种数据处理的方法和kv存储系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101622606A (zh) * | 2006-12-06 | 2010-01-06 | 弗森多系统公司(dba弗森-艾奥) | 用于作为大容量、非易失性存储器的高速缓存的固态存储器的装置、系统和方法 |
CN102385623A (zh) * | 2011-10-25 | 2012-03-21 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统中目录的存取方法 |
CN105224244A (zh) * | 2015-09-07 | 2016-01-06 | 浙江宇视科技有限公司 | 一种文件存储的方法和装置 |
CN105824720A (zh) * | 2016-03-10 | 2016-08-03 | 中国人民解放军国防科学技术大学 | 一种面向数据连续读取的重删纠删混合系统的数据放置方法器 |
CN106021462A (zh) * | 2016-05-17 | 2016-10-12 | 深圳市中博科创信息技术有限公司 | 集群文件系统文件存储的方法及集群文件系统 |
CN107679193A (zh) * | 2017-10-09 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种用于分布式文件系统的热度统计方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150061258A (ko) * | 2013-11-27 | 2015-06-04 | 한국전자통신연구원 | 분산 raid 시스템에서 패리티 청크 운용 방법과 이를 지원하는 데이터 서버 장치 |
US9524302B2 (en) * | 2014-03-05 | 2016-12-20 | Scality, S.A. | Distributed consistent database implementation within an object store |
-
2018
- 2018-06-20 CN CN201810632685.XA patent/CN108763589B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101622606A (zh) * | 2006-12-06 | 2010-01-06 | 弗森多系统公司(dba弗森-艾奥) | 用于作为大容量、非易失性存储器的高速缓存的固态存储器的装置、系统和方法 |
CN102385623A (zh) * | 2011-10-25 | 2012-03-21 | 曙光信息产业(北京)有限公司 | 一种分布式文件系统中目录的存取方法 |
CN105224244A (zh) * | 2015-09-07 | 2016-01-06 | 浙江宇视科技有限公司 | 一种文件存储的方法和装置 |
CN105824720A (zh) * | 2016-03-10 | 2016-08-03 | 中国人民解放军国防科学技术大学 | 一种面向数据连续读取的重删纠删混合系统的数据放置方法器 |
CN106021462A (zh) * | 2016-05-17 | 2016-10-12 | 深圳市中博科创信息技术有限公司 | 集群文件系统文件存储的方法及集群文件系统 |
CN107679193A (zh) * | 2017-10-09 | 2018-02-09 | 郑州云海信息技术有限公司 | 一种用于分布式文件系统的热度统计方法和系统 |
Non-Patent Citations (1)
Title |
---|
"一种支持数据去冗和扩容的多媒体文件云存储系统实现";汪帅 等;《计算机研究与发展》;20180312;第1034-1048页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108763589A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3862883B1 (en) | Data backup method and apparatus, and system | |
CN106815326B (zh) | 一种检测无主键数据表一致性的系统及方法 | |
CN103473277B (zh) | 文件系统的快照方法和装置 | |
US20160246803A1 (en) | Distributed file system snapshot | |
US20060235847A1 (en) | Traversing data in a repeatable manner | |
US20080065663A1 (en) | Reestablishing process context | |
CN103179185A (zh) | 一种分布式文件系统客户端缓存中文件创建方法及其系统 | |
US20150154221A1 (en) | Deduplication method and deduplication system using data association information | |
CN105376277A (zh) | 一种数据同步方法及装置 | |
CN107679420B (zh) | 一种基于分布式文件系统的权限设置方法及系统 | |
US20150006485A1 (en) | High Scalability Data Management Techniques for Representing, Editing, and Accessing Data | |
US8832030B1 (en) | Sharepoint granular level recoveries | |
CN103744875B (zh) | 基于文件系统的数据快速迁移方法及系统 | |
CN103916467A (zh) | 一种元数据集群中负载转移方法及系统 | |
CN107451176B (zh) | 数据复制方法及其装置 | |
US20080065637A1 (en) | Locating last processed data | |
CN108763589B (zh) | 一种分布式文件系统的目录系统及其实现方法 | |
EP3522040B1 (en) | Method and device for file storage | |
CN107273449B (zh) | 一种基于内存数据库的断点处理方法及系统 | |
CN115098447A (zh) | 文件恢复方法、装置、电子设备及可读存储介质 | |
CN115185967A (zh) | 数据处理方法、装置、电子设备和存储介质 | |
CN110659254A (zh) | 一种已删除文件恢复方法、装置、设备及可读存储介质 | |
CN100357943C (zh) | 一种检查机群文件系统中垃圾文件的方法 | |
CN107169126A (zh) | 一种日志处理方法及相关设备 | |
CN107832455A (zh) | 一种存储对象的数据获取方法、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 |