The libvirt Xen driver provides the ability to manage virtual machines on any Xen release from 3.0.1 onwards.
The libvirt Xen driver uses a combination of channels to manage Xen virtual machines.
/etc/xen/xend-config.sxp
configuration file. Specifically the config settings
(xend-unix-server yes)
. This path is usually restricted
to only allow the root
user access. As an alternative,
the HTTP interface can be used, however, this has significant security
implications.
/etc/xen
directory. It is important not to place
any other non-config files in this directory.
Below are some example XML configurations for Xen guest domains. For full details of the available options, consult the domain XML format guide.
Using a bootloader allows a paravirtualized guest to be booted using a kernel stored inside its virtual disk image
<domain type='xen' > <name>fc8</name> <bootloader>/usr/bin/pygrub</bootloader> <os> <type>linux</type> </os> <memory>131072</memory> <vcpu>1</vcpu> <devices> <disk type='file'> <source file='/var/lib/xen/images/fc4.img'/> <target dev='sda1'/> </disk> <interface type='bridge'> <source bridge='xenbr0'/> <mac address='aa:00:00:00:00:11'/> <script path='/etc/xen/scripts/vif-bridge'/> </interface> <console tty='/dev/pts/5'/> </devices> </domain>
For installation of paravirtualized guests it is typical to boot the domain using a kernel and initrd stored in the host OS
<domain type='xen' > <name>fc8</name> <os> <type>linux</type> <kernel>/var/lib/xen/install/vmlinuz-fedora8-x86_64</kernel> <initrd>/var/lib/xen/install/initrd-vmlinuz-fedora8-x86_64</initrd> <cmdline> kickstart=http://example.com/myguest.ks </cmdline> </os> <memory>131072</memory> <vcpu>1</vcpu> <devices> <disk type='file'> <source file='/var/lib/xen/images/fc4.img'/> <target dev='sda1'/> </disk> <interface type='bridge'> <source bridge='xenbr0'/> <mac address='aa:00:00:00:00:11'/> <script path='/etc/xen/scripts/vif-bridge'/> </interface> <graphics type='vnc' port='-1'/> <console tty='/dev/pts/5'/> </devices> </domain>
Fullyvirtualized guests use the emulated BIOS to boot off the primary harddisk, CDROM or Network PXE ROM.
<domain type='xen' id='3'> <name>fv0</name> <uuid>4dea22b31d52d8f32516782e98ab3fa0</uuid> <os> <type>hvm</type> <loader>/usr/lib/xen/boot/hvmloader</loader> <boot dev='hd'/> </os> <memory>524288</memory> <vcpu>1</vcpu> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <features> <pae/> <acpi/> <apic/> </features> <clock sync="localtime"/> <devices> <emulator>/usr/lib/xen/bin/qemu-dm</emulator> <interface type='bridge'> <source bridge='xenbr0'/> <mac address='00:16:3e:5d:c7:9e'/> <script path='vif-bridge'/> </interface> <disk type='file'> <source file='/var/lib/xen/images/fv0'/> <target dev='hda'/> </disk> <disk type='file' device='cdrom'> <source file='/var/lib/xen/images/fc5-x86_64-boot.iso'/> <target dev='hdc'/> <readonly/> </disk> <disk type='file' device='floppy'> <source file='/root/fd.img'/> <target dev='fda'/> </disk> <graphics type='vnc' port='5904'/> </devices> </domain>
With Xen 3.2.0 or later it is possible to bypass the BIOS and directly boot a Linux kernel and initrd as a fullyvirtualized domain. This allows for complete automation of OS installation, for example using the Anaconda kickstart support.
<domain type='xen' id='3'> <name>fv0</name> <uuid>4dea22b31d52d8f32516782e98ab3fa0</uuid> <os> <type>hvm</type> <loader>/usr/lib/xen/boot/hvmloader</loader> <kernel>/var/lib/xen/install/vmlinuz-fedora8-x86_64</kernel> <initrd>/var/lib/xen/install/initrd-vmlinuz-fedora8-x86_64</initrd> <cmdline> kickstart=http://example.com/myguest.ks </cmdline> </os> <memory>524288</memory> <vcpu>1</vcpu> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <features> <pae/> <acpi/> <apic/> </features> <clock sync="localtime"/> <devices> <emulator>/usr/lib/xen/bin/qemu-dm</emulator> <interface type='bridge'> <source bridge='xenbr0'/> <mac address='00:16:3e:5d:c7:9e'/> <script path='vif-bridge'/> </interface> <disk type='file'> <source file='/var/lib/xen/images/fv0'/> <target dev='hda'/> </disk> <disk type='file' device='cdrom'> <source file='/var/lib/xen/images/fc5-x86_64-boot.iso'/> <target dev='hdc'/> <readonly/> </disk> <disk type='file' device='floppy'> <source file='/root/fd.img'/> <target dev='fda'/> </disk> <graphics type='vnc' port='5904'/> </devices> </domain>