一种并行网络文件系统中保证数据有效性的系统及其方法

文档序号:9217285阅读:612来源:国知局
一种并行网络文件系统中保证数据有效性的系统及其方法
【技术领域】
[0001]本发明涉及并行网络文件系统中文件间数据预读取后的缓存有效性机制,特别涉及一种并行网络文件系统中保证数据有效性的系统及其方法。
【背景技术】
[0002]随着大数据时代的来临,全球数据信息量迅猛增长。在电子商务、社交网络、科学计算等领域中存在越来越多的小尺寸的文件。美国太平洋西北国家实验室2007年统计,其内部存储的1200多万的文件中,80%以上的文件小于1MB,50%以上的文件小于32KB。从某种意义上来说,当前并不存在纯粹的大文件应用。人类逐步迈入“海量小文件的时代”。
[0003]并行网络文件系统(pNFS)采用元数据与数据服务分离结构,客户端通过带外访问模式直接访问存储设备,在大文件访问过程中性能极佳,同时,又因其广泛的兼容性和扩展性,得到工业界和学术界的支持,逐渐成为事实上的分布式文件系统标准。在文件“小而多”的发展趋势下,并行网络文件系统越来越多地承担了小文件管理的重任。然而,由于缺乏针对小文件的访问优化,小文件的性能较差。
[0004]在先前的技术研宄中,提出机群文件系统中通过readdir++预读文件布局的系统及其方法(杨洪章、张军伟、刘振军等,申请号201410076739.0),该项专利基于目录授权机制,即元数据服务器可以保证客户端缓存中当前目录下文件的元数据的有效性,取得了十分理想的优化效果。如能将目录授权机制中对于“元数据有效性保证”推广至对于“数据有效性保证”,小文件的读访问性能将会有更进一步的提升。
[0005]但是,与元数据预取相比,数据预取存在的最大难点在于:即便拥有良好的物理局部性,但是无法准确确定预取数据页面是属于哪个文件,甚至会预取到其他目录下文件的数据页面,这对于将目录授权推广至“数据有效性保证”产生了很大的障碍。
[0006]针对上述现实需求以及当前相关研宄的不足,有必要提出一种并行网络文件系统中保证数据有效性的系统及方法,该种方法能够保证预取数据的有效性,使得目录授权机制的含义得以扩展,数据访问的性能显著提升。

【发明内容】

