Virtbuilder

From CDOT Wiki
Revision as of 12:40, 22 November 2007 by Jb (talk | contribs)
Jump to: navigation, search

Purpose

A web application which allows users to request and access custom virtual machines. Targeted use case: temporary VMs for one-time use, i.e. testing new configurations, operating systems, etc.

Details

  • Uses libvirt, KVM, QEMU
  • "Templates" are virtual machines created by hand with existing Linux virtual machine tools like virt-manager. There are two parts to templates: the installed system partition itself, and an XML description of the VM in the libvirt XML format.
  • "Instances" are snapshots of the templates: a user can log in and select a template, and be assigned an instance of that template. Changes to the user's VM are not persistent.

v0.1

  • Python CLI app that boots a pre-built VM, already known to virt-manager, via libvirt

v0.2

  • Still in progress (2007-11-22)
  • Python CLI app that takes a template, changes it's unique identifier and name, creates an LVM snapshot of the VMs disks, and dumps this new VM description into libvirt, and boots the newly created VM.

TODO: actually create LVM snapshots

v0.3

  • Web frontend to v0.2

v0.4 and beyond

  • Frontend to help in creating/maintaining templates

Unresolved design issues

  • Expiry of virtual machines (how long should they last? when should they be cleaned up?)
  • Validating RAM/disk space usage (how to stop users from bringing server to a grinding halt?)