APPENDIX A: VIRTUALIZATION METHODS Software Level
Server virtualization can be implemented entirely at the software level, where the hardware is fully emulated. This enables the operating systems to run unmodified, but operating system calls to hardware are trapped and simulated by a thick software layer. Typically, performance is relatively poor with this model and driver support is very limited.
Server virtualization can be implemented at the hardware level, again with an unmodified operating system where a very thin software layer, known as the hypervisor, controls the use of resources. IBM mainframes have long used this model. The industry overall, including processor manufacturers, has placed a lot of emphasis on optimizing virtualization at the hardware level. One of the key benefits of hardware-level virtualization is that applications do not need to be modified or “re-certified”; therefore it is viewed as the least disruptive method.
Operating System Subsets
Another way to implement server virtualization is to create subsets of the operating system. These are not really fully individual virtual machines with their own operating systems, but virtual environments that share some amount of operating system context with each other. Performance is generally better than other methods because a large amount of resources can be shared between environments. However, the operating systems must be heavily modified for this model. Because this model does not create a full virtual server abstraction, creating different environments by creating operating system subsets is not true server virtualization.
Server virtualization can also be implemented by a thin paravirtualization software layer, which requires small modifications to the operating system. This layer partitions the physical server into separate areas on which the virtual machines then run. Computing resources from the underlying server are viewed as a pool of resources that can then be shared amongst the virtual machines. With the exception of sharing these computing resources, each virtual machine is independent. Problems with an application on one virtual machine do not affect other virtual machines on the same hardware platform. With paravirtualization, virtual machines are similar to separate physical servers. Each has its own distinct hostnames, IP addresses, and configurations. Each virtual machine is managed independently of the others.
Oracle On Demand Server Virtualization Page 8