分布式文件系统及其存储海量小文件的方法

文档序号:9417404阅读:637来源:国知局
分布式文件系统及其存储海量小文件的方法
【技术领域】
[0001]本发明涉及数据存储领域,特别涉及一种分布式文件系统及其存储海量小文件的方法。
【背景技术】
[0002]如今,人类已经步入信息化时代,各行各业产生的数据信息总量正呈现爆炸式地增长,例如,纽约证券交易所一天产生的数据可以达到一个T的级别,著名的社交网站Facebook在全球拥有上亿的用户,因此需要存储的用户数据非常庞大,在这些庞大的用户数据中,海量小文件所占的比重正逐渐增大。在这种大背景下,如何将这些由社会化网络、移动通信、网络视频音频、科学实验等各种应用产生的文件数据进行有效地、安全地存储并且能方便用户随时查找,已成为信息化时代亟待解决的难题。通常认为大小在IMB以内的文件为小文件,百万级数量及以上称为海量,数据越庞大,需要存储空间就越多,此时如果继续采用传统的存储方式不仅成本非常高,而且也较复杂。因此如何用普通的硬件来实现海量数据的存储,逐渐成为热点课题,分布式文件系统在这种大背景下应运而生。
[0003]分布式文件系统,是一种允许文件通过网络在多台主机上分享的文件系统,分布式文件系统可以让多台机器上的多用户分享文件和存储空间。分布式文件系统最大的一个特性叫做通透性,在分布式文件系统中,访问文件上的数据实际上是通过网络来实现的,但是在用户看来,访问分布式文件系统与访问本地磁盘文件是一样的。在处理海量小文件的问题上,由于海量小文件需要的存储容量巨大,文件系统的处理性能会受到显著的影响,在文件系统中,由于文件的索引节点和数据保存在存储器的不同位置上,因此访问一个文件时就需要经历多次独立的随机访问,但是在大并发量的情况下,这种随机访问对于磁盘系统来说是非常低效的。

【发明内容】

