本发明属于远程访问内存,具体涉及一种通过rdma实现跨主机的高速转存方法。
背景技术:
1、rdma意思是远程直接数据存取,就是为了解决网络传输中服务器端数据处理的延迟而产生的。就是为了解决网络传输中服务器端数据处理的延迟而产生的。rdma通过网络把资料直接传入计算机的存储区,rdma将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和cpu周期用于改进应用系统性能。
2、随着互联网技术的快速发展,应用的用户规模越来越大,需要的服务器资源越来越多,传统服务器部署和维护成本高,资源利用率低,难以跟上互联网应用的发展需求,为了实现对服务器资源的高效利用,满足大规模用户的需求,亚马逊最早于2006年推出了弹性云计算服务.云计算将服务器硬件资源,例如cpu,内存,网络等进行虚拟化,以按需使用的方式提供给多用户使用,虚拟化技术广泛应用于云计算,模拟器,安全,分析等领域,虚拟机相关的虚拟化技术包括cpu虚拟化,内存虚拟化,i/o虚拟化等,虚拟化技术可以分为硬件辅助的虚拟化和软件辅助的虚拟化等.容器也是目前流行的虚拟化方案,其区别于虚拟机。容器通过linux的命名空间和控制组机制,让应用程序在独立的运行时环境执行,具有轻量级隔离和可移植的特点。
3、本方案提供一种通过rdma实现跨主机的高速转存方法。
技术实现思路
1、针对上述背景技术所提出的问题,本发明的目的是:旨在提供一种通过rdma实现跨主机的高速转存方法。
2、为实现上述技术目的,本发明采用的技术方案如下:
3、一种通过rdma实现跨主机的高速转存方法,包括rdma应用容器、路由容器、rdma网卡和两台主机,所述rdma应用容器包括应用、verbs接口和网络库,所述路由容器包括设备驱动和共享内存,所述rdma网卡包括缓冲区,
4、两台所述主机上分别设有一路由容器,所述路由容器用于直接访问rdma网卡设备,并执行接收到的rdma应用请求,所述路由容器获取rdma应用数据,并将网卡接收数据返回给rdma应用,所述网络编排器用于对容器ip的统一管理以及对rdma网络传输的数据策略;还包括对容器环境的rdma虚拟化框架的freeflow框架,
5、所述方法基于freeflow框架,还包括以下步骤:
6、步骤一:建立freeflow框架,所述freeflow框架由网络库、路由容器和网络编排器组成;
7、步骤二:所述freeflow框架在rdma应用容器和底层rdma驱动之间设置一个路由层,具体的,所述路由层负责接收来自rdma应用容器的控制命令,并进行rdma网络传输;
8、步骤三:rdma应用容器中的freeflow网络库通过套接字或共享内存的进程间通信方式转发命令和参数给路由容器;
9、步骤四:两台主机的路由容器同时进行数据交互,完成数据转存。
10、进一步限定,所述路由容器获取rdma应用数据的方式为共享内存的方式。
11、进一步限定,所述路由容器和rdma应用容器之间通过共享内存实现rdma传输数据的零拷贝。
12、进一步限定,所述步骤一中的网络库负责为容器中的rdma应用提供虚拟的与原生一致的verbs接口。
13、进一步限定,所述网络编排器数据策略包括流量计费服务和服务质量。
14、进一步限定,所述主机之间采用socket通信。采用socket通信的优点是它是跨平台的,因为socket接口是标准的api,不受特定操作系统的限制。它也很灵活,可以使用不同的网络协议(如tcp和udp),以满足不同的需求。
15、进一步限定,还包括与主机进行数据传输的服务器,所述socket通信的具体步骤为:
16、步骤十四:主机创建一个socket对象,并将其连接到服务器上的一个指定端口上,之后通过socket对象向服务器发送数据;
17、步骤十五:服务器监听指定端口,等待主机的连接请求,当连接请求到达时,服务器会创建一个新的socket对象并与主机的socket对象建立连接;
18、步骤十六:建立连接,服务器和主机之间进行数据传输。
19、进一步限定,所述纯软件模拟的方法并向用户提供与原生一致的verbs编程接口,无需依赖rdma网卡和交换机硬件设备。
20、进一步限定,所述纯软件模拟的方法基于tcp/udp进行网络通信。此通信方式在性能上受到限制,在吞吐量和延迟上和传统的以太网tcp/udp通信较为接近,和原生rdma网络通信的性能差距较大,此外,softroce由于包含内核模块,也受限于特定版本的linux系统.因此,softroce主要用于测试、应用开发以及缺乏rdma硬件却需要部署rdma应用的环境。
21、本发明的有益效果:
22、1.本方案采用基于freeflow框架的rdma容器环境和纯软件模拟的虚拟化跨主机转存方法,使得每个主机或容器都有其专属的rdma网络资源;
23、2.本方案对于rdma网络传输的控制,例如流量计费服务和服务质量,此外本方案的容器迁移管理更加便捷;在控制路径上,freeflow框架通过共享内存实现了零拷贝,因此共享内存的方式交互延迟更低且吞吐量较好。
1.一种通过rdma实现跨主机的高速转存方法,其特征在于:包括rdma应用容器、路由容器、rdma网卡和两台主机,所述rdma应用容器包括应用、verbs接口和网络库,所述路由容器包括设备驱动和共享内存,所述rdma网卡包括缓冲区,两台所述主机上分别设有一路由容器,所述路由容器用于直接访问rdma网卡设备,并执行接收到的rdma应用请求,所述路由容器获取rdma应用数据,并将网卡接收数据返回给rdma应用,所述网络编排器用于对容器ip的统一管理以及对rdma网络传输的数据策略;还包括对容器环境的rdma虚拟化框架的freeflow框架;
2.根据权利要求1所述的一种通过rdma实现跨主机的高速转存方法,其特征在于:所述路由容器获取rdma应用数据的方式为共享内存的方式。
3.根据权利要求2所述的一种通过rdma实现跨主机的高速转存方法,其特征在于:所述路由容器和rdma应用容器之间通过共享内存实现rdma传输数据的零拷贝。
4.根据权利要求1所述的一种通过rdma实现跨主机的高速转存方法,其特征在于:所述步骤一中的网络库负责为容器中的rdma应用提供虚拟的与原生一致的verbs接口。
5.根据权利要求1所述的一种通过rdma实现跨主机的高速转存方法,其特征在于:所述网络编排器数据策略包括流量计费服务和服务质量。
6.根据权利要求1所述的一种通过rdma实现跨主机的高速转存方法,其特征在于:所述主机之间采用socket通信。
7.根据权利要求5所述的一种通过rdma实现跨主机的高速转存方法,其特征在于:还包括与主机进行数据传输的服务器,所述socket通信的具体步骤为:
8.根据权利要求1所述的一种通过rdma实现跨主机的高速转存方法,其特征在于:可用纯软件模拟的方法替代基于freeflow框架的rdma虚拟化容器环境,所述纯软件模拟基于softroce,所述softroce是一个软件辅助实现的roce-linux驱动程序,用于在以太网上模拟roce网络,所述softroce包括用户层和内核层两个部分,所述用户层用于支持上层rdma应用,所述内核层包括可加载的内核模块,所述内核模块用于支持内核层次的应用。
9.根据权利要求8所述的一种通过rdma实现跨主机的高速转存方法,其特征在于:所述纯软件模拟的方法并向用户提供与原生一致的verbs编程接口,无需依赖rdma网卡和交换机硬件设备。
10.根据权利要求8所述的一种通过rdma实现跨主机的高速转存方法,其特征在于:所述纯软件模拟的方法基于tcp/udp进行网络通信。
