Full virtualization and paravirtualization (PV) are simply two types of server virtualizations. They share similar traits, such as a physical server called a host and virtual servers called guests. What differentiates the server virtualization types is how they allocate physical server resources to the virtual servers.
Hardware-assisted virtual machine (HVM) is a Xen specific phrase to describe a platform virtualization approach that enables full virtualization. This approach is also known as hardware-assisted virtualization, accelerated virtualization, and native virtualization (specific to Virtual Iron). Full virtualization is used to simulate a hardware environment or virtual machine where a guest server executes instructions in complete isolation. Each guest server is unaware of and runs independently of the other guest servers on the physical machine. This means each guest server can run on its own OS, so you can have one guest running on Linux and another one on Windows.
- Simulates a complete hardware environment.
- Guest server executes in complete isolation.
- Each guest server can run on its own OS -- can run Linux and Windows.
- More stability.
- Slower overall server performance because of the hardware overhead.
With paravirtualization (PV), the guest servers are aware of the hypervisor and their guest status. Because each OS is aware of the demands that the other operating systems are placing on the physical server, the PV approach does not require as much processing power to manage the guest operating systems.
- Lower virtualization overhead.
- Stability and performance is close to the real servers and hardware virtualization.
- Supports only Linux.
- Poor portability and compatibility.
- More difficult to implement.
- OS options can not be changed during the installation.
- Can not compile and install a custom kernel.
- Both the host and guest kernel must be patched.