当前位置: 首页 > 专利查询>诸葛晴凤专利>正文

一种分布式内存文件系统的远程文件访问方法技术方案

技术编号:16842145 阅读:40 留言:0更新日期:2017-12-20 00:38
本发明专利技术公开了一种分布式内存文件系统的远程文件访问方法,步骤包括客户端计算机向服务端计算机发送打开远程内存文件的请求;服务端给相应内存文件分配连续的虚拟地址空间VA,并建立文件数据页到VA的映射;服务端把文件虚拟地址空间的起始地址发给客户端;客户端根据用户的远程文件读写请求计算出服务端内存文件数据的虚拟地址;客户端通过网络设备直接访问服务端虚拟地址所对应的物理内存,读写远程内存文件。本发明专利技术在读写远程内存文件时,服务端仅向客户端发送一次文件虚拟地址空间的起始地址,随后客户端读写同一文件都不需要服务端发送地址。这使得远程内存文件读写性能大幅度提升,且极少占用服务端计算资源,极少受服务端负载的影响。

A remote file access method for distributed memory file system

The invention discloses a remote file of a distributed memory file system access method, comprising the steps of a client computer to the server computer to send open remote memory requests to the appropriate server file; memory file allocation continuous virtual address space VA, and establish the mapping document data page to the VA server; the start address file of the virtual address space to the client; the client according to the user's remote file read and write requests to calculate the virtual memory file server address data; the client through the network device access physical memory directly corresponding to the server virtual address, remote memory read and write files. When reading and writing remote memory files, the server sends only the initial address of the virtual address space to the client. When the client reads and writes the same file, there is no need for the server to send the address. This makes the read-write performance of remote memory files greatly improved, and rarely takes up the server side computing resources, and is rarely affected by the server load.