[0007]本发明的目的在于提供一种并行网络文件系统中保证数据有效性的系统及其方法,用于保证预取数据的有效性。
[0008]为了实现上述目的,本发明提供一种并行网络文件系统中保证数据有效性的系统,包括:
[0009]客户端,用于发送只读目录授权申请,接收所授予的只读目录授权,标记只读目录的版本号,并访问磁盘中该只读目录下的文件以及该文件的数据页面;
[0010]元数据服务器,用于接收客户端发送的只读目录授权申请,并授予客户端只读目录授权;
[0011]客户端在完成访问后归还该只读目录授权至元数据服务器,并清除该只读目录的版本号。
[0012]所述的系统,其中,客户端在匿名页缓存中通过双向链表的方式组织匿名页,该双向链表的组织方式为二级索引,通过检查该双向链表中是否有相应页面的方式判断匿名页缓存中是否有该当前数据页面。
[0013]所述的系统,其中,客户端访问当前数据页面,并根据该文件布局判定页面缓存中是否有该当前数据页面,当页面缓存中有该当前数据页面时,进一步判定该当前数据页面是否为最后一个数据页面;当页面缓存中无该当前数据页面时,则进一步判定匿名页缓存中是否有该当前数据页面;
[0014]客户端当判定该当前数据页面为最后一个数据页面时,进一步判定当前访问文件是否为最后一个文件,若是,则归还该只读目录授权至元数据服务器,并清除该只读目录的版本号,若否,贝lJ访问下一个文件;
[0015]客户端当判定匿名页缓存中有该当前数据页面时,进一步比较匿名页版本号与当前只读目录的版本号,若小于当前只读目录的版本号,则向磁盘发出读盘请求,将当前只读目录的版本号标记在匿名页中;若大于或等于当前只读目录的版本号,则进一步判断当前数据页面是否是最后一个数据页面。
[0016]所述的系统,其中,客户端向磁盘发出读盘请求后,扩展该文件布局,并根据扩展后的文件布局向磁盘发送大粒度读盘请求;
[0017]磁盘处理该大粒度读盘请求,并根据扩展后的文件布局,将被请求大粒度数据发送给客户端;
[0018]客户端将大粒度数据的数据页面拷贝到所创建的匿名页链表中的空白匿名页中。
[0019]所述的系统,其中,所述扩展后的文件布局中扩展部分的文件布局大小等于一次大粒度请求页面数减去原始文件布局。
[0020]为了实现上述目的,本发明提供一种并行网络文件系统中保证数据有效性的方法,包括:
[0021 ] 步骤一,客户端向元数据服务器发送只读目录授权申请,元数据服务器授予客户端只读目录授权;
[0022]步骤二,客户端标记只读目录的版本号,访问磁盘中该只读目录下的文件,并访问该文件的数据页面;
[0023]步骤三,客户端在完成访问后归还该只读目录授权至元数据服务器,并清除该只读目录的版本号。
[0024]所述的方法,其中,所述步骤二中,包括:
[0025]客户端在匿名页缓存中通过双向链表的方式组织匿名页,该双向链表的组织方式为二级索引,通过检查该双向链表中是否有相应页面的方式判断匿名页缓存中是否有该当前数据页面。
[0026]所述的方法,其中,所述步骤二中,包括:
[0027]客户端访问当前数据页面,并根据该文件布局判定页面缓存中是否有该当前数据页面,当页面缓存中有该当前数据页面时,进一步判定该当前数据页面是否为最后一个数据页面;当页面缓存中无该当前数据页面时,则进一步判定匿名页缓存中是否有该当前数据页面;
[0028]客户端当判定该当前数据页面为最后一个数据页面时,进一步判定当前访问文件是否为最后一个文件,若是,则进入步骤三,若否,则访问下一个文件;
[0029]客户端当判定匿名页缓存中有该当前数据页面时,进一步比较匿名页版本号与当前只读目录的版本号,若小于当前只读目录的版本号,则向磁盘发出读盘请求,将当前只读目录的版本号标记在匿名页中;若大于或等于当前只读目录的版本号,则进一步判断当前数据页面是否是最后一个数据页面。
[0030]所述的方法,其中,所述步骤二中,进一步包括:
[0031]客户端向磁盘发出读盘请求后,扩展该文件布局,并根据扩展后的文件布局向磁盘发送大粒度读盘请求;
[0032]磁盘处理该大粒度读盘请求,并根据扩展后的文件布局,将被请求大粒度数据发送给客户端;
[0033]客户端将大粒度数据的数据页面拷贝到所创建的匿名页链表中的空白匿名页中。
[0034]所述的方法,其中,所述扩展后的文件布局中扩展部分的文件布局大小等于一次大粒度请求页面数减去原始文件布局。
[0035]与现有技术相比,本发明的有益技术效果是:
[0036]本发明提出了一种并行网络文件系统中通过版本号保证数据有效性的系统及方法,以提高海量小文件读访问性能。本发明提出的系统及方法是基于PNFS中的只读目录授权机制。
【附图说明】
[0037]图1是本发明的版本号标记数据有效性示意图;
[0038]图2是本发明并行网络文件系统中保证数据有效性的系统结构图;
[0039]图3是本发明双向链表的组织方式示意图;
[0040]图4是本发明并行网络文件系统中保证数据有效性的方法流程图。
【具体实施方式】
[0041]以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
[0042]如图1所示,是版本号标记数据有效性示意图。
[0043]版本号是一种时间标记,可区分同一客户端的不同只读目录授权。既可区分不同目录之间的授权,也可区分同一目录的多次授权。当元数据服务器授予客户端目录授权时,同时标记该授权的版本号。当客户端目录授权被召回时,版本号同时失效。下次再获得授权后,获得新的版本号。
[0044]版本号可以识别客户端缓存中的无效数据。在只读目录授权持有期间,当预读数据页面被组织在客户端时,设置该页面的版本号为该授权的版本号。客户端在访问数据页面时,如果出现陈旧版本号或错误版本号,则认为数据无效,需到磁盘获取最新数据并替换旧数据;如果是当前版本号或未来版本号,则认为数据有效。
[0045]在图1中,页面5的版本号I小于目录版本号5,为陈旧版本号;页面4的版本号3非当前目录的上次版本号1,且小于目录版本号5,为错误版本号;页面1、2、6的版本号等于目录版本号,为当前版本号;页面3的版本号6大于目录版本号5,为未来版本号。
[0046]版本号的好处有两点:
[0047](I)使召回迅速响应。版本号技术将无效数据的清除工作延迟至读时清除。如果在授权召回时进行当前版本号页面的清除,则会导致庞大的系统
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1