Introduction to Integrity Virtual Machines

Improved system availability and capacity
In traditional server environments, all CPUs within a server run the same OS instance and one or more
applications. Application and OS failures may affect the entire server. For improved single system
availability, Integrity VM allows you to run one application per virtual machine. When an application
software failure does occur in one of the virtual machines, that application may be lost, but the
applications on other virtual machines continue to run. In fact, even if the OS panics in one of the
virtual machines, applications running on the other virtual machines are not affected. In this way,
running fine-grained virtual machines limits the impact of application or OS failures on overall
application availability.
With Integrity VM, virtual machines are completely separate operating system instances (guest
operating systems) isolated by software. Virtual servers cannot read from or write to memory on other
virtual servers or the host server. Privileged user access to a VM is limited to that VM one virtual
server cannot be reconfigured by a user on another virtual server.
Some virtualization products use “soft” allocation approaches such as thread prioritization, which do
not guarantee a virtual machine its entitled share of the physical CPU. However, when a virtual
machine is defined with Integrity Virtual Machines, its CPUs can be allocated a specific share of
physical CPU resources. In doing so, the virtual machine is guaranteed to get that portion of the
physical resources when needed.
One of the inherent problems in a single system is the difficulty in expanding CPU resources when the
demands of the application, or multiple applications, exceed the server’s configuration. Usually the
system would need to be shut down and additional CPUs added. With Integrity VM, you can define
a virtual SMP server with several (virtual) CPUs. Integrity VM can then allocate at a granularity
ranging from a small fraction of CPU resources (an aggregate of much less than one physical CPU) up
to a physical CPU for each virtual CPU. This provides the capability to define a larger capacity server
while still enjoying the fine-grained sharing of hardware resources.