<?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 drvuml.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: User Mode Linux 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> <a title="Driver the Xen hypervisor" class="inactive" href="drvxen.html">Xen</a> </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> <span class="active">UML</span> </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>User Mode Linux driver</h1> <p> The UML driver for libvirt allows use and management of paravirtualized guests built for User Mode Linux. UML requires no special support in the host kernel, so can be used by any user of any linux system, provided they have enough free RAM for their guest's needs, though there are certain restrictions on network connectivity unless the adminstrator has pre-created TAP devices. </p> <h2>Connections to UML driver</h2> <p> The libvirt UML driver follows the QEMU driver in providing two types of connection. There is one privileged instance per host, which runs as root. This is called the "system" instance, and allows full use of all host resources. Then, there is a per-user unprivileged "session", instance. This has more restricted capabilities, and may require the host administrator to setup certain resources ahead of time to allow full integration with the network. Example connection URIs are </p> <pre> uml:///session (local access to per-user instance) uml+unix:///session (local access to per-user instance) uml:///system (local access to system instance) uml+unix:///system (local access to system instance) uml://example.com/system (remote access, TLS/x509) uml+tcp://example.com/system (remote access, SASl/Kerberos) uml+ssh://root@example.com/system (remote access, SSH tunnelled) </pre> <h2>Example XML configuration</h2> <p> User mode Linux driver only supports directly kernel boot at this time. A future driver enhancement may allow a paravirt bootloader in a similar style to Xen's pygrub. For now though, the UML kernel must be stored on the host and referenced explicitly in the "os" element. Since UML is a paravirtualized technology, the kernel "type" is set to "uml" </p> <p> There is not yet support for networking in the driver, but disks can be specified in the usual libvirt manner. The main variation is the target device naming scheme "ubd0", and bus type of "uml". </p> <p> Once booted the primary console is connected toa PTY, and thus accessible with "virsh console" or equivalent tools </p> <pre> <domain type='uml'> <name>demo</name> <uuid>b4433fc2-a22e-ffb3-0a3d-9c173b395800</uuid> <memory>500000</memory> <currentMemory>500000</currentMemory> <vcpu>1</vcpu> <os> <type arch='x86_64'>uml</type> <kernel>/home/berrange/linux-uml-2.6.26-x86_64</kernel> </os> <devices> <disk type='file' device='disk'> <source file='/home/berrange/FedoraCore6-AMD64-root_fs'/> <target dev='ubd0' bus='uml'/> </disk> <console type='pty'/> </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>