Server Virtualization has enabled IT departments to run multiple applications and multiple Operating Systems within a single server. This not only reduced the total number of servers required (and networking, cooling requirements, etc.,) but has also reduced the under-utilization of high-performance servers.
But, doesn’t virtualization come with its own processing overhead and requirements? Can that be reduced?
Two concepts: Paravirtualization & Hardware-assisted Virtualization, are catching up in the industry to achieve just that, and increase the efficiency of the virtualization process.
What is the Problem?
Operating Systems do not expect to share server resources, but sharing is the main advantage of virtualization. Also, Operating Systems expect/need direct access to memory resources and must be able to execute certain privilege instructions in Ring 0 (Lowest Layer). But, since the hypervisor occupies the lowest layer, VM (individual OS and application) doesn’t have direct access to it.
Software Virtualization applications use techniques like binary translation and direct execution in order to allow the VM to run in the lowest layer and execute privilege instructions. But, this process carries some processing overhead.
Paravirtualization is a technique (implemented in software) that replaces the non-virtualizable instructions on the OS kernel with hypercalls which communicate directly with the hypervisor. This has the same effect as binary translation, and reduces the processing overhead.
But, this technique requires each Guest OS to be modified at the Kernel-level. This is a limitation as some Operating Systems do not allow such modifications and even the ones that can be modified may need additional resources for maintenance/troubleshooting.
Server processor manufacturers have developed certain enhancements in their server processors that can trap privileged instructions and allows the VM to run in the lowest layer. If these hardware/firmware enhancements are properly utilized, it may not be required to use binary translation and other software techniques. Since hardware is optimized for this function, the virtualization process can run more efficiently.
Certain hardware-assisted virtualization features can also improve the efficiency of memory and I/O (Input/Output) virtualization, along with CPU virtualization.
Read the following two White Papers published by VMware and AMD (respectively), to understand more about virtualization techniques, its future and how the process can be improved. Both the documents – although slightly biased towards their respective offerings – offer excellent information on this topic.
- Understanding Full Virtualization, Paravirtualization & Hardware assist (VMware)
- Virtualizing Server Workloads: Looking beyond current assumptions (AMD, pdf)
You could stay up to date on the various Computer Networking/IT Technologies and News, by subscribing to this blog with your email address in the sidebar box that says, ‘Get email updates when new articles are published’.