[发明专利]一种分布式文件系统数据访问优化的方法有效
申请号: | 201110326482.6 | 申请日: | 2011-10-25 |
公开(公告)号: | CN102567444A | 公开(公告)日: | 2012-07-11 |
发明(设计)人: | 常涛;吕明强;苗艳超;王勇 | 申请(专利权)人: | 无锡城市云计算中心有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京安博达知识产权代理有限公司 11271 | 代理人: | 徐国文 |
地址: | 214135 江苏省无锡市*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 文件系统 数据 访问 优化 方法 | ||
技术领域
本发明涉及分布式文件系统客户端元数据访问操作流程的优化,具体来说涉及一种在分布式文件系统中高效的访问文件的数据和元数据的流程的方法。
背景技术
VFS(Virtual File System)称“虚拟文件系统”,是LINUX文件系统的一个重要的组成部分,实际上它是一种机制,定义了一种标准的访问元数据和数据的方法。在linux系统中要实现应用程序透明的访问文件系统,就需要实现这个统一的接口。
VFS层定义了文件的操作接口,主要通过file_operation操作接口和inode_operation操作接口来实现。file_operation中主要定义了数据访问的操作接口,如read和write操作。在inode_operation中定义了元数据访问的操作接口,如lookup,mkdir,create,unlink,rmdir等操作。
在分布式文件系统中,实现Linux系统POSIX接口的客户端的访问数据和元数据的操作流程都是基于VFS层的定义的操作流程。这个接口主要是针对于本地文件系统而设计的,在分布式文件系统中,由于网络的访问产生的延迟,减少客户端和元数据服务器的或者数据服务器交互次数,可以显著提高文件系统的性能。
发明内容
本发明基于VFS层目前已经实现的流程,并不修改VFS层的接口,在其允许的范围内,通过有效的操作合并,实现元数据和数据访问流程的优化。
一种分布式文件系统数据访问优化的方法,在元数据查找操作中添加意图标记,所述意图标记用于标记该查找操作是否创建文件,如果所述查找操作有创建文件意图,则在查找操作中添加意图标记;
服务器端收到查找请求后,首先做元数据查找操作,如果已存在,则返回已存在,如果不存在,则执行意图标记的创建文件请求,在元数据服务器创建文件;
通过接口函数使数据不经用户态缓冲区而直接复制或者使数据只在服务器间复制,不通过客户端中转。
优选的,所述接口函数为VFS层提供的send_file接口,包括五个参数:out_fd、in_fd、count、pos和max。
优选的,所述数据在服务器间复制时客户端把复制数据的命令发送给源数据服务器,由源数据服务器发送写请求给目标数据服务器。
优选的,所述数据在服务器间复制时客户端把拷贝数据命令发送给目标数据服务器,由目标数据服务器向源数据服务器发送读命令。
本发明将相关元数据操作进行合并,同时,在数据复制时不经过客户端,使得元数据和数据的读写和复制操作效率大大提高,提升了服务器对于元数据和数据的操作速度和效率。
具体实施方式
对于元数据操作,可以把lookup和create操作合并:
在lookup查找时,都会有lookup操作的一个意图标记,标记该lookup的查找的意图是否创建文件,如果是有创建意图的lookup操作,可以在lookup操作里带创建的意图。
在服务端收到该请求后,首先做服务端的查找操作,如果已经存在该文件,就返回已经存在,就不用执行后续的创建意图的请求。
如果服务端的查找操作发现该文件并不存在,则执行后续和lookup合并一起发过来的create请求。
在数据服务方面,主要是数据的读写流程,目前主要是针对数据拷贝来简化。在目前的模式中,如果要把文件A拷贝的文件B中,其数据拷贝的路径为:数据从磁盘到客户端的A的page cache中,到用户态缓存区,到文件B内核态page cache中,然后到文件B磁盘空间中。在分布式文件系统中,由数据服务器代替磁盘,其流程基本不变。本发明主要在于简化其数据流程。其主要由两个优化的方案:1)数据从文件A的page cache中直接拷贝到文件B的page cache中,不经过用户态缓冲区。方案2)数据可以只在服务器之间拷贝来实现,并不通过客户端来中转。
对于方案1),这可以通过目前提供的send_file接口来实现。其接口提供了5个参数:分别为out_fd,in_fd,count,pos,max等值。提供了从一个文件拷贝文件到另一个文件的相关的参数。在ofs_sendfile方法里,可以实现仅在page_cache中的内存拷贝。
对于方案2),目前VFS层并没有支持这样的功能,可以通过ioct1接口来实现这个功能。这个功能实现数据服务器之间的数据拷贝。这里有两种方式,一种是推的方式,一种是拉的方式。在第一种推的方式中,客户端把拷贝数据的命令发送给源数据服务器,由源数据服务器发送写请求给目标数据服务器,第二种方式为拉的方式,客户端把拷贝数据的命令发送给目标数据服务器,由目标数据服务器向源数据服务器发送读命令。无论是推方式,还是拉方式,都需要数据服务器的支持。数据服务器的基本功能就是读写,这可以增加数据服务器的命令来实现。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡城市云计算中心有限公司,未经无锡城市云计算中心有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110326482.6/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置