mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-24 06:03:52 +03:00
docs: html.in: Drop the architecture page
The page isn't linked from anywhere and the contents is dated. Images related to the page are also dropped. Signed-off-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
parent
511bdb0bb2
commit
3bd8c779f4
Binary file not shown.
Before Width: | Height: | Size: 5.4 KiB |
@ -1,82 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE html>
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<body>
|
||||
<h1 >libvirt architecture</h1>
|
||||
|
||||
<p>
|
||||
Currently libvirt supports 2 kind of virtualization, and its
|
||||
internal structure is based on a driver model which simplifies
|
||||
adding new
|
||||
engines:
|
||||
</p>
|
||||
|
||||
<ul id="toc"></ul>
|
||||
|
||||
<h2><a id="Xen">Xen support</a></h2>
|
||||
|
||||
<p>When running in a Xen environment, programs using libvirt have to execute
|
||||
in "Domain 0", which is the primary Linux OS loaded on the machine. That OS
|
||||
kernel provides most if not all of the actual drivers used by the set of
|
||||
domains. It also runs the Xen Store, a database of information shared by the
|
||||
hypervisor, the backend drivers, any running domains, and libxl (aka libxenlight).
|
||||
libxl provides a set of APIs for creating and managing domains, which can be used
|
||||
by applications such as the xl tool provided by Xen or libvirt. The hypervisor,
|
||||
drivers, kernels and daemons communicate though a shared system bus
|
||||
implemented in the hypervisor. The figure below tries to provide a view of
|
||||
this environment:</p>
|
||||
<img src="architecture.gif" alt="The Xen architecture" />
|
||||
<p>The library will interact with libxl for all management operations
|
||||
on a Xen system.</p>
|
||||
<p>Note that the libvirt libxl driver only supports root access.</p>
|
||||
|
||||
<h2><a id="QEMU">QEMU and KVM support</a></h2>
|
||||
|
||||
<p>The model for QEMU and KVM is completely similar, basically KVM is based
|
||||
on QEMU for the process controlling a new domain, only small details differs
|
||||
between the two. In both case the libvirt API is provided by a controlling
|
||||
process forked by libvirt in the background and which launch and control the
|
||||
QEMU or KVM process. That program called libvirt_qemud talks though a specific
|
||||
protocol to the library, and connects to the console of the QEMU process in
|
||||
order to control and report on its status. Libvirt tries to expose all the
|
||||
emulations models of QEMU, the selection is done when creating the new
|
||||
domain, by specifying the architecture and machine type targeted.</p>
|
||||
<p>The code controlling the QEMU process is available in the
|
||||
<code>qemud/</code> directory.</p>
|
||||
|
||||
<h2><a id="drivers">Driver based architecture</a></h2>
|
||||
|
||||
<p>As the previous section explains, libvirt can communicate using different
|
||||
channels with the current hypervisor, and should also be able to use
|
||||
different kind of hypervisor. To simplify the internal design, code, ease
|
||||
maintenance and simplify the support of other virtualization engine the
|
||||
internals have been structured as one core component, the libvirt.c module
|
||||
acting as a front-end for the library API and a set of hypervisor drivers
|
||||
defining a common set of routines. That way the Xen Daemon access, the Xen
|
||||
Store one, the Hypervisor hypercall are all isolated in separate C modules
|
||||
implementing at least a subset of the common operations defined by the
|
||||
drivers present in driver.h:</p>
|
||||
<ul>
|
||||
<li>xend_internal: implements the driver functions though the Xen
|
||||
Daemon</li>
|
||||
<li>xs_internal: implements the subset of the driver available though the
|
||||
Xen Store</li>
|
||||
<li>xen_internal: provide the implementation of the functions possible via
|
||||
direct hypervisor access</li>
|
||||
<li>proxy_internal: provide read-only Xen access via a proxy, the proxy code
|
||||
is in the <code>proxy/</code> directory.</li>
|
||||
<li>xm_internal: provide support for Xen defined but not running
|
||||
domains.</li>
|
||||
<li>qemu_internal: implement the driver functions for QEMU and
|
||||
KVM virtualization engines. It also uses a qemud/ specific daemon
|
||||
which interacts with the QEMU process to implement libvirt API.</li>
|
||||
<li>test: this is a test driver useful for regression tests of the
|
||||
front-end part of libvirt.</li>
|
||||
</ul>
|
||||
<p>Note that a given driver may only implement a subset of those functions,
|
||||
(for example saving a Xen domain state to disk and restoring it is only
|
||||
possible though the Xen Daemon), in that case the driver entry points for
|
||||
unsupported functions are initialized to NULL.</p>
|
||||
<p></p>
|
||||
</body>
|
||||
</html>
|
@ -1,239 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Creator: fig2dev Version 3.2.7b-dev -->
|
||||
<!-- CreationDate: 2020-07-10 10:23:50 -->
|
||||
<!-- Magnification: 1 -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
width="519pt" height="362pt"
|
||||
viewBox="888 3963 8649 6024">
|
||||
<g fill="none">
|
||||
<!-- Line -->
|
||||
<rect x="1050" y="7500" width="8325" height="1200"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<rect x="1050" y="4125" width="2475" height="3150" rx="105"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<polyline points=" 1050,6540 3540,6525"
|
||||
stroke="#000000" stroke-width="15px" stroke-dasharray="60 60"/>
|
||||
<!-- Line -->
|
||||
<rect x="1140" y="6645" width="450" height="255" rx="105"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<rect x="1140" y="6930" width="450" height="255" rx="105"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp0">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 8353,7665 8353,7785 8651,7751 8651,7700z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 1875,7725 8625,7725" clip-path="url(#cp0)"
|
||||
stroke="#000000" stroke-width="45px"/>
|
||||
<!-- Forward arrow to point 8625,7725 -->
|
||||
<polygon points=" 8353,7785 8593,7725 8353,7665 8353,7785"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Backward arrow to point 1875,7725 -->
|
||||
<polygon points=" 2147,7665 1907,7725 2147,7785 2147,7665"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<rect x="1650" y="5625" width="1350" height="750"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp1">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 2790,6647 2910,6647 2876,6350 2825,6350z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 2850,7725 2850,6375" clip-path="url(#cp1)"
|
||||
stroke="#000000" stroke-width="45px"/>
|
||||
<!-- Forward arrow to point 2850,6375 -->
|
||||
<polygon points=" 2910,6647 2850,6407 2790,6647 2910,6647"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<rect x="3975" y="4125" width="2475" height="3150" rx="105"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<rect x="6825" y="4125" width="2475" height="3150" rx="105"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<polyline points=" 3975,6540 6465,6525"
|
||||
stroke="#000000" stroke-width="15px" stroke-dasharray="60 60"/>
|
||||
<!-- Line -->
|
||||
<polyline points=" 6825,6540 9315,6525"
|
||||
stroke="#000000" stroke-width="15px" stroke-dasharray="60 60"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp2">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 5340,7322 5460,7322 5426,7025 5375,7025z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 5400,7725 5400,7050" clip-path="url(#cp2)"
|
||||
stroke="#000000" stroke-width="45px"/>
|
||||
<!-- Forward arrow to point 5400,7050 -->
|
||||
<polygon points=" 5460,7322 5400,7082 5340,7322 5460,7322"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp3">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 7965,7322 8085,7322 8051,7025 8000,7025z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 8025,7725 8025,7050" clip-path="url(#cp3)"
|
||||
stroke="#000000" stroke-width="45px"/>
|
||||
<!-- Forward arrow to point 8025,7050 -->
|
||||
<polygon points=" 8085,7322 8025,7082 7965,7322 8085,7322"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<rect x="1050" y="8925" width="8325" height="975"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<rect x="2100" y="4575" width="1350" height="750"
|
||||
stroke="#000000" stroke-width="8px"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp4">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 3285,8053 3165,8053 3207,8343 3243,8343z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 3225,5325 3225,8325" clip-path="url(#cp4)"
|
||||
stroke="#000000" stroke-width="30px" stroke-dasharray="20 20"/>
|
||||
<!-- Forward arrow to point 3225,8325 -->
|
||||
<polygon points=" 3165,8053 3225,8293 3285,8053 3165,8053"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp5">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 6285,7978 6165,7978 6207,8268 6243,8268z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 6225,6900 6225,8250" clip-path="url(#cp5)"
|
||||
stroke="#000000" stroke-width="30px" stroke-dasharray="20 20"/>
|
||||
<!-- Forward arrow to point 6225,8250 -->
|
||||
<polygon points=" 6165,7978 6225,8218 6285,7978 6165,7978"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp6">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 8985,7978 8865,7978 8907,8268 8943,8268z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 8925,6900 8925,8250" clip-path="url(#cp6)"
|
||||
stroke="#000000" stroke-width="30px" stroke-dasharray="20 20"/>
|
||||
<!-- Forward arrow to point 8925,8250 -->
|
||||
<polygon points=" 8865,7978 8925,8218 8985,7978 8865,7978"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp7">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 1785,8053 1665,8053 1707,8343 1743,8343z
|
||||
M 2147,7785 2147,7665 1850,7700 1850,7751z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 1725,7125 1725,8325" clip-path="url(#cp7)"
|
||||
stroke="#000000" stroke-width="30px" stroke-dasharray="20 20"/>
|
||||
<!-- Forward arrow to point 1725,8325 -->
|
||||
<polygon points=" 1665,8053 1725,8293 1785,8053 1665,8053"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp8">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 2790,5297 2910,5297 2876,5000 2825,5000z
|
||||
M 2910,5578 2790,5578 2825,5876 2876,5876z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 2850,5850 2850,5025" clip-path="url(#cp8)"
|
||||
stroke="#000000" stroke-width="45px"/>
|
||||
<!-- Forward arrow to point 2850,5025 -->
|
||||
<polygon points=" 2910,5297 2850,5057 2790,5297 2910,5297"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Backward arrow to point 2850,5850 -->
|
||||
<polygon points=" 2790,5578 2850,5818 2910,5578 2790,5578"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp9">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 5235,9103 5115,9103 5157,9393 5193,9393z
|
||||
M 2910,5578 2790,5578 2825,5876 2876,5876z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 5175,8475 5175,9375" clip-path="url(#cp9)"
|
||||
stroke="#000000" stroke-width="30px" stroke-dasharray="20 20"/>
|
||||
<!-- Forward arrow to point 5175,9375 -->
|
||||
<polygon points=" 5115,9103 5175,9343 5235,9103 5115,9103"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp10">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 1410,9178 1290,9178 1332,9468 1368,9468z
|
||||
M 2910,5578 2790,5578 2825,5876 2876,5876z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 1350,7125 1350,9450" clip-path="url(#cp10)"
|
||||
stroke="#000000" stroke-width="30px" stroke-dasharray="20 20"/>
|
||||
<!-- Forward arrow to point 1350,9450 -->
|
||||
<polygon points=" 1290,9178 1350,9418 1410,9178 1290,9178"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<defs>
|
||||
<clipPath id="cp11">
|
||||
<path clip-rule="evenodd" d="M 888,3963 H 9537 V 9987 H 888 z
|
||||
M 2265,7472 2385,7472 2351,7175 2300,7175z
|
||||
M 2910,5578 2790,5578 2825,5876 2876,5876z"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
<polyline points=" 2325,7725 2325,7200" clip-path="url(#cp11)"
|
||||
stroke="#000000" stroke-width="45px"/>
|
||||
<!-- Forward arrow to point 2325,7200 -->
|
||||
<polygon points=" 2385,7472 2325,7232 2265,7472 2385,7472"
|
||||
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
|
||||
<!-- Line -->
|
||||
<polyline points=" 900,3975"
|
||||
stroke="#000000" stroke-width="8px" stroke-dasharray="40 40"/>
|
||||
<!-- Line -->
|
||||
<polyline points=" 9525,9975"
|
||||
stroke="#000000" stroke-width="8px" stroke-dasharray="40 40"/>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="4350" y="7980" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">XenBus</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="1680" y="6870" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">drivers</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="1800" y="6075" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">XenStore</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="1875" y="7125" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">Kernel0</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="4875" y="6975" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">KernelU</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="7650" y="6975" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">KernelU</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="4050" y="8400" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">Xen Hypervisor</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="2325" y="4950" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">Xend</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="1200" y="4725" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">Dom0</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="4875" y="5325" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">DomU</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="7650" y="5325" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">DomU</text>
|
||||
<!-- Text -->
|
||||
<text xml:space="preserve" x="3750" y="9450" fill="#000000" font-family="Times" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">Hardware</text>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 10 KiB |
@ -7,7 +7,6 @@ docs_assets = [
|
||||
'android-chrome-192x192.png',
|
||||
'android-chrome-256x256.png',
|
||||
'apple-touch-icon.png',
|
||||
'architecture.gif',
|
||||
'browserconfig.xml',
|
||||
'favicon.ico',
|
||||
'favicon-16x16.png',
|
||||
@ -32,7 +31,6 @@ docs_assets = [
|
||||
|
||||
docs_html_in_files = [
|
||||
'404',
|
||||
'architecture',
|
||||
'bugs',
|
||||
'cgroups',
|
||||
'contact',
|
||||
|
Loading…
x
Reference in New Issue
Block a user