Virtualization solutions are today widely used for developments, server consolidation, or even High Performance Computing. Virtualization solution can be categorized into two different groups, according to the Goldberg studies: (i) type-I and (ii) type-II virtualization.
With type-I virtualization, the hypervisor runs directly on top the hardware. This is for example the approach selected for the implementation of Xen or VMware EXS. With type-II virtualization, the hypervisor runs on top of the host OS. For details, please refer to online documentation about system-level virtualization.
Since several virtualization solutions are today available, it is interesting to be able to switch from one solution to another, keeping the same virtual machine images and without to have to deal with technical details. V2M, Virtual Machine Management, aims to provide an abstraction for virtualization solutions. Thanks to this abstraction, users only focus on the specification of their virtual machines, V2M deals with VM's configuration and management.
For the moment, we do not try to deal with all possible configuration for each virtualization solution; we try to support common features. Therefore, few constraints exist with the current implementation:
The advantage of that approach is to allow users to "share" images between QEMU and Xen for instance without to have to rebuild the image. We plan to support more specific options for each virtualization solutions in future releases, allowing advanced users to use non-default options.
In order to have the v2m usage, please execute v2m --help, after installing v2m.
This project is actually organized in two different tasks: libv3m, a library that implements mechanisms for virtual machine management; and V2M, a command line interface (CLI) for libv3m. To download libv3m and V2M, please go to the download page.
A forge is also used for the developments: http://scicompforge.org/libv3m. Note that you have to be an V2M or libv3m developer to be able to access the forge. A track system is available which is common for libv3m and V2M. Two different SVN repositories are available: