The present invention relates generally to the field of virtualization in computing systems, and more particularly to migrating applications between virtualization systems.
In system virtualization, multiple virtual computing systems are created within a single physical computing system. The physical system can be a stand-alone computer, or alternatively, a computing system utilizing clustered computers and components. Virtual systems are independent operating environments that use virtual resources made up of logical divisions of physical resources such as processors, memory, and input/output (I/O) adapters. System virtualization is implemented through some managing functionality, typically hypervisor technology. Hypervisors, also called virtual machine managers (VMMs), use software or firmware to achieve fine-grained, dynamic resource sharing. Hypervisors are the primary technology for system virtualization because they provide the greatest level of flexibility in how virtual resources are defined and managed.
Hypervisors provide the ability to divide physical computing system resources into isolated logical partitions or virtual machine. Each logical partition operates like an independent computing system (i.e., virtual machine) running its own operating system (e.g., a virtual system). Operating systems running in a virtualized environment are often referred to as “guest machines.” Exemplary operating systems include AIX®, IBM® i, Linux®, and the virtual I/O server (VIOS). Hypervisors can allocate dedicated processors, I/O adapters, and memory to each logical partition and can also allocate shared processors to each logical partition. Unbeknownst to the logical partitions, the hypervisor creates a shared processor pool from which the hypervisor allocates virtual processors to the logical partitions as needed. In other words, the hypervisor creates virtual processors from physical processors so that logical partitions can share the physical processors while running independent operating environments.
The hypervisor can also dynamically allocate and de-allocate dedicated or shared resources (such as processors, I/O, and memory) across logical partitions while the partitions are actively in use. This is known as dynamic logical partitioning (dynamic LPAR) and enables the hypervisor to dynamically redefine all available system resources to reach optimum capacity for each partition.
To increase the flexibility and dynamic capabilities of such systems, executing applications may be migrated from one virtualization environment to another. However, currently available virtualization environments require that the storage devices (e.g., arrays) and storage subsystems that store data for the executing applications be directly accessible (e.g., via a logical unit number) by the source and target computing environments involved in migration. Consequently, migration of executing application between computing environments that have storage devices or storage systems from different vendors is problematic.