mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-23 14:15:28 +00:00
12b64f4723
KubeVirt uses Libvirt to manage virtual machines run in containers. Mention this in our apps page. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
489 lines
21 KiB
XML
489 lines
21 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE html>
|
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
<body>
|
|
<h1>Applications using libvirt</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 id="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 graphics are available for your website to advertise
|
|
support for libvirt:
|
|
</p>
|
|
|
|
<p class="image">
|
|
<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"/>
|
|
</p>
|
|
|
|
<h2><a id="command">Command line tools</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="https://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="https://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="https://people.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="https://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="https://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="https://people.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="https://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>
|
|
<dt><a href="https://sourceware.org/systemtap/">stap</a></dt>
|
|
<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>
|
|
<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>
|
|
<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>
|
|
</dl>
|
|
|
|
<h2><a id="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 id="continuousintegration">Continuous Integration</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="https://docs.buildbot.net/latest/manual/configuration/workers-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="https://plugins.jenkins.io/libvirt-slave/">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 Agent,
|
|
selecting the guest domain and hypervisor. When you need to build a
|
|
job on a specific Agent, 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 id="conversion">Conversion</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="https://libguestfs.org/virt-p2v.1.html">virt-p2v</a></dt>
|
|
<dd>
|
|
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)
|
|
</dd>
|
|
<dt><a href="https://libguestfs.org/virt-v2v.1.html">virt-v2v</a></dt>
|
|
<dd>
|
|
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
|
|
will enable VirtIO drivers in the converted guest if possible.
|
|
(Note this tool is included with libguestfs)
|
|
</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 id="desktop">Desktop applications</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="https://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
|
|
up to managing 10-20 hosts and their VMs.
|
|
</dd>
|
|
<dt><a href="https://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>
|
|
<dt><a href="https://f1ash.github.io/qt-virt-manager">qt-virt-manager</a></dt>
|
|
<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>
|
|
<dt><a href="https://f1ash.github.io/qt-virt-manager/#virtual-machines-viewer">qt-remote-viewer</a></dt>
|
|
<dd>
|
|
The Qt VNC/SPICE viewer for access to remote desktops or VMs.
|
|
</dd>
|
|
</dl>
|
|
|
|
<h2><a id="iaas">Infrastructure as a Service (IaaS)</a></h2>
|
|
|
|
<dl>
|
|
<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>
|
|
|
|
<dt><a href="https://github.com/eucalyptus/eucalyptus">Eucalyptus</a></dt>
|
|
<dd>
|
|
Eucalyptus is an on-premise Infrastructure as a Service cloud
|
|
software platform that is open source and
|
|
AWS-compatible. Eucalyptus uses libvirt virtualization API to
|
|
directly interact with Xen and KVM hypervisors.
|
|
</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>
|
|
|
|
<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>
|
|
|
|
<dt><a href="https://www.openstack.org">OpenStack</a></dt>
|
|
<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>
|
|
|
|
<dt><a href="https://kubevirt.io/">KubeVirt</a></dt>
|
|
<dd>
|
|
KubeVirt is a virtual machine management add-on for Kubernetes. The aim
|
|
is to provide a common ground for virtualization solutions on top of
|
|
Kubernetes.
|
|
</dd>
|
|
|
|
<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>
|
|
|
|
<dt><a href="https://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>
|
|
</dl>
|
|
|
|
<h2><a id="libraries">Libraries</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="https://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>
|
|
|
|
<dt><a href="https://sandbox.libvirt.org">libvirt-sandbox</a></dt>
|
|
<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
|
|
the <a href="https://libvirt.org/ruby">native ruby bindings</a>.
|
|
</dd>
|
|
</dl>
|
|
|
|
<h2><a id="livecd">LiveCD / Appliances</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="https://libguestfs.org/virt-v2v/">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 id="monitoring">Monitoring</a></h2>
|
|
<dl>
|
|
<dt><a href="https://collectd.org/plugins/libvirt.shtml">collectd</a></dt>
|
|
<dd>
|
|
The libvirt-plugin is part of <a href="https://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="https://www.sflow.net/">Host sFlow</a></dt>
|
|
<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>
|
|
<dt><a href="https://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="https://people.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="https://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="https://pcp.io/man/man1/pmdalibvirt.1.html">PCP</a></dt>
|
|
<dd>
|
|
The PCP libvirt PMDA (plugin) is part of the
|
|
<a href="https://pcp.io/">PCP</a> toolkit and provides
|
|
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>
|
|
</dl>
|
|
|
|
<h2><a id="provisioning">Provisioning</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Tivoli+Provisioning+Manager">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="https://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>
|
|
</ul>
|
|
</dd>
|
|
</dl>
|
|
|
|
|
|
<h2><a id="web">Web applications</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="https://www.abiquo.com/">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="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>
|
|
<dt><a href="https://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>
|
|
<dt><a href="https://ispsystem.com/en/software/vmmanager">VMmanager</a></dt>
|
|
<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>
|
|
<dt><a href="https://mist.io/">mist.io</a></dt>
|
|
<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>
|
|
<dt><a href="https://ravada.upc.edu/">Ravada</a></dt>
|
|
<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>
|
|
<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>
|
|
</dl>
|
|
|
|
<h2><a id="other">Other</a></h2>
|
|
|
|
<dl>
|
|
<dt><a href="https://cuckoosandbox.org/">Cuckoo Sandbox</a></dt>
|
|
<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>
|
|
|
|
</body>
|
|
</html>
|