【技术实现步骤摘要】
一种分布式内存文件系统的远程文件访问方法
本专利技术涉及计算机软件
,特别是一种分布式系统或远程系统架构中利用可以直接访问远程计算机系统内存的网络技术(例如,RDMA)高效访问分布式内存文件系统中远程内存文件数据的方法。
技术介绍
RDMA(RemoteDirectMemoryAccess)技术的全称是远程直接内存存取。RDMA技术包含专用的高速光纤、RDMA网卡、交换机和网络协议。安装RDMA网卡的多台计算机可以通过交换机和高速光纤连接起来,构建成为一个数据网络。在这个网络中的计算机,都可以通过RDMA技术直接访问其他计算机的内存。要使用RDMA技术进行任意两台计算机之间的内存数据远程访问,必须首先要在联网的客户端计算机和服务端计算机上建立适当的RDMA配置,然后由需要数据的计算机发起对存放数据的计算机的通信连接,并通过网络获得存放数据的虚拟地址,开始远程访问数据。假设客户端计算机需要访问服务端计算机内存中的数据,那么客户端计算机必须获得被访问数据在服务端计算机中的相关虚拟地址,并将需要访问的地址发送至服务端计算机,随后就可以利用服务端计算机上的RDMA网卡完成虚拟地址到内存物理地址的转换,直接读写服务端计算机的内存数据,这个远程数据访问过程不需要唤起服务端计算机的操作系统,不占用服务端计算机的CPU资源,因此数据传输的效率较高。内存文件系统是一类以计算机内存为存储设备的系统软件。利用内存文件系统,用户可以将数据直接存放在计算机内存,而非磁盘等外围存储中。内存与磁盘上数据的访问方式不同。计算机通过虚拟内存把计算机所有存储层次的数据组织到一个虚拟地址空间;计算机指令通过虚拟地址访问数据;计算机通过内存管理单元硬件把虚拟地址转换成为物理地址,从而快速找到物理内存中存放的数据;内存数据一般以内存页面为单位进行存储和管理计算机物理内存中的数据,可以按字节寻址。由于磁盘等块设备中数据存储和管理的方法和内存有很大的区别,计算机访问磁盘文件系统的数据必须要经过I/O调度层、通用块层和块设备驱动层等多个系统软件层次的转换和缓存,因此磁盘文件系统的数据访问性能比内存文件系统的性能低,并且系统资源开销大。内存文件系统可以通过虚拟地址访问内存中的文件数据,并直接把数据拷贝到用户进程的缓存中,不经过磁盘文件系统所需要的多个软件层次的转换和缓存,因而可以极大地提升文件数据的读写性能。近年来,新型非易失性存储器技术的发展已经为内存文件系统的发展提供了必要条件,内存文件系统的数据不仅可以在内存长期保存,而且可以高速读写,因此内存文件系统将成为实现高速数据存储和数据访问重要系统软件。目前的内存文件系统都是在单台计算机中实现的本地文件系统。如何在网络环境中高效地访问远程计算机上内存文件系统的远程文件数据是一个有待解决的问题。分布式内存文件系统是构建于多台联网的计算机内存中的文件系统,其中一台或者多台计算机作为文件服务器(fileserver),挂载内存文件系统,网络中每一台计算机都可以向任意一台文件服务器发起数据请求。从逻辑上讲,发起远程内存文件访问请求的计算机是客户端(client),存放内存文件数据的计算机是服务端(server)。客户端计算机通过网络对服务端计算机内存中的文件数据进行远程访问。客户端计算机不一定需要挂载内存文件系统,可以只运行一个需要访问远程内存文件系统并进行远程内存文件数据读写的进程。如果客户端计算机也挂载内存文件系统,则该客户端计算机也可以用作网络中其它计算机的文件服务器。在下文的描述中,发起远程内存文件访问及读写请求的计算机是客户端计算机,而响应远程内存文件访问及读写请求的计算机是服务端计算机。利用RDMA技术,计算机可以通过下面两种常规方式访问分布式内存文件系统中的远程内存文件数据,但是数据访问的效率都不高:方式一:1客户端计算机通过远程过程调用(RemoteProcedureCall,简称RPC,可以通过多种协议实现,比如Infiniband或者Ethernet)把对某个远程内存文件的访问请求发送到服务端计算机;2服务端计算机的操作系统被唤起(占用服务端计算机的CPU),使用其内存文件系统的软件流程查找文件数据;3服务端计算机根据被访问数据量的大小在内存中创建一个缓冲区,把相应的文件数据读入到该缓冲区中;4服务端计算机用RPC把该缓冲区的虚拟地址发送给客户端计算机;5客户端计算机收到缓冲区的虚拟地址后,用RDMA技术直接读写缓冲区的文件数据。6客户端计算机完成文件数据读写操作后,用RPC发送数据读写完成信号给服务端计算机;7服务端计算机收到客户端的数据读写完成信号,释放步骤3中申请的缓冲区,用RPC发送本次读写操作结束的信号给客户端计算机;8客户端计算机收到服务端计算机发送的结束信号,回到步骤1执行下一次远程内存文件数据读写访问请求,直至完成客户端用户对该远程内存文件的所有数据读写访问请求。方式一的缺点有:1)每一次数据读写访问都需要执行4次RPC操作,RPC是比较耗时的操作;2)每一次数据读写访问都需要唤起服务端计算机的操作系统,占用服务端计算机的计算资源;3)每一次数据读写访问都需要由服务端计算机建立缓冲区,并把数据拷贝到缓冲区。由于上述原因,方法一所产生的额外资源开销大,性能低。方式二:1客户端计算机收到用户程序对某个远程内存文件的数据访问请求,假设需要对该文件中数据量大小为k个内存页面的文件数据进行顺序读写访问;2客户端计算机通过RPC向服务端计算机发送当前待访问的一个文件数据页面的数据读写访问请求;3服务端计算机的操作系统被唤起(占用服务端计算机的CPU),使用其内存文件系统的软件流程,搜索内存文件的元数据组织结构,查找需要访问的相应数据页面的起始虚拟地址;4找到需要访问的文件数据页面的起始虚拟地址后,服务端计算机用RPC将该地址发送回客户端计算机;5客户端计算机收到文件数据页面的起始虚拟地址后,用RDMA技术直接读写相应的文件数据;6客户端计算机完成文件数据读写操作后,用RPC发送数据读写完成信号给服务端计算机;7服务端计算机收到数据读写完成信号,准备好接受下一个文件数据页的读写请求的数据结构,用RPC发送本次数据读写操作结束的信号给客户端计算机;8客户端计算机收到服务端计算机发送的结束信号,查看是否已经完成所有k个页面的文件数据访问,如果已经全部完成,则结束远程内存文件访问,否则准备发起对下一个待访问文件数据页面的访问,回到步骤2,访问下一个页面。方式二与方式一的不同之处在于,方式二只需要服务端计算机的文件系统找到所请求的数据的起始虚拟地址,将该虚拟地址传回客户端计算机即可。然而,如果用户请求访问多个页面,受既有文件系统的文件组织方法的限制,方式二必须把对多个页面文件数据的访问分解为多次对一个页面的文件数据的访问,每次访问请求只访问一个页面的数据。由于每访问一个页面的数据都需要执行4次RPC操作并唤起服务端计算机的操作系统,方式二同样会导致系统资源开销大,对大数据量的远程内存文件访问性能很低的问题。
技术实现思路
有鉴于此,本专利技术的目的是提供一种利用可以直接访问远程计算机系统内存的网络技术高效访问分布式内存文件系统的远程内存文件的方法。该方法根据计算机内存数据访问本身的特点,本文档来自技高网
...
一种分布式内存文件系统的远程文件访问方法

