apps.html.in 20.8 KB
Newer Older
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>
6 7 8

    <p>
      This page provides an illustration of the wide variety of
9 10 11 12 13
      applications using the libvirt management API.
    </p>

    <ul id="toc"></ul>

14
    <h2><a id="add">Add an application</a></h2>
15 16 17 18

    <p>
      To add an application not listed on this page, send a message
      to the <a href="contact.html">mailing list</a>, requesting it
19 20 21
      be added here, or simply send a patch against the documentation
      in the libvirt.git docs subdirectory.
      If your application uses libvirt as its API,
22
      the following graphics are available for your website to advertise
23
      support for libvirt:
24 25 26
    </p>

    <p class="image">
27 28 29 30
      <img src="logos/logo-square-powered-96.png" alt="libvirt powered"/>
      <img src="logos/logo-square-powered-128.png" alt="libvirt powered"/>
      <img src="logos/logo-square-powered-192.png" alt="libvirt powered"/>
      <img src="logos/logo-square-powered-256.png" alt="libvirt powered"/>
31 32
    </p>

33
    <h2><a id="command">Command line tools</a></h2>
34 35

    <dl>
36 37 38 39 40 41
      <dt><a href="http://libguestfs.org">guestfish</a></dt>
      <dd>
        Guestfish is an interactive shell and command-line tool for examining
        and modifying virtual machine filesystems.  It uses libvirt to find
        guests and their associated disks.
      </dd>
42 43
      <dt>virsh</dt>
      <dd>
M
Matthew Booth 已提交
44 45 46
        An interactive shell, and batch scriptable tool for performing
        management tasks on all libvirt managed domains, networks and
        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>
M
Matthew Booth 已提交
50 51 52
        Allows the disk image(s) and configuration for an existing
        virtual machine to be cloned to form a new virtual machine.
        It automates copying of data across to new disk images, and
53 54
        updates the UUID, MAC address, and name in the configuration.
      </dd>
55
      <dt><a href="https://people.redhat.com/rjones/virt-df/">virt-df</a></dt>
56 57 58 59 60
      <dd>
        Examine the utilization of each filesystem in a virtual machine
        from the comfort of the host machine. This tool peeks into the
        guest disks and determines how much space is used. It can cope
        with common Linux filesystems and LVM volumes.
61
      </dd>
62
      <dt><a href="https://virt-manager.org/">virt-image</a></dt>
63
      <dd>
M
Matthew Booth 已提交
64 65 66 67 68
        Provides a way to deploy virtual appliances. It defines a
        simplified portable XML format describing the pre-requisites
        of a virtual machine. At time of deployment this is translated
        into the domain XML format for execution under any libvirt
        hypervisor meeting the pre-requisites.
69
      </dd>
70
      <dt><a href="https://virt-manager.org/">virt-install</a></dt>
71
      <dd>
72 73 74
        Provides a way to provision new virtual machines from a
        OS distribution install tree. It supports provisioning from
        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>
M
Matthew Booth 已提交
78 79
        Watch the CPU, memory, network and disk utilization of all
        virtual machines running on a host.
80
      </dd>
81
      <dt>
82
        <a href="https://people.redhat.com/~rjones/virt-what/">virt-what</a>
83 84 85 86 87 88
      </dt>
      <dd>
        virt-what is a shell script for detecting if the program is running
        in a virtual machine.  It prints out a list of facts about the
        virtual machine, derived from heuristics.
      </dd>
89
      <dt><a href="https://sourceware.org/systemtap/">stap</a></dt>
90 91 92 93 94 95
      <dd>
        SystemTap is a tool used to gather rich information about a running
        system through the use of scripts. Starting from v2.4, the front-end
        application stap can use libvirt to gather data within virtual
        machines.
      </dd>
96 97 98 99 100 101
      <dt><a href="https://github.com/pradels/vagrant-libvirt/">vagrant-libvirt</a></dt>
      <dd>
        Vagrant-Libvirt is a Vagrant plugin that uses libvirt to manage virtual
        machines. It is a command line tool for developers that makes it very
        fast and easy to deploy and re-deploy an environment of vm's.
      </dd>
