基于MP和RDMA的高速缓存文件系统通信方法及系统与流程

文档序号:21478434发布日期:2020-07-14 17:04阅读:388来源:国知局
基于MP和RDMA的高速缓存文件系统通信方法及系统与流程

本发明涉及并行存储系统,具体涉及一种基于mp(短消息)和rdma(远程直接内存访问)的高速缓存文件系统通信方法及系统。



背景技术:

并行存储系统是高性能计算机的重要组成部分,为并行应用提供数据的保存、访问服务。存储系统的稳定、高效运行,对整个高性能计算机有着重要的作用。随着高性能计算机的规模越来越大,对数据访问的性能也提出了越来越高的要求。同时,为了提高高性能计算机系统使用效率,系统中一般会有多个并行作业同时运行,这些作业对数据访问的需求各不相同,相互之间在数据访问方面会存在带宽干扰。

为了解决上述问题,新一代高性能计算机系统一般会在原有的全局共享文件系统的基础上,增加部署一套高速缓存文件系统(burstbufferfilesystem,简称bb)。bb采用高速存储设备,如新型ssd存储介质、非易失内存设备(non-volatilememory)等,结合高性能通信网络,伴随用户并行作业的运行构建,为并行作业提供临时的高性能数据访问空间。图1给出了现有高性能计算机系统的逻辑架构图,包含了全局共享文件系统和高速缓存文件系统,其高速缓存文件系统基于高速存储设备提供文件系统服务。

高速缓存文件系统bb具有以下特点:

1)高性能存储介质。bb的目的为并行作业提供高性能的临时数据访问服务,所以在存储介质的配备上,会采用新型的存储设备,例如ssd,nvmeofssd,nvmm设备等。

2)高性能数据访问网络。具备了高性能存储介质,计算节点使用高性能数据访问网络将对数据的访问发送到存储服务器,从而充分利用存储介质的存储带宽。计算节点是高性能缓存文件系统的客户端,存储服务器是服务端,二者通过高性能互连网络连接在一起。应用程序访问数据流经由高性能数据访问网络,在二者之间流动。

3)bb具有临时性。bb的主要目的,是解决并行作业在执行期间的数据存放,以及数据访问问题。其生命周期伴随着并行应用的生命周期而存在。在并行作业启动时,资源管理系统创建一个临时的bb系统,并完成对bb的初始化,将其在分配给并行作业的计算节点上挂载。用户在提交到系统的作业脚本中,通过指导语句的方式定义作业运行所需要的文件列表。资源管理系统根据这个列表,将文件从全局共享的并行文件系统中拷贝到bb中。在整个并行作业运行过程中,数据的访问均在bb中进行,包括应用的输出数据。在并行作业运行完毕后,再由资源管理系统根据用户定义的指导语句将需要保存的输出文件重新写回全局共享文件系统。数据写回完成后,在计算节点上卸载bb,并释放该并行作业所占用的计算资源,释放bb的存储资源。在这整个过程中,bb的生命周期和并行作业的生命周期保持一致,具有临时性。

4)文件访问接口符合hpc应用的特点。根据分析,hpc应用在数据访问方面具有自己的特点。一个是对性能要求较高,二是其运行模式决定了在文件读写时,不一定严格按照传统的posix语义,保持严格的顺序一致性。例如,数值模拟类应用,在文件输出时,往往会每隔固定的迭代次数(即固定的运算时间),写一次数据文件。这些数据文件主要用于数值模拟的后续分析,在当前作业的运行过程中并不会使用。这种数据输出模式,使得并行应用只要在下次数据分析时能获得数据,即可符合相关要求。因此,可以将数据输出过程和计算过程重叠,保持异步执行,这在一定程度上放松了语义要求。