【技术保护点】
一种分布式内存文件系统的远程文件访问方法,其特征在于:包括以下步骤:S1客户端计算机收到用户打开远程内存文件的请求,获取远程内存文件所在服务端计算机的连续虚拟地址空间VA的起始地址B‑VA;S2客户端计算机等待用户对服务端计算机上的远程内存文件数据的读写访问请求,如果没有收到,则停留在步骤S2;S3客户端计算机收到用户对远程内存文件的数据读写访问请求,收到文件数据在文件中的位置偏移量OFFSET和所需访问的数据量;S4客户端计算机根据远程内存文件的连续虚拟地址空间的起始地址B‑VA和偏移量OFFSET计算出被访问的远程内存文件数据在服务端计算机中的虚拟地址D‑VA;S5通过可直接访问远程计算机内存的网络设备,客户端计算机直接访问服务端计算机虚拟地址D‑VA所对应的物理内存,进行远程内存文件数据读写;S6如果收到用户关闭远程内存文件的请求,则结束远程文件访问,否则返回步骤S2循环执行直至完成用户对远程内存文件数据的所有读写访问。

【技术特征摘要】
1.一种分布式内存文件系统的远程文件访问方法,其特征在于:包括以下步骤:S1客户端计算机收到用户打开远程内存文件的请求,获取远程内存文件所在服务端计算机的连续虚拟地址空间VA的起始地址B-VA;S2客户端计算机等待用户对服务端计算机上的远程内存文件数据的读写访问请求,如果没有收到,则停留在步骤S2;S3客户端计算机收到用户对远程内存文件的数据读写访问请求,收到文件数据在文件中的位置偏移量OFFSET和所需访问的数据量;S4客户端计算机根据远程内存文件的连续虚拟地址空间的起始地址B-VA和偏移量OFFSET计算出被访问的远程内存文件数据在服务端计算机中的虚拟地址D-VA;S5通过可直接访问远程计算机内存的网络设备,客户端计算机直接访问服务端计算机虚拟地址D-VA所对应的物理内存,进行远程内存文件数据读写;S6如果收到用户关闭远程内存文件的请求,则结束远程文件访问,否则返回步骤S2循环执行直至完成用户对远程内存文件数据的所有读写访问。2.根据权利要求1所述的分布式内存文件系统的远程文件访问方法,其特征在于:所述远程内存文件的虚拟地址空间的起始地址是按照以下步骤来形成的:S11客户端计算机根据用户打开远程内存文件A的请求向服务端计算机发送打开文件的请求;S12服务端计算机给需要打开的内存文件A分配足够大的连续的虚拟地址空间VA;S13服务端计算机建立内存文件A的数据页到所分配虚拟地址空间VA的映射;S14服务端计算机将内存...

【专利技术属性】
技术研发人员:沙行勉诸葛晴凤
申请(专利权)人:诸葛晴凤沙行勉
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1