IP Library Granted Patent US 12,645,481
Granted Patent B2
US 12,645,481 · App. 17/989,853 · Granted Jun 2, 2026

Systems, methods, and apparatus for state convergence associated with high availability application migration in a virtualized environment

Inventors: Deepak Babarjung (San Ramon, CA); Brian Masao Oki (San Jose, CA); Maarten Wiggers (San Francisco, CA); Ivaylo Radoslavov Radev (Sofia, BG); Sandeep Sinha (Bangalore, IN)
Assignee: VMware LLC
G06F9/45558G06F11/2023G06F2009/4557G06F2009/45595
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 12,645,481
App. No.
17/989,853
Granted
Jun 2, 2026
Kind
B2
Abstract

Methods, apparatus, systems, and articles of manufacture are disclosed for state convergence associated with high availability application migration in a virtualized environment. An example apparatus includes at least one memory, machine readable instructions, and processor circuitry to at least one of execute or instantiate the machine readable instructions to identify a high availability slot in a virtual server rack including a first virtual machine (VM) associated with first configuration data that identifies the first VM as a protected VM, transmit second configuration data to a second VM that identifies the first VM as a nonprotected VM and the second VM as the protected VM, after a determination that a network partition is identified based on a failure of a request to retrieve the second configuration data from the second VM, and transfer data from the first VM to the second VM after causing the removal of the network partition.

Claims (57)

1 . An apparatus for state convergence associated with high availability application migration in a virtualized environment, the apparatus comprising:

at least one memory;

machine readable instructions in the apparatus; and

processor circuitry to at least one of execute or instantiate the machine readable instructions to:

identify a high availability slot in a virtual server rack, the high availability slot to facilitate a failover of an application on a first virtual machine in the virtual server rack, the first virtual machine associated with first configuration data that identifies the first virtual machine as a protected virtual machine;

transmit second configuration data to a second virtual machine, the second configuration data to identify the first virtual machine as a nonprotected virtual machine and the second virtual machine as the protected virtual machine;

after a determination that a network partition is identified based on a failure of a request to retrieve the second configuration data from the second virtual machine, cause removal of the network partition; and

after the removal of the network partition, transfer data from the first virtual machine to the second virtual machine.

2 . The apparatus of claim 1 , wherein the data is a high availability application, and the transfer of the data from the first virtual machine to the second virtual machine is a migration of the high availability application from the first virtual machine to the second virtual machine.

3 . The apparatus of claim 1 , wherein the first virtual machine and the second virtual machine are in a first cluster, the determination is a first determination, the failure is a first failure, the request is a first request, and the processor circuitry is to:

transmit the second configuration data to a third virtual machine in a second cluster;

after a second determination that the network partition is identified based on a second failure of a second request to retrieve the second configuration data from the third virtual machine, cause removal of the network partition; and

after the removal of the network partition, transmit the second configuration data to the third virtual machine to synchronize at least one of the first virtual machine, the second virtual machine, or the third virtual machine.

4 . The apparatus of claim 1 , wherein the first virtual machine is in a first cluster, the second virtual machine is in a second cluster, and the processor circuitry is to:

determine that the network partition is between the first cluster and the second cluster; and

after the network partition between the first cluster and the second cluster is removed, transmit the second configuration data to the second virtual machine.

5 . The apparatus of claim 4 , wherein the processor circuitry is to determine that the network partition is caused by a fault of a network switch associated with the first cluster and the second cluster.

6 . The apparatus of claim 1 , wherein the first virtual machine is in a first cluster, the second virtual machine is in a second cluster, and the processor circuitry is to:

determine that the first cluster includes a third virtual machine; and

transfer the data from the first virtual machine to the third virtual machine.

7 . The apparatus of claim 6 , wherein the determination is a first determination, and the processor circuitry is to, after a second determination that virtual resources of the third virtual machine do not satisfy a threshold, transmit the data from the first virtual machine to the second virtual machine.

8 . At least one non-transitory computer readable storage medium comprising instructions that, when executed, cause processor circuitry to at least:

detect a high availability slot in a virtual server rack, the high availability slot to facilitate a failover of an application on a first virtual machine in the virtual server rack, the first virtual machine associated with first configuration data that identifies the first virtual machine as a protected virtual machine;

send second configuration data to a second virtual machine, the second configuration data to identify the first virtual machine as a nonprotected virtual machine and the second virtual machine as the protected virtual machine;

after a determination that a network partition is identified based on a failure of a request to retrieve the second configuration data from the second virtual machine, cause removal of the network partition; and

after the removal of the network partition, move data from the first virtual machine to the second virtual machine.

9 . The at least one non-transitory computer readable storage medium of claim 8 , wherein the data is a high availability application, and the moving of the data from the first virtual machine to the second virtual machine is a migration of the high availability application from the first virtual machine to the second virtual machine.

10 . The at least one non-transitory computer readable storage medium of claim 8 , wherein the first virtual machine and the second virtual machine are in a first cluster, the determination is a first determination, the failure is a first failure, the request is a first request, and the instructions, when executed, cause the processor circuitry to:

