IP Library Granted Patent US 10,827,042
Granted Patent B2
US 10,827,042 · App. 15/484,049 · Granted Nov 3, 2020

Traffic optimization for multi-node applications

Inventor: Vardan Movsisyan (Yerevan, AM)
Assignee: VMWARE, INC.
H04L69/22G06F9/455G06F9/45558H04L45/306H04L45/70H04L67/02H04L67/18G06F2009/4557G06F2009/45595H04L61/2521
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,827,042
App. No.
15/484,049
Granted
Nov 3, 2020
Kind
B2
Abstract

Example methods are provided for a host to perform traffic optimization for a multi-node application in a virtualized computing environment. The method may comprise: detecting, from the first virtualized computing instance supported by the host, a packet that includes header information identifying the second virtualized computing instance as a destination; and identifying that the first virtualized computing instance and second virtualized computing instance are configured to perform respective first role and second role to implement the multi-node application. The method may also comprise: based on one or more optimization factors, selecting the third virtualized computing instance that is also configured to perform the second role to replace the second virtualized computing instance; modifying the header information of the packet to identify the third virtualized computing instance as the destination; and sending the packet with modified header information to the third virtualized computing instance.

Claims (68)

1. A method for a host to perform traffic optimization for a multi-node application implemented in a virtualized computing environment, wherein the method comprises:

detecting, by a hypervisor, from a first virtualized computing instance supported by the host, a packet that includes header information identifying a second virtualized computing instance as a destination, wherein functionalities of the multi-node application are distributed over at least first virtualized computing instance, the second virtualized computing instance, and a third virtualized computing instance as network nodes;

prior to sending, by the hypervisor, the packet to the second virtualized computing instance with the header information of the packet;

identifying, by the hypervisor, that the first virtualized computing instance and the second virtualized computing instance are configured to perform respective first role and second role to implement the multi-node application;

based on one or more optimization factors, selecting, by the hypervisor, the third virtualized computing instance that is also configured to perform the second role to replace the second virtualized computing instance;

modifying, by the hypervisor, the header information of the packet to identify the third virtualized computing instance as the destination; and

sending, by the hypervisor, the packet with modified header information to the third virtualized computing instance.

2. The method of claim 1 , wherein selecting the third virtualized computing instance comprises:

based on a location-based optimization factor, determining that the first virtualized computing instance and third virtualized computing instance are both associated with a first location and the second virtualized computing instance is associated with a second location, wherein the first location and second location represent different hosts, racks, pods, chassis, data centers, or clouds.

3. The method of claim 1 , wherein selecting the third virtualized computing instance comprises:

selecting the third virtualized computing instance based on performance-based optimization factors associated with one or more of the following: central processing unit (CPU) resource utilization, memory resource utilization, storage resource utilization, network resource utilization, and error performance.

4. The method of claim 1 , wherein the method further comprises:

prior to selecting the third virtualized computing instance, determining that the first virtualized computing instance is not exclusively associated with the second virtualized computing instance.

5. The method of claim 1 , wherein the method further comprises:

prior to detecting the packet, obtaining role mapping data that associates the first virtualized computing instance with the first role, and the second virtualized computing instance and third virtualized computing instance with the second role.

6. The method of claim 1 , wherein modifying the header information comprises:

generating a network address translation (DNAT) rule that associates a second network address of the second virtualized computing instance with a third network address of the third virtualized computing instance; and

based on the DNAT rule, replacing the second network address in the header information with the third network address such that the packet is addressed from a first network address of the first virtualized computing instance to the third network address.

7. The method of claim 6 , wherein the method further comprises:

detecting a response packet addressed from the third network address to the first network address;

based on the DNAT rule, modifying header information of the response packet by replacing the third network address with the second network address; and

sending the response packet with the modified header information to the first virtualized computing instance.

8. A non-transitory computer-readable storage medium that includes a set of instructions which, in response to execution by a processor of a host, cause the processor to perform a method of traffic optimization for a multi-node application implemented in a virtualized computing environment, wherein the method comprises:

detecting, by a hypervisor, from a first virtualized computing instance supported by the host, a packet that includes header information identifying a second virtualized computing instance as a destination, wherein functionalities of the multi-node application are distributed over at least first virtualized computing instance, the second virtualized computing instance, and a third virtualized computing instance as network nodes;

prior to sending, by the hypervisor, the packet to the second virtualized computing instance with the header information of the packet;

identifying, by the hypervisor, that the first virtualized computing instance and the second virtualized computing instance are configured to perform respective first role and second role to implement the multi-node application;

based on one or more optimization factors, selecting, by the hypervisor, the third virtualized computing instance that is also configured to perform the second role to replace the second virtualized computing instance;

modifying, by the hypervisor, the header information of the packet to identify the third virtualized computing instance as the destination; and

