The future of VM tools

XenServer based, Community Powered.

Starting a project like XCP-ng is also the opportunity to explore new possibilities and “ways” of improving usual -boring- stuff.

Today, we’ll explore a bit what are “VM tools” and how we could improve the way you need to deploy/install them.


On Linux

For Linux guests in XenServer/XCP-ng, tools are almost only scripts that will allow to communicate with the hypervisor (in both ways). This “channel” on Xen is xenstore, a kind of database-ish thing to get info of a VM from outside (and vice-versa).

After installing those tools, you’ll be able to read some values. Let’s take an example inside a Linux Debian VM with the xenstore-read vm command:


As you can see, thanks to this, we are able to know what is the VM UUID from “inside”. But that’s also those tools that allow to expose the distro/kernel version outside, for example in Xen Orchestra, you are able to see that:

It’s also what allows you to make a “soft shutdown” for a HVM guest.

So in the end, those tools are pretty lightweight. That’s also because there is no need for any driver, because unlike the extra drivers you’ll need on Windows, they are embed in the Linux kernel (eg: in a HVM guest, any modern Linux kernel will be able to detect that’s Xen under the hood, and load the correct drivers to avoid emulation: it’s called PVHVM mode).

On Windows

The situation is more complicated on Windows. The first part (reporting data from the OS) is still needed, but that’s only a small thing. The big chunk is inside PV drivers.

What’s a PV driver

By default in XenServer and XCP-ng, if you install a Windows VM, it will use emulated hardware (via qemu). This is terribly slow.

Installing those drivers will replace the emulated devices by “Xen” devices, allowing to make hypercall, aka “bypassing emulation”.

Here is a list of XenServer/XCP-ng PV drivers installed on a Windows VM:

Tool deployment

Usually, you insert the guest-tool.iso in the VM virtual CD and install them, as explained is this guide. Or maybe you have a template with tools already installed. But then you need to re-install them when there is a new tool version available.

Frankly, that should be something from the past. We’d like to use a better model.

A better model

We think those tools should be available almost “directly”/natively in your VM OS. There is multiple ways to achieve that, but remember: closer to the mainline the better. In other words, we’d like to contribute in various Linux distro to have a package with tools, that you could simply install/update via the package manager (yum install or apt install it). In fact, it’s already the case on FreeBSD! We will work into this direction for other Linux distros!

Are you package maintainer on any Linux distro? Please contact us on contact at xcp-ng dot org!

How about Windows? Good news, with XenServer Enterprise or XCP-ng, there is already the possibility to rely on Windows Update. In Xen Orchestra, it’s very easy to enable it. In the VM advanced view, just click on “Windows Update tools” and boot the VM. On boot, Windows update will be able to detect that and ask you to install those drivers:

Next boot, here is the PV drivers presented by Windows Update:

After some reboots, your device manage should show this:

In XCP-ng

It’s likely we’ll remove progressively some tools bundled in XCP-ng, but it’s very likely we’ll at least provide various repo for main distros to be able to get tools from there until it’s “by default” into your favorite distribution.

For Windows tools, the answer is almost entirely into Windows Update! (more or less the last bit reporting the Windows version).

23 Responses

  1. Perry Flaugh says:

    I dont seem to have the “Windows Update tools” option on my advanced page for my windows 2012 R2 VM. I am currently running the current version of XOA, xo-server and xo-web 5.18.0 from sources, and XS 7.3.

    • olivierlambert says:

      Just wait for our next release next week. Until then, you can use xe to do the command with xe vm-param-set has-vendor-device=true uuid=<YOUR VM UUID>

  2. Davidson says:

    As i have Citrix XenServer, and I’d like to move to XCP-NG, is there a way to move without a rebuild?

    Many thanks in advance.

    • olivierlambert says:

      What do you mean, “rebuild”? You can upgrade by inserting the ISO and follow the upgrade procedure. That’s it 🙂

      • xon says:

        Is there a chance you’ll also treat ‘solarish’ OSs (Solaris proper, Illumos) to your new idea of Den tools?

      • Davidson says:

        So if I insert the ISO and upgrade i wont be loosing any of my configuration, right?

        • olivierlambert says:

          Correct, you’ll have a menu with a choice to “Upgrade” or make a clean install. Just choose “Upgrade” and you are good to go!

          • Davidson says:

            Done the Upgrade but now XenCenter sais “this server version is incompatible with XenCenter.” Any tools i can use to replace XenCenter?

          • olivierlambert says:

            Please read the last blog post, there is a link to XCP-ng Center. Also, don’t forget you can use Xen Orchestra too 😉

  3. U Guys are awesome! Great Work!

  4. Mohan Kaliyannan says:

    You guys are awesome ! I don’t have programmatic experience other than system administration. I would like to contribute more on testing, and some basic level coding on php, and strong coding on bash !

  5. Jay Chandrasekar says:

    Hi, will XCP-ng support tagged vlan for management network ? Thakns – Jay

  6. Luke says:


    Great work!

    I have a pool with two XCP-ng 7.4.1 host servers (migrated from XenServer 7.2 Free – no licence) running, and I also just installed and built Xen-Orchestra from sources on a Debian 9 VM.

    I have a question about windows VMs and the Windows update xen/xcp-tools update that (a feature that was only available on Xen Server 7.x with Enterprise licence)

    On A migrated Windows VM that allready had Citrix xentools installed, is all I need to do to update to the latest version of these tools and drivers, to simply switch on the Windows update feature in Xen Orchestra for each VM? Or do I need to de-install xentools first?
    If I install a fresh Windows VM, do I still need to install the XCP-ng tools (mounting the iso and launch installer in windows), oris all I have to do simply switch on the windows update feature in Xen Orchestra?

  7. Jin Lee says:


    We re trying to replace xenserver to xcp-ng.
    only matter is read each VM’s VNC remote port.
    before move to xcp-ng we use “xenstore-read/local/domain/(dom-id)/console/vnc-port” command.
    but after move to xcp-ng, this command not work.
    do you have any change for it?


  8. Nathaniel Morais says:

    Will we have a “all features enabled” version of Xen Orchestra too?

    • olivierlambert says:

      I don’t understand what you mean. You can have it all if you use it from the sources (no support/no turnkey, but all XO features)

  9. Nathaniel Morais says:

    I have 5 physical servers, with XenServer 7.1. To start the upgrade to XCP-ng, should I start with the Master server?

Leave a Reply

Your email address will not be published. Required fields are marked *