CN114205360B - 数据传输方法、装置及系统 - Google Patents
数据传输方法、装置及系统 Download PDFInfo
- Publication number
- CN114205360B CN114205360B CN202111492891.3A CN202111492891A CN114205360B CN 114205360 B CN114205360 B CN 114205360B CN 202111492891 A CN202111492891 A CN 202111492891A CN 114205360 B CN114205360 B CN 114205360B
- Authority
- CN
- China
- Prior art keywords
- destination
- address
- source
- ovs
- request message
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 45
- 230000004044 response Effects 0.000 claims description 46
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及数据传输方法、装置及系统、计算机可存储介质,涉及计算机技术领域。数据传输方法用于多个计算节点,每个计算节点上部署有至少一个虚拟机VM和与其对应的一个虚拟交换机OVS,多个计算节点包括源计算节点,所述源计算节点上部署有源VM和源OVS,所述数据传输方法由所述源OVS执行,包括:接收来自所述源VM针对服务的请求报文;根据所述请求报文,利用哈希算法,确定所述多个计算节点中为所述源VM提供所述服务的目的VM以及所述目的VM所在的目的计算节点;通过所述目的计算节点上部署的目的OVS,发送所述请求报文到所述目的VM。根据本公开,可以在实现负载均衡的同时,缩短数据传输的路径长度,降低负载均衡的压力,提高负载均衡的鲁棒性。
Description
技术领域
本公开涉及计算机技术领域,特别涉及数据传输方法、装置及系统、计算机可存储介质。
背景技术
在云计算服务中,负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。
相关技术中,负载均衡节点绑定一个VIP(Virtual Internet Protocol,虚拟网络互连协议)地址,客户端通过VIP地址将请求报文发送到负载均衡节点,负载均衡节点再将请求报文转发给后端。
发明内容
相关技术中,负载均衡节点作为客户端和后端之间的转发角色,需要为所有的客户端和后端执行转发操作,给负载均衡节点带来较大压力。并且,经过负载均衡节点会导致请求报文等数据传输的路径较长。
针对上述技术问题,本公开提出了一种解决方案,可以在实现负载均衡的同时,缩短数据传输的路径长度,降低负载均衡的压力,提高负载均衡的鲁棒性。
根据本公开的第一方面,提供了一种用于多个计算节点的数据传输方法,其中,每个计算节点上部署有至少一个虚拟机VM和与其对应的一个虚拟交换机OVS,多个计算节点包括源计算节点,所述源计算节点上部署有源VM和源OVS,所述数据传输方法由所述源OVS执行,包括:接收来自所述源VM针对服务的请求报文;根据所述请求报文,利用哈希算法,确定所述多个计算节点中为所述源VM提供所述服务的目的VM以及所述目的VM所在的目的计算节点;通过所述目的计算节点上部署的目的OVS,发送所述请求报文到所述目的VM。
在一些实施例中,所述请求报文包括源地址、目的地址、源端口号、目的端口号和协议类型,确定所述多个计算节点中为所述源VM提供所述服务的目的VM以及所述目的VM所在的目的计算节点包括:解析所述请求报文,得到所述目的地址;在所述目的地址属于虚拟网络互连协议VIP地址的情况下,计算所述源地址、目的地址、源端口号、目的端口号和协议类型中的一个或多个的哈希值,作为所述目的VM的媒体存取控制MAC地址;根据VM的MAC地址与计算节点的网络互连协议IP地址之间的对应关系,确定所述目的计算节点的IP地址。
在一些实施例中,通过所述目的计算节点上部署的目的OVS,发送所述请求报文到所述目的VM包括:根据所述目的VM的MAC地址,对所述请求报文进行重封装;根据所述目的计算节点的IP地址,通过所述目的OVS,发送重封装后的请求报文到所述目的VM。
在一些实施例中,数据传输方法,还包括:接收所述目的VM通过所述目的OVS发送的响应报文,所述响应报文以所述目的VM的IP地址作为源地址,以所述源VM的IP地址作为目的地址;根据所述响应报文中的目的地址,发送所述响应报文到所述源VM。
根据本公开第二方面,提供了一种用于多个计算节点的数据传输方法,其中,每个计算节点上部署有至少一个虚拟机VM和一个虚拟交换机OVS,所述多个计算节点包括源计算节点,所述源计算节点上部署有源VM和源OVS,所述数据传输方法包括:所述源OVS接收来自所述源VM针对服务的请求报文;所述源OVS根据所述请求报文,利用哈希算法,确定所述多个计算节点中为所述源VM提供所述服务的目的VM以及所述目的VM所在的目的计算节点;所述源OVS发送所述请求报文到所述目的计算节点上部署的目的OVS;所述目的OVS发送所述请求报文到所述目的VM。
在一些实施例中,所述请求报文包括源地址、目的地址、源端口号、目的端口号和协议类型,确定所述多个计算节点中为所述源VM提供所述服务的目的VM以及所述目的VM所在的目的计算节点包括:所述源OVS解析所述请求报文,得到所述目的地址;在所述目的地址属于虚拟网络互连协议VIP的情况下,所述源OVS计算所述源地址、目的地址、源端口号、目的端口号和协议类型中的一个或多个的哈希值,作为所述目的VM的媒体存取控制MAC地址;所述源OVS根据VM的MAC地址与计算节点的网络互连协议IP地址之间的对应关系,确定所述目的计算节点的IP地址。
在一些实施例中,所述源OVS发送所述请求报文到所述目的计算节点上部署的目的OVS包括:根据所述目的VM的MAC地址,对所述请求报文进行重封装;根据所述目的计算节点的IP地址,发送重封装后的请求报文到所述目的OVS;所述目的OVS发送所述请求报文到所述目的VM包括:所述目的OVS解析所述重封装后的请求报文,得到所述目的地址;对所述目的地址进行网络地址转换,得到所述目的VM的IP地址;根据所述目的VM的IP地址,发送所述重封装后的请求报文到所述目的VM。
在一些实施例中,数据传输方法,还包括:所述目的OVS接收来自所述目的VM的响应报文,所述响应报文以所述目的VM的IP地址作为源地址,以所述源VM的IP地址作为目的地址;所述目的OVS对所述目的VM的IP地址进行网络地址转换,得到与所述目的VM的IP地址对应的VIP地址;所述目的OVS根据与所述目的VM的IP地址对应的VIP地址,对所述响应报文进行重封装;所述目的OVS发送重封装后的响应报文到所述源OVS;所述源OVS发送重封装后的响应报文到所述源VM。
根据本公开第三方面,提供了一种用于多个计算节点的数据传输装置,其中,每个计算节点上部署有至少一个虚拟机VM和与其对应的一个虚拟交换机OVS,多个计算节点包括源计算节点,所述源计算节点上部署有源VM和源OVS,所述数据传输装置部署在所述源OVS中,包括:接收模块,被配置为接收来自所述源VM针对服务的请求报文;确定模块,被配置为根据所述请求报文,利用哈希算法,确定所述多个计算节点中为所述源VM提供所述服务的目的VM以及所述目的VM所在的目的计算节点;发送模块,被配置为通过所述目的计算节点上部署的目的OVS,发送所述请求报文到所述目的VM。
根据本公开第四方面,提供了一种用于多个计算节点的数据传输装置,包括:存储器;以及耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行上述任一实施例所述的数据传输方法。
根据本公开第五方面,提供了一种用于多个计算节点的数据传输系统,包括:所述多个计算节点,每个计算节点上部署有至少一个虚拟机VM和一个虚拟交换机OVS,所述多个计算节点包括源计算节点,所述源计算节点上部署有源VM和源OVS;其中,源OVS,被配置为接收来自所述源VM针对服务的请求报文;利用哈希算法,确定所述多个计算节点中为所述源VM提供所述服务的目的VM以及所述目的VM所在的目的计算节点;发送所述请求报文到所述目的计算节点上部署的目的OVS;所述目的OVS,被配置为发送所述请求报文到所述目的VM。
在一些实施例中,所述请求报文包括源地址、目的地址、源端口号、目的端口号和协议类型,所述源OVS还被配置为:解析所述请求报文,得到所述目的地址;在所述目的地址属于虚拟网络互连协议VIP的情况下,计算所述源地址、目的地址、源端口号、目的端口号和协议类型中的一个或多个的哈希值,作为所述目的VM的媒体存取控制MAC地址;根据VM的MAC地址与计算节点的网络互连协议IP地址之间的对应关系,确定所述目的计算节点的IP地址。
根据本公开的第六方面,提供了一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述任一实施例所述的数据传输方法。
在上述实施例中,可以在实现负载均衡的同时,缩短数据传输的路径长度,降低负载均衡的压力,提高负载均衡的鲁棒性。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1是示出根据本公开一些实施例的数据传输方法的流程图;
图2是示出根据本公开一些实施例的确定多个计算节点中为源VM提供服务的目的VM以及目的VM所在的目的计算节点的流程图;
图3是示出根据本公开另一些实施例的数据传输方法的流程图;
图4是示出根据本公开一些实施例数据传输装置的框图;
图5是示出根据本公开另一些实施例的数据传输装置的框图;
图6是示出根据本公开一些实施例的数据传输系统的框图;
图7是示出用于实现本公开一些实施例的计算机系统的框图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1是示出根据本公开一些实施例的数据传输方法的流程图。
如图1所示,用于多个计算节点的数据传输方法包括步骤S11-步骤S13。每个计算节点上部署有至少一个VM(Virtual Machine,虚拟机)和与其对应的一个OVS(OpenVirtual Switch,虚拟交换机)。多个计算节点包括源计算节点。源计算节点上部署有源VM和源OVS。数据传输方法由源OVS执行。每个计算节点上的VM既可以作为客户端(client),也可以作为后端(客户服务后端服务realserver)。
在步骤S11中,接收来自源VM针对服务的请求报文。在一些实施例中,请求报文包括源地址、目的地址、源端口号、目的端口号和协议类型。请求报文还可以包括源VM的网关MAC(Media Access Control,媒体存取控制)地址。
在步骤S12中,根据请求报文,利用哈希算法,确定多个计算节点中为源VM提供服务的目的VM以及目的VM所在的目的计算节点。
在一些实施例中,可以通过如图2所示的步骤实现上述步骤S12。
图2是示出根据本公开一些实施例的确定多个计算节点中为源VM提供服务的目的VM以及目的VM所在的目的计算节点的流程图。
如图2所示,确定多个计算节点中为源VM提供服务的目的VM以及目的VM所在的目的计算节点包括步骤S121-步骤S123。
在步骤S121中,解析请求报文,得到目的地址。
在步骤S122中,在目的地址属于VIP地址的情况下,计算源地址、目的地址、源端口号、目的端口号和协议类型中的一个或多个的哈希值,作为目的VM的MAC地址。在一些实施例中,可以计算源地址、目的地址、源端口号、目的端口号和协议类型的哈希值,作为目的VM的MAC地址。
在步骤S123中,根据VM的MAC地址与计算节点的IP(Internet Protocol,网络互连协议)地址之间的对应关系,确定目的计算节点的IP地址。
返回图1,在步骤S13中,通过目的计算节点上部署的目的OVS,发送请求报文到目的VM。
在一些实施例中,在确定目的VM的MAC地址后,根据目的VM的MAC地址,对请求报文进行重封装。然后,根据目的计算节点的IP地址,通过目的OVS,发送重封装后的请求报文到目的VM。例如,将请求报文中源VM的网关MAC地址替换为目的VM的MAC地址,得到重封装后的请求报文。
在一些实施例中,源OVS还接收目的VM通过目的OVS发送的响应报文。响应报文以目的VM的IP地址作为源地址,以源VM的IP地址作为目的地址。响应报文由目的VM针对请求报文而生成。然后,源OVS根据响应报文中的目的地址,发送响应报文到源VM。
在上述实施例中,多个虚拟交换机分别部署在各个虚拟机所在的计算节点上,每个计算节点上的源OVS只负责该计算节点上的各个VM的请求报文的负载均衡转发,实现了无负载均衡节点的分布式的负载均衡。即,每个计算节点负责整个负载均衡过程的一部分节点,分散了负载均衡的压力,从而降低了负载均衡压力。另外,分布式的负载均衡使得在某个计算节点上的多个VM出现突发的大量流量的情况,其他计算节点上的源OVS仍然可以正常执行负载均衡的数据传输过程,从而提高了负载均衡的鲁棒性。另外,由于多个虚拟交换机分别部署在各个虚拟机所在计算节点上,无需再经过负载均衡节点,缩短了数据传输的路径长度。本公开的负载均衡方法可以更好地支持高并发、低延迟的应用场景。
图3是示出根据本公开另一些实施例的数据传输方法的流程图。
如图3所示,用于多个计算节点的数据传输方法包括步骤S31-步骤S34。每个计算节点上部署有至少一个虚拟机VM和一个虚拟交换机OVS。多个计算节点包括源计算节点。源计算节点上部署有源VM和源OVS。例如,多个计算节点上部署的多个虚拟OVS构成分布式负载均衡系统。每个计算节点上的VM既可以作为客户端(client),也可以作为后端(客户服务后端服务realserver)。
在步骤S31中,源OVS接收来自源VM针对服务的请求报文。在一些实施例中,请求报文包括源地址、目的地址、源端口号、目的端口号和协议类型。请求报文还可以包括源VM的网关MAC(Media Access Control,媒体存取控制)地址。
在步骤S32中,源OVS根据请求报文,利用哈希算法,确定多个计算节点中为源VM提供服务的目的VM以及目的VM所在的目的计算节点。
在一些实施例中,以请求报文包括源地址、目的地址、源端口号、目的端口号和协议类型为例,可以通过如下方式实现图3所示的步骤S32。
首先,源OVS解析请求报文,得到目的地址。
然后,在目的地址属于虚拟网络互连协议VIP的情况下,源OVS计算源地址、目的地址、源端口号、目的端口号和协议类型中的一个或多个的哈希值,作为目的VM的媒体存取控制MAC地址。在一些实施例中,可以计算源地址、目的地址、源端口号、目的端口号和协议类型的哈希值,作为目的VM的MAC地址。确定目的VM的MAC地址,即可唯一确定一个目的VM。
最后,源OVS根据VM的MAC地址与计算节点的网络互连协议IP地址之间的对应关系,确定目的计算节点的IP地址。确定目的计算节点的IP地址,即可唯一确定一个目的计算节点。
在步骤S33中,源OVS发送请求报文到目的计算节点上部署的目的OVS。
在一些实施例中,在源OVS确定目的VM的MAC地址后和目的计算节点的IP地址后,根据目的VM的MAC地址,对请求报文进行重封装,并根据目的计算节点的IP地址,发送重封装后的请求报文到目的OVS。由于每个计算节点上部署有唯一一个OVS,因此,在确定计算节点的IP地址后,即可唯一确定一个OVS,从而实现请求报文的转发。
在步骤S34中,目的OVS发送请求报文到目的VM。在一些实施例中,在目的OVS接收到来自源OVS发送的重封装后的请求报文后,对重封装后的请求报文中的目的地址(与未封装前的请求报文中的目的地址相同)进行网络地址转换,得到目的VM的IP地址。即,将VIP地址装换为IP地址。进而,目的OVS根据目的VM的IP地址,发送重封装后的请求报文到目的VM。
在一些实施例中,目的OVS发送重封装后的请求报文到目的VM后,目的VM解析重封装后的请求报文,生成并发送与请求报文对应的响应报文到目的OVS。响应报文以目的VM的IP地址作为源地址,以源VM的IP地址作为目的地址。
目的OVS接收来自目的VM的响应报文,并对目的VM的IP地址进行网络地址转换,得到与目的VM的IP地址对应的VIP地址。
目的OVS得到与目的VM的IP地址对应的VIP地址后,根据该VIP地址对响应报文进行重封装。在一些实施例中,目的OVS将响应报文中的源地址由目的VM的IP地址替换为相应的VIP地址。
目的OVS在对响应报文重封装后,将重封装后的响应报文发送到源OVS。进而,源OVS发送重封装后的响应报文到源VM。此处,源OVS根据重封装后的响应报文中的目的地址,发送重封装后的响应报文到源VM。
图4是示出根据本公开一些实施例数据传输装置的框图。
如图4所示,用于多个计算节点的数据传输装置4包括接收模块41、确定模块42和发送模块43。每个计算节点上部署有至少一个虚拟机VM和与其对应的一个虚拟交换机OVS。多个计算节点包括源计算节点,源计算节点上部署有源VM和源OVS,数据传输装置部署在源OVS中。应当理解,每个计算节点既可以作为源计算节点也可以作为目的计算节点,这取决于该计算节点是请求发起一侧还是请求接收一侧。如果计算节点是请求发起一侧,则该计算节点为源计算节点。如果计算节点是请求接收一侧,则该计算节点为目的计算节点。
接收模块41被配置为接收来自源VM针对服务的请求报文,例如执行如图1所示的步骤S11。
确定模块42被配置为根据请求报文,利用哈希算法,确定多个计算节点中为源VM提供服务的目的VM以及目的VM所在的目的计算节点,例如执行如图1所示的步骤S12。
发送模块43被配置为通过目的计算节点上部署的目的OVS,发送请求报文到目的VM,例如执行如图1所示的步骤S13。
图5是示出根据本公开一些实施例的数据传输装置的框图。
如图5所示,数据传输装置5包括存储器51;以及耦接至该存储器51的处理器52。存储器51用于存储执行数据传输方法对应实施例的指令。处理器52被配置为基于存储在存储器51中的指令,执行本公开中任意一些实施例中的数据传输方法。
图6是示出根据本公开一些实施例的数据传输系统的框图。
如图6所示,用于多个计算节点的数据传输系统6包括多个计算节点61、62和63。
每个计算节点上部署有至少一个虚拟机VM和一个虚拟交换机OVS。如图6所示,计算节点61上部署有VM 611和OVS 612。计算节点62上部署有VM 621和OVS 622。计算节点63上部署有OVS 631和VM 632。在一些实施例中,多个OVS构成分布式网络负载均衡(Distributed Network Load Balancing,DNLB)系统。
例如,计算节点61为源计算节点,计算节点61上部署的VM 611和OVS 612分别为源VM和源OVS。
VM 611被配置为生成并发送针对一服务的请求报文到OVS 612。在一些实施例中,请求报文包括源地址、目的地址、源端口号、目的端口号和协议类型。请求报文还可以包括VM 611的网关MAC(Media Access Control,媒体存取控制)地址。例如,VM 611的IP地址为192.168.0.6,访问服务的地址为192.168.0.3。此种情况下,请求报文的源地址为192.168.0.6,目的地址为192.168.0.3(属于DNLB系统内绑定的VIP地址)。
OVS 612被配置为接收来自VM 611针对上述服务的请求报文,并利用哈希哈希算法,确定多个计算节点61、62、63中为VM 611提供服务的目的VM以及目的VM所在的目的计算节点。
在一些实施例中,OVS 612还被配置为解析请求报文,得到目的地址,并在目的地址属于VIP的情况下,计算源地址、目的地址、源端口号、目的端口号和协议类型中的一个或多个的哈希值,作为目的VM的媒体存取控制MAC地址。在一些实施例中,可以计算源地址、目的地址、源端口号、目的端口号和协议类型的哈希值,作为目的VM的MAC地址。例如,根据计算得到的MAC地址,可以确定目的VM为VM 622。
OVS 612还被配置为根据目的VM的MAC地址与计算节点的IP地址之间的对应关系,确定目的计算节点的IP地址。例如,根据所确定的目的计算节点的IP地址,可以确定目的计算节点为计算节点62。
OVS 612还被配置为在确定VM 622和VM 622所在的计算节点62后,发送请求报文到计算节点62上部署的目的OVS。如图6所示,目的OVS例如为OVS 621。
在一些实施例中,OVS 612还被配置为在确定VM 622的MAC地址后,根据VM 622的MAC地址,对请求报文进行重封装;并根据计算节点62的IP地址,发送重封装后的请求报文到计算节点62上部署的OVS 621。例如,OVS 612还被配置为将请求报文中VM 611的网关MAC地址替换为VM 622的MAC地址,得到重封装后的请求报文。
OVS 621被配置为接收并发送请求报文到VM 622。
在一些实施例中,OVS 621还被配置为在接收到来自OVS 612发送的重封装后的请求报文后,对重封装后的请求报文中的目的地址(与未封装前的请求报文中的目的地址相同)进行网络地址转换(NAT),得到VM 622的IP地址。即,将VIP地址装换为IP地址。进而,OVS621根据VM 622的IP地址,发送重封装后的请求报文到VM 622。例如,OVS 621对目的地址192.168.0.3进行网络地址转换得到VM 622的IP地址为192.168.0.7。此处还会对请求报文进行二次封装,将VIP地址192.168.0.3替换为IP地址192.168.0.7,以便目的VM能够识别并处理请求报文。这些是本领域技术人员根据本公开内容可以实现的,此处不再赘述。
VM 622被配置为接收请求报文,并根据请求报文生成并发送响应报文到OVS 621。
在一些实施例中,VM 622还被配置为解析重封装后的请求报文,生成并发送与请求报文对应的响应报文到OVS 621。响应报文以目的VM的IP地址作为源地址,以源VM的IP地址作为目的地址。例如,响应报文的源地址为192.168.0.7,目的地址为192.168.0.6。
OVS 621还被配置为接收来自VM 622的响应报文,并对VM 622的IP地址进行网络地址转换,得到与VM 622的IP地址对应的VIP地址。例如,源地址192.168.0.7被转换为相应的VIP地址192.168.0.3。
OVS 621得到与VM 622的IP地址对应的VIP地址后,根据该VIP地址对响应报文进行重封装。在一些实施例中,OVS 621将响应报文中的源地址由VM 622的IP地址替换为相应的VIP地址。例如,将源地址192.168.0.7替换为VIP地址192.168.0.3。
OVS 621在对响应报文重封装后,将重封装后的响应报文发送到OVS 612。进而,OVS 612发送重封装后的响应报文到VM 611。此处,OVS 612根据重封装后的响应报文中的目的地址,发送重封装后的响应报文到VM 611。由于返回响应报文的过程中,目的地址始终是VM611的IP地址,从而可以直接确定其所属的计算节点和相应的OVS,因此不需要进行哈希处理。
本领域技术人员应当理解,图6只是本公开提供的一种实施例,多个计算节点、源计算节点、目的计算节点、源VM、源OVS、目的VM和目的OVS的角色和数量等包括但不限于图6示出的情形。例如,VM 611和OVS 612在另外的时刻也可以作为目的VM和目的OVS。也就是说,每个计算节点上的OVS既具有作为源OVS的功能和结构,也具有作为目的OVS的功能和结构。
图7是示出用于实现本公开一些实施例的计算机系统的框图。
如图7所示,计算机系统70可以通用计算设备的形式表现。计算机系统70包括存储器710、处理器720和连接不同系统组件的总线700。
存储器710例如可以包括系统存储器、非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。系统存储器可以包括易失性存储介质,例如随机存取存储器(RAM)和/或高速缓存存储器。非易失性存储介质例如存储有执行数据传输方法中的至少一种的对应实施例的指令。非易失性存储介质包括但不限于磁盘存储器、光学存储器、闪存等。
处理器720可以用通用处理器、数字信号处理器(DSP)、应用专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑设备、分立门或晶体管等分立硬件组件方式来实现。相应地,诸如判断模块和确定模块的每个模块,可以通过中央处理器(CPU)运行存储器中执行相应步骤的指令来实现,也可以通过执行相应步骤的专用电路来实现。
总线700可以使用多种总线结构中的任意总线结构。例如,总线结构包括但不限于工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、外围组件互连(PCI)总线。
计算机系统70还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730、740、750以及存储器710和处理器720之间可以通过总线700连接。输入输出接口730可以为显示器、鼠标、键盘等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口。存储接口750为软盘、U盘、SD卡等外部存储设备提供连接接口。
这里,参照根据本公开实施例的方法、装置和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个框以及各框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可提供到通用计算机、专用计算机或其他可编程装置的处理器,以产生一个机器,使得通过处理器执行指令产生实现在流程图和/或框图中一个或多个框中指定的功能的装置。
这些计算机可读程序指令也可存储在计算机可读存储器中,这些指令使得计算机以特定方式工作,从而产生一个制造品,包括实现在流程图和/或框图中一个或多个框中指定的功能的指令。
本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。
通过上述实施例中的数据传输方法、装置及系统、计算机可存储介质,可以在实现负载均衡的同时,缩短数据传输的路径长度,降低负载均衡的压力,提高负载均衡的鲁棒性。
至此,已经详细描述了根据本公开的数据传输方法、装置及系统、计算机可存储介质。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
Claims (10)
1.一种用于多个计算节点的数据传输方法,其中,每个计算节点上部署有至少一个虚拟机VM和与其对应的一个虚拟交换机OVS,多个计算节点包括源计算节点,所述源计算节点上部署有源VM和源OVS,所述数据传输方法由所述源OVS执行,包括:
接收来自所述源VM针对服务的请求报文,所述请求报文包括源地址、目的地址、源端口号、目的端口号和协议类型;
根据所述请求报文,利用哈希算法,确定所述多个计算节点中为所述源VM提供所述服务的目的VM以及所述目的VM所在的目的计算节点;
通过所述目的计算节点上部署的目的OVS,发送所述请求报文到所述目的VM,
其中,所述确定所述多个计算节点中为所述源VM提供所述服务的目的VM以及所述目的VM所在的目的计算节点包括:
解析所述请求报文,得到所述目的地址;
在所述目的地址属于虚拟网络互连协议VIP地址的情况下,计算所述源地址、目的地址、源端口号、目的端口号和协议类型的哈希值,作为所述目的VM的媒体存取控制MAC地址;
根据VM的MAC地址与计算节点的网络互连协议IP地址之间的对应关系,确定所述目的计算节点的IP地址。
2.根据权利要求1所述的数据传输方法,其中,通过所述目的计算节点上部署的目的OVS,发送所述请求报文到所述目的VM包括:
根据所述目的VM的MAC地址,对所述请求报文进行重封装;
根据所述目的计算节点的IP地址,通过所述目的OVS,发送重封装后的请求报文到所述目的VM。
3.根据权利要求1所述的数据传输方法,还包括:
接收所述目的VM通过所述目的OVS发送的响应报文,所述响应报文以所述目的VM的IP地址作为源地址,以所述源VM的IP地址作为目的地址;
根据所述响应报文中的目的地址,发送所述响应报文到所述源VM。
4.一种用于多个计算节点的数据传输方法,其中,每个计算节点上部署有至少一个虚拟机VM和一个虚拟交换机OVS,所述多个计算节点包括源计算节点,所述源计算节点上部署有源VM和源OVS,所述数据传输方法包括:
所述源OVS接收来自所述源VM针对服务的请求报文,所述请求报文包括源地址、目的地址、源端口号、目的端口号和协议类型;
所述源OVS根据所述请求报文,利用哈希算法,确定所述多个计算节点中为所述源VM提供所述服务的目的VM以及所述目的VM所在的目的计算节点;
所述源OVS发送所述请求报文到所述目的计算节点上部署的目的OVS;
所述目的OVS发送所述请求报文到所述目的VM,
其中,所述确定所述多个计算节点中为所述源VM提供所述服务的目的VM以及所述目的VM所在的目的计算节点包括:
所述源OVS解析所述请求报文,得到所述目的地址;
在所述目的地址属于虚拟网络互连协议VIP的情况下,所述源OVS计算所述源地址、目的地址、源端口号、目的端口号和协议类型的哈希值,作为所述目的VM的媒体存取控制MAC地址;
所述源OVS根据VM的MAC地址与计算节点的网络互连协议IP地址之间的对应关系,确定所述目的计算节点的IP地址。
5.根据权利要求4所述的数据传输方法,其中,
所述源OVS发送所述请求报文到所述目的计算节点上部署的目的OVS包括:
根据所述目的VM的MAC地址,对所述请求报文进行重封装;
根据所述目的计算节点的IP地址,发送重封装后的请求报文到所述目的OVS;
所述目的OVS发送所述请求报文到所述目的VM包括:
所述目的OVS解析所述重封装后的请求报文,得到所述目的地址;
对所述目的地址进行网络地址转换,得到所述目的VM的IP地址;
根据所述目的VM的IP地址,发送所述重封装后的请求报文到所述目的VM。
6.根据权利要求4所述的数据传输方法,还包括:
所述目的OVS接收来自所述目的VM的响应报文,所述响应报文以所述目的VM的IP地址作为源地址,以所述源VM的IP地址作为目的地址;
所述目的OVS对所述目的VM的IP地址进行网络地址转换,得到与所述目的VM的IP地址对应的VIP地址;
所述目的OVS根据与所述目的VM的IP地址对应的VIP地址,对所述响应报文进行重封装;
所述目的OVS发送重封装后的响应报文到所述源OVS;
所述源OVS发送重封装后的响应报文到所述源VM。
7.一种用于多个计算节点的数据传输装置,其中,每个计算节点上部署有至少一个虚拟机VM和与其对应的一个虚拟交换机OVS,多个计算节点包括源计算节点,所述源计算节点上部署有源VM和源OVS,所述数据传输装置部署在所述源OVS中,包括:
接收模块,被配置为接收来自所述源VM针对服务的请求报文,所述请求报文包括源地址、目的地址、源端口号、目的端口号和协议类型;
确定模块,被配置为根据所述请求报文,利用哈希算法,确定所述多个计算节点中为所述源VM提供所述服务的目的VM以及所述目的VM所在的目的计算节点;
发送模块,被配置为通过所述目的计算节点上部署的目的OVS,发送所述请求报文到所述目的VM,
其中,所述确定模块还被配置为:
解析所述请求报文,得到所述目的地址;
在所述目的地址属于虚拟网络互连协议VIP地址的情况下,计算所述源地址、目的地址、源端口号、目的端口号和协议类型的哈希值,作为所述目的VM的媒体存取控制MAC地址;
根据VM的MAC地址与计算节点的网络互连协议IP地址之间的对应关系,确定所述目的计算节点的IP地址。
8.一种用于多个计算节点的数据传输装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令,执行如权利要求1至6任一项所述的数据传输方法。
9.一种用于多个计算节点的数据传输系统,包括:
所述多个计算节点,每个计算节点上部署有至少一个虚拟机VM和一个虚拟交换机OVS,所述多个计算节点包括源计算节点,所述源计算节点上部署有源VM和源OVS;其中,
源OVS,被配置为接收来自所述源VM针对服务的请求报文,所述请求报文包括源地址、目的地址、源端口号、目的端口号和协议类型;利用哈希算法,确定所述多个计算节点中为所述源VM提供所述服务的目的VM以及所述目的VM所在的目的计算节点;发送所述请求报文到所述目的计算节点上部署的目的OVS;
所述目的OVS,被配置为发送所述请求报文到所述目的VM,
其中,所述源OVS还被配置为:
解析所述请求报文,得到所述目的地址;
在所述目的地址属于虚拟网络互连协议VIP的情况下,计算所述源地址、目的地址、源端口号、目的端口号和协议类型的哈希值,作为所述目的VM的媒体存取控制MAC地址;
根据VM的MAC地址与计算节点的网络互连协议IP地址之间的对应关系,确定所述目的计算节点的IP地址。
10.一种计算机可存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现如权利要求1至6任一项所述的数据传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111492891.3A CN114205360B (zh) | 2021-12-08 | 2021-12-08 | 数据传输方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111492891.3A CN114205360B (zh) | 2021-12-08 | 2021-12-08 | 数据传输方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114205360A CN114205360A (zh) | 2022-03-18 |
CN114205360B true CN114205360B (zh) | 2024-04-16 |
Family
ID=80651332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111492891.3A Active CN114205360B (zh) | 2021-12-08 | 2021-12-08 | 数据传输方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114205360B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012191554A (ja) * | 2011-03-14 | 2012-10-04 | Ntt Data Corp | サーバ装置、パケット伝送システム、パケット伝送方法及びプログラム |
CN104272286A (zh) * | 2012-07-20 | 2015-01-07 | 惠普发展公司,有限责任合伙企业 | 基于策略的网络资源缩放 |
WO2017133291A1 (zh) * | 2016-02-02 | 2017-08-10 | 华为技术有限公司 | 一种基于服务器集群的报文生成方法和负载均衡器 |
CN110113441A (zh) * | 2015-12-30 | 2019-08-09 | 华为技术有限公司 | 实现负载均衡的计算机设备、系统和方法 |
CN110708393A (zh) * | 2019-10-21 | 2020-01-17 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置和系统 |
CN111866064A (zh) * | 2016-12-29 | 2020-10-30 | 华为技术有限公司 | 一种负载均衡的方法、装置和系统 |
CN111901409A (zh) * | 2020-07-24 | 2020-11-06 | 山东海量信息技术研究院 | 虚拟化云平台的负载均衡实现方法、装置及可读存储介质 |
CN112671628A (zh) * | 2019-10-15 | 2021-04-16 | 华为技术有限公司 | 业务服务提供方法及系统 |
CN113687940A (zh) * | 2020-05-19 | 2021-11-23 | 阿里巴巴集团控股有限公司 | 负载均衡方法、装置及物理机 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10320895B2 (en) * | 2016-11-15 | 2019-06-11 | Microsoft Technology Licensing, Llc | Live migration of load balanced virtual machines via traffic bypass |
US10541925B2 (en) * | 2017-08-31 | 2020-01-21 | Microsoft Technology Licensing, Llc | Non-DSR distributed load balancer with virtualized VIPS and source proxy on load balanced connection |
-
2021
- 2021-12-08 CN CN202111492891.3A patent/CN114205360B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012191554A (ja) * | 2011-03-14 | 2012-10-04 | Ntt Data Corp | サーバ装置、パケット伝送システム、パケット伝送方法及びプログラム |
CN104272286A (zh) * | 2012-07-20 | 2015-01-07 | 惠普发展公司,有限责任合伙企业 | 基于策略的网络资源缩放 |
CN110113441A (zh) * | 2015-12-30 | 2019-08-09 | 华为技术有限公司 | 实现负载均衡的计算机设备、系统和方法 |
WO2017133291A1 (zh) * | 2016-02-02 | 2017-08-10 | 华为技术有限公司 | 一种基于服务器集群的报文生成方法和负载均衡器 |
CN111866064A (zh) * | 2016-12-29 | 2020-10-30 | 华为技术有限公司 | 一种负载均衡的方法、装置和系统 |
CN112671628A (zh) * | 2019-10-15 | 2021-04-16 | 华为技术有限公司 | 业务服务提供方法及系统 |
CN110708393A (zh) * | 2019-10-21 | 2020-01-17 | 北京百度网讯科技有限公司 | 用于传输数据的方法、装置和系统 |
CN113687940A (zh) * | 2020-05-19 | 2021-11-23 | 阿里巴巴集团控股有限公司 | 负载均衡方法、装置及物理机 |
CN111901409A (zh) * | 2020-07-24 | 2020-11-06 | 山东海量信息技术研究院 | 虚拟化云平台的负载均衡实现方法、装置及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114205360A (zh) | 2022-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108768817B (zh) | 一种虚拟化网络组网系统、数据包发送方法 | |
US9973390B2 (en) | Method of discovering network topology | |
CN111193773B (zh) | 负载均衡方法、装置、设备及存储介质 | |
US10079780B2 (en) | Packet processing method and device | |
US10511534B2 (en) | Stateless distributed load-balancing | |
CN113472900B (zh) | 报文处理方法、设备、存储介质及计算机程序产品 | |
CN110545230B (zh) | 用于转发vxlan报文的方法和装置 | |
CN113179295B (zh) | 报文处理方法及装置 | |
US20130243001A1 (en) | Node and method for transmitting and receiving content-centric network (ccn) packet in ccn | |
CN114205360B (zh) | 数据传输方法、装置及系统 | |
CN109672594B (zh) | IPoE报文处理方法、装置及宽带远程接入服务器 | |
CN110768911A (zh) | 流量高效引流方法、装置、设备、系统及存储介质 | |
US10498637B2 (en) | Switch processing method, controller, switch, and switch processing system | |
US10229459B1 (en) | Method and apparatus for routing in transaction management systems | |
CN112968965A (zh) | Nfv网络节点的元数据服务方法、服务器及存储介质 | |
CN111416851A (zh) | 在多个负载均衡器之间进行会话同步的方法和负载均衡器 | |
CN114390056B (zh) | 负载均衡方法、装置、电子设备及存储介质 | |
CN112367261B (zh) | 一种报文转发方法及装置、分布式设备 | |
CN105704023B (zh) | 一种堆叠系统的报文转发方法、装置及堆叠设备 | |
CN110990123B (zh) | 构建虚拟机网络系统的方法及装置 | |
CN111416852A (zh) | 在多个负载均衡器之间进行会话同步的方法和负载均衡器 | |
JP7384952B2 (ja) | ネットワークロードバランサー、リクエストメッセージの割り当て方法、プログラム製品及びシステム | |
CN110389785B (zh) | 大数据处理系统及方法、电子设备、存储介质 | |
US11831598B2 (en) | Method, apparatus and system for switching virtual IP | |
CN111865713B (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 |