Server virtualization is used to describe many different technologies and approaches to abstract operating systems from hardware. Server virtualization presents a virtual view of hardware to an operating system to allow multiple operating systems to share the same physical resource in complete isolation from each other. The key benefits of virtualization are:
- Isolation: A virtual server’s state is unaffected by the state of other virtual servers on the same physical hardware.
- Encapsulation: The state of a virtual server can be captured and files representing a virtual server are portable.
- Hardware-independence: Virtual hardware does not have to be identical to the underlying physical hardware.
The x86 architecture was not originally designed for virtualization. This created tradeoffs in early server virtualization implementations in terms of both performance and complexity. Historically there have been two approaches to virtualize x86 architecture – binary patching and paravirtualization. Although both approaches create the illusion of physical hardware to achieve the goal of operating system independence from the hardware, there are significant differences between the approaches:
- Full virtualization with binary patching, at run-time rewrites x86 instructions that cannot be trapped and converts them into a series of instructions that can be trapped and virtualized. Full virtualization is capable of running existing, legacy operating systems without modifications, however it has significant costs in complexity and runtime performance.
- Paravirtualization modifies an operating system to replace non-trappable x86 instructions with a series of calls directly into a hypervisor (a virtual machine monitor). It achieves high performance with less complexity in the virtualization layer but requires the guest operating system to be substantially modified and tied to a particular version of the hypervisor.
Virtual Iron provides an alternative to full virtualization and paravirtualization called native virtualization.
With Virtual Iron, server virtualization provides abundant virtual resources to virtual servers:
- Up to eight 32 or 64-bit virtual CPUs
- Up to 32 physical CPUs
- Up to 96 GB RAM
- CD-ROM
- Up to 5 virtual network adaptors
- Virtual hard disks
- SVGA Monitor
- Keyboard
- Mouse