What is virtualization and migration? This chapter discusses terms related to virtualization and migration.
What is virtualization? Virtualization is a broad computing term used for running software, usually multiple operating systems, concurrently and in isolation from other programs on a single system. Most existing implementations of virtualization use a hypervisor, a software layer or subsystem that controls hardware and provides guest operating systems with access to underlying hardware. The hypervisor allows multiple operating systems, called guests, to run on the same physical system by offering virtualized hardware to the guest operating system. There are various methods for virtualizing operating systems: Full virtualization Full virtualization uses the hardware features of the processor to provide guests with total abstraction of the underlying physical system. This creates a new virtual system, called a virtual machine, that allows guest operating systems to run without modifications. The guest operating system and any applications on the guest are unaware of their virtualized environment and run normally. Hardware-assisted virtualization is the technique used for full virtualization with KVM (Kernel-based Virtual Machine) in Fedora. Para-virtualization Para-virtualization employs a collection of software and data structures that are presented to the virtualized guest, requiring software modifications in the guest to use the para-virtualized environment. Para-virtualization can encompass the entire kernel, as is the case for Xen para-virtualized guests, or drivers that virtualize I/O devices. Software virtualization (or emulation) Software virtualization uses slower binary translation and other emulation techniques to run unmodified operating systems. For more information and detailed instructions on guest installation, refer to the Fedora Virtualization Deployment Guide.
Migration Migration describes the process of moving a virtual machine from one host to another. This is possible because guests are running in a virtualized environment instead of directly on the hardware. There are two ways to migrate a virtual machine: live and offline. Migration Types Offline migration An offline migration suspends the guest, and then moves an image of the guest's memory to the destination host. The guest is then resumed on the destination host and the memory used by the guest on the source host is freed. Live migration Live migration is the process of migrating an active guest from one physical host to another.
Benefits of migrating virtual machines Migration is useful for: Load balancing When a host machine is overloaded, one or many of its virtual machines could be migrated to other hosts. Upgrading or making changes to the host When the need arises to upgrade, add, or remove hardware devices on one host, virtual machines can be safely relocated to other hosts. This means that guests do not experience any downtime due to changes that are made to any of the hosts. Energy saving Virtual machines can be redistributed to other hosts and the unloaded host systems can be powered off to save energy and cut costs in low usage periods. Geographic migration Virtual machines can be moved to another physical location for lower latency or for other special circumstances. It is important to understand that the migration process moves the virtual machine's memory. This process is done using live migration. Shared, networked storage must be used for storing guest images to be migrated. Without shared storage, migration is not possible. It is recommended to use libvirt-managed storage pools for shared storage. For more information on migration, refer to the Fedora Virtualization Administration Guide.