CN107547623B - 应用数据传输方法、装置、应用服务器和应用代理服务器 - Google Patents
应用数据传输方法、装置、应用服务器和应用代理服务器 Download PDFInfo
- Publication number
- CN107547623B CN107547623B CN201710509158.5A CN201710509158A CN107547623B CN 107547623 B CN107547623 B CN 107547623B CN 201710509158 A CN201710509158 A CN 201710509158A CN 107547623 B CN107547623 B CN 107547623B
- Authority
- CN
- China
- Prior art keywords
- application
- server
- data
- rdma
- network adapter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了应用数据传输方法、装置、应用服务器和应用代理服务器。所述方法包括:在本服务器的应用层与本服务器支持远程直接内存访问RDMA的网络适配器之间,通过调用RDMA引擎建立用于直接进行数据读写的数据通道;在需要向目标服务器发送应用数据时,通过所述数据通道,向所述网络适配器发送RDMA发送请求,以使所述网络适配器根据所述RDMA发送请求,从所述应用层中读取待发送的应用数据并转发给目标服务器;和/或,通过所述数据通道接收所述网络适配器发送的RDMA接收请求,根据所述RDMA接收请求,从所述网络适配器中读取待接收的应用数据并直接将其拷贝至所述应用层中。该技术方案使更多的硬件资源可以用于处理高并发请求而不是应用数据传输时的多次拷贝。
Description
技术领域
本申请涉及网络技术领域,具体涉及应用数据传输方法、装置、应用服务器和应用代理服务器。
背景技术
随着网络技术的不断发展,目前很多应用采用了B/S(Brows/Server,浏览器/服务器)架构的设计,由于许多功能需要在服务器执行,因此服务器往往需要支持大量的客户端同时访问(也就是通常所讲的高并发),负载很重。针对这一问题,现有技术中通常采用在客户端和服务器间架构代理服务器,这样形成了应用客户端-应用代理服务器-应用服务器的架构,为后端的应用服务器减缓了很大压力,但是,高并发的问题就转嫁到应用代理服务器上了。通常的做法是增加应用代理服务器的数量或者提高应用代理服务器的硬件配置,但这样做无疑大幅增加了成本,而且会受到空间、电力等多方面因素的制约,限制很大。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的应用数据传输方法、装置、应用服务器和应用代理服务器。
根据本发明的一个方面,提供了一种应用数据传输方法,应用于应用代理服务器和/或应用服务器中,包括:
在本服务器的应用层与本服务器支持远程直接内存访问RDMA的网络适配器之间,通过调用RDMA引擎建立用于直接进行数据读写的数据通道;
在需要向目标服务器发送应用数据时,通过所述数据通道,向所述网络适配器发送RDMA发送请求,以使所述网络适配器根据所述RDMA发送请求,从所述应用层中读取待发送的应用数据并转发给目标服务器;和/或,
通过所述数据通道接收所述网络适配器发送的RDMA接收请求,根据所述RDMA接收请求,从所述网络适配器中读取待接收的应用数据并直接将其拷贝至所述应用层中。
可选地,所述通过调用RDMA引擎建立用于直接进行数据读写的数据通道包括:
在所述应用层中确定用于直接进行数据读写的应用缓冲区;
通过调用所述RDMA引擎的应用程序编程接口API,访问所述网络适配器的驱动,在所述应用缓冲区与所述驱动之间建立映射。
可选地,所述应用是虚拟桌面应用,所述应用代理服务器中部署有一个虚拟桌面代理服务,所述应用服务器中部署有一台或多台虚拟机且为每台虚拟机对应部署有一个虚拟桌面服务,所述应用的客户端是以浏览器实现的;
当所述本服务器为应用代理服务器时,由所述虚拟桌面代理服务在接收到所述应用客户端发送的虚拟机操作请求时,启动一个与该虚拟机操作请求对应的虚拟桌面代理子服务,由所述虚拟桌面代理子服务建立所述数据通道;
当所述本服务器为应用服务器时,由所述虚拟桌面服务建立所述数据通道。
依据本发明的另一方面,提供了一种应用数据传输装置,应用于应用代理服务器和/或应用服务器中,包括:
数据通道建立单元,用于在本服务器的应用层与本服务器支持远程直接内存访问RDMA的网络适配器之间,通过调用RDMA引擎建立用于直接进行数据读写的数据通道;
传输单元,用于在需要向目标服务器发送应用数据时,通过所述数据通道,向所述网络适配器发送RDMA发送请求,以使所述网络适配器根据所述RDMA发送请求,从所述应用层中读取待发送的应用数据并转发给目标服务器;和/或,通过所述数据通道接收所述网络适配器发送的RDMA接收请求,根据所述RDMA接收请求,从所述网络适配器中读取待接收的应用数据并直接将其拷贝至所述应用层中。
可选地,所述数据通道建立单元,用于在所述应用层中确定用于直接进行数据读写的应用缓冲区,通过调用所述RDMA引擎的应用程序编程接口API,访问所述网络适配器的驱动,在所述应用缓冲区与所述驱动之间建立映射。
可选地,所述应用是虚拟桌面应用,所述应用代理服务器中部署有一个虚拟桌面代理服务,所述应用服务器中部署有一台或多台虚拟机且为每台虚拟机对应部署有一个虚拟桌面服务,所述应用的客户端是以浏览器实现的;
所述数据通道建立单元,用于当所述本服务器为应用代理服务器时,由所述虚拟桌面代理服务在接收到所述应用客户端发送的虚拟机操作请求时,启动一个与该虚拟机操作请求对应的虚拟桌面代理子服务,受所述虚拟桌面代理子服务调用建立所述数据通道;以及用于当所述本服务器为应用服务器时,受所述虚拟桌面服务调用建立所述数据通道。
依据本发明的又一方面,提供了一种应用服务器,包括如上述任一项所述的应用数据传输装置和支持RDMA的网络适配器。
依据本发明的再一方面,提供了一种应用代理服务器,包括如上述任一项所述的应用数据传输装置和支持RDMA的网络适配器。
由上述可知,本发明的技术方案,能够利用支持内核旁路的RDMA技术完成应用数据在应用代理服务器和应用服务器间的传输,具体地,在本服务器的应用层与本服务器支持远程直接内存访问RDMA的网络适配器之间,通过调用RDMA引擎建立用于直接进行数据读写的数据通道;在需要向目标服务器发送应用数据时,向网络适配器发送RDMA发送请求,以使网络适配器根据RDMA发送请求,从应用层中读取待发送的应用数据并转发给目标服务器;和/或,通过所述数据通道接收所述网络适配器发送的RDMA接收请求,根据所述RDMA接收请求,从所述网络适配器中读取待接收的应用数据并直接将其拷贝至所述应用层中。该技术方案能够在不增加服务器数量和服务器内部硬件数量的情况下,选用支持RDMA的网络适配器,利用RDMA通信完成应用数据在应用代理服务器和应用服务器之间的传输,减少了应用数据传输对服务器的硬件资源的占用,使更多的硬件资源可以用于处理高并发请求而不是应用数据传输时的多次拷贝,从而支持了更大的并发访问。
附图说明
图1示出了现有技术中服务器间数据传输的流程示意图;
图2示出了根据本发明实施例的服务器间数据传输的流程示意图;
图3示出了根据本发明一个实施例的一种应用数据传输方法的流程示意图;
图4示出了根据本发明一个实施例的数据通道和命令通道的示意图;
图5示出了现有技术中虚拟桌面应用的系统结构示意图;
图6示出了根据本发明一个实施例的虚拟桌面应用的系统结构示意图;
图7示出了根据本发明一个实施例的一种应用数据传输装置的流程示意图;
图8示出了根据本发明一个实施例的一种服务器的结构示意图。
具体实施方式
为了解决背景技术中提出的技术问题,本申请的发明人对应用代理服务器与应用服务器间的应用数据传输进行了分析,发现:现有技术中,应用代理服务器中部署的应用代理服务需要与应用服务器中部署的应用服务建立长连接,这种方式下应用数据传输的流程如图1所示:以Linux系统为例,应用数据的发送方需要将待传输的应用数据从应用的缓冲区(Buffer)中拷贝到套接字(Sockets)缓冲区——第一次拷贝;然后将待传输的应用数据从套接字缓冲区拷贝至Linux网络协议栈中——第二次拷贝;之后将待传输的应用数据从Linux网络协议栈的缓冲区中拷贝到网络适配器驱动的缓冲区中——第三次拷贝;最后将待传输的应用数据从网络适配器驱动的缓冲区中拷贝到网络适配器的缓冲区中——第四次拷贝。这样,网络适配器才可以将待传输的应用数据传输给目标服务器,也就是应用数据的接收方。而在目标服务器上,还要以和上述四次应用数据拷贝相反的顺序来把目标服务器接收到的应用数据从其网络适配器的缓冲区中拷贝到应用的缓冲区中。
这些拷贝操作都需要内核(Kernel)参与,需要利用CPU(Central ProcessingUnit,中央处理器)资源进行大量的运算,同时套接字缓冲区、Linux网络协议栈和网络适配器驱动的缓冲区属于内核空间,应用的缓冲区属于用户空间,内存数据拷贝的开销也非常大。而对于应用代理服务器而言,为了能够支持多个应用客户端的高并发请求,往往需要由应用代理服务为接收到的请求分别启动一个应用代理子服务来应对;应用服务器往往也要部署多个虚拟机,在每个虚拟机中部署应用服务,也就是说,对于应用客户端的每一个请求,如果需要在应用代理服务器和应用服务器间进行应用数据的传输,那在每个服务器上都需要CPU参与进行这样的四次拷贝。而维持应用代理子服务/应用服务的运行同样需要利用CPU资源,这就导致在硬件资源一定的情况下,必然要分配许多CPU资源在应用数据传输过程中来进行数据拷贝,也就限制了应用代理子服务/应用服务的数量,自然也就限制了能够支持的并发访问的数量。
因此,发明人想到,如果可以减少应用数据传输时的拷贝次数,那么自然就可以使应用代理子服务/应用服务得到更多可用的CPU资源,提高处理高并发请求的效率。
RDMA(Remote Direct Memory Access,远程直接内存访问)支持内核旁路(KernelBypass),能够实现数据传输时的零拷贝。图2示出了使用RDMA技术在两个计算设备间传输应用数据的流程示意图。如图2所示,待传输应用数据直接从应用缓冲区中拷贝到实现了RDMA引擎的网络适配器的缓冲区中,这样只通过一次拷贝,网络适配器就可以将待传输的应用数据发送给目标计算设备。而且,这一次拷贝不需要内核参与,是CPU无关的。
由此,利用RDMA实现应用数据的传输,就可以解放CPU,使其可以更多地处理高并发请求。因此问题在于如何实现在部署了支持RDMA的网络适配器的应用代理服务器/应用服务器上,实现应用数据通过RDMA方式传输。
为此,本申请示例公开了应用数据传输方法、装置、应用服务器和应用代理服务器,以解决现有技术中应用数据在应用代理服务器和应用服务器间传输时需要消耗计算设备中CPU资源和存储资源过多的问题。为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
图3示出了根据本发明一个实施例的一种应用数据传输方法的流程示意图,如图3所示,该方法包括:
步骤S310,在本服务器的应用层与本服务器支持RDMA的网络适配器之间,通过调用RDMA引擎建立用于直接进行数据读写的数据通道。
具体来说,应用缓冲区是用户空间中的一部分内存空间,网络适配会在这部分内存空间中直接读写数据,因此实际上,这种数据通道的建立就是告知网络适配器:当需要进行应用数据传输时,网络适配器应该从哪部分存储空间中读取/向哪部分存储空间中写入应用数据。。
步骤S320,在需要向目标服务器发送应用数据时,通过数据通道,向网络适配器发送RDMA发送请求,以使网络适配器根据RDMA发送请求,从应用层中读取待发送的应用数据并转发给目标服务器;和/或,通过数据通道接收网络适配器发送的RDMA接收请求,根据RDMA接收请求,从网络适配器中读取待接收的应用数据并直接将其拷贝至应用层中。
在本步骤中示出了应用数据的主动发送和被动接收两种情况。结合具体情况,该方法可以应用在应用代理服务器上,则相对应的目标服务器为应用服务器;或者反之,该方法应用在应用服务器上,则相对应的目标服务器为应用代理服务器,也就是在应用客户端与应用代理服务器通信,应用代理服务器与应用服务器通信这样的系统架构中进行实施。以前一种情况为例,当应用代理服务器上的应用代理服务希望向应用服务器上的应用服务发送应用数据时,则通过数据通道向应用代理服务器上的网络适配器发送RDMA发送请求(Send请求),网络适配器通过数据通道读取待传输的应用数据,发送给应用服务器中的网络适配器,而应用服务器中的网络适配器则根据接收到的应用数据,通过数据通道向应用服务发送RDMA接收请求,应用服务也通过数据通道从网络适配器中读取待接收的应用数据并直接将其拷贝至应用缓冲区。
可见,图3所示的方法,能够在不增加服务器数量和服务器内部硬件数量的情况下,选用支持RDMA的网络适配器,利用RDMA通信完成应用数据在应用代理服务器和应用服务器之间的传输,减少了应用数据传输对服务器的硬件资源的占用,使更多的硬件资源可以用于处理高并发请求而不是应用数据传输时的多次拷贝,从而支持了更大的并发访问。
如图4所示,应用服务/应用代理服务与网络适配器直接建立的数据通道(DataChannel)不需要经过内核空间,实现应用数据在用户空间和网络适配器之间的直接传输。当然,由于网络适配器是硬件,在建立数据通道时需要访问驱动程序,也就是说,在数据通道的建立过程中,是需要CPU内核态的参与的,也就是在本发明的一个实施例中,上述方法中,在本服务器的应用层与本服务器支持远程直接内存访问RDMA的网络适配器之间,通过调用RDMA引擎建立用于直接进行数据读写的数据通道包括:在所述应用层中确定用于直接进行数据读写的应用缓冲区;通过调用所述RDMA引擎的应用程序编程接口API,访问所述网络适配器的驱动,在所述应用缓冲区与所述驱动之间建立映射。
同样可以参照图4,应用服务/应用代理服务首先从在用户空间调用RDMA引擎的API(verb),这一过程也可以称之为建立命令通道(Command Channel),之后需要CPU内核态(Kernel Mode)的参与,通过命令通道访问网络适配器的驱动,在所述应用缓冲区与所述驱动之间建立映射,也就是建立Data Channel。
考虑到RDMA Send请求适于传输控制类报文数据,因此可以用于云计算平台中的虚拟桌面场景。在该场景下,应用客户端可以以浏览器实现,例如表现为一个浏览器中的web console(网络控制台),在浏览器中登录远程虚拟机,在浏览器中展示虚拟机的桌面。应用代理服务器中的应用代理服务采用noVNC进程实现,当有一个web console连接到noVNC进程监听的6080端口(也就是产生了一个虚拟机操作请求),noVNC会创建一个websockify进程。而在应用服务器中部署有多个虚拟机,每个虚拟机对应部署有一个虚拟桌面进程qemu,那么websockify进程就会与虚拟机操作请求所对应的虚拟机的虚拟桌面进程qemu建立长连接,通过该长连接传输虚拟桌面数据,其流程图可以参照图5。那么在这个数据传输的过程中就可以考虑采用上面实施例中的方法加以改进。
也就是,在本发明的一个实施例中,上述方法中,应用是虚拟桌面应用,应用代理服务器中部署有一个虚拟桌面代理服务,应用服务器中部署有一台或多台虚拟机且为每台虚拟机对应部署有一个虚拟桌面服务,应用的客户端是以浏览器实现的;当本服务器为应用代理服务器时,由虚拟桌面代理服务在接收到应用客户端发送的虚拟机操作请求时,启动一个与该虚拟机操作请求对应的虚拟桌面代理子服务,由虚拟桌面代理子服务调用RDMA引擎建立用于直接进行数据读写的数据通道;当本服务器为应用服务器时,由虚拟桌面服务调用RDMA引擎建立用于直接进行数据读写的数据通道。整个系统的结构示意图可以参照图6。
图7示出了根据本发明一个实施例的一种应用数据传输装置的结构示意图,如图7所示,应用数据传输装置700包括:
数据通道建立单元710,用于在本服务器的应用层与本服务器支持远程直接内存访问RDMA的网络适配器之间,通过调用RDMA引擎建立用于直接进行数据读写的数据通道。
传输单元720,用于在需要向目标服务器发送数据时,通过数据通道,向网络适配器发送RDMA发送请求,以使网络适配器根据RDMA发送请求,从应用层中读取待发送的应用数据并转发给目标服务器;和/或,通过数据通道接收网络适配器发送的RDMA接收请求,根据RDMA接收请求,从网络适配器中读取待接收的应用数据并直接将其拷贝至应用层中。
其中,本服务器为应用代理服务器,目标服务器为应用服务器;或者,本服务器为应用服务器,目标服务器为应用代理服务器。也就是说,应用数据传输装置700可以应用于应用客户端—应用代理服务器—应用服务器的系统架构中的应用代理服务器和应用服务器上(“—”表示可进行通信)。
可见,图7所示的装置,通过各单元的相互配合,能够在不增加服务器数量和服务器内部硬件数量的情况下,选用支持RDMA的网络适配器,利用RDMA通信完成应用数据在应用代理服务器和应用服务器之间的传输,减少了应用数据传输对服务器的硬件资源的占用,使更多的硬件资源可以用于处理高并发请求而不是应用数据传输时的多次拷贝,从而支持了更大的并发访问。
在本发明的一个实施例中,上述装置中,数据通道建立单元710,用于在所述应用层中确定用于直接进行数据读写的应用缓冲区,通过调用所述RDMA引擎的应用程序编程接口API,访问所述网络适配器的驱动,在所述应用缓冲区与所述驱动之间建立映射。
在本发明的一个实施例中,上述装置中,应用是虚拟桌面应用,应用代理服务器中部署有一个虚拟桌面代理服务,应用服务器中部署有一台或多台虚拟机且为每台虚拟机对应部署有一个虚拟桌面服务,应用的客户端是以浏览器实现的;数据通道建立单元710,用于当本服务器为应用代理服务器时,由虚拟桌面代理服务在接收到应用客户端发送的虚拟机操作请求时,启动一个与该虚拟机操作请求对应的虚拟桌面代理子服务,受虚拟桌面代理子服务调用建立数据通道;以及用于当本服务器为应用服务器时,受虚拟桌面服务调用建立数据通道。
本发明提供的应用数据传输装置700可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,可通过处理器810将非易失性存储器850中与应用数据传输装置700对应的机器可执行指令读取到易失性存储器840中运行。
从硬件层面而言,如图8所示,为本发明一个实施例的一种服务器的结构示意图,除了图8所示的处理器810、内部总线820、网络适配器830、易失性存储器840、以及非易失性存储器850之外,根据该网络设备的实际功能,还可以包括其他硬件,对此不再赘述。当网络适配器830是支持RDMA的网络适配器时,该服务器为本发明所公开的应用服务器或应用代理服务器。
在不同的实施例中,非易失性存储器850可以是:存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、DVD等),或者类似的存储介质,或者它们的组合。易失性存储器840可以是:RAM(Radom Access Memory,随机存取存储器)。
进一步,非易失性存储器850和易失性存储器840作为机器可读存储介质,其上可存储由处理器810执行的应用数据传输装置700对应的机器可执行指令。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可,这里不再复述。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
综上所述,本发明的技术方案,能够利用支持内核旁路的RDMA技术完成应用数据在应用代理服务器和应用服务器间的传输,具体地,在本服务器的应用层与本服务器支持远程直接内存访问RDMA的网络适配器之间,通过调用RDMA引擎建立用于直接进行数据读写的数据通道;在需要向目标服务器发送数据时,向网络适配器发送RDMA发送请求,以使网络适配器根据RDMA发送请求,从应用层中读取待发送的应用数据并转发给目标服务器;和/或,通过所述数据通道接收所述网络适配器发送的RDMA接收请求,根据所述RDMA接收请求,从所述网络适配器中读取待接收的应用数据并直接将其拷贝至所述应用层中。该技术方案能够在不增加服务器数量和服务器内部硬件数量的情况下,选用支持RDMA的网络适配器,利用RDMA通信完成应用数据在应用代理服务器和应用服务器之间的传输,减少了应用数据传输对服务器的硬件资源的占用,使更多的硬件资源可以用于处理高并发请求而不是应用数据传输时的多次拷贝,从而支持了更大的并发访问。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (6)
1.一种应用数据传输方法,其特征在于,该方法应用于应用代理服务器和/或应用服务器中,该方法包括:
在本服务器的应用层与本服务器支持远程直接内存访问RDMA的网络适配器之间,通过调用RDMA引擎建立用于直接进行数据读写的数据通道;
在需要向目标服务器发送应用数据时,通过所述数据通道,向所述网络适配器发送RDMA发送请求,以使所述网络适配器根据所述RDMA发送请求,从所述应用层中读取待发送的应用数据并转发给目标服务器;和/或,
通过所述数据通道接收所述网络适配器发送的RDMA接收请求,根据所述RDMA接收请求,从所述网络适配器中读取待接收的应用数据并直接将其拷贝至所述应用层中;
所述在本服务器的应用层与本服务器支持远程直接内存访问RDMA的网络适配器之间,通过调用RDMA引擎建立用于直接进行数据读写的数据通道包括:
在所述应用层中确定用于直接进行数据读写的应用缓冲区;
通过调用所述RDMA引擎的应用程序编程接口API,访问所述网络适配器的驱动,在所述应用缓冲区与所述驱动之间建立映射。
2.如权利要求1所述的方法,其特征在于,所述应用是虚拟桌面应用,所述应用代理服务器中部署有一个虚拟桌面代理服务,所述应用服务器中部署有一台或多台虚拟机且为每台虚拟机对应部署有一个虚拟桌面服务,所述应用的客户端是以浏览器实现的;
当所述本服务器为应用代理服务器时,由所述虚拟桌面代理服务在接收到所述应用客户端发送的虚拟机操作请求时,启动一个与该虚拟机操作请求对应的虚拟桌面代理子服务,由所述虚拟桌面代理子服务建立所述数据通道;
当所述本服务器为应用服务器时,由所述虚拟桌面服务建立所述数据通道。
3.一种应用数据传输装置,其特征在于,该装置应用于应用代理服务器和/或应用服务器中,该装置包括:
数据通道建立单元,用于在本服务器的应用层与本服务器支持远程直接内存访问RDMA的网络适配器之间,通过调用RDMA引擎建立用于直接进行数据读写的数据通道;
传输单元,用于在需要向目标服务器发送应用数据时,通过所述数据通道,向所述网络适配器发送RDMA发送请求,以使所述网络适配器根据所述RDMA发送请求,从所述应用层中读取待发送的应用数据并转发给目标服务器;和/或,通过所述数据通道接收所述网络适配器发送的RDMA接收请求,根据所述RDMA接收请求,从所述网络适配器中读取待接收的应用数据并直接将其拷贝至所述应用层中;
所述数据通道建立单元,用于在所述应用层中确定用于直接进行数据读写的应用缓冲区,通过调用所述RDMA引擎的应用程序编程接口API,访问所述网络适配器的驱动,在所述应用缓冲区与所述驱动之间建立映射。
4.如权利要求3所述的装置,其特征在于,所述应用是虚拟桌面应用,所述应用代理服务器中部署有一个虚拟桌面代理服务,所述应用服务器中部署有一台或多台虚拟机且为每台虚拟机对应部署有一个虚拟桌面服务,所述应用的客户端是以浏览器实现的;
所述数据通道建立单元,用于当所述本服务器为应用代理服务器时,由所述虚拟桌面代理服务在接收到所述应用客户端发送的虚拟机操作请求时,启动一个与该虚拟机操作请求对应的虚拟桌面代理子服务,受所述虚拟桌面代理子服务调用建立所述数据通道;以及用于当所述本服务器为应用服务器时,受所述虚拟桌面服务调用建立所述数据通道。
5.一种应用服务器,其特征在于,所述服务器包括如权利要求3-4中任一项所述的应用数据传输装置和支持RDMA的网络适配器。
6.一种应用代理服务器,其特征在于,所述服务器包括如权利要求3-4中任一项所述的应用数据传输装置和支持RDMA的网络适配器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710509158.5A CN107547623B (zh) | 2017-06-28 | 2017-06-28 | 应用数据传输方法、装置、应用服务器和应用代理服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710509158.5A CN107547623B (zh) | 2017-06-28 | 2017-06-28 | 应用数据传输方法、装置、应用服务器和应用代理服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107547623A CN107547623A (zh) | 2018-01-05 |
CN107547623B true CN107547623B (zh) | 2021-02-05 |
Family
ID=60970335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710509158.5A Active CN107547623B (zh) | 2017-06-28 | 2017-06-28 | 应用数据传输方法、装置、应用服务器和应用代理服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107547623B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109743350B (zh) * | 2018-11-30 | 2020-11-03 | 北京航空航天大学 | 一种科学计算应用影像区交换通信模式的卸载实现方法 |
CN109831321B (zh) * | 2019-01-04 | 2021-02-09 | 东南大学 | 一种数据中心中rdma应用传输参数自适应选择方法 |
CN111225042B (zh) * | 2019-12-27 | 2021-09-17 | 腾讯科技(深圳)有限公司 | 数据传输的方法、装置、计算机设备以及存储介质 |
CN113194045B (zh) * | 2020-01-14 | 2023-11-17 | 阿里巴巴集团控股有限公司 | 数据流量分析方法、装置、存储介质及处理器 |
CN111880946B (zh) * | 2020-07-14 | 2024-04-19 | 杭州海康威视数字技术股份有限公司 | 本地服务提供方法、装置及设备、存储介质 |
CN113973091A (zh) * | 2020-07-23 | 2022-01-25 | 华为技术有限公司 | 一种报文处理方法、网络设备以及相关设备 |
CN114301978A (zh) * | 2021-12-23 | 2022-04-08 | 阿里巴巴(中国)有限公司 | 一种云桌面实现方法、系统、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8903935B2 (en) * | 2010-12-17 | 2014-12-02 | Ryan Eric GRANT | Remote direct memory access over datagrams |
CN103929415B (zh) * | 2014-03-21 | 2018-03-06 | 华为技术有限公司 | Rdma下数据读写的方法、装置和网络系统 |
CN105450588B (zh) * | 2014-07-31 | 2019-02-12 | 华为技术有限公司 | 一种基于rdma的数据传输方法及rdma网卡 |
CN106657365B (zh) * | 2016-12-30 | 2019-12-17 | 清华大学 | 一种基于rdma的高并发数据传输方法 |
CN106873915A (zh) * | 2017-02-22 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种基于rdma注册内存块的数据传输方法和装置 |
-
2017
- 2017-06-28 CN CN201710509158.5A patent/CN107547623B/zh active Active
Non-Patent Citations (2)
Title |
---|
Quick Concepts Part 1-Introduction to RDMA;ZCopy;《Education and Sample Code for RDMA Programming》;20101008;1-2 * |
RDMA技术;岁月葱葱;《RDMA技术》;20170621;正文4-5页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107547623A (zh) | 2018-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107547623B (zh) | 应用数据传输方法、装置、应用服务器和应用代理服务器 | |
CN111277616B (zh) | 一种基于rdma的数据传输方法和分布式共享内存系统 | |
CN101815033B (zh) | 负载均衡的方法、设备及系统 | |
CN102404229B (zh) | 负载均衡系统、装置及方法 | |
CN111163130B (zh) | 一种网络服务系统及其数据传输方法 | |
CN102025630A (zh) | 负载均衡方法及负载均衡系统 | |
CN102263828A (zh) | 一种负载均衡分配方法及设备 | |
CN103475682A (zh) | 文件迁移方法及设备 | |
CN112306380B (zh) | 一种存储管理方法、装置以及计算机存储介质 | |
JP7046983B2 (ja) | パケット伝送方法及び装置 | |
CN113411363A (zh) | 一种镜像文件的上传方法、相关设备及计算机存储介质 | |
CN111327668A (zh) | 网络管理方法、装置、设备和存储介质 | |
CN111131470B (zh) | 终端设备及其数据处理方法以及数据处理系统 | |
JP2012083891A (ja) | フェイルオーバシステム、記憶処理装置及びフェイルオーバ制御方法 | |
CN114780465B (zh) | 可共享远程直接数据存取链接的创建方法及装置 | |
CN102843435A (zh) | 一种在集群系统中存储介质的访问、响应方法和系统 | |
CN105357260B (zh) | 实现虚拟桌面的系统、vdi数据缓存方法和vdi缓存设备 | |
EP1955181B1 (en) | Method and system for registering a distributed service site | |
CN103795584A (zh) | 客户端身份检测方法及网关 | |
CN110471627B (zh) | 一种共享存储的方法、系统及装置 | |
CN105933298B (zh) | 用于执行传输控制协议握手的设备和方法 | |
CN109981778B (zh) | 内容分发网络的服务实现方法、装置、设备及存储介质 | |
CN103002038A (zh) | 弹性负载均衡的处理方法和装置 | |
CN106060155B (zh) | P2p资源共享的方法及装置 | |
CN101227378B (zh) | 基于网络存储的通信业务建立方法及存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |