TECHNICAL FIELD

The implementations of the disclosure generally relate to computer systems and, more specifically, to systems and methods for managing host hardware configuration for virtual machine migration.

BACKGROUND

Virtualization herein shall refer to abstraction of some physical components into logical objects in order to allow running various software modules, for example, multiple operating systems, concurrently and in isolation from other software modules, on one or more interconnected physical computer systems. Virtualization permits multiplexing of an underlying host computer system between different virtual machines. Accordingly, the host computer system typically allocates some of its resources to each of the virtual machines. Each virtual machine can then be able to use the allocated resources to execute applications, including operating systems (referred to as guest operating systems (OS)).

Virtualization may be achieved by running a software layer, often referred to as “hypervisor,” above the hardware and below the virtual machines. A hypervisor may run directly on the server hardware without an operating system beneath it or as an application running under a traditional operating system. A hypervisor may abstract the physical layer and present this abstraction to virtual machines to use, by providing interfaces between the underlying hardware and virtual devices of virtual machines.

Processor virtualization may be implemented by the hypervisor scheduling time slots on one or more physical processors for a virtual machine, rather than a virtual machine actually having a dedicated physical processor. Memory virtualization may be implemented by employing a page table (PT) which is a memory structure translating virtual memory addresses to physical memory addresses. Device and input/output (I/O) virtualization involves managing the routing of I/O requests between virtual devices and the shared physical hardware. In certain implementations, the hypervisor may virtualize the physical hardware by presenting a virtual machine with one or more virtual devices emulating corresponding physical devices.

