|
|
(One intermediate revision by the same user not shown) |
Line 1: |
Line 1: |
− | === 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
| |
− |
| |
− |
| |
− | === 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?)
| |