M
Michal Privoznik 已提交
102 103 104 105 106 107
      <dt><a href="https://github.com/virt-lightning/virt-lightning">virt-lightning</a></dt>
      <dd>
        Virt-Lightning uses libvirt, cloud-init and libguestfs to allow anyone
        to quickly start a new VM. Very much like a container CLI, but with a
        virtual machine.
      </dd>
108 109
    </dl>

110
    <h2><a id="configmgmt">Configuration Management</a></h2>
111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127

    <dl>
      <dt><a href="https://wiki.lcfg.org/bin/view/LCFG/LcfgLibvirt">LCFG</a></dt>
      <dd>
        LCFG is a system for automatically installing and managing the
        configuration of large numbers of Unix systems.  It is particularly
        suitable for sites with very diverse and rapidly changing
        configurations.
      </dd>
      <dd>
        The lcfg-libvirt package adds support for virtualized systems to
        LCFG, with both Xen and KVM known to work.  Cloning guests is
        supported, as are the bridged, routed, and isolated modes for
        Virtual Networking.
      </dd>
    </dl>

128
    <h2><a id="continuousintegration">Continuous Integration</a></h2>
129 130

    <dl>
131
      <dt><a href="http://docs.buildbot.net/latest/manual/configuration/workers-libvirt.html">BuildBot</a></dt>
132 133 134 135 136 137 138 139 140
      <dd>
        BuildBot is a system to automate the compile/test cycle required
        by most software projects.  CVS commits trigger new builds, run on
        a variety of client machines.  Build status (pass/fail/etc) are
        displayed on a web page or through other protocols.
      </dd>
    </dl>

    <dl>
141
      <dt><a href="https://wiki.jenkins-ci.org/display/JENKINS/Libvirt+Slaves+Plugin">Jenkins</a></dt>
142
      <dd>
143 144
        This plugin for Jenkins adds a way to control guest domains hosted
        on Xen or QEMU/KVM.  You configure a Jenkins Slave,
145 146 147 148 149
        selecting the guest domain and hypervisor.  When you need to build a
        job on a specific Slave, its guest domain is started, then the job is
        run.  When the build process is finished, the guest domain is shut
        down, ready to be used again as required.
      </dd>
150 151
    </dl>

152
    <h2><a id="conversion">Conversion</a></h2>
153 154

    <dl>
155
      <dt><a href="http://libguestfs.org/virt-p2v.1.html">virt-p2v</a></dt>
156
      <dd>
157 158 159 160 161
        Convert a physical machine to run on KVM.  It is a LiveCD
        which is booted on the machine to be converted.  It collects a
        little information from the user, then copies the disks over
        to a remote machine and defines the XML for a domain to run
        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 166 167
        virt-v2v converts guests from a foreign hypervisor to run on
        KVM, managed by libvirt.  It can convert guests from VMware or
        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 171 172 173 174 175
      </dd>
      <dd>
        For RHEL customers of Red Hat, conversion of Windows guests is also
        possible.  This conversion requires some Microsoft signed pieces,
        that Red Hat can provide.
      </dd>
176
      <dt><a href="https://launchpad.net/virt-goodies">vmware2libvirt</a></dt>
177
      <dd>
178 179
        Part of the <i>virt-goodies</i> package, vmware2libvirt is a python
        script for migrating a vmware image to libvirt.
180 181 182
      </dd>
    </dl>

183
    <h2><a id="desktop">Desktop applications</a></h2>
184 185

    <dl>
186
      <dt><a href="https://virt-manager.org/">virt-manager</a></dt>
187
      <dd>
M
Matthew Booth 已提交
188 189 190
        A general purpose desktop management tool, able to manage
        virtual machines across both local and remotely accessed
        hypervisors. It is targeted at home and small office usage
J
Ján Tomko 已提交
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>
M
Matthew Booth 已提交
195 196 197 198
        A lightweight tool for accessing the graphical console
        associated with a virtual machine. It can securely connect
        to remote consoles supporting the VNC protocol. Also provides
        an optional mozilla browser plugin.
199
      </dd>
