Database Reference
In-Depth Information
“paravirtualization is a virtualization technique that presents a software interface to
virtual machines that is similar, but not identical to that of the underlying hardware.”
The key words here are “but not identical.”
The definition goes on further to say, “The intent of the modified interface is to reduce
the portion of the guest's execution time spent performing operations which are
substantially more difficult to run in a virtual environment compared to a non-
virtualized environment. The paravirtualization provides specially defined 'hooks' to
allow the guest(s) and host to request and acknowledge these tasks, which would
otherwise be executed in the virtual domain (where execution performance is worse).”
The goal of paravirtualization was to get lower virtualization overhead. In order to
accomplish this goal, vendors enable the guest operating system to skip the virtual layer
for certain types of operations. In order to enable this functionality, the vendors have to
alter the guest operating system so it is able to skip the virtualization layer.
For example, Red Hat Linux running on a physical host will be a different version of
Red Hat Linux running on a hypervisor that uses paravirtualization. Every time the
hypervisor is updated, it requires modifying the operating system. This opens up the
possibility for a database to behave differently when it is virtualized.
In the context of this conversation, we have been talking about CPU instructions. The
authors of this topic agree with the VMware approach to virtualization: Altering the
guest operating system is not acceptable. There are too many inherent risks associated
with running a database on an altered OS.
When it comes to device drivers, making them aware they are virtualized can be a real
advantage. The classic example of this is the VMXNET3 driver for the network. In the
section titled “ Paravirtual SCSI Driver (PVSCSI) and VMXNET3 , ” we discuss these
types of drivers in more detail.
The Different Hypervisor Types
Earlier in this chapter, we talked about what a virtual machine is, how it is a software-
based partition of a computer, and that this partitioning happens through the hypervisor.
We also discussed how there are different types of hypervisors. For the purposes of this
book, we will be talking about different types of hypervisors that offer full
virtualization. Full virtualization is a complete abstraction of the underlying hardware.
Anything that would run on the physical machine would also be able to be run on the
virtual machine in the same manner. The bottom line: The operating system doesn't have
to change.
Two approaches were taken when building a hypervisor, commonly known as a Type-1
hypervisor and a Type-2 hypervisor. To help you understand the difference between
hypervisor types, refer to Figure 3.3 .
 
 
Search WWH ::




Custom Search