Archive/XCP Beginners Guide

From Xen
Revision as of 14:46, 25 February 2013 by Double-p (talk | contribs) (basic xe)


By following this beginners guide, you will learn the outline concept of XCP by installing it and doing basic tasks without prior knowledge of XCP. Some basic knowledge about Linux, virtualization, networks and working on the command-line is necessary.

This guide also includes daily tasks like creating a new VM, which are being used explaining XCP and it's components.

What is XCP all about

By installing XCP from a single ISO-image, you get a ready-to-use virtualization plattform that consists from:

  • Xen Hypervisor: providing the low level virtualization
  • XAPI: the XCP toolstack which is used internally to manage the hypervisor
  • xe: the command-line tool to configure and operate the XCP plattform
  • xsconsole: a text-based UI to do basic tasks and configurations

The OS hosting all those components is based on CentOS (see XCP_Release_Features for current versions in use.



  • 64bit x86 computer with at least 1GB of RAM
  • Storage (HDD) with at least 40(?)GB to install XCP and some basic VMs (XCP itself will take a 4GB chunk)
  • CD/DVD-Drive (netboot is possible, but not covered here)


  • The XCP ISO, see Downloads for the latest build. The ISO is ~450MB (1.6-release)
  • Any guest OS (ISO-image suffices) you want to install


Just boot from the burned CD and follow the steps. For a quick trial&play installations, the defaults are fine. For a full explanation please refer to XCP_Installation.

First steps

Local terminals

While the system is coming up, you'll see the XCP logo with a progess bar. After loading and initializing the system has finished XCP will show xsconsole on screen including some basic information about the status of the system.

The second screen (Alt+F2) will get you a system log, which is usually empty after a clean boot.

On the third screen (Alt+F3) you get a login page with additional info about how to connect with externals tools (e.g. XenCenter) including the IP-address and the SSL certificate fingerprint.

To return to the xsconsole screen, press Alt+F1.


To gather basic information about the running XCP system and doing basic tasks like start/stop VMs, creating Storage Repositories. See xsconsole for a full list of possibilities.

Command Line

Choose 'Local Command Shell' from xsconsole, or type Alt+F3 and log into XCP. If you open a shell via xsconsole, type 'exit' to return and do not start xsconsole on your own again.

The main tool to manage XCP on this level is xe. A short overview of possible sub-commands can be listed by "xe help". A second tool availble on this level is xl(1), as before "xl help" to get a glimpse on possibilities. (TODO: xl wikipage). Both tools are leveraged by TAB-completion, for xe not only sub-commands are expandable, but also parameters and possible values.

To gather realtime information on the usage of the system by VMs, use 'xentop'.

Basic xe concept

Gather information

The main tool to operate XCP is xe. In short terms xe takes on argument as a subcommand, and if this subcommand needs further arguments, they have to follow suit. Possible subcommands and further arguments/values can be TAB-completed. See Command_Line_Interface for some syntax examples.

The subcommands are grouped in means what component you will be operating on. The grouping is done just by the naming of the subcommand, such as all subcommands operating on a VM start with 'vm-', e.g. "xe vm-list". Unless it would not make sense, each group has a 'list' feature, e.g. "xe vm-list", "xe network-list", ... .

Below is a selected list of components for xe:

  • vm: virtual machines
  • sr: storage repositories
  • pbd: physical block device
  • vbd: virtual block device
  • vdi: virtual disk image
  • pif: physical network interface
  • vif: virtual network interface
  • network: virtual networks

Any component with parameters, usually have an according component-param-* subcommand. These are 'list','get','set','add','clear','remove'; e.g. "xe sr-param-list". Since these commands must target a certain object, you need a unique identifier as an argument (called UUID).

Example: Let's get all set parameters from a certain Storage_Repository:

# xe sr-list
..some output..
uuid ( RO)                : 5bfbefea-9dc0-b541-93d0-fb2717f70752
          name-label ( RW): Local storage
    name-description ( RW): 
                host ( RO): your-xcp-hostname
                type ( RO): lvm
        content-type ( RO): user
..more output..

# xe sr-param-list uuid=5bfbefea-9dc0-b541-93d0-fb2717f70752
uuid ( RO)                    : 5bfbefea-9dc0-b541-93d0-fb2717f70752
              name-label ( RW): Local storage
        name-description ( RW): 
                    host ( RO): your-xcp-hostname
      allowed-operations (SRO): VDI.create; VDI.snapshot; PBD.create; PBD.destroy; plug; update; VDI.destroy; scan; VDI.clone; VDI.resize; unplug
..more output..