在现有的并行文件系统实现中,计算节点客户端和存储服务器之间的通信,一般都采用远程过程调用(remoteprocedurecall,rpc)方式。rpc从客户端上通过参数传递的方式调用存储服务器上的一个函数或方法,并得到返回的结果。具体过程为:1)客户端将需要完成的操作,以及相关的参数等信息进行打包,通过网络传输接口发送给服务端。2)服务端收到数据报文后,对报文进行解析,获取客户端保存的操作类型、参数等信息,再根据这些信息,执行相应的操作,如创建文件、读写数据、修改文件元数据等。3)服务端执行完毕后,将执行结果,如读取到的文件数据、元数据操作返回值等,重新打包,并通过网络接口发送给客户端。经过上述操作,完成了一次rpc过程。对于并行文件系统而言,整个数据操作流程就是若干rpc持续发送、执行、返回的过程。这种工作机制,较好地封装了整个工作流程,便于客户端+存储服务器这种分布式系统的工作机制,有利于系统流程的规整。也正因为这种封装操作,rpc工作机制的流程较长,对底层通信接口提出了较高的要求,因此难以适应并行文件系统发展的需求。

现代高性能互连网络,如th-express、infiniband、tofu、tofud等,均支持通过远程内存直接访问(remotedirectmemoryaccess,rdma)。rdma是一种卸载通信过程中处理器的参与,支持网络接口直接访问远程节点内存,并减少数据在内存中拷贝次数的数据通信方式。rdma的主要优势在于:1)减少了数据通信过程中处理器的参与,使得处理器可以有更多的计算能力来处理应用的计算需求。2)减少了数据通信过程中的数据拷贝操作,降低了数据通信延迟。rdma的数据传输效率高,适合大块数据的传输,能充分利用底层通信链路带宽,使得应用程序通信性能接近网络性能上限。除了rdma,一些高性能互连网络还支持短消息(messagepacket,mp)传输机制。mp传输机制直接构建数据传输报文,并直接向目标节点发送。在底层实现上,直接使用硬件通信通道,具有延迟低、响应迅速等特点。同时,为了确保传输延迟的性能,mp的整体数据量大小不超过2kb,也就意味着除去自身开销,他所携带的数据不超过1.5kb,这对短消息的使用提出了较高要求。



技术实现要素:

本发明要解决的技术问题:针对现有技术的上述问题,提供一种基于mp和rdma的高速缓存文件系统通信方法及系统,本发明采用mp和rdma相结合的方式,充分利用二者低延迟、高带宽的性能特点,同时结合高速缓存文件系统的工作特点,实现计算节点和存储服务器之间的高效数据传输。

为了解决上述技术问题,本发明采用的技术方案为:

一种基于mp和rdma的高速缓存文件系统通信方法,实施步骤包括:

1)接收应用程序提交的文件/目录操作请求并提交到请求队列;

2)针对请求队列中文件/目录操作请求,将文件/目录操作请求的数据携带量和设定值进行比较,如果数据携带量小于设定值,则将文件/目录操作请求采用mp请求的方式提交给高速通信网络接口;否则将文件/目录操作请求采用rdma请求和和mp请求相结合的方式提交给高速通信网络接口,最终由高速通信网络接口通过高速通信网络发送给目标存储服务器。

可选地,步骤2)中采用rdma请求和和mp请求相结合的方式提交给高速通信网络接口时还包括对其中的rdma请求采用多线程并发处理的步骤。

可选地,所述将文件/目录操作请求采用mp请求的方式提交给高速通信网络接口的步骤包括:创建空的mp请求;初始化mp请求;根据目标节点计算发送地址;初始化mp请求的负载信息,所述mp请求的负载信息包括操作类型代码以及序列化后的操作参数;将mp请求提交给高速通信网络接口以发送给目标存储服务器。

可选地,所述将文件/目录操作请求采用mp请求的方式提交给高速通信网络接口之后还包括目标存储服务器响应mp请求的步骤:根据mp请求的负载信息获取文件/目录操作结果,创建空的mp请求;初始化mp请求;根据目标节点计算发送地址;初始化mp请求的负载信息,所述mp请求的负载信息包括获取文件/目录操作结果;将mp请求提交给高速通信网络接口以发送给文件/目录操作请求的客户端。