sending, by the hypervisor, the packet with modified header information to the third virtualized computing instance.

9. The non-transitory computer-readable storage medium of claim 8 , wherein selecting the third virtualized computing instance comprises:

based on a location-based optimization factor, determining that the first virtualized computing instance and third virtualized computing instance are both associated with a first location and the second virtualized computing instance is associated with a second location, wherein the first location and second location represent different hosts, racks, pods, chassis, data centers, or clouds.

10. The non-transitory computer-readable storage medium of claim 8 , wherein selecting the third virtualized computing instance comprises:

selecting the third virtualized computing instance based on performance-based optimization factors associated with one or more of the following: central processing unit (CPU) resource utilization, memory resource utilization, storage resource utilization, network resource utilization, and error performance.

11. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises:

prior to selecting the third virtualized computing instance, determining that the first virtualized computing instance is not exclusively associated with the second virtualized computing instance.

12. The non-transitory computer-readable storage medium of claim 8 , wherein the method further comprises:

prior to detecting the packet, obtaining role mapping data that associates the first virtualized computing instance with the first role, and the second virtualized computing instance and third virtualized computing instance with the second role.

13. The non-transitory computer-readable storage medium of claim 8 , wherein modifying the header information comprises:

generating a network address translation (DNAT) rule that associates a second network address of the second virtualized computing instance with a third network address of the third virtualized computing instance; and

based on the DNAT rule, replacing the second network address in the header information with the third network address such that the packet is addressed from a first network address of the first virtualized computing instance to the third network address.

14. The non-transitory computer-readable storage medium of claim 13 , wherein the method further comprises:

detecting a response packet addressed from the third network address to the first network address;

based on the DNAT rule, modifying header information of the response packet by replacing the third network address with the second network address; and

sending the response packet with the modified header information to the first virtualized computing instance.

15. A host configured to traffic optimization for a multi-node application implemented in a virtualized computing environment, wherein the host comprises:

a processor; and

a non-transitory computer-readable medium having stored thereon instructions that, when executed by the processor, cause the processor to support the first virtualized computing instance, and perform the following:

detect, by a hypervisor, from a first virtualized computing instance, a packet that includes header information identifying a second virtualized computing instance as a destination, wherein functionalities of the multi-node application are distributed over at least first virtualized computing instance, the second virtualized computing instance, and a third virtualized computing instance as network nodes;

prior to sending, by the hypervisor, the packet to the second virtualized computing instance with the header information of the packet;

identify, by the hypervisor, that the first virtualized computing instance and the second virtualized computing instance are configured to perform respective first role and second role to implement the multi-node application;

based on one or more optimization factors, select, by the hypervisor, the third virtualized computing instance that is also configured to perform the second role to replace the second virtualized computing instance;

modify, by the hypervisor, the header information of the packet to identify the third virtualized computing instance as the destination; and

send, by the hypervisor, the packet with modified header information to the third virtualized computing instance.

16. The host of claim 15 , wherein the instructions for selecting the third virtualized computing instance cause the processor to:

based on a location-based optimization factor, determine that the first virtualized computing instance and third virtualized computing instance are both associated with a first location and the second virtualized computing instance is associated with a second location, wherein the first location and second location represent different hosts, racks, pods, chassis, data centers, or clouds.

17. The host of claim 15 , wherein the instructions for selecting the third virtualized computing instance cause the processor to:

select the third virtualized computing instance based on performance-based optimization factors associated with one or more of the following: central processing unit (CPU) resource utilization, memory resource utilization, storage resource utilization, network resource utilization, and error performance.

18. The host of claim 15 , wherein the instructions further cause the processor to:

prior to selecting the third virtualized computing instance, determine that the first virtualized computing instance is not exclusively associated with the second virtualized computing instance.

19. The host of claim 15 , wherein the instructions further cause the processor to:

prior to detecting the packet, obtain role mapping data that associates the first virtualized computing instance with the first role, and the second virtualized computing instance and third virtualized computing instance with the second role.

20. The host of claim 15 , wherein the instructions for modifying the header information cause the processor to:

generate a network address translation (DNAT) rule that associates a second network address of the second virtualized computing instance with a third network address of the third virtualized computing instance; and

based on the DNAT rule, replace the second network address in the header information with the third network address such that the packet is addressed from a first network address of the first virtualized computing instance to the third network address.

21. The host of claim 20 , wherein the instructions further cause the processor to:

detect a response packet addressed from the third network address to the first network address;

based on the DNAT rule, modify header information of the response packet by replacing the third network address with the second network address; and

send the response packet with the modified header information to the first virtualized computing instance.

Assignments (2)
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067103/0030 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2017
From: MOVSISYAN, VARDAN
To: VMWARE, INC.
Reel/Frame 041951/0960 →
Continuity (1)
Related Publication 20180295064A1 · Oct 11, 2018