1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!--
This file is autogenerated from formatcaps.html.in
Do not edit this file. Changes will be lost.
-->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="stylesheet" type="text/css" href="main.css" />
<link rel="SHORTCUT ICON" href="32favicon.png" />
<title>libvirt: Driver capabilities XML format</title>
<meta name="description" content="libvirt, virtualization, virtualization API" />
</head>
<body>
<div id="body">
<div id="content">
<h1>Driver capabilities XML format</h1>
<ul><li>
<a href="#elements">Element and attribute overview</a>
<ul><li>
<a href="#elementHost">Host capabilities</a>
</li><li>
<a href="#elementGuest">Guest capabilities</a>
</li><li>
<a href="#elementExamples">Examples</a>
</li></ul>
</li></ul>
<h2>
<a name="elements" shape="rect" id="elements">Element and attribute overview</a>
<a class="headerlink" href="#elements" title="Permalink to this headline">¶</a>
</h2>
<p>As new virtualization engine support gets added to libvirt, and to
handle cases like QEMU supporting a variety of emulations, a query
interface has been added in 0.2.1 allowing to list the set of supported
virtualization capabilities on the host:</p>
<pre xml:space="preserve">char * virConnectGetCapabilities (virConnectPtr conn);</pre>
<p>The value returned is an XML document listing the virtualization
capabilities of the host and virtualization engine to which
<code>@conn</code> is connected. One can test it using <code>virsh</code>
command line tool command '<code>capabilities</code>', it dumps the XML
associated to the current connection. </p>
<p>As can be seen seen in the <a href="#elementExamples" shape="rect">example</a>, the
capabilities XML consists of the <code>capabilities</code> element which
have exactly one <code>host</code> child element to report information on
host capabilities, and zero or more <code>guest</code> element to express
the set of architectures the host can run at the moment.</p>
<h3>
<a name="elementHost" shape="rect" id="elementHost">Host capabilities</a>
<a class="headerlink" href="#elementHost" title="Permalink to this headline">¶</a>
</h3>
<p>The <code><host/></code> element consists of the following child
elements:</p>
<dl><dt><code>uuid</code></dt><dd>The host UUID.</dd><dt><code>cpu</code></dt><dd>The host CPU architecture and features.</dd><dt><code>power_management</code></dt><dd>whether host is capable of memory suspend, disk hibernation, or
hybrid suspend.</dd><dt><code>migration</code></dt><dd>This element exposes information on the hypervisor's migration
capabilities, like live migration, supported URI transports, and so
on.</dd><dt><code>topology</code></dt><dd>This element embodies the host internal topology. Management
applications may want to learn this information when orchestrating new
guests - e.g. due to reduce inter-NUMA node transfers.</dd><dt><code>secmodel</code></dt><dd>To find out default security labels for different security models you
need to parse this element. In contrast with the former elements, this is
repeated for each security model the libvirt daemon currently supports.
</dd></dl>
<h3>
<a name="elementGuest" shape="rect" id="elementGuest">Guest capabilities</a>
<a class="headerlink" href="#elementGuest" title="Permalink to this headline">¶</a>
</h3>
<p>While the <a href="#elementHost" shape="rect">previous section</a> aims at host
capabilities, this one focuses on capabilities available to a guest
using a given hypervisor. The <code><guest/></code> element will
typically wrap up the following elements:</p>
<dl><dt><code>os_type</code></dt><dd>This expresses what kind of operating system the hypervisor
is able to run. Possible values are:
<dl><dt><code>xen</code></dt><dd>for XEN</dd><dt><code>linux</code></dt><dd>legacy alias for <code>xen</code></dd><dt><code>hvm</code></dt><dd>Unmodified operating system</dd><dt><code>exe</code></dt><dd>Container based virtualization</dd><dt><code>uml</code></dt><dd>User Mode Linux</dd></dl>
</dd><dt><code>arch</code></dt><dd>This element brings some information on supported guest architecture.</dd><dt><code>features</code></dt><dd>This optional element encases possible features that can be used
with a guest of described type. Possible subelements are:
<dl><dt><code>pae</code></dt><dd>If present, 32-bit guests can use PAE
address space extensions, <span class="since">since
0.4.1</span></dd><dt><code>nonpae</code></dt><dd>If present, 32-bit guests can be run
without requiring PAE, <span class="since">since
0.4.1</span></dd><dt><code>ia64_be</code></dt><dd>If present, IA64 guests can be run in
big-endian mode, <span class="since">since 0.4.1</span></dd><dt><code>acpi</code></dt><dd>If this element is present,
the <code>default</code> attribute describes whether the
hypervisor exposes ACPI to the guest by default, and
the <code>toggle</code> attribute describes whether the
user can override this
default. <span class="since">Since 0.4.1</span></dd><dt><code>apic</code></dt><dd>If this element is present,
the <code>default</code> attribute describes whether the
hypervisor exposes APIC to the guest by default, and
the <code>toggle</code> attribute describes whether the
user can override this
default. <span class="since">Since 0.4.1</span></dd><dt><code>cpuselection</code></dt><dd>If this element is present, the
hypervisor supports the <code><cpu></code> element
within a domain definition for fine-grained control over
the CPU presented to the
guest. <span class="since">Since 0.7.5</span></dd><dt><code>deviceboot</code></dt><dd>If this element is present,
the <code><boot order='...'/></code> element can
be used inside devices, rather than the older boot
specification by category. <span class="since">Since
0.8.8</span></dd><dt><code>disksnapshot</code></dt><dd>If this element is present,
the <code>default</code> attribute describes whether
external disk snapshots are supported. If absent,
external snapshots may still be supported, but it
requires attempting the API and checking for an error to
find out for sure. <span class="since">Since
1.2.3</span></dd></dl>
</dd></dl>
<h3>
<a name="elementExamples" shape="rect" id="elementExamples">Examples</a>
<a class="headerlink" href="#elementExamples" title="Permalink to this headline">¶</a>
</h3>
<p>For example, in the case of a 64-bit machine with hardware
virtualization capabilities enabled in the chip and
BIOS you will see:</p>
<pre xml:space="preserve"><capabilities>
<span style="color: #E50000"><host>
<cpu>
<arch>x86_64</arch>
<features>
<vmx/>
</features>
<model>core2duo</model>
<vendor>Intel</vendor>
<topology sockets="1" cores="2" threads="1"/>
<feature name="lahf_lm"/>
<feature name='xtpr'/>
...
</cpu>
<power_management>
<suspend_mem/>
<suspend_disk/>
<suspend_hybrid/>
</power_management>
</host></span>
<!-- xen-3.0-x86_64 -->
<span style="color: #0000E5"><guest>
<os_type>xen</os_type>
<arch name="x86_64">
<wordsize>64</wordsize>
<domain type="xen"></domain>
<emulator>/usr/lib64/xen/bin/qemu-dm</emulator>
</arch>
<features>
</features>
</guest></span>
<!-- hvm-3.0-x86_32 -->
<span style="color: #00B200"><guest>
<os_type>hvm</os_type>
<arch name="i686">
<wordsize>32</wordsize>
<domain type="xen"></domain>
<emulator>/usr/lib/xen/bin/qemu-dm</emulator>
<machine>pc</machine>
<machine>isapc</machine>
<loader>/usr/lib/xen/boot/hvmloader</loader>
</arch>
<features>
<cpuselection/>
<deviceboot/>
</features>
</guest></span>
...
</capabilities></pre>
</div>
</div>
<div id="nav">
<div id="home">
<a href="index.html">Home</a>
</div>
<div id="jumplinks">
<ul><li>
<a href="downloads.html">Download</a>
</li><li>
<a href="contribute.html">Contribute</a>
</li><li>
<a href="docs.html">Learn</a>
</li></ul>
</div>
<div id="search">
<form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><div>
<input name="query" type="text" size="12" value="" />
<input name="submit" type="submit" value="Go" />
</div></form>
</div>
</div>
<div id="footer">
<div id="contact">
<h3>Contact</h3>
<ul><li>
<a href="contact.html#email">email</a>
</li><li>
<a href="contact.html#irc">irc</a>
</li></ul>
</div>
<div id="community">
<h3>Community</h3>
<ul><li>
<a href="https://twitter.com/hashtag/libvirt">twitter</a>
</li><li>
<a href="https://plus.google.com/communities/109522598353007505282">google+</a>
</li><li>
<a href="http://stackoverflow.com/questions/tagged/libvirt">stackoverflow</a>
</li><li>
<a href="http://serverfault.com/questions/tagged/libvirt">serverfault</a>
</li></ul>
</div>
<div id="conduct">
Participants in the libvirt project agree to abide by <a href="governance.html#codeofconduct">the project code of conduct</a></div>
<br class="clear" />
</div>
</body>
</html>
|