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.










