vm-image-manage is a simple script for managing a small cluster of Xen virtual machines on a single host with one command. It's optimized for repeatedly restarting a virtual machine slot with an image.
vm-image-manage features templates for Xen configuration files. It speeds the import and export of Xen images to tgz archives. It speeds frequent redeployment with rsync. It manages mounting domains when the VM is down and un-mounting when the domain is launched.
Here are some key features of "vm image manage":
· Templates xen configuration files
· Simple Slot and Virtual Machine model of deployment.
· Per Slot configuration, at the template, or a hand customized version.
· Speeds the import and export of xen images to tgz archives
· Speedy frequent redeploys with rsync, should also be possible to extend for zfs or lvm snapshotting and redeploy.
· Extracting or Overlaying Archived Directories images.
· Defaults and per Slot configuration.
· Manages mounting domains when then Vm is down and un-mounting when the domain is launched.
· Manages exporting images in tar.gz format.
Virtualization hosts will run a fixed number of "Slots" upon which Virtual Machines can be started, The rational of this is based on the work of many groups in HTC (*1) it seems that the number of jobs per host is typically proportional to the CPU/cores's, Memory allowing, although this varies with IO jobs and CPU requirements for the job. On this reasoning the slot and virtual machine model was used.
This simple model can be complicated further by migration of hosts. At the moment I am only thinking about this.
In testing timings for shutting down, rsync reinstalling and rebooting a standard a vanilla Scientific Linux (Strives to be Red Hat Enterprise Binary compatible) where in the region of 30-40 seconds for SL3 and 40-50 seconds for SL4, your performance may vary mine does, on an unltra portable laptop with slower hard drives with debian testing 70-80 seconds, the latency rync delay(*2) shows the file system or block level tools will have to be options in the future. The test cycle was from a static running system, shutdown, rsync, bootup and running busy (ssh comes up a few seconds later). The messurements are to the time of execution of the vmimagemanager using the unix command "time" the unix on line help system has detailed execusion details.
(2)Im sure with minimal changes this code base can support the use of volume management or zfs, the performance of bootup may still dominate execution time if not modified.
This script is intended to be placed on an LHC worker node along with SGE (sun grid engine) to virtualize the worker node, while remaining as user friendly as possible. Other Plans include a platform aplication flexible virtulization abstraction for a build system, so that software projects can build rpm's or debian debs easily with virtual build servers. This will be released as alpha shortly.
Why use vmimagemanager script to manage virtual machines ?
Useful for off line backing up virtual machine systems, extracting and inserting directories, and reseting the operating system, using rsync.
My script is a simple script, and is meant to be useful and user friendly.
Its usage is meant to be combined with the xm tools from xen and depends on them and complements them until a better solution for end users comes.
This tool is also meant to be used by other automation tools, such as automated build and testing set ups, where simplicity of managing virtual machine slots for your own scripts is a priority not a gui.
(1) HTC and HPC:High performance Computing became well defined and included low latency communication between different computer CPU's, and through this definition came the need to define High Throughput Computing, which differs in the amount of synchronization operations the computers need to perform.
· Only works with xen at the moment.
· Only works with linux virtulization.
· Only works with xfs/ext3 at the moment.
· Still requires Work on mis configured Xen systems.
What's New in This Release:
· Added a template of full virtualization
· Added ability to load config files on command line
· Fixed a few regresions in the code.