200
      <dt><a href="https://f1ash.github.io/qt-virt-manager">qt-virt-manager</a></dt>
201 202 203 204 205 206
      <dd>
        The Qt GUI for create and control VMs and another virtual entities
        (aka networks, storages, interfaces, secrets, network filters).
        Contains integrated LXC/SPICE/VNC viewer for accessing the graphical or
        text console associated with a virtual machine or container.
      </dd>
207
      <dt><a href="https://f1ash.github.io/qt-virt-manager/#virtual-machines-viewer">qt-remote-viewer</a></dt>
208 209 210
      <dd>
        The Qt VNC/SPICE viewer for access to remote desktops or VMs.
      </dd>
211 212
    </dl>

213
    <h2><a id="iaas">Infrastructure as a Service (IaaS)</a></h2>
214 215

    <dl>
E
Eric Blake 已提交
216 217 218 219 220 221 222
      <dt><a href="http://cc1.ifj.edu.pl">Cracow Cloud One</a></dt>
      <dd>The CC1 system provides a complete solution for Private
        Cloud Computing. An intuitive web access interface with an
        administration module and simple installation procedure make
        it easy to benefit from private Cloud Computing technology.
      </dd>

223
      <dt><a href="https://github.com/eucalyptus/eucalyptus">Eucalyptus</a></dt>
224 225 226
      <dd>
        Eucalyptus is an on-premise Infrastructure as a Service cloud
        software platform that is open source and
227
        AWS-compatible. Eucalyptus uses libvirt virtualization API to
228 229 230
        directly interact with Xen and KVM hypervisors.
      </dd>

231 232 233 234 235 236 237
      <dt><a href="http://www.nimbusproject.org">Nimbus</a></dt>
      <dd>
        Nimbus is an open-source toolkit focused on providing
        Infrastructure-as-a-Service (IaaS) capabilities to the scientific
        community.  It uses libvirt for communication with all KVM and Xen
        virtual machines.
      </dd>
238 239 240 241 242 243 244 245

      <dt><a href="http://snooze.inria.fr">Snooze</a></dt>
      <dd>
        Snooze is an open-source scalable, autonomic, and energy-efficient
        virtual machine (VM) management framework for private clouds. It
        integrates libvirt for VM monitoring, live migration, and life-cycle
        management.
      </dd>
246

247
      <dt><a href="https://www.openstack.org">OpenStack</a></dt>
248 249 250 251 252 253 254
      <dd>
        OpenStack is a "cloud operating system" usable for both public
        and private clouds.  Its various parts take care of compute,
        storage and networking resources and interface with the user
        using a dashboard.  Compute part uses libvirt to manage VM
        life-cycle, monitoring and so on.
      </dd>
255 256 257 258 259 260 261 262 263 264

      <dt><a href="https://github.com/gustavfranssonnyvell/cherrypop">Cherrypop</a></dt>
      <dd>
        A cloud software with no masters or central points. Nodes
        autodetect other nodes and autodistribute virtual
        machines and autodivide up the workload. Also there is no
        minimum limit for hosts, well, one might be nice. It's
        perfect for setting up low-end servers in a cloud or a
        cloud where you want the most bang for the bucks.
      </dd>
265 266 267 268 269 270 271 272 273 274

      <dt><a href="http://en.zstack.io/">ZStack</a></dt>
      <dd>
        ZStack is an open source IaaS software that aims to automate the
        management of all resources (compute, storage, networking, etc.) in a
        datacenter by using APIs, thus conforming to the principles of a
        software-defined datacenter. The key strengths of ZStack in terms of
        management are scalability, performance, and a fast, user-friendly
        deployment.
      </dd>
275 276
    </dl>

277
    <h2><a id="libraries">Libraries</a></h2>
278 279

    <dl>
280
      <dt><a href="http://libguestfs.org">libguestfs</a></dt>
281
      <dd>
282 283 284 285
        A library and set of tools for accessing and modifying virtual
        machine disk images.  It can be linked with C and C++ management
        programs, and has bindings for Perl, Python, Ruby, Java, OCaml,
        PHP, Haskell, and C#.
286
      </dd>
287
      <dd>
