mirror of https://gitee.com/openkylin/libvirt.git
353 lines
14 KiB
HTML
353 lines
14 KiB
HTML
<html>
|
|
<body>
|
|
<h1>Applications using <strong>libvirt</strong></h1>
|
|
|
|
<p>
|
|
This page provides an illustration of the wide variety of
|
|
applications using the libvirt management API.
|
|
</p>
|
|
|
|
<ul id="toc"></ul>
|
|
|
|
<h2><a name="add">Add an application</a></h2>
|
|
|
|
<p>
|
|
To add an application not listed on this page, send a message
|
|
to the <a href="contact.html">mailing list</a>, requesting it
|
|
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,
|
|
the following graphic is available for your website to advertise
|
|
support for libvirt:
|
|
</p>
|
|
|
|
<p class="image">
|
|
<img src="madeWith.png" alt="Made with libvirt"/>
|
|
</p>
|
|
|
|
<h2><a name="clientserver">Client/Server applications</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="http://archipelproject.org">Archipel</a></dt>
|
|
<dd>
|
|
Archipel is a libvirt-based solution to manage and supervise virtual
|
|
machines. It uses XMPP for all communication. There is no web
|
|
service or custom protocol. You just need at least one XMPP server,
|
|
like eJabberd, to start playing with it. This allows Archipel to
|
|
work completely real time. You never have to refresh the user
|
|
interface, you'll be notified as soon as something happens. You can
|
|
even use your favorite chat clients to command your infrastructure.
|
|
</dd>
|
|
<dd>
|
|
Isn't it great to be able to open a chat conversation with your
|
|
virtual machine and say things like "How are you today?" or "Hey,
|
|
please reboot"?
|
|
</dd>
|
|
</dl>
|
|
|
|
<h2><a name="command">Command line tools</a></h2>
|
|
|
|
<dl>
|
|
<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>
|
|
<dt>virsh</dt>
|
|
<dd>
|
|
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.
|
|
</dd>
|
|
<dt><a href="http://virt-manager.org/">virt-clone</a></dt>
|
|
<dd>
|
|
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
|
|
updates the UUID, MAC address, and name in the configuration.
|
|
</dd>
|
|
<dt><a href="http://et.redhat.com/~rjones/virt-df/">virt-df</a></dt>
|
|
<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.
|
|
</dd>
|
|
<dt><a href="http://virt-manager.org/">virt-image</a></dt>
|
|
<dd>
|
|
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.
|
|
</dd>
|
|
<dt><a href="http://virt-manager.org/">virt-install</a></dt>
|
|
<dd>
|
|
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.
|
|
</dd>
|
|
<dt><a href="http://et.redhat.com/~rjones/virt-top/">virt-top</a></dt>
|
|
<dd>
|
|
Watch the CPU, memory, network and disk utilization of all
|
|
virtual machines running on a host.
|
|
</dd>
|
|
<dt>
|
|
<a href="http://people.redhat.com/~rjones/virt-what/">virt-what</a>
|
|
</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>
|
|
</dl>
|
|
|
|
<h2><a name="configmgmt">Configuration Management</a></h2>
|
|
|
|
<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>
|
|
|
|
<h2><a name="continuousintegration">Continuous Integration</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="http://buildbot.net/buildbot/docs/current/Libvirt.html">BuildBot</a></dt>
|
|
<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>
|
|
<dt><a href="http://wiki.jenkins-ci.org/display/JENKINS/Libvirt+Slaves+Plugin">Jenkins</a></dt>
|
|
<dd>
|
|
This plugin for Jenkins adds a way to control guest domains hosted
|
|
on Xen or QEMU/KVM. You configure a Jenkins Slave,
|
|
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>
|
|
</dl>
|
|
|
|
<h2><a name="conversion">Conversion</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="https://rwmj.wordpress.com/2009/10/13/poor-mans-p2v/">Poor mans p2v</a></dt>
|
|
<dd>
|
|
A simple approach for converting a physical machine to a virtual
|
|
machine, using a rescue CD.
|
|
</dd>
|
|
<dt><a href="http://et.redhat.com/~rjones/virt-p2v/">virt-p2v</a></dt>
|
|
<dd>
|
|
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.
|
|
</dd>
|
|
<dt><a href="http://git.fedorahosted.org/git/?p=virt-v2v.git;a=summary">virt-v2v</a></dt>
|
|
<dd>
|
|
virt-v2v converts guests from a foreign hypervisor to run on KVM,
|
|
managed by libvirt. It can currently convert Red Hat Enterprise
|
|
Linux (RHEL) and Fedora guests running on Xen and VMware ESX. It
|
|
will enable VirtIO drivers in the converted guest if possible.
|
|
</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>
|
|
<dt><a href="https://launchpad.net/virt-goodies">vmware2libvirt</a></dt>
|
|
<dd>
|
|
Part of the <i>virt-goodies</i> package, vmware2libvirt is a python
|
|
script for migrating a vmware image to libvirt.
|
|
</dd>
|
|
</dl>
|
|
|
|
<h2><a name="desktop">Desktop applications</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="http://virt-manager.org/">virt-manager</a></dt>
|
|
<dd>
|
|
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
|
|
upto managing 10-20 hosts and their VMs.
|
|
</dd>
|
|
<dt><a href="http://virt-manager.org/">virt-viewer</a></dt>
|
|
<dd>
|
|
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.
|
|
</dd>
|
|
</dl>
|
|
|
|
<h2><a name="iaas">Infrastructure as a Service (IaaS)</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="http://www.emotivecloud.net">EMOTIVE Cloud</a></dt>
|
|
<dd>The EMOTIVE (Elastic Management Of Tasks In Virtualized
|
|
Environments) middleware allows executing tasks and providing
|
|
virtualized environments to the users with Xen, KVM or
|
|
VirtualBox hypervisor. EMOTIVE's main feature is VM management
|
|
with different scheduling policies. It can be also used as a
|
|
cloud provider and is very easy to extend thanks to its
|
|
modular Web Services architecture.
|
|
</dd>
|
|
|
|
<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>
|
|
</dl>
|
|
|
|
<h2><a name="libraries">Libraries</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="http://libguestfs.org">libguestfs</a></dt>
|
|
<dd>
|
|
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#.
|
|
</dd>
|
|
<dd>
|
|
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.
|
|
</dd>
|
|
</dl>
|
|
|
|
<dl>
|
|
<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
|
|
the <a href="http://libvirt.org/ruby">native ruby
|
|
bindings</a>.
|
|
</dd>
|
|
</dl>
|
|
<h2><a name="livecd">LiveCD / Appliances</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="http://et.redhat.com/~rjones/virt-p2v/">virt-p2v</a></dt>
|
|
<dd>
|
|
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.
|
|
</dd>
|
|
</dl>
|
|
|
|
<h2><a name="monitoring">Monitoring</a></h2>
|
|
<dl>
|
|
<dt><a href="http://collectd.org/plugins/libvirt.shtml">collectd</a></dt>
|
|
<dd>
|
|
The libvirt-plugin is part of <a href="http://collectd.org/">collectd</a>
|
|
and gathers statistics about virtualized guests on a system. This
|
|
way, you can collect CPU, network interface and block device usage
|
|
for each guest without installing collectd on the guest systems.
|
|
For a full description, please refer to the libvirt section in the
|
|
collectd.conf(5) manual page.
|
|
</dd>
|
|
<dt><a href="http://honk.sigxcpu.org/projects/libvirt/#munin">Munin</a></dt>
|
|
<dd>
|
|
The plugins provided by Guido Günther allow to monitor various things
|
|
like network and block I/O with
|
|
<a href="http://munin.projects.linpro.no/">Munin</a>.
|
|
</dd>
|
|
<dt><a href="http://et.redhat.com/~rjones/nagios-virt/">Nagios-virt</a></dt>
|
|
<dd>
|
|
Nagios-virt is a configuration tool to add monitoring of your
|
|
virtualised domains to <a href="http://www.nagios.org/">Nagios</a>.
|
|
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>
|
|
<dt><a href="http://community.zenoss.org/docs/DOC-4687">Zenoss</a></dt>
|
|
<dd>
|
|
The Zenoss libvirt Zenpack adds support for monitoring virtualization
|
|
servers. It has been tested with KVM, QEMU, VMware ESX, and VMware
|
|
GSX.
|
|
</dd>
|
|
</dl>
|
|
|
|
<h2><a name="provisioning">Provisioning</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="http://www.ibm.com/software/tivoli/products/prov-mgr/">Tivoli Provisioning Manager</a></dt>
|
|
<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>
|
|
|
|
<dl>
|
|
<dt><a href="http://theforeman.org">Foreman</a></dt>
|
|
<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>
|
|
</dd>
|
|
</dl>
|
|
|
|
|
|
<h2><a name="web">Web applications</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="http://community.abiquo.com/display/AbiCloud">AbiCloud</a></dt>
|
|
<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>
|
|
<dt><a href="http://ovirt.org/">oVirt</a></dt>
|
|
<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>
|
|
</dl>
|
|
|
|
</body>
|
|
</html>
|