Patent ID: 11914454
Assignee: VMWARE LLC
Field: Computer technology (Electrical engineering)
Classification: CPC G  H | IPC G  H

Claim 0:
1. A method for maintaining high availability of a plurality of virtual machines, the method comprising:
configuring a cluster of a software-define data center (SDDC) by defining a profile for each of a first host computer, a second host computer, a third host computer, and a fourth host computer running in the cluster, wherein at least one of the first host computer, the second host computer, the third host computer, and the fourth host computer is configured to support at least one workload comprising an operating system and an application;
after configuring the cluster of the SDDC, establishing a connection to a management server;
after establishing the connection to the management server, establishing a connection to a cloud infrastructure;
after establishing the connection to the cloud infrastructure, deploying a first virtual machine (VM), a second VM, a third VM, and a fourth VM needed to support the cluster in the cloud infrastructure by provisioning the first, second, third, and fourth VMs from a defined template and configuring the first, second, third, and fourth VMs with a plurality of hypervisors;
after the first, second, third, and fourth VMs needed to support the cluster are deployed in the cloud infrastructure, deploying a parent VM to be forked when a VM failure is detected in the cloud infrastructure from the defined template of the deployed first, second, third, and fourth VMs in the cloud infrastructure;
after deploying the parent VM, detecting a failure of the first VM and the second VM of the deployed first, second, third, and fourth VMs that are supporting the first host computer and the second host computer in the cluster of the SDDC using the management server monitoring the cluster of the SDDC;
in response to the failure of the first VM and the second VM, forking the parent VM to create a first child VM and a second child VM in the cloud infrastructure using a management VM in the cloud infrastructure supporting the management server, wherein the first VM and the second VM, which are deployed in the cloud infrastructure prior to the deployment of the parent VM in the cloud infrastructure, are not child VMs of the parent VM, wherein provisioning information of the parent VM matches provisioning information of the first VM and the second VM, and wherein no VM is held in reserve in the cloud infrastructure;
after forking the parent VM, loading a configuration of a plurality of hypervisor instances associated with the first VM and the second VM into a plurality of hypervisor instances of the first child VM and the second child VM, wherein each hypervisor comprises a software layer that facilitates a virtualization of components of a corresponding host computer in underlying physical hardware;
after loading the configuration of the hypervisor instances associated with the first VM and the second VM into the hypervisor instances of the first child VM and the second child VM, moving a fifth host computer and a sixth host computer corresponding to the first child VM and the second child VM into the cluster and restarting a first workload, a second workload, a third workload, and a fourth workload, which were running on the first host computer and the second host computer supported by the first VM and the second VM, on the fifth host computer and the sixth host computer, wherein when the first VM and the second VM fail, the first and second host computers fail and the first workload, the second workload, the third workload, and the fourth workload are interrupted; and
removing the first VM and the second VM from the cloud infrastructure, wherein the cloud infrastructure is an infrastructure-as-a-service solution that includes a pool of computing resources, wherein multiple new VMs are provisioned and deployed when one VM fails, and wherein computing resources for additional child VMs are reserved at time of deployment.