[0004]【要解决的技术问题】
[0005]本发明的目的是提供一种分布式文件系统及其存储小文件的方法,以解决目前的海量小文件存储的效率较低的问题。
[0006]【技术方案】
[0007]本发明是通过以下技术方案实现的。
[0008]本发明首先涉及一种分布式文件系统,包括客户端、资源定位模块和数据存储模块,
[0009]所述客户端被配置成:向资源定位模块发送小文件上传请求、将小文件上传至数据存储模块;
[0010]所述资源定位模块包括至少一个资源定位器,所述资源定位器被配置成:处理客户端发送的小文件上传请求、为客户端分配源节点、指定数据存储服务器中的一个数据存储节点作为合并存储的主服务器,所述主服务器被配置成:为小文件分配空闲存储单元并完成小文件的合并存储、将小文件的存储信息同步到与主服务器同组的其他数据存储节点,所述源节点为资源定位器查询得到的可用的数据存储节点,所述源节点被配置成:将上传的小文件主动推送至与其同组的其他数据存储节点;
[0011]所述数据存储模块包括至少一组数据存储服务器,所述数据存储服务器包括至少一个数据存储节点,所述数据存储模块被配置成用于实现小文件的存储、同步。
[0012]作为一种优选的实施方式,所述数据存储节点的存储空间包括大小相等的多个存储单元,所述存储单元包括最小存储空间和最大存储空间,所述主服务器被配置成:当上传的小文件小于最小存储空间时,则上传的小文件占用一个存储空间;当上传的小文件大于最大存储空间时,则上传的小文件作为一个单独的文件存储。
[0013]作为另一种优选的实施方式,所述主服务器还包括为各个数据存储节点分配的以空闲存储单元大小作为关键字的平衡二叉树,所述平衡二叉树用于保存空闲存储单元。
[0014]作为另一种优选的实施方式,所述主服务器为数据存储服务器中最先启动的数据存储节点或最近一次与资源定位器发起主动连接的数据存储节点。
[0015]本发明还涉及一种分布式文件系统存储海量小文件的方法,包括步骤:
[0016]A、组建权利要求1至4中任一所述的分布式文件系统;
[0017]B、当用户需要上传小文件时,通过客户端向资源定位器发起上传请求,资源定位器为客户端分配源节点并指定数据存储服务器中的一个数据存储节点作为主服务器,所述主服务器为小文件分配空闲存储单元并完成小文件的合并存储,文件合并存储结束后,将空闲存储单元的使用情况发送至主服务器;
[0018]C、源节点将小文件及其存储信息同步到与源节点同组的其他数据存储节点;
[0019]D、主服务器将合并存储日志同步到与主服务器同组的其他数据存储节点。
[0020]作为一种优选的实施方式,所述步骤B具体包括步骤:
[0021]B1、当用户需要上传文件时,由客户端向资源定位器发起上传请求;
[0022]B2、资源定位器查询可用的数据存储节点作为源节点并指定主服务器;
[0023]B3、资源定位器将源节点的IP和端口信息返回给客户端;
[0024]B4、客户端上传小文件到源节点;
[0025]B5、源节点判断其本身是否是主服务器,如果不是,执行步骤B6,反之则跳转至步骤B7 ;
[0026]B6、源节点发送请求到主服务器,请求主服务器分配一个可用的空闲存储单元进行合并存储,转入步骤BlO ;
[0027]B7、源节点查找主服务器的平衡二叉树是否有合适的空闲存储单元,如果没有,则执行步骤B8,反之则跳转至步骤B9 ;
[0028]B8、使用一个新的存储单元进行小文件的存储,存储完毕后将存储单元的剩余存储空间作为空闲存储单元添加至平衡二叉树,转入步骤BlO ;
[0029]B9、将查找到的空闲存储单元分成两部分,将空闲存储单元的一部分存储文件,将空闲存储单元的另一部分作为新的空闲存储单元加入到平衡二叉树,转入步骤BlO ;
[0030]B10、文件合并存储结束后,将空闲存储单元的使用情况发送至主服务器,将生成的合并文件ID返回给客户端。
[0031]作为另一种优选的实施方式,所述合并存储日志包括文件的操作信息、大文件名、小文件在大文件中的偏移量、小文件占用的存储空间大小。
[0032]作为另一种优选的实施方式,所述步骤C还包括:
[0033]启动线程对日志文件进行轮询,检查是否有需要同步的文件,并将已同步的文件记录到标识文件;
[0034]数据存储节点定时将自身的状态信息上报给资源定位器;
[0035]源节点向资源定位器报告其向每个数据存储节点同步小文件及其存储信息的时间。
[0036]作为另一种优选的实施方式,所述文件的存储信息包括文件上传信息、文件删除
?目息O
[0037]作为另一种优选的实施方式,所述步骤D具体包括步骤:
[0038]D1、主服务器收到空闲单元的使用情况后,更新合并存储日志;
[0039]D2、主服务器分别对与其同组的数据存储节点各创建一个同步线程;
[0040]D3、主服务器通过同步线程将合并存储日志同步到与其同组的其他数据存储节占.V,
[0041]D4、与主服务器同组的数据存储节点接收并保持合并存储日志。
[0042]【有益效果】
[0043]本发明提出的技术方案具有以下有益效果:
[0044]本发明构建分布式文件系统,将小文件合并成大文件来存储,通过定位到大文件的指定位置来访问小文件,减少了对文件的读写次数,简化了 1访问流程,提高了文件系统的处理性能。
【附图说明】
[0045]图1为本发明的实施例一提供的分布式文件系统的结构框图。
【具体实施方式】
[0046]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图,对本发明的【具体实施方式】进行清楚、完整的描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例,也不是对本发明的限制。基于本发明的实施例,本领域普通技术人员在不付出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
[0047]实施例一
[0048]实施例一提供一种分布式文件系统,图1为本发明实施例一提供的分布式文件系统。如图1所示,该系统包括客户端、资源定位模块和数据存储模块,
[0049]客户端是用户的操作入口,其分别与资源定位模块和数据存储模块连接,客户端被配置成:向资源定位模块发送小文件上传请求、将小文件上传至数据存储模块。
[0050]资源定位模块包括至少一个资源定位器,资源定位器被配置成:处理客户端发送的小文件上传请求、为客户端分配源节点、指定数据存储服务器中的一个数据存储节点作为合并存储的主服务器,主服务器被配置成:为小文件分配空闲存储单元并完成小文件的合并存储、将小文件的存储信息同步到与主服务器同组的其他数据存储节点,源节点为资源定位器查询得到的可用的数据存储节点,源节点被配置成:将上传的小文件主动推送至与其同组的其他数据存储节点。需要说明,由于资源定位模块由一个或者多个资源定位器组成,为了避免不同的资源定位器指定不同主服务器,需要选择一个主要的资源定位器,可以将最先启动的资源定位器设置为主资源定位器,将数据存储服务器端最先启动的那个数据存储节点作为合并存储的主服务器,另外,当作为合并存储的主服务器宕机时,主资源定位器选择最近一次发起主动连接的数据存储节点作为合并存储的主服务器。另外需要说明,小文件的存储信息包括文件上传信息、文件删除信息。
[0051]本实施例中,主服务器还包括为各个数据存储节点分配的以空闲存储单元大小作为关键字的平衡二叉树,平衡二叉树用于保存空闲存储单元。
[0052]数据存储模块包括至少一组数据存储服务器,数据存储服务器包括至少一个数据存储节点,数据存储模块被配置成用于实现小文
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1