可选地,所述将文件/目录操作请求采用rdma请求和和mp请求相结合的方式提交给高速通信网络接口时包括使用mp请求传输rdma写操作的过程:准备rdma写操作的数据,创建空的mp请求;初始化mp请求为rdma写操作前导报文;在mp请求中指定写入数据所需的空间大小;将mp请求提交给高速通信网络接口以发送给目标存储服务器;然后等待目标存储服务器返回响应的mp请求,且在收到目标存储服务器返回响应的mp请求执行rdma写操作,且在执行完毕后通过事件通知rdma写操作完成。

可选地,所述将mp请求提交给高速通信网络接口以发送给目标存储服务器后还包括目标存储服务器的下述响应步骤:目标存储服务器收到mp请求后准备数据接收内存区,然后初始化mp请求使其包含数据接收内存区的地址,将生成的mp请求返回给发起文件/目录操作请求的客户端,然后通过事件通知rdma写操作完成。

可选地,所述将文件/目录操作请求采用rdma请求和和mp请求相结合的方式提交给高速通信网络接口时包括使用mp请求传输rdma读操作的过程:准备rdma读操作的数据,创建空的mp请求;初始化mp请求为rdma读操作前导报文;在mp请求中指定本次读操作的长度以及数据所在缓冲区的地址;将mp请求提交给高速通信网络接口以发送给目标存储服务器;等待目标存储服务器返回响应的mp请求,且在收到目标存储服务器返回响应的mp请求通过事件通知rdma读操作完成。

可选地,所述将mp请求提交给高速通信网络接口以发送给目标存储服务器后还包括目标存储服务器的下述响应步骤:目标存储服务器收到mp请求后准备数据接收内存区,然后初始化rdma读请求,在请求描述符中指定发送端的目标缓冲地址、长度,然后执行rdma读操作,且在执行完毕后通过事件通知rdma读操作完成。

此外,本发明还提供一种基于mp和rdma的高速缓存文件系统通信系统,包括计算机设备,该计算机设备被编程或配置以执行所述基于mp和rdma的高速缓存文件系统通信方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行所述基于mp和rdma的高速缓存文件系统通信方法的计算机程序。

此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行所述基于mp和rdma的高速缓存文件系统通信方法的计算机程序。

和现有技术相比,本发明具有下述优点:本发明针对请求队列中文件/目录操作请求,将文件/目录操作请求的数据携带量和设定值进行比较,如果数据携带量小于设定值,则将文件/目录操作请求采用mp请求的方式提交给高速通信网络接口;否则将文件/目录操作请求采用rdma请求和和mp请求相结合的方式提交给高速通信网络接口,通过采用mp和rdma相结合的方式,充分利用二者低延迟、高带宽的性能特点,同时结合高速缓存文件系统的工作特点,实现计算节点和存储服务器之间的高效数据传输。

附图说明

图1为现有高性能计算机系统的逻辑架构图。

图2为本发明实施例方法的基本流程示意图。

图3为本发明实施例中高速缓存文件系统通信框架结构图。

图4为本发明实施例中客户端文件/目录请求报文mp发送流程。

图5为本发明实施例中存储服务器文件/目录操作响应报文mp发送流程。

图6为本发明实施例中使用mp传输rdma前导报文。

图7为本发明实施例中rdma读操作的具体过程。

具体实施方式

如图2所示,本实施例基于mp和rdma的高速缓存文件系统通信方法的实施步骤包括:

1)接收应用程序提交的文件/目录操作请求并提交到请求队列;

2)针对请求队列中文件/目录操作请求,将文件/目录操作请求的数据携带量和设定值进行比较,如果数据携带量小于设定值,则将文件/目录操作请求采用mp请求的方式提交给高速通信网络接口;否则将文件/目录操作请求采用rdma请求和和mp请求相结合的方式提交给高速通信网络接口,最终由高速通信网络接口通过高速通信网络发送给目标存储服务器。

