Table of Contents
- Goal
- Terminology
- Use-case 1: virtual machine instance life-cycle
- Use-case 2: discovery of images
- Use-case 3: export image as VirtualBox
- Use-case 4: creating custom image
- Use-case 5: creating a new base OS image
- Use-case 6: image maintenance
- Use-case 7: Automated image management
- Use-case 8: Mulitple OS support
Goal
To establish base-line, desirable and wish-list of use-cases for a virtualisation service.
Terminology
user:
the person wishing to use the Xen service.
script:
some process running on a user's computer.
agent:
either a user or a script.
virtual machine image:
the representation of a computer,
image life-cycle:
the process of creating an image, deploying that image zero or more times on different slots, then deleting that image.
virtual machine slot:
the ability to run a single virtual machine image on some hardware.
virtual machine instance:
an instance is where a virtual machine image is deployed on some specific virtual machine slot and is started.
instance life-cycle:
the process of creating an instance of some image then later shutting down that image.
Use-case 1: virtual machine instance life-cycle
Level: Required
An agent requests the creation of an instance from a specified virtual machine image. This image is deployed on an available virtual machine slot and the agent is notified when this happens and on which machine.
The agent is provided with root access for this instance. No other user is provided access. An example of how this may be implemented is the user supplies an SSH public key when requesting the creation of an instance. This ssh public key is copied as /root/.ssh/authorized_keys within the instance.
When the user is finished with the instance, they can shut down the machine and the virtual machine slot is then free. No other user is allowed to shutdown that instance.
Variations
- The agent is a user who interacts using command-line tools [Required],
- The agent is a user who interacts using a GUI or webpage [Desirable],
- The agent is a script [Required],
- There may be no free virtual slots. Either:
- the agent is notified and no further action is taken,
- the agent is notified and the process waits until a free machine is available and continues.
Use-case 2: discovery of images
Level: Required
The user wishes to know what images are available. The system provides a list of images that are available.
Variations
- The list of available images is shown in a GUI or webpage [wish-list]
- The list of available images is obtained from a command-line utility [required]
- The list of available images includes a short description [wish-list]
Use-case 3: export image as VirtualBox
Level: Desirable
A user requests that a virtual machine image is made available on the local hard-disk. This locally stored image is usable as a virtual machine image in VirtualBox.
Variations
- The user interacts using a GUI [Wish-list]
- The user interacts using command-line tools [Desirable]
Use-case 4: creating custom image
Level: Required
An agent wishes to create a custom image based on an existing image. An example of this is to install a particular version of dCache.
The user selects an existing image and a copy of this image is made. This copy and the original are independent and changes to either will not affect the other. An instance is created (see use-case 1) and components, such as dCache, are installed. When the user is finished, the image is saved so it can be used later.
Variations
- The agent is a user interacting using a GUI or webpage [wish-list]
- The agent is a user interacting using a command-line utilities [required]
- The agent is a script [desired]
Use-case 5: creating a new base OS image
Level: Required
An user wishes to create an instance of a new version of an currently supported operating system is available or a completely new operating system.
Variations
- The image is created by
- as part of the service, in a timely fashion after a request
- a user and uploaded to the service.
- by supplying install media (CD/DVD) ISO image
- by some network-install process.
Use-case 6: image maintenance
Level: wish-list
An agent wishes to update files on an image without creating an instance from this image. This may be motivated from applying security updates on many images.
Variations
- The agent is a user
- The agent is a script.
Use-case 7: Automated image management
Level: Desirable
An agent wishes to manage a image by installing new software or updating installed software. The agent may wishes to do this in an automated fashion. The service should allow the agent to run a software agent and allow that agent to communicate with the controlling software.
See use-case 1, 4
Variations
- Different fabric management systems may be used:
- cfengine is used to manage images,
- puppet is used to manage images,
- quattor is used to manage images.
Use-case 8: Mulitple OS support
Level: Required
The user creates instances from supported dCache platforms. The list of platforms will change over time (see use-case 5).
Variations
Providing support for:
- Debian stable and previous stable,
- Scientific Linux, both Intel-compatible architectures (ia32/x86 and ia64), v4.x and v5.x,
- Solaris v10 and v11.