288 289 290
        Using its FUSE module, you can also mount guest filesystems on the
        host, and there is a subproject to allow merging changes into the
        Windows Registry in Windows guests.
291
      </dd>
292

293
      <dt><a href="https://sandbox.libvirt.org">libvirt-sandbox</a></dt>
294 295 296 297 298 299 300 301 302 303 304 305
      <dd>
        A library and command line tools for simplifying the creation of
        application sandboxes using virtualization technology. It currently
        supports either KVM, QEMU or LXC as backends. Integration with
        systemd facilitates sandboxing of system services like apache.
      </dd>
      <dt><a href="https://github.com/ohadlevy/virt#readme">Ruby
          Libvirt Object bindings</a></dt>
      <dd>
        Allows using simple ruby objects to manipulate
        hypervisors, guests, storage, network etc.  It is
        based on top of
306
        the <a href="https://libvirt.org/ruby">native ruby bindings</a>.
307
      </dd>
308 309
    </dl>

310
    <h2><a id="livecd">LiveCD / Appliances</a></h2>
311 312

    <dl>
313
      <dt><a href="http://libguestfs.org/virt-v2v/">virt-p2v</a></dt>
314
      <dd>
315 316 317 318 319
        An older tool for converting a physical machine into a virtual
        machine.  It is a LiveCD which is booted on the machine to be
        converted.  It collects a little information from the user, then
        copies the disks over to a remote machine and defines the XML for a
        domain to run the guest.
320 321 322
      </dd>
    </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>
M
Matthew Booth 已提交
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 330
        way, you can collect CPU, network interface and block device usage
        for each guest without installing collectd on the guest systems.
331 332 333
        For a full description, please refer to the libvirt section in the
        collectd.conf(5) manual page.
      </dd>
334
      <dt><a href="http://www.sflow.net/">Host sFlow</a></dt>
335 336 337 338 339
      <dd>
        Host sFlow is a lightweight agent running on KVM hypervisors that
        links to libvirt library and exports standardized cpu, memory, network
        and disk metrics for all virtual machines.
      </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 344
        like network and block I/O with
        <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
M
Matthew Booth 已提交
349
        virtualised domains to <a href="http://www.nagios.org/">Nagios</a>.
350 351 352 353
        You can use this tool to either set up a new Nagios installation for
        your Xen or QEMU/KVM guests, or to integrate with your existing Nagios
        installation.
      </dd>
354
      <dt><a href="http://www.pcp.io/man/man1/pmdalibvirt.1.html">PCP</a></dt>
355 356
      <dd>
        The PCP libvirt PMDA (plugin) is part of the
357
        <a href="http://pcp.io/">PCP</a> toolkit and provides
358 359 360 361
        hypervisor and guest information and complete set of guest performance
        metrics. It supports pCPU, vCPU, memory, block device, network interface,
        and performance event metrics for each virtual guest.
      </dd>
362
    </dl>
363

364
    <h2><a id="provisioning">Provisioning</a></h2>
365 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 369 370 371 372 373 374 375
      <dd>
        Part of the IBM Tivoli family, Tivoli Provisioning Manager (TPM) is
        an IT lifecycle automation product.  It
        <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>
        for communication with virtualization hosts and guest domains.
      </dd>
    </dl>

376
    <dl>
377
      <dt><a href="https://theforeman.org">Foreman</a></dt>
378 379 380 381 382 383 384 385 386 387 388 389 390 391 392
      <dd>
      Foreman is an open source web based application aimed to be a
      Single Address For All Machines Life Cycle Management. Foreman:

      <ul>
          <li>Creates everything you need when adding a new machine to
          your network, its goal being automatically managing
          everything you would normally manage manually (DNS, DHCP,
          TFTP, Virtual Machines,CA, CMDB...)</li>
          <li>Integrates with Puppet (and acts as web front end to it).</li>
          <li>Takes care of provisioning until the point puppet is
          running, allowing Puppet to do what it does best.</li>
          <li>Shows you Systems Inventory (based on Facter) and
          provides real time information about hosts status based on
          Puppet reports.</li>
393
      </ul>
394 395 396
      </dd>
    </dl>

