mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-11-09 06:50:22 +00:00
222 lines
7.3 KiB
HTML
222 lines
7.3 KiB
HTML
|
<html>
|
||
|
<body>
|
||
|
<h1>Xen hypervisor driver</h1>
|
||
|
|
||
|
<p>
|
||
|
The libvirt Xen driver provides the ability to manage virtual machines
|
||
|
on any Xen release from 3.0.1 onwards.
|
||
|
</p>
|
||
|
|
||
|
<h2>Deployment pre-requisites</h2>
|
||
|
|
||
|
<p>
|
||
|
The libvirt Xen driver uses a combination of channels to manage Xen
|
||
|
virtual machines.
|
||
|
</p>
|
||
|
|
||
|
<ul>
|
||
|
<li>
|
||
|
<strong>XenD</strong>: Access to the Xen daemon is a mandatory
|
||
|
requirement for the libvirt Xen driver. It requires that the UNIX
|
||
|
socket interface be enabled in the <code>/etc/xen/xend-config.sxp</code>
|
||
|
configuration file. Specifically the config settings
|
||
|
<code>(xend-unix-server yes)</code>. This path is usually restricted
|
||
|
to only allow the <code>root</code> user access. As an alternative,
|
||
|
the HTTP interface can be used, however, this has significant security
|
||
|
implications.
|
||
|
</li>
|
||
|
<li>
|
||
|
<strong>XenStoreD</strong>: Access to the Xenstore daemon enables
|
||
|
more efficient codepaths for looking up domain information which
|
||
|
lowers the CPU overhead of management.
|
||
|
</li>
|
||
|
<li>
|
||
|
<strong>Hypercalls</strong>: The ability to make direct hypercalls
|
||
|
allows the most efficient codepaths in the driver to be used for
|
||
|
monitoring domain status.
|
||
|
</li>
|
||
|
<li>
|
||
|
<strong>XM config</strong>: When using Xen releases prior to 3.0.4,
|
||
|
there is no inactive domain management in XenD. For such releases,
|
||
|
libvirt will automatically process XM configuration files kept in
|
||
|
the <code>/etc/xen</code> directory. It is important not to place
|
||
|
any other non-config files in this directory.
|
||
|
</li>
|
||
|
</ul>
|
||
|
|
||
|
<h2><a name="xmlconfig">Example domain XML config</a></h2>
|
||
|
|
||
|
<p>
|
||
|
Below are some example XML configurations for Xen guest domains.
|
||
|
For full details of the available options, consult the <a href="formatdomain.html">domain XML format</a>
|
||
|
guide.
|
||
|
</p>
|
||
|
|
||
|
<h3>Paravirtualized guest bootloader</h3>
|
||
|
|
||
|
<p>
|
||
|
Using a bootloader allows a paravirtualized guest to be booted using
|
||
|
a kernel stored inside its virtual disk image
|
||
|
</p>
|
||
|
|
||
|
<pre><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></pre>
|
||
|
|
||
|
<h3>Paravirtualized guest direct kernel boot</h3>
|
||
|
|
||
|
<p>
|
||
|
For installation of paravirtualized guests it is typical to boot the
|
||
|
domain using a kernel and initrd stored in the host OS
|
||
|
</p>
|
||
|
|
||
|
<pre><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></pre>
|
||
|
|
||
|
<h3>Fullyvirtualized guest BIOS boot</h3>
|
||
|
|
||
|
<p>
|
||
|
Fullyvirtualized guests use the emulated BIOS to boot off the primary
|
||
|
harddisk, CDROM or Network PXE ROM.
|
||
|
</p>
|
||
|
|
||
|
<pre><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></pre>
|
||
|
|
||
|
<h3>Fullyvirtualized guest direct kernel boot</h3>
|
||
|
|
||
|
<p>
|
||
|
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.
|
||
|
</p>
|
||
|
|
||
|
<pre><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></pre>
|
||
|
|
||
|
</body>
|
||
|
</html>
|