图3为本发明实施例中高速缓存文件系统通信框架结构图。参见图3可知,本实施例中在请求队列和高速通信网络接口之间可以采用mp请求、rdma请求两种方式发送数据。对于rdma请求,为了提高数据传输并发度,充分利用高速通信网络带宽性能,本实施例中,步骤2)中采用rdma请求和和mp请求相结合的方式提交给高速通信网络接口时还包括对其中的rdma请求采用多线程并发处理的步骤。以计算节点的高速缓存文件系统客户端为例,描述通信框架的工作过程如下:(1)首先,应用程序提交文件访问请求,并由文件系统客户端转换为具体的请求,提交到请求队列。(2)文件系统根据请求类型的不同,分别使用不同的处理方式进行处理,包括mp和rdma。其中,对于rdma请求,为了提高数据传输并发度,充分利用高速通信网络带宽性能,采用多线程并发处理。其中,请求类型和mp、rdma之间的转换关系,在下文中进行详细描述。(3)将mp请求和rdma请求,提交给高速通信网络接口,并由该接口通过高速通信网络发送给目标存储服务器。对于存储服务器而言,整个流程和客户端类似,其区别在于存储服务器使用服务线程来处理从计算节点发送的服务请求。

如前文所述,mp的数据携带量为1.5kb,主要用于传输数据量较小的请求,如rdma前导准备报文、文件操作返回类型报文以及文件操作请求报文等。为了便于实现,同时考虑mp传输中的各类不同情形,本实施例将mp的数据携带量标准设定为1kb。基本原则为:除了正常的mp传输需求外,对于不超过1kb的文件数据,也使用mp传输。下面按照数据类型不同,分别描述mp传输流程。1、文件/目录操作请求报文.在posix标准中,对文件的访问集中在以下几个函数,open,close,lseek,read,write,fcntl,create,symlink,unlink,stat等,对目录的访问集中在mkdir,rmdir,opendir,readdir,closedir等。这些函数通过函数名来控制操作类型,通过参数来控制具体的操作目标和操作细节。将这些信息的总量不超过1kb,可以将其打包,封装在mp报文的负载中。mp的负载主要包括两个部分:1)操作类型代码。操作类型代码描述了本次mp所携带信息的类型,例如是文件创建操作,或者stat操作等。2)序列化后的操作参数。将每个操作所需要的参数进行序列化操作,转换为二进制字符串。在完成负载转换后,将mp发送到目标节点。

如图4所示,所述将文件/目录操作请求采用mp请求的方式提交给高速通信网络接口的步骤包括:创建空的mp请求;初始化mp请求;根据目标节点计算发送地址;初始化mp请求的负载信息,所述mp请求的负载信息包括操作类型代码以及序列化后的操作参数;将mp请求提交给高速通信网络接口以发送给目标存储服务器。

存储服务器收到客户端发送的文件/目录操作请求后,根据请求内容的不同,执行相应的操作,并将执行结果返回给客户端。使用mp传输这些操作的执行结果。mp的数据负载主要是文件/目录操作的执行结果,具体包括:1)响应报文的操作代码,描述本次负载所对应的操作类型。2)响应报文的操作目标,本次负载所对应的操作目标,用于逻辑流程匹配。3)操作返回结果。将上述内容序列化为存储服务器使用mp发送文件/目录操作响应报文。

如图5所示,将文件/目录操作请求采用mp请求的方式提交给高速通信网络接口之后还包括目标存储服务器响应mp请求的步骤:根据mp请求的负载信息获取文件/目录操作结果,创建空的mp请求;初始化mp请求;根据目标节点计算发送地址;初始化mp请求的负载信息,所述mp请求的负载信息包括获取文件/目录操作结果;将mp请求提交给高速通信网络接口以发送给文件/目录操作请求的客户端。

