Last modified 11 years ago Last modified on 07/06/09 18:20:57


To establish base-line, desirable and wish-list of use-cases for a virtualisation service.



the person wishing to use the Xen service.


some process running on a user's computer.


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.


  • 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.


  • 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.


  • 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.


  • 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.


  • 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.


  • 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


  • 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).


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.