Building Xenopsd
Xenopsd is the "domain management" component within the XCP toolstack.
Prerequisites
You will need:
- the normal build tools (on Debian install "build-essential git rsync wget")
- the Xen development headers (on Debian install "libxen-dev")
- the OCaml compiler (at least version 3.12.1)
- the OCaml package manager, OPAM
Assuming a Debian wheezy system (other systems may differ), first install the system packages:
$ sudo apt-get install build-essential git rsync wget libxen-dev ocaml
Then install the OPAM tool:
$ wget http://github.com/OCamlPro/opam/archive/0.8.3.tar.gz $ tar -xvzf 0.8.3.tar.gz $ cd opam-0.8.3 $ ./configure $ make $ sudo make install
NB the current release fails to build because it tries to download a dependency from a broken URL: https://github.com/OCamlPro/opam/issues/356
Next initialise OPAM, this will read in the definitions of common OCaml packages.
$ opam init
Since OPAM packages are installed by default into a custom directory in $HOME/.opam, it's necessary to update some paths. The instructions will be printed to your terminal and typically look like the following:
To update $PATH, $MANPATH, $OCAML_TOPLEVEL_PATH, $CAML_LD_LIBRARY_PATH; you can now run: $ which opam && eval `opam config -env` and add this in your ~/.profile
Building xenopsd (and associated tools)
To make building easy, the development versions of xenopsd (and associated tools) are packaged into OPAM packages in a custom repository. To build, first add this repository as a remote:
$ opam remote -add xen-dev git://github.com/xen-org/opam-repo-dev
The new packages found in this remote will be listed on your terminal and may be queried via "opam list". At the time of writing this list looked like:
The following NEW packages are available: - fd-send-recv.1.0.0 - forkexecd.1.0.0 - message_switch.1.0.0 - shared-memory-ring.1.0.0 - xcp.1.0.0 - xen-api-client.1.0.0 - xenctrl.4.1.0 - xenops-cli.1.0.0 - xenopsd.1.0.0 - xenstore.2.0.0 - xenstore_transport.1.0.0
Finally, to build xenopsd (and its CLI) and all their dependencies, use the following command:
$ opam install xenopsd xenops-cli
The xenospd binary will end up in .opam/system/bin and should be on your $PATH (if you followed the earlier instructions to update your environment)
Running xenopsd
The build process also creates a basic configuration file. It can be started using:
$ sudo ./.opam/system/bin/xenopsd -config ./.opam/system/etc/xenopsd.conf
by default it will not daemonize and continue writing debug messages to the terminal.
To read the CLI help, try:
$ xenops-cli $ xenops-cli add --help
Starting a simple VM
The xenops-cli is able to read and write VM config files in xm/xl syntax. First create a file with contents like:
TBD
Future
There's lots of stuff to do, including:
- add support for libxl (in progress: Rob Hoes is working on it)
- update the Debian packages (Mike McClurg is working on it)
- package up squeezed, rrdd and xapi in the same way
- separate the storage code from xapi so it can be used without xapi
Development
If you're interested in taking part or influencing development:
- join the mailing list <xen-api@lists.xen.org>
- join the IRC channel #xen-api on freenode
- check out the code on http://github.com/djs55/xenopsd