mirror of https://gitee.com/openkylin/libvirt.git
456 lines
18 KiB
HTML
456 lines
18 KiB
HTML
<?xml version="1.0" encoding="ISO-8859-1"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<!--
|
|
This file is autogenerated from drvxen.html.in
|
|
Do not edit this file. Changes will be lost.
|
|
-->
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
|
|
<link rel="stylesheet" type="text/css" href="main.css" />
|
|
<link rel="SHORTCUT ICON" href="32favicon.png" />
|
|
<title>libvirt: Xen hypervisor driver</title>
|
|
<meta name="description" content="libvirt, virtualization, virtualization API" />
|
|
</head>
|
|
<body>
|
|
<div id="header">
|
|
<div id="headerLogo"></div>
|
|
<div id="headerSearch">
|
|
<form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><div>
|
|
<input id="query" name="query" type="text" size="12" value="" />
|
|
<input id="submit" name="submit" type="submit" value="Search" />
|
|
</div></form>
|
|
</div>
|
|
</div>
|
|
<div id="body">
|
|
<div id="menu">
|
|
<ul class="l0"><li>
|
|
<div>
|
|
<a title="Front page of the libvirt website" class="inactive" href="index.html">Home</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Details of new features and bugs fixed in each release" class="inactive" href="news.html">News</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Get the latest source releases, binary builds and get access to the source repository" class="inactive" href="downloads.html">Downloads</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Information for users, administrators and developers" class="active" href="docs.html">Documentation</a>
|
|
<ul class="l1"><li>
|
|
<div>
|
|
<a title="Information about deploying and using libvirt" class="inactive" href="deployment.html">Deployment</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Overview of the logical subsystems in the libvirt API" class="inactive" href="intro.html">Architecture</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Description of the XML formats used in libvirt" class="inactive" href="format.html">XML format</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Hypervisor specific driver information" class="active" href="drivers.html">Drivers</a>
|
|
<ul class="l2"><li>
|
|
<div>
|
|
<span class="active">Xen</span>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Driver for QEMU, KQEMU, KVM and Xenner" class="inactive" href="drvqemu.html">QEMU / KVM</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Driver for the Linux native container API" class="inactive" href="drvlxc.html">Linux Container</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Psuedo-driver simulating APIs in memory for test suites" class="inactive" href="drvtest.html">Test</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Driver providing secure remote to the libvirt APIs" class="inactive" href="drvremote.html">Remote</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Driver for the OpenVZ container technology" class="inactive" href="drvopenvz.html">OpenVZ</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Driver for the User Mode Linux technology" class="inactive" href="drvuml.html">UML</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Driver for the storage management APIs" class="inactive" href="storage.html">Storage</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Driver for VirtualBox" class="inactive" href="drvvbox.html">VirtualBox</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Driver for OpenNebula" class="inactive" href="drvone.html">OpenNebula</a>
|
|
</div>
|
|
</li></ul>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Reference manual for the C public API" class="inactive" href="html/index.html">API reference</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Bindings of the libvirt API for other languages" class="inactive" href="bindings.html">Language bindings</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Working on the internals of libvirt API, driver and daemon code" class="inactive" href="internals.html">Internals</a>
|
|
</div>
|
|
</li></ul>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="User contributed content" class="inactive" href="http://wiki.libvirt.org">Wiki</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Frequently asked questions" class="inactive" href="FAQ.html">FAQ</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="How and where to report bugs and request features" class="inactive" href="bugs.html">Bug reports</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="How to contact the developers via email and IRC" class="inactive" href="contact.html">Contact</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Miscellaneous links of interest related to libvirt" class="inactive" href="relatedlinks.html">Related Links</a>
|
|
</div>
|
|
</li><li>
|
|
<div>
|
|
<a title="Overview of all content on the website" class="inactive" href="sitemap.html">Sitemap</a>
|
|
</div>
|
|
</li></ul>
|
|
</div>
|
|
<div id="content">
|
|
<h1>Xen hypervisor driver</h1>
|
|
<ul><li>
|
|
<a href="#prereq">Deployment pre-requisites</a>
|
|
</li><li>
|
|
<a href="#uri">Connections to Xen driver</a>
|
|
</li><li>
|
|
<a href="#imex">Import and export of libvirt domain XML configs</a>
|
|
<ul><li>
|
|
<a href="#xmlimport">Converting from XM config files to domain XML</a>
|
|
</li><li>
|
|
<a href="#xmlexport">Converting from domain XML to XM config files</a>
|
|
</li></ul>
|
|
</li><li>
|
|
<a href="#xmlconfig">Example domain XML config</a>
|
|
</li></ul>
|
|
<p>
|
|
The libvirt Xen driver provides the ability to manage virtual machines
|
|
on any Xen release from 3.0.1 onwards.
|
|
</p>
|
|
<h2>
|
|
<a name="prereq" id="prereq">Deployment pre-requisites</a>
|
|
</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="uri" id="uri">Connections to Xen driver</a>
|
|
</h2>
|
|
<p>
|
|
The libvirt Xen driver is a single-instance privileged driver,
|
|
with a driver name of 'xen'. Some example conection URIs for
|
|
the libvirt driver are:
|
|
</p>
|
|
<pre>
|
|
xen:/// (local access, direct)
|
|
xen+unix:/// (local access, via daemon)
|
|
xen://example.com/ (remote access, TLS/x509)
|
|
xen+tcp://example.com/ (remote access, SASl/Kerberos)
|
|
xen+ssh://root@example.com/ (remote access, SSH tunnelled)
|
|
</pre>
|
|
<h2>
|
|
<a name="imex" id="imex">Import and export of libvirt domain XML configs</a>
|
|
</h2>
|
|
<p>The Xen driver currently supports two native
|
|
config formats. The first known as <code>xen-xm</code> is the format
|
|
used by the XM tool for files in <code>/etc/xen</code>. The second
|
|
known as <code>xen-sxpr</code>, is the format used for interacting
|
|
with the XenD's legacy HTTP RPC service.</p>
|
|
<h3>
|
|
<a name="xmlimport" id="xmlimport">Converting from XM config files to domain XML</a>
|
|
</h3>
|
|
<p>
|
|
The <code>virsh domxml-from-native</code> provides a way to convert an
|
|
existing set of XM config files into a guest description using libvirt Domain XML
|
|
that can then be used by libvirt.
|
|
</p>
|
|
<pre>$ virsh -c xen:/// domxml-from-native xen-xm rhel5.cfg
|
|
<domain type='xen'>
|
|
<name>rhel5pv</name>
|
|
<uuid>8f07fe28-753f-2729-d76d-bdbd892f949a</uuid>
|
|
<memory>2560000</memory>
|
|
<currentMemory>307200</currentMemory>
|
|
<vcpu>4</vcpu>
|
|
<bootloader>/usr/bin/pygrub</bootloader>
|
|
<os>
|
|
<type arch='x86_64' machine='xenpv'>linux</type>
|
|
</os>
|
|
<clock offset='utc'/>
|
|
<on_poweroff>destroy</on_poweroff>
|
|
<on_reboot>restart</on_reboot>
|
|
<on_crash>restart</on_crash>
|
|
<devices>
|
|
<disk type='file' device='disk'>
|
|
<driver name='tap' type='aio'/>
|
|
<source file='/var/lib/xen/images/rhel5pv.img'/>
|
|
<target dev='xvda' bus='xen'/>
|
|
</disk>
|
|
<disk type='file' device='disk'>
|
|
<driver name='tap' type='qcow'/>
|
|
<source file='/root/qcow1-xen.img'/>
|
|
<target dev='xvdd' bus='xen'/>
|
|
</disk>
|
|
<interface type='bridge'>
|
|
<mac address='00:16:3e:60:36:ba'/>
|
|
<source bridge='xenbr0'/>
|
|
</interface>
|
|
<console type='pty'>
|
|
<target port='0'/>
|
|
</console>
|
|
<input type='mouse' bus='xen'/>
|
|
<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'/>
|
|
</devices>
|
|
</domain>
|
|
</pre>
|
|
<h3>
|
|
<a name="xmlexport" id="xmlexport">Converting from domain XML to XM config files</a>
|
|
</h3>
|
|
<p>
|
|
The <code>virsh domxml-to-native</code> provides a way to convert a
|
|
guest description using libvirt Domain XML, into the XM config file
|
|
format.
|
|
</p>
|
|
<pre># virsh -c xen:/// domxml-to-native xen-xm rhel5pv.xml
|
|
name = "rhel5pv"
|
|
uuid = "8f07fe28-753f-2729-d76d-bdbd892f949a"
|
|
maxmem = 2500
|
|
memory = 300
|
|
vcpus = 4
|
|
bootloader = "/usr/bin/pygrub"
|
|
kernel = "/var/lib/xen/boot_kernel.0YK-cS"
|
|
ramdisk = "/var/lib/xen/boot_ramdisk.vWgrxK"
|
|
extra = "ro root=/dev/VolGroup00/LogVol00 rhgb quiet"
|
|
on_poweroff = "destroy"
|
|
on_reboot = "restart"
|
|
on_crash = "restart"
|
|
sdl = 0
|
|
vnc = 1
|
|
vncunused = 1
|
|
vnclisten = "0.0.0.0"
|
|
disk = [ "tap:aio:/var/lib/xen/images/rhel5pv.img,xvda,w", "tap:qcow:/root/qcow1-xen.img,xvdd,w" ]
|
|
vif = [ "mac=00:16:3e:60:36:ba,bridge=virbr0,script=vif-bridge,vifname=vif5.0" ]
|
|
</pre>
|
|
<h2>
|
|
<a name="xmlconfig" id="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>
|
|
</div>
|
|
</div>
|
|
<div id="footer">
|
|
<p id="sponsor">
|
|
Sponsored by:<br /><a href="http://et.redhat.com/"><img src="et.png" alt="Project sponsored by Red Hat Emerging Technology" /></a></p>
|
|
</div>
|
|
</body>
|
|
</html>
|