Version control system for virtual machine - TechRepublic
General discussion
September 22, 2008 at 11:50 PM
barnali ganesh

Version control system for virtual machine

by barnali ganesh . Updated 17 years, 10 months ago

Virtual machine is structured data

With virtualization sweeping across every corner of the IT world, it is worth taking a look at the management responsibilities that accompany virtualization. To set the context right, virtualization has broken the bond between hardware and data and converted the entire machine to data! While we do enjoy the benefits (mobility, duplication, etc) of an entire machine getting converted to data, we need to provide the basic data management facilities for virtual machine images. Data is typically characterized by its ever changing or ever evolving nature and hence change tracking of data forms the basic foundation of data management. Revision control systems have addressed the change management requirement of source code and documents. Similarly, one has to deal with the change tracking aspect of virtual machine images with the motivation like tracking logical changes to data, who created the image, who made the changes and for what reason.

Benefits of version controlled virtual machines

Version control of virtual machine images will definitely yield the standard benefits of a revision control system. Virtual machine images being special structured data, version controlling the same will provide certain additional benefits that might be of importance to corporate IT decision makers.

The key benefits of a revision control system include:
1. Consistent Software Engineering Process; hence, very useful in multi-user environments while many users try to modify the same data is a common challenge.
In software engineering process, this gets effectively addressed by automated revision (version) control systems that manage multiple revisions of the same unit of information. It is most commonly used in engineering and software development to manage ongoing development of digital documents like application source code.
2. Consistent Progressive Backup Copies: it is easy to ‘roll back’ to an earlier version of the information.
Version control software maintains every version of every file that is ever checked in, going back as far as desired. If there is ever a question as to what transpired during the development cycle, the older copies of a file can be retrieved. Comparison tools then make it easy to highlight the changes so that they can be studied, revoked/reverted, or further modified.
3. A list of exact changes made can be generated quickly and easily.
Historical change tracking information makes this possible.

On top of the benefits mentioned in the above list, revision control of virtual machine images is important for the following reasons:

1. Virtual machine image file is a container of important information.
Virtual machine files contains the entire information required for running a full blown computer with installed applications, patches etc. Unlike other “files”, there is no easy way to get this information without “executing” (spawning the virtual machine) the file. The hardware resources available in a physical system put a limit to the number of virtual machines that can be spawned on it by making the process of extracting ‘information’ like installed software highly non-scalable and hence, impractical. Also, this kind of information (installed patches, software etc) evolves with time. A revision control system that automatically keeps track of the incremental changes of virtual machines and its contents will be extremely useful to address this pain point.
2. Storage requirement for Virtual machines is usually much more than other digital content.
Virtual machine image files are usually big (several GBs). Most revision control systems implement a concept called delta compression, in which only the differences between successive versions of files are retained, thus allowing the efficient storage of many, many different versions of files. Without revision control, the enterprise storage may get wasted with near-identical copies of virtual machines. This will also impact the IT operations like backup and restore for the enterprise data.
3. Virtual machines can contain important IP/s.
The access to confidential information like company IP, limited licensed software residing in virtual machines need to be controlled at the enterprise level. Users can just copy a virtual machine image file to get access to all the IP and/or installed software on the virtual machine. A version control system implementing strict access control list (ACL) will be able to limit the access of important virtual machines.

Why not standard revision control system for virtual machines

Document management systems have solved the revision control issues long back and there are plenty of commercial and open source version control systems available that work great for files like source code and/or documents etc. But the special characteristics of virtual machine image files starting from the size, complexities in image formats etc make it non-compatible with the existing and traditional revision control systems. Following list shows the key reasons for such incompatibility:

* Conventional revision control systems are meant for different types of file collections. The files are usually small text files.
* Delta compression techniques which are used for text files are not usable on multi-gigabyte images.
* Standard revision control systems treat the image as opaque; they cannot extract information about the contained machine, its OS and its applications.

Existing solutions

Some of the virtual machine life cycle management products including VMware’s, do revision control of virtual machines, as a part of the life cycle management of the VMs. But usually the revision control feature is deep embedded into the advanced (hence, costly) products like lab manager etc. It will be useful to have a no-frill, lightweight and “just” the version control system for virtual machines for small to medium size engineering organizations. Also it will be nice to have this feature pluggable into other similar and bigger products in the same space like desktop virtualization.

Coriolis Technologies (http://coriolis.co.in) , a virtualization start up from India has recently launched the 1.0 of their product, Colama (VM life cycle manager) that provides a simple and easy to use (web based) version control system for virtual machines.

Colama (http://coriolis.co.in/colama.html) offers a comprehensive solution for the revision control of virtual machines. Colama implements a smart version control system that is used for tracking the life cycle of virtual machines. Also, it has got an intelligent de-dupe engine to offer significant storage optimization for the revisions of the virtual machines.
At this point, I would like to open up the discussion to share experience and thoughts on the requirement and solutions for version controlling virtual machines.

This discussion is locked

All Comments