分布式文件系统及其协存储方法

文档序号:6604354阅读:117来源:国知局
专利名称:分布式文件系统及其协存储方法
技术领域
本发明涉及通讯领域,尤其涉及一种分布式文件系统及其协存储方法。
背景技术
一个分布式文件系统一般包含一个元数据服务器(Metadata Server)和多个数据 服务器(Data Server),被多个客户端(Client)访问,如图1所示文件被分成固定尺寸的块(CHUNK),存储在Data Server上,为了保证可靠性,每 个CHUNK可以存储在多个Data Server上。Metadata Server管理文件所有的元数据,包括文件命名空间、访问控制信息,文 件到CHUNK的映射信息,以及CHUNK当前所在的位置等。它还管理系统范围的活动,例如 CHUNK租用管理,孤儿CHUNK的垃圾回收,以及CHUNK在Data Server间的移动。Metadata Server用心跳信息周期地跟每个Data Server通讯,给它们以指示并收集它们的状态。Client 实现了文件系统应用程序接口(Application Program Interface,简称 API),帮助应用程序与Metadata Server和Data Server通讯,对数据进行读写。Client与 Metadata Server交互进行元数据操作,Client根据这些元数据信息与Data Server直接 进行数据操作。图2示出了现有技术的Client打开文件的流程,是文件访问的第一必要步骤,包 括Client 向 Metadata Server 发送打开(open)文件,Metadata Server 返回元数 据,其中包括数据信息;Client执行创建文件描述结构体。图3是现有技术的Client写入(包括创建CHUNK)文件的流程,参考图3,当上层 应用程序调用write接口时,Client根据写参数向Metadata Server请求写入CHUNK的位 置,如果CHUNK不存在(比如新建文件和追加数据)就由Metadata Server向Data Server 发起创建请求,成功后Metadata Server向Client返回该位置信息,最后由Client直接 对Data Server上的该CHUNK进行写操作。图4是现有技术的Client写入(不包括创建 CHUNK)文件的流程,如图4所示当上层应用程序调用write接口时,Client根据写参数 向Metadata Server请求写入CHUNK的位置,如果CHUNK存在,则MetadataServer直接向 Client返回该位置信息,最后由Client直接对Data Server上的该CHUNK进行写操作。在上述的处理过程中,存在以下问题对一个小文件而言(例如小于某一预设值 MIN的小文件),这种通用的写流程显得比较冗长,在某些特殊的大量存储小文件的应用情 景下,系统会由于反复访问小文件而导致写效率下降,因此有必要提出改进的技术手段,来 解决此问题。

发明内容
有鉴于现有技术存在现有的反复访问小文件而导致写效率下降的问题而做出本 发明,为此本发明的主要目的在于提供一种分布式文件系统及其协存储方法,其中
根据本发明实施例的分布式文件系统的协存储方法包括客户端创建文件描述结 构体,文件描述结构体中包括数据流信息,其用于存储预先扩充的元数据的数据流字段;客 户端在写操作时,对文件描述结构体的数据流信息进行写操作。优选地,在客户端创建文件描述结构体之前,该方法进一步包括客户端在打开文 件时,通过元数据服务器获取包括数据流字段的元数据。优选地,客户端创建文件描述结构体进一步包括客户端根据获取到的元数据创 建文件描述结构体,并返回文件句柄。优选地,客户端在写操作时,对文件描述结构体的数据流信息进行写操作,进一步 包括客户端在写操作时,根据文件句柄定位到对应的文件描述结构体,并对文件描述结构 体的数据流信息进行更新。优选地,该方法还包括客户端通过文件长度更新消息将更新的数据流发送到元 数据服务器。优选地,若更新的数据流大于预设值,则通过数据服务器进行写操作。根据本发明实施例的分布式文件系统,包括客户端,其具体包括创建模块,用于 创建文件描述结构体,文件描述结构体中包括数据流信息,其用于存储预先扩充的元数据 的数据流字段;写操作模块,用于对文件描述结构体的数据流信息进行写操作。优选地,客户端进一步包括获取模块,用于在打开文件时,通过元数据服务器获 取包括数据流字段的元数据;创建模块根据获取到的元数据创建文件描述结构体。优选地,客户端还包括更新模块,用于通过文件长度更新消息将更新的数据流发 送到元数据服务器。与现有技术相比,根据本发明的技术方案,缩短了客户端写小文件的流程,避免了 对元数据服务器的访问和频繁的硬盘操作,提高了系统的写入速度、和整体并发处理能力。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是现有的分布式文件系统架构图;图2是现有的分布式文件系统的打开文件处理流程的示意图;图3是现有的分布式文件系统的写入(含创建)处理流程的示意图;图4是现有的分布式文件系统的写入处理流程的示意图;图5是根据本发明实施例的元数据扩展数据流字段的示意图;图6是根据本发明实施例的分布式文件系统的协存储方法的流程图;图7是根据本发明实施例的分布式文件系统的协存储方法的打开文件处理流程 的示意图;图8是根据本发明实施例的分布式文件系统的协存储方法的一个写入处理流程 的示意图;图9是根据本发明实施例的分布式文件系统的协存储方法的另一写入处理流程 的示意图。图10是根据本发明的实施例的分布式文件系统的框图。
具体实施例方式本发明的主要思想主要在于,客户端在本地创建文件描述结构体,该文件描述结 构体包括一个用于存储元数据数据流的数据流信息,对于小于预设值的数据流的写操作, 直接对文件描述结构体进行更新。为使本发明的目的、技术方案和优点更加清楚,以下结合附图及具体实施例,对本 发明作进一步地详细说明。根据本发明的实施例,提供了一种分布式文件系统的协存储方法。首先,对文件的元数据扩充一个数据流属性,充分利用元数据服务器的存储能力, 参考图5,图5是根据本发明实施例的元数据扩展数据流字段的示意图。如图5所示,现有 的文件的元数据字段属性包括文件名称(Filename)文件大小(File size)、时间戳(Time stamp)、文件类型(File type)等字段属性信息。在本发明中,对元数据字段进行扩展,增 加一个数据流(Data stream)属性字段,该数据流属性用于存储元数据中的数据流。图6是根据本发明实施例的分布式文件系统的协存储方法的流程图,如图6所示, 该方法包括(步骤S602-S604)步骤S602,客户端创建文件描述结构体(file description structure),文件描 述结构体中包括数据流信息,其用于存储预先扩充的元数据的数据流字段。文件描述结构体用于存储客户端从服务器获取的元数据属性,一般地,文件描述 结构体与元数据属性信息一一对应,由于在服务器端扩展了一个数据流属性字段,所以客 户端在获取服务器端的数据流属性字段中的内容需要创建一文件描述结构体,以存储该数 据流字段。客户端在打开文件时,通过元数据服务器获取包括数据流字段的元数据,并根据 获取到的元数据创建文件描述结构体,并返回文件句柄。步骤S604,客户端在写操作时,对文件描述结构体的数据流信息进行写操作。客户 端根据文件句柄定位到对应的文件描述结构体。经过上述处理,客户端在本地实现了小文件的写操作,避免了对元数据服务器的 访问和频繁的硬盘操作,因此缩短了客户端写小文件的流程,达到了提高数据处理效率的 目的。下面结合图7、图8和图9详细描述本发明实施例。在分布式文件系统中,对文件数据进行写入操作之前,先要进行打开该文件的处 理操作。图7是根据本发明实施例的分布式文件系统的协存储方法的打开文件处理流程的 示意图,如图7所示,该处理包括以下步骤步骤S702,应用程序调用open接口,通过客户端(Client)向元数据服务器 (Metadata Server)发送打开文件(open file)请求。步骤S704,元数据服务器收到打开请求后载入该文件的元数据,并根据元数据 中的文件长度信息判断该元数据中是否含有有效数据流,如果有数据流,就作为响应消息 (元数据信息)的一部分返回给客户端。步骤S706,客户端根据获取到元数据信息(含数据流)创建对应的文件描述结构 体(File Description Structure),并返回文件句柄给上层的应用程序。
在打开文件之后,就可以对文件进行写入操作。图8是根据本发明实施例的分布 式文件系统的协存储方法的一个写入处理流程的示意图,如图8所示,在图7所示处理的基 础上,还包括以下处理步骤S802,上层应用程序获取到文件句柄后,通过句柄向文件写入(write)数据 时,首先根据文件句柄定位到对应的文件描述结构体,如果该结构体中有有效数据流信息, 直接将数据写入到文件描述结构体的数据流字段中,并同步修改其他元数据字段(大小, 时间戳等);步骤S804,如果在写入操作中导致数据流大小发生变化(比如追加式写入),则客 户端向元数据服务器发起文件大小变更通知。步骤S806,元数据服务器根据预设值(MIN)判断当前的文件是否满足小文件条 件,若当前的文件小于预设值(MIN)(即当前的文件仍为小文件),则向客户端返回确认消 息;步骤S808,客户端通过文件长度更新消息将更新的文件数据流发送到元数据服务 器,以使客户端和元数据服务器的文件数据流保持一致。在对文件进行写入操作时,如果在写入操作中导致数据流大于预设值(MIN)(即 当前的文件变为大文件),则文件的数据不再允许以元数据数据流来存储,参考图9,具体 包括步骤S902-904与S802-804类似,此处不赘述。步骤S906,元数据服务器根据预设值(MIN)判断当前的文件是否满足小文件条 件,若当前的文件大于预设值(MIN)(即当前的文件变为大文件),则元数据通知客户端需 要将文件描述结构体中的数据流写入到数据服务器上。步骤S908-918,客户端发起写入流程,客户端根据写参数向元数据服务器请求写 入CHUNK的位置,如果CHUNK不存在(比如新建文件和追加数据)就由元数据服务器向数据 服务器发起创建请求,成功后元数据服务器向客户端返回该位置信息,客户端直接对Data Server上的该CHUNK进行写操作,客户端将文件描述结构体中的数据流写入数据服务器,一般情况下,可以由使用者根据写入小文件的大小预先设置元数据存储文件大小 的阈值,例如本次写入的小文件大小为10K,则设置MIN为10K,即小于10K的文件为小文 件,执行如图8所示的流程,超过10K的文件为大文件,执行如图9所示的流程。在下一次进 行文件处理时可以重新设置MIN的值,需要说明,设置MIN值还需要考虑系统内存的大小。系统实施例根据本发明的实施例,还提供了 一种分布式文件系统。图10是根据本发明的实施例的分布式文件系统的框图,如图10所示,包括客户 端10和元数据服务器20,其中该客户端10包括获取模块110,用于在打开文件时,通过元数据服务器20获取包括数据流字段的 元数据。创建模块120,用于根据获取模块110获取到的元数据创建文件描述结构体,文件 描述结构体中包括数据流信息,其用于存储预先扩充的元数据的数据流字段。写操作模块 130,用于在写操作时,对文件描述结构体的数据流信息进行写操作。更新模块140,用于通 过文件长度更新消息将更新的数据流发送到元数据服务器。在实际应用中,根据本发明实施例的分布式文件系统的协存储系统的具体处理流程可以参考图6至图9,此处不赘述。综上所示,根据本发明上述技术方案,客户端在本地实现了小文件的写操作,缩短 了客户端写小文件的流程,避免了对元数据服务器的访问和频繁的硬盘操作,提高了系统 的写入速度、和整体并发处理能力。以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人 员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、 等同替换、改进等,均应包含在本发明的权利要求范围之内。
权利要求
一种分布式文件系统的协存储方法,其特征在于,包括客户端创建文件描述结构体,所述文件描述结构体中包括数据流信息,其用于存储预先扩充的元数据的数据流字段;所述客户端在写操作时,对所述文件描述结构体的数据流信息进行写操作。
2.根据权利要求1所述的方法,其特征在于,在所述客户端创建文件描述结构体之前, 所述方法进一步包括所述客户端在打开文件时,通过元数据服务器获取包括数据流字段的元数据。
3.根据权利要求2所述的方法,其特征在于,所述客户端创建文件描述结构体进一步 包括所述客户端根据获取到的所述元数据创建文件描述结构体,并返回文件句柄。
4.根据权利要求3所述的方法,其特征在于,所述客户端在写操作时,对所述文件描述 结构体的数据流信息进行写操作,进一步包括所述客户端在写操作时,根据所述文件句柄定位到对应的文件描述结构体,并对所述 文件描述结构体的数据流信息进行更新。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括所述客户端通过文件长度更新消息将更新的数据流发送到所述元数据服务器。
6.根据权利要求5所述的方法,其特征在于,若更新的数据流大于预设值,则通过数据 服务器进行写操作。
7.一种分布式文件系统,其特征在于,包括客户端,其具体包括创建模块,用于创建文件描述结构体,所述文件描述结构体中包括数据流信息,其用于 存储预先扩充的元数据的数据流字段;写操作模块,用于对所述文件描述结构体的数据流信息进行写操作。
8.根据权利要求7所述的系统,其特征在于,所述客户端进一步包括获取模块,用于在打开文件时,通过元数据服务器获取包括数据流字段的元数据;所述 创建模块根据获取到的所述元数据创建文件描述结构体。
9.根据权利要求8所述的系统,其特征在于,所述客户端还包括更新模块,用于通过文件长度更新消息将更新的数据流发送到所述元数据服务器。
全文摘要
本发明公开了一种分布式文件系统及其协存储方法,其中,该方法包括客户端创建文件描述结构体,文件描述结构体中包括数据流信息,其用于存储预先扩充的元数据的数据流字段;客户端在写操作时,对文件描述结构体的数据流信息进行写操作。通过本发明,能够提高系统的写入速度以及整体并发处理能力。
文档编号G06F17/30GK101877009SQ20101020343
公开日2010年11月3日 申请日期2010年6月12日 优先权日2010年6月12日
发明者张波, 江凌生, 陈阳 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1