397

398
    <h2><a id="web">Web applications</a></h2>
399 400

    <dl>
401
      <dt><a href="http://www.abiquo.com/">AbiCloud</a></dt>
402 403 404 405 406 407 408
      <dd>
        AbiCloud is an open source cloud platform manager which allows to
        easily deploy a private cloud in your datacenter. One of the key
        differences of AbiCloud is the web rich interface for managing the
        infrastructure. You can deploy a new service just dragging and
        dropping a VM.
      </dd>
409 410 411 412 413 414 415 416
      <dt><a href="https://kimchi-project.github.io/kimchi/">Kimchi</a></dt>
      <dd>
        Kimchi is an HTML5 based management tool for KVM. It is designed to
        make it as easy as possible to get started with KVM and create your first guest.

        Kimchi manages KVM guests through libvirt. The management interface is accessed
        over the web using a browser that supports HTML5.
      </dd>
417
      <dt><a href="https://ovirt.org/">oVirt</a></dt>
418 419 420 421 422 423
      <dd>
        oVirt provides the ability to manage large numbers of virtual
        machines across an entire data center of hosts. It integrates
        with FreeIPA for Kerberos authentication, and in the future,
        certificate management.
      </dd>
424
      <dt><a href="https://ispsystem.com/en/software/vmmanager">VMmanager</a></dt>
425 426 427 428 429 430 431 432
      <dd>
        VMmanager is a software solution for virtualization management
        that can be used both for hosting virtual machines and
        building a cloud.  VMmanager can manage not only one server,
        but a large cluster of hypervisors.  It delivers a number of
        functions, such as live migration that allows for load
        balancing between cluster nodes, monitoring CPU, memory.
      </dd>
433
      <dt><a href="https://mist.io/">mist.io</a></dt>
434 435 436 437 438 439 440
      <dd>
        Mist.io is an open source project and a service that can assist you in
        managing your virtual machines on a unified way, providing a simple
        interface for all of your infrastructure (multiple public cloud
        providers, OpenStack based public/private clouds, Docker servers, bare
        metal servers and now KVM hypervisors).
      </dd>
441
      <dt><a href="https://ravada.upc.edu/">Ravada</a></dt>
442 443 444 445 446 447 448
      <dd>
        Ravada is an open source tool for managing Virtual Desktop
        Infrastructure (VDI). It is very easy to install and use. Following
        the documentation, you'll be ready to deploy virtual machines in
        minutes. The only requirements for the users are a Web browser and
        a lightweight remote viewer.
      </dd>
449 450 451 452 453 454 455 456 457 458 459 460 461 462 463
      <dt><a href="https://github.com/cutelyst/Virtlyst">Virtlyst</a></dt>
      <dd>
        Virtlyst is an open source web application built with C++11, Cutelyst and Qt.
        It features:
        <ul>
          <li>Low memory usage (around 5 MiB of RAM)</li>
          <li>Look and feel easily customized with HTML templates that use the Django syntax</li>
          <li>VNC/Spice console directly in the browser using websockets on the same HTTP port</li>
          <li>Host and Domain statistics graphs (CPU, Memory, IO, Network)</li>
          <li>Connect to multiple libvirtd instances (over local Unix domain socket, SSH, TCP and TLS)</li>
          <li>Manage Storage Pools, Storage Volumes, Networks, Interfaces, and Secrets</li>
          <li>Create and launch VMs</li>
          <li>Configure VMs with easy panels or go pro and edit the VM's XML</li>
        </ul>
      </dd>
464 465
    </dl>

466
    <h2><a id="other">Other</a></h2>
467 468

    <dl>
469
      <dt><a href="https://cuckoosandbox.org/">Cuckoo Sandbox</a></dt>
470 471 472 473 474 475 476 477 478 479
      <dd>
        Cuckoo Sandbox is a malware analysis system.  You can throw
        any suspicious file at it and in a matter of seconds Cuckoo
        will provide you back some detailed results outlining what
        such file did when executed inside an isolated environment.
        And libvirt is one of the backends that can be used for the
        isolated environment.
      </dd>
    </dl>

480 481
  </body>
</html>