backup: Wire up qemu full pull backup commands over QMP
[libvirt/ericb.git] / docs / apps.html.in
blob41dd26f7ff549f069f0209218cd926383c811ad1
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html>
3 <html xmlns="http://www.w3.org/1999/xhtml">
4 <body>
5 <h1>Applications using libvirt</h1>
7 <p>
8 This page provides an illustration of the wide variety of
9 applications using the libvirt management API.
10 </p>
12 <ul id="toc"></ul>
14 <h2><a id="add">Add an application</a></h2>
16 <p>
17 To add an application not listed on this page, send a message
18 to the <a href="contact.html">mailing list</a>, requesting it
19 be added here, or simply send a patch against the documentation
20 in the libvirt.git docs subdirectory.
21 If your application uses libvirt as its API,
22 the following graphics are available for your website to advertise
23 support for libvirt:
24 </p>
26 <p class="image">
27 <img src="logos/logo-square-powered-96.png" alt="libvirt powered"/>
28 <img src="logos/logo-square-powered-128.png" alt="libvirt powered"/>
29 <img src="logos/logo-square-powered-192.png" alt="libvirt powered"/>
30 <img src="logos/logo-square-powered-256.png" alt="libvirt powered"/>
31 </p>
33 <h2><a id="command">Command line tools</a></h2>
35 <dl>
36 <dt><a href="http://libguestfs.org">guestfish</a></dt>
37 <dd>
38 Guestfish is an interactive shell and command-line tool for examining
39 and modifying virtual machine filesystems. It uses libvirt to find
40 guests and their associated disks.
41 </dd>
42 <dt>virsh</dt>
43 <dd>
44 An interactive shell, and batch scriptable tool for performing
45 management tasks on all libvirt managed domains, networks and
46 storage. This is part of the libvirt core distribution.
47 </dd>
48 <dt><a href="https://virt-manager.org/">virt-clone</a></dt>
49 <dd>
50 Allows the disk image(s) and configuration for an existing
51 virtual machine to be cloned to form a new virtual machine.
52 It automates copying of data across to new disk images, and
53 updates the UUID, MAC address, and name in the configuration.
54 </dd>
55 <dt><a href="https://people.redhat.com/rjones/virt-df/">virt-df</a></dt>
56 <dd>
57 Examine the utilization of each filesystem in a virtual machine
58 from the comfort of the host machine. This tool peeks into the
59 guest disks and determines how much space is used. It can cope
60 with common Linux filesystems and LVM volumes.
61 </dd>
62 <dt><a href="https://virt-manager.org/">virt-image</a></dt>
63 <dd>
64 Provides a way to deploy virtual appliances. It defines a
65 simplified portable XML format describing the pre-requisites
66 of a virtual machine. At time of deployment this is translated
67 into the domain XML format for execution under any libvirt
68 hypervisor meeting the pre-requisites.
69 </dd>
70 <dt><a href="https://virt-manager.org/">virt-install</a></dt>
71 <dd>
72 Provides a way to provision new virtual machines from a
73 OS distribution install tree. It supports provisioning from
74 local CD images, and the network over NFS, HTTP and FTP.
75 </dd>
76 <dt><a href="https://people.redhat.com/rjones/virt-top/">virt-top</a></dt>
77 <dd>
78 Watch the CPU, memory, network and disk utilization of all
79 virtual machines running on a host.
80 </dd>
81 <dt>
82 <a href="https://people.redhat.com/~rjones/virt-what/">virt-what</a>
83 </dt>
84 <dd>
85 virt-what is a shell script for detecting if the program is running
86 in a virtual machine. It prints out a list of facts about the
87 virtual machine, derived from heuristics.
88 </dd>
89 <dt><a href="https://sourceware.org/systemtap/">stap</a></dt>
90 <dd>
91 SystemTap is a tool used to gather rich information about a running
92 system through the use of scripts. Starting from v2.4, the front-end
93 application stap can use libvirt to gather data within virtual
94 machines.
95 </dd>
96 <dt><a href="https://github.com/pradels/vagrant-libvirt/">vagrant-libvirt</a></dt>
97 <dd>
98 Vagrant-Libvirt is a Vagrant plugin that uses libvirt to manage virtual
99 machines. It is a command line tool for developers that makes it very
100 fast and easy to deploy and re-deploy an environment of vm's.
101 </dd>
102 <dt><a href="https://github.com/virt-lightning/virt-lightning">virt-lightning</a></dt>
103 <dd>
104 Virt-Lightning uses libvirt, cloud-init and libguestfs to allow anyone
105 to quickly start a new VM. Very much like a container CLI, but with a
106 virtual machine.
107 </dd>
108 </dl>
110 <h2><a id="configmgmt">Configuration Management</a></h2>
112 <dl>
113 <dt><a href="https://wiki.lcfg.org/bin/view/LCFG/LcfgLibvirt">LCFG</a></dt>
114 <dd>
115 LCFG is a system for automatically installing and managing the
116 configuration of large numbers of Unix systems. It is particularly
117 suitable for sites with very diverse and rapidly changing
118 configurations.
119 </dd>
120 <dd>
121 The lcfg-libvirt package adds support for virtualized systems to
122 LCFG, with both Xen and KVM known to work. Cloning guests is
123 supported, as are the bridged, routed, and isolated modes for
124 Virtual Networking.
125 </dd>
126 </dl>
128 <h2><a id="continuousintegration">Continuous Integration</a></h2>
130 <dl>
131 <dt><a href="http://docs.buildbot.net/latest/manual/configuration/workers-libvirt.html">BuildBot</a></dt>
132 <dd>
133 BuildBot is a system to automate the compile/test cycle required
134 by most software projects. CVS commits trigger new builds, run on
135 a variety of client machines. Build status (pass/fail/etc) are
136 displayed on a web page or through other protocols.
137 </dd>
138 </dl>
140 <dl>
141 <dt><a href="https://wiki.jenkins-ci.org/display/JENKINS/Libvirt+Slaves+Plugin">Jenkins</a></dt>
142 <dd>
143 This plugin for Jenkins adds a way to control guest domains hosted
144 on Xen or QEMU/KVM. You configure a Jenkins Slave,
145 selecting the guest domain and hypervisor. When you need to build a
146 job on a specific Slave, its guest domain is started, then the job is
147 run. When the build process is finished, the guest domain is shut
148 down, ready to be used again as required.
149 </dd>
150 </dl>
152 <h2><a id="conversion">Conversion</a></h2>
154 <dl>
155 <dt><a href="http://libguestfs.org/virt-p2v.1.html">virt-p2v</a></dt>
156 <dd>
157 Convert a physical machine to run on KVM. It is a LiveCD
158 which is booted on the machine to be converted. It collects a
159 little information from the user, then copies the disks over
160 to a remote machine and defines the XML for a domain to run
161 the guest. (Note this tool is included with libguestfs)
162 </dd>
163 <dt><a href="http://libguestfs.org/virt-v2v.1.html">virt-v2v</a></dt>
164 <dd>
165 virt-v2v converts guests from a foreign hypervisor to run on
166 KVM, managed by libvirt. It can convert guests from VMware or
167 Xen to run on OpenStack, oVirt (RHEV-M), or local libvirt. It
168 will enable VirtIO drivers in the converted guest if possible.
169 (Note this tool is included with libguestfs)
170 </dd>
171 <dd>
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.
175 </dd>
176 <dt><a href="https://launchpad.net/virt-goodies">vmware2libvirt</a></dt>
177 <dd>
178 Part of the <i>virt-goodies</i> package, vmware2libvirt is a python
179 script for migrating a vmware image to libvirt.
180 </dd>
181 </dl>
183 <h2><a id="desktop">Desktop applications</a></h2>
185 <dl>
186 <dt><a href="https://virt-manager.org/">virt-manager</a></dt>
187 <dd>
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 up to managing 10-20 hosts and their VMs.
192 </dd>
193 <dt><a href="https://virt-manager.org/">virt-viewer</a></dt>
194 <dd>
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.
199 </dd>
200 <dt><a href="https://f1ash.github.io/qt-virt-manager">qt-virt-manager</a></dt>
201 <dd>
202 The Qt GUI for create and control VMs and another virtual entities
203 (aka networks, storages, interfaces, secrets, network filters).
204 Contains integrated LXC/SPICE/VNC viewer for accessing the graphical or
205 text console associated with a virtual machine or container.
206 </dd>
207 <dt><a href="https://f1ash.github.io/qt-virt-manager/#virtual-machines-viewer">qt-remote-viewer</a></dt>
208 <dd>
209 The Qt VNC/SPICE viewer for access to remote desktops or VMs.
210 </dd>
211 </dl>
213 <h2><a id="iaas">Infrastructure as a Service (IaaS)</a></h2>
215 <dl>
216 <dt><a href="http://cc1.ifj.edu.pl">Cracow Cloud One</a></dt>
217 <dd>The CC1 system provides a complete solution for Private
218 Cloud Computing. An intuitive web access interface with an
219 administration module and simple installation procedure make
220 it easy to benefit from private Cloud Computing technology.
221 </dd>
223 <dt><a href="https://github.com/eucalyptus/eucalyptus">Eucalyptus</a></dt>
224 <dd>
225 Eucalyptus is an on-premise Infrastructure as a Service cloud
226 software platform that is open source and
227 AWS-compatible. Eucalyptus uses libivrt virtualization API to
228 directly interact with Xen and KVM hypervisors.
229 </dd>
231 <dt><a href="http://www.nimbusproject.org">Nimbus</a></dt>
232 <dd>
233 Nimbus is an open-source toolkit focused on providing
234 Infrastructure-as-a-Service (IaaS) capabilities to the scientific
235 community. It uses libvirt for communication with all KVM and Xen
236 virtual machines.
237 </dd>
239 <dt><a href="http://snooze.inria.fr">Snooze</a></dt>
240 <dd>
241 Snooze is an open-source scalable, autonomic, and energy-efficient
242 virtual machine (VM) management framework for private clouds. It
243 integrates libvirt for VM monitoring, live migration, and life-cycle
244 management.
245 </dd>
247 <dt><a href="https://www.openstack.org">OpenStack</a></dt>
248 <dd>
249 OpenStack is a "cloud operating system" usable for both public
250 and private clouds. Its various parts take care of compute,
251 storage and networking resources and interface with the user
252 using a dashboard. Compute part uses libvirt to manage VM
253 life-cycle, monitoring and so on.
254 </dd>
256 <dt><a href="https://github.com/gustavfranssonnyvell/cherrypop">Cherrypop</a></dt>
257 <dd>
258 A cloud software with no masters or central points. Nodes
259 autodetect other nodes and autodistribute virtual
260 machines and autodivide up the workload. Also there is no
261 minimum limit for hosts, well, one might be nice. It's
262 perfect for setting up low-end servers in a cloud or a
263 cloud where you want the most bang for the bucks.
264 </dd>
266 <dt><a href="http://en.zstack.io/">ZStack</a></dt>
267 <dd>
268 ZStack is an open source IaaS software that aims to automate the
269 management of all resources (compute, storage, networking, etc.) in a
270 datacenter by using APIs, thus conforming to the principles of a
271 software-defined datacenter. The key strengths of ZStack in terms of
272 management are scalability, performance, and a fast, user-friendly
273 deployment.
274 </dd>
275 </dl>
277 <h2><a id="libraries">Libraries</a></h2>
279 <dl>
280 <dt><a href="http://libguestfs.org">libguestfs</a></dt>
281 <dd>
282 A library and set of tools for accessing and modifying virtual
283 machine disk images. It can be linked with C and C++ management
284 programs, and has bindings for Perl, Python, Ruby, Java, OCaml,
285 PHP, Haskell, and C#.
286 </dd>
287 <dd>
288 Using its FUSE module, you can also mount guest filesystems on the
289 host, and there is a subproject to allow merging changes into the
290 Windows Registry in Windows guests.
291 </dd>
293 <dt><a href="https://sandbox.libvirt.org">libvirt-sandbox</a></dt>
294 <dd>
295 A library and command line tools for simplifying the creation of
296 application sandboxes using virtualization technology. It currently
297 supports either KVM, QEMU or LXC as backends. Integration with
298 systemd facilitates sandboxing of system services like apache.
299 </dd>
300 <dt><a href="https://github.com/ohadlevy/virt#readme">Ruby
301 Libvirt Object bindings</a></dt>
302 <dd>
303 Allows using simple ruby objects to manipulate
304 hypervisors, guests, storage, network etc. It is
305 based on top of
306 the <a href="https://libvirt.org/ruby">native ruby bindings</a>.
307 </dd>
308 </dl>
310 <h2><a id="livecd">LiveCD / Appliances</a></h2>
312 <dl>
313 <dt><a href="http://libguestfs.org/virt-v2v/">virt-p2v</a></dt>
314 <dd>
315 An older tool for converting a physical machine into a virtual
316 machine. It is a LiveCD which is booted on the machine to be
317 converted. It collects a little information from the user, then
318 copies the disks over to a remote machine and defines the XML for a
319 domain to run the guest.
320 </dd>
321 </dl>
323 <h2><a id="monitoring">Monitoring</a></h2>
324 <dl>
325 <dt><a href="https://collectd.org/plugins/libvirt.shtml">collectd</a></dt>
326 <dd>
327 The libvirt-plugin is part of <a href="http://collectd.org/">collectd</a>
328 and gathers statistics about virtualized guests on a system. This
329 way, you can collect CPU, network interface and block device usage
330 for each guest without installing collectd on the guest systems.
331 For a full description, please refer to the libvirt section in the
332 collectd.conf(5) manual page.
333 </dd>
334 <dt><a href="http://www.sflow.net/">Host sFlow</a></dt>
335 <dd>
336 Host sFlow is a lightweight agent running on KVM hypervisors that
337 links to libvirt library and exports standardized cpu, memory, network
338 and disk metrics for all virtual machines.
339 </dd>
340 <dt><a href="https://honk.sigxcpu.org/projects/libvirt/#munin">Munin</a></dt>
341 <dd>
342 The plugins provided by Guido Günther allow to monitor various things
343 like network and block I/O with
344 <a href="http://munin.projects.linpro.no/">Munin</a>.
345 </dd>
346 <dt><a href="http://people.redhat.com/rjones/nagios-virt/">Nagios-virt</a></dt>
347 <dd>
348 Nagios-virt is a configuration tool to add monitoring of your
349 virtualised domains to <a href="http://www.nagios.org/">Nagios</a>.
350 You can use this tool to either set up a new Nagios installation for
351 your Xen or QEMU/KVM guests, or to integrate with your existing Nagios
352 installation.
353 </dd>
354 <dt><a href="http://www.pcp.io/man/man1/pmdalibvirt.1.html">PCP</a></dt>
355 <dd>
356 The PCP libvirt PMDA (plugin) is part of the
357 <a href="http://pcp.io/">PCP</a> toolkit and provides
358 hypervisor and guest information and complete set of guest performance
359 metrics. It supports pCPU, vCPU, memory, block device, network interface,
360 and performance event metrics for each virtual guest.
361 </dd>
362 </dl>
364 <h2><a id="provisioning">Provisioning</a></h2>
366 <dl>
367 <dt><a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Tivoli+Provisioning+Manager">Tivoli Provisioning Manager</a></dt>
368 <dd>
369 Part of the IBM Tivoli family, Tivoli Provisioning Manager (TPM) is
370 an IT lifecycle automation product. It
371 <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>
372 for communication with virtualization hosts and guest domains.
373 </dd>
374 </dl>
376 <dl>
377 <dt><a href="https://theforeman.org">Foreman</a></dt>
378 <dd>
379 Foreman is an open source web based application aimed to be a
380 Single Address For All Machines Life Cycle Management. Foreman:
382 <ul>
383 <li>Creates everything you need when adding a new machine to
384 your network, its goal being automatically managing
385 everything you would normally manage manually (DNS, DHCP,
386 TFTP, Virtual Machines,CA, CMDB...)</li>
387 <li>Integrates with Puppet (and acts as web front end to it).</li>
388 <li>Takes care of provisioning until the point puppet is
389 running, allowing Puppet to do what it does best.</li>
390 <li>Shows you Systems Inventory (based on Facter) and
391 provides real time information about hosts status based on
392 Puppet reports.</li>
393 </ul>
394 </dd>
395 </dl>
398 <h2><a id="web">Web applications</a></h2>
400 <dl>
401 <dt><a href="http://www.abiquo.com/">AbiCloud</a></dt>
402 <dd>
403 AbiCloud is an open source cloud platform manager which allows to
404 easily deploy a private cloud in your datacenter. One of the key
405 differences of AbiCloud is the web rich interface for managing the
406 infrastructure. You can deploy a new service just dragging and
407 dropping a VM.
408 </dd>
409 <dt><a href="https://kimchi-project.github.io/kimchi/">Kimchi</a></dt>
410 <dd>
411 Kimchi is an HTML5 based management tool for KVM. It is designed to
412 make it as easy as possible to get started with KVM and create your first guest.
414 Kimchi manages KVM guests through libvirt. The management interface is accessed
415 over the web using a browser that supports HTML5.
416 </dd>
417 <dt><a href="https://ovirt.org/">oVirt</a></dt>
418 <dd>
419 oVirt provides the ability to manage large numbers of virtual
420 machines across an entire data center of hosts. It integrates
421 with FreeIPA for Kerberos authentication, and in the future,
422 certificate management.
423 </dd>
424 <dt><a href="https://ispsystem.com/en/software/vmmanager">VMmanager</a></dt>
425 <dd>
426 VMmanager is a software solution for virtualization management
427 that can be used both for hosting virtual machines and
428 building a cloud. VMmanager can manage not only one server,
429 but a large cluster of hypervisors. It delivers a number of
430 functions, such as live migration that allows for load
431 balancing between cluster nodes, monitoring CPU, memory.
432 </dd>
433 <dt><a href="https://mist.io/">mist.io</a></dt>
434 <dd>
435 Mist.io is an open source project and a service that can assist you in
436 managing your virtual machines on a unified way, providing a simple
437 interface for all of your infrastructure (multiple public cloud
438 providers, OpenStack based public/private clouds, Docker servers, bare
439 metal servers and now KVM hypervisors).
440 </dd>
441 <dt><a href="https://ravada.upc.edu/">Ravada</a></dt>
442 <dd>
443 Ravada is an open source tool for managing Virtual Desktop
444 Infrastructure (VDI). It is very easy to install and use. Following
445 the documentation, you'll be ready to deploy virtual machines in
446 minutes. The only requirements for the users are a Web browser and
447 a lightweight remote viewer.
448 </dd>
449 <dt><a href="https://github.com/cutelyst/Virtlyst">Virtlyst</a></dt>
450 <dd>
451 Virtlyst is an open source web application built with C++11, Cutelyst and Qt.
452 It features:
453 <ul>
454 <li>Low memory usage (around 5 MiB of RAM)</li>
455 <li>Look and feel easily customized with HTML templates that use the Django syntax</li>
456 <li>VNC/Spice console directly in the browser using websockets on the same HTTP port</li>
457 <li>Host and Domain statistics graphs (CPU, Memory, IO, Network)</li>
458 <li>Connect to multiple libvirtd instances (over local Unix domain socket, SSH, TCP and TLS)</li>
459 <li>Manage Storage Pools, Storage Volumes, Networks, Interfaces, and Secrets</li>
460 <li>Create and launch VMs</li>
461 <li>Configure VMs with easy panels or go pro and edit the VM's XML</li>
462 </ul>
463 </dd>
464 </dl>
466 <h2><a id="other">Other</a></h2>
468 <dl>
469 <dt><a href="https://cuckoosandbox.org/">Cuckoo Sandbox</a></dt>
470 <dd>
471 Cuckoo Sandbox is a malware analysis system. You can throw
472 any suspicious file at it and in a matter of seconds Cuckoo
473 will provide you back some detailed results outlining what
474 such file did when executed inside an isolated environment.
475 And libvirt is one of the backends that can be used for the
476 isolated environment.
477 </dd>
478 </dl>
480 </body>
481 </html>