VM import and export landing in XO

As explained in a previous article, we started to implement VM import and export in Xen Orchestra. Guess what? It just hits the next-release version! (meaning: we are testing it right now).

Let's give you a taste of what you'll have -very- soon.

Update: check the import and export in action on this short video!

With the web interface

Import or export through the web interface is a simple way to play with your VM and distribute them. For people needing automation, check the CLI paragraph. It also opens the possibility to use public repositories with pre-made VM (like I explained in the previous Docker article).


Our goal was to provide you a fast and easy way to export a VM you want, directly through your web browser (nothing to install), saving it on your local computer/tablet/whatever.

Hard to make something more trivial: one the VM view you need to export, click on the export button:

Then, the download start:

Running VM

The XAPI have no method to export a running VM (for now). So we need to find a way to give that feature for you. That's why we choose to follow this process:

  • create a temporary snapshot of the running VM
  • convert it into a VM (not a template)
  • export it
  • remove it

It changes nothing for you, but it's really convenient if you want to get your file without interrupting the service.


You have two ways to import a VM in our web interface. The first one is directly in the home view. Just select the "host menu" and "Import VM":

Select your file:

See the result with the progress in the notification:

Also note the currently imported VM is already visible with its importing state:

That's all! Easy, right?

Same stuff in the host view:

With the CLI

That's the part I like with our xo-cli application. Because it uses introspection, it's very convenient for us to expose features of xo-server through the CLI. Check the example, you'll love it!

Moreover, usage with CLI is very flexible, simplifying a lot of things. Remember: you can have xo-cli on any other host than xo-server.


Just target the host you want (any host connected to XO), give it a file, and it will be imported. Bonus: progression, size, network usage and ETA.

user@host$ xo-cli vm.import host=host_UUID @=/home/user/myVM.xva
1% of 551.88MB @ 2.4MB/s - ETA 3m 47s
99% of 551.88MB @ 7.19MB/s - ETA 1s
100% of 551.88MB @ 7.2MB/s - ETA 0ms


Same philosophy here:

user@host$ xo-cli vm.export vm=vm_UUID @=/home/user/myVM.xva
11.73MB @ 1.56MB/s
551.88MB @ 3.53MB/s

That's cool, but hey, there is more incoming!


Remember xo-backup snapshotting all your running VMs in one command?

Imagine now what can we do now we have import and export? Yes, disaster recovery in one command! We started to think how it will be done in a short proposal.

When? 3.6 and Starter Edition

All of this stuff will be available in the 3.6 release. At this very moment, we have all the features ready for the Starter Edition. We'll continue to test it and provide the interface to buy it in few clicks. After that, straight line to the Enterprise Edition with user management: the famous 4.0 version!