send the second configuration data to a third virtual machine in a second cluster;

after a second determination that the network partition is identified based on a second failure of a second request to retrieve the second configuration data from the third virtual machine, cause removal of the network partition; and

after the removal of the network partition, send the second configuration data to the third virtual machine to synchronize at least one of the first virtual machine, the second virtual machine, or the third virtual machine.

11 . The at least one non-transitory computer readable storage medium of claim 8 , wherein the first virtual machine is in a first cluster, the second virtual machine is in a second cluster, and the instructions, when executed, cause the processor circuitry to:

determine that the network partition is between the first cluster and the second cluster; and

after the network partition between the first cluster and the second cluster is removed, send the second configuration data to the second virtual machine.

12 . The at least one non-transitory computer readable storage medium of claim 11 , wherein the instructions, when executed, cause the processor circuitry to determine that the network partition is caused by a failure of a network switch associated with the first cluster and the second cluster.

13 . The at least one non-transitory computer readable storage medium of claim 8 , wherein the first virtual machine is in a first cluster, the second virtual machine is in a second cluster, and the instructions, when executed, cause the processor circuitry to:

determine that the first cluster includes a third virtual machine; and

move the data from the first virtual machine to the third virtual machine.

14 . The at least one non-transitory computer readable storage medium of claim 13 , wherein the determination is a first determination, and the instructions, when executed, cause the processor circuitry to, after a second determination that virtual resources of the third virtual machine do not satisfy a threshold, send the data from the first virtual machine to the second virtual machine.

15 . A method for state convergence associated with high availability application migration in a virtualized environment, the method comprising:

identifying a high availability slot in a virtual server rack, the high availability slot to facilitate a failover of an application on a first virtual machine in the virtual server rack, the first virtual machine associated with first configuration data that identifies the first virtual machine as a protected virtual machine;

transmitting second configuration data to a second virtual machine, the second configuration data to identify the first virtual machine as a nonprotected virtual machine and the second virtual machine as the protected virtual machine;

after a determination that a network partition is identified based on a failure of a request to retrieve the second configuration data from the second virtual machine, causing removal of the network partition; and

after the removal of the network partition, transferring data from the first virtual machine to the second virtual machine.

16 . The method of claim 15 , wherein the data is a high availability application, and the transfer of the data from the first virtual machine to the second virtual machine is a migration of the high availability application from the first virtual machine to the second virtual machine.

17 . The method of claim 15 , wherein the first virtual machine and the second virtual machine are in a first cluster, the determination is a first determination, the failure is a first failure, the request is a first request, and the method further including:

transmitting the second configuration data to a third virtual machine in a second cluster;

after a second determination that the network partition is identified based on a second failure of a second request to retrieve the second configuration data from the third virtual machine, causing removal of the network partition; and

after the removal of the network partition, transmitting the second configuration data to the third virtual machine to synchronize at least one of the first virtual machine, the second virtual machine, or the third virtual machine.

18 . The method of claim 15 , wherein the first virtual machine is in a first cluster, the second virtual machine is in a second cluster, and the method further including:

determining that the network partition is between the first cluster and the second cluster; and

after the network partition between the first cluster and the second cluster is removed, transmitting the second configuration data to the second virtual machine.

19 . The method of claim 18 , wherein the determining that the network partition is caused by a fault of a network switch associated with the first cluster and the second cluster.

20 . The method of claim 15 , wherein the first virtual machine is in a first cluster, the second virtual machine is in a second cluster, and the method further including:

determining that the first cluster includes a third virtual machine; and

transferring the data from the first virtual machine to the third virtual machine.

21 . The method of claim 20 , wherein the determination is a first determination, and the method further including, after a second determination that virtual resources of the third virtual machine do not satisfy a threshold, transmitting the data from the first virtual machine to the second virtual machine.

Assignments (2)
CHANGE OF NAME Recorded Feb 27, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 066692/0103 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2022
From: BABARJUNG, DEEPAK; OKI, BRIAN MASAO; WIGGERS, MAARTEN; RADEV, IVAYLO RADOSLAVOV; SINHA, SANDEEP
To: VMWARE, INC.
Reel/Frame 061821/0882 →
Priority Claims (1)
IN 202241037300 · Jun 29, 2022 · national
Continuity (1)
Related Publication 20240004687A1 · Jan 4, 2024
References Cited (11)
US 8874954B1 · Gupte · 2014 [cited by examiner]
US 9218140B2 · Antony · 2015 [cited by examiner]
US 9223606B1 · Vaidya · 2015 [cited by examiner]
US 9513946B2 · Sevigny · 2016 [cited by examiner]
US 11385972B2 · K · 2022 [cited by examiner]
US 20150263983A1 · Brennan · 2015 [cited by examiner]
US 20170060608A1 · Raghunathan · 2017 [cited by examiner]
US 20170060671A1 · Chai · 2017 [cited by examiner]
US 20210326165A1 · Shibayama · 2021 [cited by examiner]
CN 104081348A · 2014 [cited by examiner]
CN 104253865A · 2014 [cited by examiner]