I was thinking about holding off talking about standards and open interfaces until next time but they are an integral part of the discussion, thus here is an addition on that. Standards, specifications, and open interfaces are what will make it possible for the entire industry to fully leverage virtualization on the x86 platforms. There should be complete transparency and unconstrained availability (standards, open interfaces) of the interfaces between the hardware and the virtualization, the virtualization and the operating system, and the format of the virtual machines.
- A virtual machine encapsulates an entire server or desktop environment in a
file. The specification that describes and documents the virtual machine
environment and how it is stored is critical to how virtual environments are
provisioned, manipulated, patched, updated, scanned and backed up. VMware has
made a specification virtual machine disk format called VMDK available for free
without license and use restrictions.
- The interface between the virtualization layer and the operating system. It
is ideal for this interface to stay standardized and open so that all operating
system environments can be supported. Bundled OS/Virtualization solutions suffer
from two obvious risks:
- The interface between the virtualization layer and the operating system will
become complex and OS specific. This will make it more like an internal OS
interface (like the Microsoft Windows Hardware Abstraction Layer) than a choice
point. The interface will be optimized for the vendor's latest software and not
other operating systems.
- The interface will become a control point for the OS vendor. OS vendors have
long enjoyed the control they get from being the first software installed on the
hardware.
VMware has identified a few key properties for the interface
between the OS and virtualization layer, which we have documented as a set of
concepts called VMI (Virtual Machine Interface). We have submitted an example
implementation of these concepts to the Linux community, and we look forward to
working with the Linux community (and other communities and industry vendors) to
evolve the OS/virtualization interface into a form that is attractive for all
parties, as well as fully open.
- An API for managing virtual machines is needed so that all of the system
management products can have one uniform way to manage all virtual machines.
VMware has offered our API for managing virtual machines, developed and refined
over the past 8 years. VMware is willing to support any API as long as it is
functional to the full virtualization capabilities available in the
market.
- Benchmarks. There are starting to be multiple offerings for virtualization
and the customer needs a way to evaluate the performance of the different
offerings on apples to apples basis. There should be a benchmark that can show
the performance in real-world relevant ways and also in a way that requires as
inexpensive a setup as possible.