3 <h1>Applications using
<strong>libvirt
</strong></h1>
6 This page provides an illustration of the wide variety of
7 applications using the libvirt management API.
12 <h2><a name=
"add">Add an application
</a></h2>
15 To add an application not listed on this page, send a message
16 to the
<a href=
"contact.html">mailing list
</a>, requesting it
17 be added here, or simply send a patch against the documentation
18 in the libvirt.git docs subdirectory.
19 If your application uses libvirt as its API,
20 the following graphic is available for your website to advertise
25 <img src=
"madeWith.png" alt=
"Made with libvirt"/>
28 <h2><a name=
"clientserver">Client/Server applications
</a></h2>
31 <dt><a href=
"http://archipelproject.org">Archipel
</a></dt>
33 Archipel is a libvirt-based solution to manage and supervise virtual
34 machines. It uses XMPP for all communication. There is no web
35 service or custom protocol. You just need at least one XMPP server,
36 like eJabberd, to start playing with it. This allows Archipel to
37 work completely real time. You never have to refresh the user
38 interface, you'll be notified as soon as something happens. You can
39 even use your favorite chat clients to command your infrastructure.
42 Isn't it great to be able to open a chat conversation with your
43 virtual machine and say things like
"How are you today?" or
"Hey,
48 <h2><a name=
"command">Command line tools
</a></h2>
51 <dt><a href=
"http://libguestfs.org">guestfish
</a></dt>
53 Guestfish is an interactive shell and command-line tool for examining
54 and modifying virtual machine filesystems. It uses libvirt to find
55 guests and their associated disks.
59 An interactive shell, and batch scriptable tool for performing
60 management tasks on all libvirt managed domains, networks and
61 storage. This is part of the libvirt core distribution.
63 <dt><a href=
"http://virt-manager.org/">virt-clone
</a></dt>
65 Allows the disk image(s) and configuration for an existing
66 virtual machine to be cloned to form a new virtual machine.
67 It automates copying of data across to new disk images, and
68 updates the UUID, MAC address, and name in the configuration.
70 <dt><a href=
"http://et.redhat.com/~rjones/virt-df/">virt-df
</a></dt>
72 Examine the utilization of each filesystem in a virtual machine
73 from the comfort of the host machine. This tool peeks into the
74 guest disks and determines how much space is used. It can cope
75 with common Linux filesystems and LVM volumes.
77 <dt><a href=
"http://virt-manager.org/">virt-image
</a></dt>
79 Provides a way to deploy virtual appliances. It defines a
80 simplified portable XML format describing the pre-requisites
81 of a virtual machine. At time of deployment this is translated
82 into the domain XML format for execution under any libvirt
83 hypervisor meeting the pre-requisites.
85 <dt><a href=
"http://virt-manager.org/">virt-install
</a></dt>
87 Provides a way to provision new virtual machines from a
88 OS distribution install tree. It supports provisioning from
89 local CD images, and the network over NFS, HTTP and FTP.
91 <dt><a href=
"http://et.redhat.com/~rjones/virt-top/">virt-top
</a></dt>
93 Watch the CPU, memory, network and disk utilization of all
94 virtual machines running on a host.
97 <a href=
"http://people.redhat.com/~rjones/virt-what/">virt-what
</a>
100 virt-what is a shell script for detecting if the program is running
101 in a virtual machine. It prints out a list of facts about the
102 virtual machine, derived from heuristics.
106 <h2><a name=
"configmgmt">Configuration Management
</a></h2>
109 <dt><a href=
"https://wiki.lcfg.org/bin/view/LCFG/LcfgLibvirt">LCFG
</a></dt>
111 LCFG is a system for automatically installing and managing the
112 configuration of large numbers of Unix systems. It is particularly
113 suitable for sites with very diverse and rapidly changing
117 The lcfg-libvirt package adds support for virtualized systems to
118 LCFG, with both Xen and KVM known to work. Cloning guests is
119 supported, as are the bridged, routed, and isolated modes for
124 <h2><a name=
"continuousintegration">Continuous Integration
</a></h2>
127 <dt><a href=
"http://buildbot.net/buildbot/docs/current/Libvirt.html">BuildBot
</a></dt>
129 BuildBot is a system to automate the compile/test cycle required
130 by most software projects. CVS commits trigger new builds, run on
131 a variety of client machines. Build status (pass/fail/etc) are
132 displayed on a web page or through other protocols.
137 <dt><a href=
"http://wiki.jenkins-ci.org/display/JENKINS/Libvirt+Slaves+Plugin">Jenkins
</a></dt>
139 This plugin for Jenkins adds a way to control guest domains hosted
140 on Xen or QEMU/KVM. You configure a Jenkins Slave,
141 selecting the guest domain and hypervisor. When you need to build a
142 job on a specific Slave, its guest domain is started, then the job is
143 run. When the build process is finished, the guest domain is shut
144 down, ready to be used again as required.
148 <h2><a name=
"conversion">Conversion
</a></h2>
151 <dt><a href=
"https://rwmj.wordpress.com/2009/10/13/poor-mans-p2v/">Poor mans p2v
</a></dt>
153 A simple approach for converting a physical machine to a virtual
154 machine, using a rescue CD.
156 <dt><a href=
"http://et.redhat.com/~rjones/virt-p2v/">virt-p2v
</a></dt>
158 An older tool for converting a physical machine into a virtual
159 machine. It is a LiveCD which is booted on the machine to be
160 converted. It collects a little information from the user, then
161 copies the disks over to a remote machine and defines the XML for a
162 domain to run the guest.
164 <dt><a href=
"http://git.fedorahosted.org/git/?p=virt-v2v.git;a=summary">virt-v2v
</a></dt>
166 virt-v2v converts guests from a foreign hypervisor to run on KVM,
167 managed by libvirt. It can currently convert Red Hat Enterprise
168 Linux (RHEL) and Fedora guests running on Xen and VMware ESX. It
169 will enable VirtIO drivers in the converted guest if possible.
172 For RHEL customers of Red Hat, conversion of Windows guests is also
173 possible. This conversion requires some Microsoft signed pieces,
174 that Red Hat can provide.
176 <dt><a href=
"https://launchpad.net/virt-goodies">vmware2libvirt
</a></dt>
178 Part of the
<i>virt-goodies
</i> package, vmware2libvirt is a python
179 script for migrating a vmware image to libvirt.
183 <h2><a name=
"desktop">Desktop applications
</a></h2>
186 <dt><a href=
"http://virt-manager.org/">virt-manager
</a></dt>
188 A general purpose desktop management tool, able to manage
189 virtual machines across both local and remotely accessed
190 hypervisors. It is targeted at home and small office usage
191 upto managing
10-
20 hosts and their VMs.
193 <dt><a href=
"http://virt-manager.org/">virt-viewer
</a></dt>
195 A lightweight tool for accessing the graphical console
196 associated with a virtual machine. It can securely connect
197 to remote consoles supporting the VNC protocol. Also provides
198 an optional mozilla browser plugin.
202 <h2><a name=
"iaas">Infrastructure as a Service (IaaS)
</a></h2>
205 <dt><a href=
"http://www.emotivecloud.net">EMOTIVE Cloud
</a></dt>
206 <dd>The EMOTIVE (Elastic Management Of Tasks In Virtualized
207 Environments) middleware allows executing tasks and providing
208 virtualized environments to the users with Xen, KVM or
209 VirtualBox hypervisor. EMOTIVE's main feature is VM management
210 with different scheduling policies. It can be also used as a
211 cloud provider and is very easy to extend thanks to its
212 modular Web Services architecture.
215 <dt><a href=
"http://www.nimbusproject.org">Nimbus
</a></dt>
217 Nimbus is an open-source toolkit focused on providing
218 Infrastructure-as-a-Service (IaaS) capabilities to the scientific
219 community. It uses libvirt for communication with all KVM and Xen
224 <h2><a name=
"libraries">Libraries
</a></h2>
227 <dt><a href=
"http://libguestfs.org">libguestfs
</a></dt>
229 A library and set of tools for accessing and modifying virtual
230 machine disk images. It can be linked with C and C++ management
231 programs, and has bindings for Perl, Python, Ruby, Java, OCaml,
232 PHP, Haskell, and C#.
235 Using its FUSE module, you can also mount guest filesystems on the
236 host, and there is a subproject to allow merging changes into the
237 Windows Registry in Windows guests.
242 <dt><a href=
"https://github.com/ohadlevy/virt#readme">Ruby
243 Libvirt Object bindings
</a></dt>
245 Allows using simple ruby objects to manipulate
246 hypervisors, guests, storage, network etc. It is
248 the
<a href=
"http://libvirt.org/ruby">native ruby
252 <h2><a name=
"livecd">LiveCD / Appliances
</a></h2>
255 <dt><a href=
"http://et.redhat.com/~rjones/virt-p2v/">virt-p2v
</a></dt>
257 An older tool for converting a physical machine into a virtual
258 machine. It is a LiveCD which is booted on the machine to be
259 converted. It collects a little information from the user, then
260 copies the disks over to a remote machine and defines the XML for a
261 domain to run the guest.
265 <h2><a name=
"monitoring">Monitoring
</a></h2>
267 <dt><a href=
"http://collectd.org/plugins/libvirt.shtml">collectd
</a></dt>
269 The libvirt-plugin is part of
<a href=
"http://collectd.org/">collectd
</a>
270 and gathers statistics about virtualized guests on a system. This
271 way, you can collect CPU, network interface and block device usage
272 for each guest without installing collectd on the guest systems.
273 For a full description, please refer to the libvirt section in the
274 collectd.conf(
5) manual page.
276 <dt><a href=
"http://honk.sigxcpu.org/projects/libvirt/#munin">Munin
</a></dt>
278 The plugins provided by Guido G
ünther allow to monitor various things
279 like network and block I/O with
280 <a href=
"http://munin.projects.linpro.no/">Munin
</a>.
282 <dt><a href=
"http://et.redhat.com/~rjones/nagios-virt/">Nagios-virt
</a></dt>
284 Nagios-virt is a configuration tool to add monitoring of your
285 virtualised domains to
<a href=
"http://www.nagios.org/">Nagios
</a>.
286 You can use this tool to either set up a new Nagios installation for
287 your Xen or QEMU/KVM guests, or to integrate with your existing Nagios
290 <dt><a href=
"http://community.zenoss.org/docs/DOC-4687">Zenoss
</a></dt>
292 The Zenoss libvirt Zenpack adds support for monitoring virtualization
293 servers. It has been tested with KVM, QEMU, VMware ESX, and VMware
298 <h2><a name=
"provisioning">Provisioning
</a></h2>
301 <dt><a href=
"http://www.ibm.com/software/tivoli/products/prov-mgr/">Tivoli Provisioning Manager
</a></dt>
303 Part of the IBM Tivoli family, Tivoli Provisioning Manager (TPM) is
304 an IT lifecycle automation product. It
305 <a href=
"http://publib.boulder.ibm.com/infocenter/tivihelp/v38r1/index.jsp?topic=/com.ibm.tivoli.tpm.apk.doc/libvirt_package.html">uses libvirt
</a>
306 for communication with virtualization hosts and guest domains.
311 <dt><a href=
"http://theforeman.org">Foreman
</a></dt>
313 Foreman is an open source web based application aimed to be a
314 Single Address For All Machines Life Cycle Management. Foreman:
317 <li>Creates everything you need when adding a new machine to
318 your network, its goal being automatically managing
319 everything you would normally manage manually (DNS, DHCP,
320 TFTP, Virtual Machines,CA, CMDB...)
</li>
321 <li>Integrates with Puppet (and acts as web front end to it).
</li>
322 <li>Takes care of provisioning until the point puppet is
323 running, allowing Puppet to do what it does best.
</li>
324 <li>Shows you Systems Inventory (based on Facter) and
325 provides real time information about hosts status based on
331 <h2><a name=
"web">Web applications
</a></h2>
334 <dt><a href=
"http://community.abiquo.com/display/AbiCloud">AbiCloud
</a></dt>
336 AbiCloud is an open source cloud platform manager which allows to
337 easily deploy a private cloud in your datacenter. One of the key
338 differences of AbiCloud is the web rich interface for managing the
339 infrastructure. You can deploy a new service just dragging and
342 <dt><a href=
"http://ovirt.org/">oVirt
</a></dt>
344 oVirt provides the ability to manage large numbers of virtual
345 machines across an entire data center of hosts. It integrates
346 with FreeIPA for Kerberos authentication, and in the future,
347 certificate management.