为了进一步提高mp和rdma相结合的效率,充分利用二者低延迟、高带宽的性能特点,同时结合高速缓存文件系统的工作特点,实现计算节点和存储服务器之间的高效数据传输。本实施例中还包括将,如rdma前导准备报文、文件操作返回类型报文以及文件操作请求报文等,rdma主要完成大块数据传输,包括文件读、写缓冲区内容。rdma数据传输的特点是,通信双方要确认对方的数据访问地址有效,并且保证该地址已经被锁定。对于rdma读操作,需要获取对方的数据源地址;对于rdma写操作,要获取对方的目标地址。因此,客户端和存储服务器在执行rdma操作前,本实施例使用mp传输rdma前导报文,即rdma操作所需要的源地址,或目标地址。

如图6所示,将文件/目录操作请求采用rdma请求和和mp请求相结合的方式提交给高速通信网络接口时包括使用mp请求传输rdma写操作的过程:准备rdma写操作的数据,创建空的mp请求;初始化mp请求为rdma写操作前导报文;在mp请求中指定写入数据所需的空间大小;将mp请求提交给高速通信网络接口以发送给目标存储服务器;然后等待目标存储服务器返回响应的mp请求,且在收到目标存储服务器返回响应的mp请求执行rdma写操作,且在执行完毕后通过事件通知rdma写操作完成。

如图6所示,将mp请求提交给高速通信网络接口以发送给目标存储服务器后还包括目标存储服务器的下述响应步骤:目标存储服务器收到mp请求后准备数据接收内存区,然后初始化mp请求使其包含数据接收内存区的地址,将生成的mp请求返回给发起文件/目录操作请求的客户端,然后通过事件通知rdma写操作完成。

rdma方式主要用于较大块数据的传输。其主要流程包括从mp中获取rdma操作的目标地址,启动rdma操作,以及确认rdma传输操作完成几个阶段。rdma操作,伴随着mp的传输,这是因为rdma的目标地址需要使用mp来传输。除了使用mp传输rdma前导报文执行写操作的过程以外,下面以rdma读操作为例,给出通过rdma方式进行rdma读操作的具体过程。如图7所示,将文件/目录操作请求采用rdma请求和和mp请求相结合的方式提交给高速通信网络接口时包括使用mp请求传输rdma读操作的过程:准备rdma读操作的数据,创建空的mp请求;初始化mp请求为rdma读操作前导报文;在mp请求中指定本次读操作的长度以及数据所在缓冲区的地址;将mp请求提交给高速通信网络接口以发送给目标存储服务器;等待目标存储服务器返回响应的mp请求,且在收到目标存储服务器返回响应的mp请求通过事件通知rdma读操作完成。

如图7所示,将mp请求提交给高速通信网络接口以发送给目标存储服务器后还包括目标存储服务器的下述响应步骤:目标存储服务器收到mp请求后准备数据接收内存区,然后初始化rdma读请求,在请求描述符中指定发送端的目标缓冲地址、长度,然后执行rdma读操作,且在执行完毕后通过事件通知rdma读操作完成。

当rdma操作完成后,高速通信网络接口在数据的发送端和接收端触发rdma完成事件。发送端和接收端分别对事件进行相应处理:1)数据发送方获知rdma读完成,可以释放数据源所在缓冲区,调度正常文件系统运行逻辑。2)数据接收方知rdma读完成,将所收到的数据提交给上层文件系统,进行下一步处理。

此外,本实施例还提供一种基于mp和rdma的高速缓存文件系统通信系统,包括计算机设备,该计算机设备被编程或配置以执行前述基于mp和rdma的高速缓存文件系统通信方法的步骤,或该计算机设备的存储器上存储有被编程或配置以执行前述基于mp和rdma的高速缓存文件系统通信方法的计算机程序。

此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有被编程或配置以执行前述基于mp和rdma的高速缓存文件系统通信方法的计算机程序。

本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1