[发明专利]基于文件系统的NFS数据I/O加速方法有效

专利信息
申请号: 201210018257.0 申请日: 2012-01-20
公开(公告)号: CN102609485A 公开(公告)日: 2012-07-25
发明(设计)人: 张庆敏;张衡;胡刚;谢海威;吴清秀 申请(专利权)人: 无锡众志和达存储技术有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 江苏英特东华律师事务所 32229 代理人: 邵鋆
地址: 214000 江苏省无锡市新区*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 文件系统 nfs 数据 加速 方法
【说明书】:

技术领域

发明涉及计算机数据存储技术,特别是一种Linux的网络文件系统(NFS)数据的读写(I/O)方法。

背景技术

网络文件系统(NFS,Network File System的简写)是FreeBSD支持的文件系统中的一种,允许一个系统在网络上与他人共享目录和文件。现有Linux系统下的NFS进行数据读写是通过远程过程调用协议(RPC,Remote Procedure Call Protocol的简写,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。)请求实现的,每个RPC包中都带有NFS请求/响应包。典型的NFS数据流模型如图1所示的:每个NFS请求包都包含RPC包头信息,先经过RPC层,RPC层接收完整的RPC包,解析出NFS包,然后传到NFS 层,再解析NFS请求的指令,最后由虚拟文件系统层(Virtual File System 、VFS)执行相应的存入或读取动作。这样,每次I/O,都要从系统中分配内存,并且物理存储介质会有一次以上I/O操作,性能较低。

发明内容

本发明的目的为了克服背景技术所说的现有Linux系统NFS数据I/O的缺陷,发明一种速度更快、效率更高的I/O方法。

本发明的方法是,使用连续的物理内存当作NFS的I/O缓冲区(cache);RPC层接收数据包时,边接收边解析,解析出每个数据包中NFS写请求的包,确定是NFS数据包开始接收其数据段时,从NFS的I/O缓冲区(cache)中分配所需的内存,并将NFS数据段接收到该缓冲区内;从NFS的I/O缓冲区分配内存时,目标地址连续的NFS数据分配连续的内存,多个连续的NFS数据组合到一个连续的物理内存里面;当累积到如下条件之一时,一次性把一段连续物理内存的整段数据刷到物理存储介质中:

(1)   当缓冲区快填满时;

(2)   当请求中的目标逻辑地址与缓冲区中已填入的数据地址不连续时;

(3)   超过设定的时间上限,没有新的请求,而缓冲区中仍有数据时;

数据刷入物理存储介质以后清空NFS的I/O缓冲区。

为了防止缓冲区正在刷数据时,外部请求暂时无法分配到缓冲区内存,优选方案是:同时使用多个缓冲区,每一时刻,只有一个缓冲区处于活动状态(Active),分配内存都优先从活动状态的缓冲区分配,当该缓冲区要刷新数据时,激活下一个缓冲区,多个缓冲区依次循环使用。

本发明的方法,可以明显减少物理存储设备的I/O次数,降低能耗,提高速度;同时,本发明方法将小的请求包数据通过缓冲区累积形成大块的数据进行I/O操作,可以提高性能。

附图说明

图1,现有技术的NFS数据流图示意图;

图2,本发明方法的流程模型图。

具体实施方式

本发明方法仅涉及使用标准RPC协议的网络文件系统(NFS)数据在RPC协议层的接收到存储至物理存储介质的I/O流程,而不涉及现有技术中的数据传输的其他过程。除本发明所述的这部分流程以外,其他流程照样可以使用现有方法实现而没有冲突。

如图2的原理模型,数据流依然经过RPC层、NFS层和VFS层,最后将储存到物理存储介质,本发明所述的数据I/O就在这部分完成。一个NFS数据请求包括有RPC字头(RPC Header)、NFS字头(NFS Header)和需要I/O的数据段。

在RPC层中实现了一个NFS解析模块,边接收边解析。另一方面,在物理存储介质中,分配出NFS的I/O缓冲区(NFS Cache),这里根据需要设置有多个I/O缓冲区:缓冲区0(NFS Cache0)、缓冲区1(NFS Cache1)……多个I/O缓冲区一次循环使用。接收到的I/O数据段,检查是否需要写入I/O缓冲区,是的话则写入;同时,还判断是否需要切换I/O缓冲区。连续的数据写入I/O缓冲区的连续内存地址,当满足下列三种条件之一的情况,则将积累的一段数据以直接I/O方式刷入物理存储介质。这三种情况是:1,当前I/O缓冲区填满,无法写入新数据;2,当请求中的目标逻辑地址与缓冲区中已填入的数据地址不连续时,也就是说不是连续地址数据,无法形成连续数据不能累计成大段数据;3,超过预先设定的时间上限,一直没有新的请求下来,而缓冲区中仍有数据;这是说明数据传输停止的情况。

数据刷到物理存储介质(如磁盘)以后,清空当前使用的I/O缓冲区,重新开始本发明方法的流程。

多个I/O缓冲区循环依次使用是指在数据写入I/O缓冲区的时候,其他外部请求无法使用该段分配内存造成堵塞,降低I/O效率;每次只有一个I/O缓冲区被激活(Active)使用,前述切换I/O缓冲区的情况即是基于此产生。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡众志和达存储技术有限公司,未经无锡众志和达存储技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210018257.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top