How to export/import VM to/from a backup file using command line on XenServer

Objective

The objective is to first export XenServer’s virtual machine into a regular backup file and later import a new virtual machine from the previously generated backup file.

Requirements

Privileged access to XenServer’s command line.

Difficulty

EASY

Instructions

Identify VM’s UUID

We start by identifying a virtual machine we would lake to export to as a regular backup file. Run xe vm-list to list all available virtual machines and take a note of the virtual machine in question:

# xe vm-list
uuid ( RO)           : 7371124f-7d4d-66b7-cbc7-a98b1457543e
     name-label ( RW): Debian Jessie 8.5
    power-state ( RO): halted


uuid ( RO)           : bad8e456-df88-435d-ba12-3f0f6e54b2c6
     name-label ( RW): Control domain on host: xenserver
    power-state ( RO): running

Take VM snapshot

At this stage we take a snapshot of our virtual machine. The UUID of the target VM is eg. 7371124f-7d4d-66b7-cbc7-a98b1457543e:

# xe vm-snapshot new-name-label="Debian Jessie 8.5 - Export" vm=7371124f-7d4d-66b7-cbc7-a98b1457543e
1fcc437b-b792-d609-925a-a700be870dff

Snapshot with name Debian Jessie 8.5 - Export has been taken.

Export VM to a file

Now is a time to export our VM into a file:

# xe vm-export vm=1fcc437b-b792-d609-925a-a700be870dff filename=debian_vm.xen
Export succeeded
# ls -lh debian_vm.xen
-rw------- 1 root root 1.5G Sep 16 17:27 debian_vm.xen

Import VM from a file

The file created in the previous step can now be used as a base to import new XenServer virtual machines:

# xe vm-import filename=debian_vm.xen
dc1c72bb-3a53-9335-669a-6e68a7f99873

The new virtual machine with UUID dc1c72bb-3a53-9335-669a-6e68a7f99873 has been created.

# xe vm-list
uuid ( RO)           : dc1c72bb-3a53-9335-669a-6e68a7f99873
     name-label ( RW): Debian Jessie 8.5 - Export
    power-state ( RO): halted


uuid ( RO)           : 1fcc437b-b792-d609-925a-a700be870dff
     name-label ( RW): Debian Jessie 8.5 - Export
    power-state ( RO): halted


uuid ( RO)           : 7371124f-7d4d-66b7-cbc7-a98b1457543e
     name-label ( RW): Debian Jessie 8.5
    power-state ( RO): halted


uuid ( RO)           : bad8e456-df88-435d-ba12-3f0f6e54b2c6
     name-label ( RW): Control domain on host: xenserver
    power-state ( RO): running

Remove the snapshot

Optionally you can now remove the unused snapshot to conserve some disk space:

# xe snapshot-uninstall snapshot-uuid=1fcc437b-b792-d609-925a-a700be870dff
The following items are about to be destroyed
VM : 1fcc437b-b792-d609-925a-a700be870dff (Debian Jessie 8.5 - Export)
VDI: 3c2ca807-8654-468d-98e2-dec8fb7513b8 (0) 
Type 'yes' to continue
yes
All objects destroyed


Comments and Discussions
Linux Forum