Intro to Server Virtualization: Hypervisor vs. Paravirtualization
Virtualization is the creation of multiple logical systems from a single physical system. Consider the computer you are using: it has a single CPU, single hard drive, memory modules, motherboard etc. But how much of this are you using? 5%? 10%?
Consider a server in your data center that has multiple CPU’s, and each CPU has multiple cores. The computer’s memory slots can hold gigabytes of memory modules. It has a single operating system installed and probably just a single application that is providing services to your business such as a Web Server, MS Exchange, or Middleware. Research suggests that the vast majority of servers are less than 10% utilized.
Virtualization is the technology that provides “stacking” of multiple operating systems onto a single physical server to achieve an astonishing range of benefits. With proper management of these virtualized machines with tools like SolarWind’s Award Winning Virtualization Solution you can cut IT costs, improve data and backup protection and increase performance and efficiency. Before we talk more about these benefits, let’s look at the two fundamentally similar approaches to virtualization – Paravirtualization (ParaV) and Hypervisor.
The Hypervisor is a software structure used to fully emulate computer hardware in software. The software layer creates virtual CPUs and virtual Memory by intercepting the input/output from the Operating System before it reaches the physical hardware. Virtual Hard Disk Drives are created by mapping disk read and writes to a single file or LUN. Read and writes to the Networking software stack are intercepted and redirected to virtual network adapters.
In the end, the key factor is that guest OS does not know that it runs an abstracted environment and the system administrator should not perceive any significant difference between an OS running on a hypervisor or on a dedicated physical server.
This form of server virtualization, also called full hardware virtualization, is the most popular and wide spread virtualization in the marketplace right now.
The concept of Paravirtualization is very similar to that of the hypervisor principle. A software hypervisor is installed on a physical server and a guest OS is installed into the environment. The difference is that the guest OS needs to “know” that it is virtualized to take advantage of the functions. Operating systems require extensions to make API calls to the hypervisor.
Not every operating system or application can support being paravirtualized and not every server virtualization vendor supports running operating systems in a paravirtualized format. The guest OS / program will be aware that it operates in a shared medium at some level, and although it may not be visible to the user, it will be to the system administrator.
Virtualization has been available for many years, starting with the IBM mainframe in OS/390 and moving through many forms, but the most well known implementation today is Citrix which allows for emulation of most (but not all) Windows applications in a central server. The enterprise server market has been able to take advantage of virtualization for some time. However, it is not until the past decade that wide spread adoption has been realized.
Comparing Paravirtualization and Hypervisor approaches as fundamental technology is notoriously difficult. Hypervisor virtualization is the current market trend because full hardware virtualization has a better support for operating system and is simpler to deploy and operate.
Operating systems that support Paravirtualization interfaces need custom kernel adjustments. If compiled manually (where possible), guest operating systems with Hypervisor support require more maintenance and configuration. This additional costs and complexity, combined with the marginal performance gains, means Paravirtualization remains a niche product in the server virtualization market.
Full hardware virtualization does not require any guest modification for the operating system to be installed on the hardware. Rather, using standard hardware abstraction methodologies and OS level driver, the operating system can continue to run as though on its own physical hardware platform. This method does not require any guest OS knowledge, so more and more guest operating systems can be virtualized. This includes the various flavors of Windows, Linux, Unix, and even specialized distributions, like Android.
Hypervisor vs. Paravirtualization: Reliability and Usefulness
While not a major differentiator, the reliability and usefulness of Paravirtualization compared to full server virtualization options should be considered:
Paravirtualization reliability can be hampered due to the complexity involved in running a modified OS kernel to perform the Hypervisor interactions. In many instances, the OS vendor, who may be reluctant to develop more products, must support this kernel modification.
Reliability of Hypervisors is very high. Due to the lack of modification of the guest operating system, there is less complexity that equates to higher reliability and greater acceptance from Operating System vendors.
Paravirtualized operating system options are limited and therefore there are fewer options to provide a solution. The range of options available can limit the effective usefulness. On the other hand, Paravirtualization imparts performance increases over full hardware virtualization.
Compared with Hypervisors, the large range of usable guest operating systems and the lack of guest operating system customizations, full hardware virtualization provides a greater range of usefulness.
Ultimately, neither Paravirtualization nor full hardware virtualization exposes reliability or usefulness issues in the other. Each has their advantages and disadvantages.
The IT industry is a continuous cycle of improvement and it’s likely that Paravirtualization will return in the future in some new form. Today, the most important element of a virtualized environment is that we can manage all elements of the server platform in software and to deliver better management and monitoring.
Possibly the single greatest success of virtualization has been the development of products that can manage the virtualized systems, like SolarWind’s Virtualization Manager. The virtualization software layer means that simple software changes can expose core data and information about the performance and status of our Operating Systems. And that management capability is driving new operational benefits to businesses.