In its simplest terms, virtualization is the replication of hardware resources via software implementations. It is employed in particular to provide multiple server systems on a single hardware system. Although I want to concentrate on the virtualization of server systems in this article, it is important to mention that these principles are also being applied ever more frequently in the fields of network technology and data storage as well as on clients too.
Hypervisors, the software with which the physical interfaces (e.g., network cards and hard drives) are emulated (replicated), are indispensable for virtualization. Kernel-based Virtual Machine, generally known by the acronym KVM, is one of the leading hypervisors and is also the standard in UCS. Alongside KVM, hypervisors such as Xen, VMware vSphere, and Microsoft HyperV can also be found on servers.
Advantages of Virtualization
One of the commonly used approaches to planning IT systems is the distribution of applications across multiple servers. A further decisive factor is the ease of maintenance of the services. For example, restarts and updates can be performed in the scope of a database update without any influence on the user management when the two are hosted on separate servers.
However, as the average company employs a broad range of server applications, distributing the services across multiple physical servers would translate to a waste of resources. In such cases, virtualization makes it possible for several virtual machines (VMs for short) and their applications to share a hardware system (also often referred to as a “host”).
This sharing of resources presents considerable advantages from a server management perspective. When correctly configured, virtual machines can be transferred between host systems without any significant consequences for the VMs. Additionally, the abstraction via the virtualization level offers the advantage that the operating systems become independent of the hardware and thus, for example, no longer need to provide all the drivers for the selected platform. That separation even allows running older operating systems on newer hardware.
Virtualization also offers many advantages in the field of “green IT”. The bundling of applications on a single server makes it possible to utilize existing hardware resources more efficiently. For example, file servers require the most resources during the day when the users are working in the IT environment and accessing the server resources. In contrast, reporting systems often perform the majority of their calculations at night. Having both of these services share a platform can contribute to the optimal utilization of the hardware.
Management of Virtualization Infrastructure
The rule of thumb that the higher the number of servers the more complicated the administration naturally also applies to cases of virtual servers. However, as the number of servers is no longer limited by the hardware, an integrated management system takes on greater importance. The administration of VMs is no different from that of physical servers in this respect. The majority of hypervisor implementations include command line tools for management purposes, but can nevertheless also be controlled via a wide range of additional applications such as Univention Virtual Machine Manager (UVMM). Libcloud and libvirt provide the backend for many of these tools.
One of the most popular tools is “virsh”. It allows the administration of virtual machines and storage instances on all hypervisors supported by Libvirt. The most important commands are:
- List all running virtual machines:
- List all virtual machines:
virsh list --all
- Start a virtual machine:
virsh start \<name of VM\>
- Stop a virtual machine (stops a VM in the same way as disconnecting the power cable):
virsh destroy \<name of VM\>
- Delete a virtual machine:
virsh undefine \<name of VM\>
- Create a new virtual machine:
virsh define \<XML file\>
The definition file for creating the VM contains all the information required by the hypervisor. Among other data, this includes the number of virtual processors and the hard drives and which network ports are to be used.
The host system stores the hard drives either on the local disk or a network drive. In the simplest scenario, this is a “raw” file, which can be created with the following command before creation of the VM:
qemu-img create -f raw \<Disk Name>.img \<size\>
The advantages of server virtualization are obvious. Reducing the number of physical servers not only saves hardware and energy costs but also makes it possible to scale IT environments even more quickly to suit the current requirements. At the same time, virtualization – when correctly designed – reduces administrative efforts and minimizes security risks.
Nevertheless, these effects can only be fully utilized when, in addition to adequate planning, the virtualized servers, and environment as a whole are managed effectively.
I hope that I have been able to provide you with some useful information on the matter and will be happy to answer any questions you have, which you are welcome to pose in the comments below this blog article.