Difference between revisions of "Main Page"

From Libvirt Wiki
Jump to: navigation, search
(General project documentation)
Line 20: Line 20:
  
 
* Chirammal, Mukhedkar, et al., "Mastering KVM Virtualization", 2016, PACKT Publishing, [https://www.packtpub.com/eu/networking-and-servers/mastering-kvm-virtualization]
 
* Chirammal, Mukhedkar, et al., "Mastering KVM Virtualization", 2016, PACKT Publishing, [https://www.packtpub.com/eu/networking-and-servers/mastering-kvm-virtualization]
 
= Configuration Management =
 
 
* [http://github.com/carlasouza/puppet-virt Puppet-virt] - Puppet Module for Virtualization Management
 
 
= convert =
 
 
* [https://rwmj.wordpress.com/2010/10/07/guest-post-converting-vmware-guests-to-libvirtkvm-guests/ Converting VMware guests to libvirt/KVM guests] - Blog entry showing how to convert a VMware guest domain to a libvirt/KVM guest domain
 
  
 
= Guest Management =
 
= Guest Management =
Line 34: Line 26:
  
 
* [[VM_lifecycle | Guest (VM) Lifecycle]] : '''Read This First''' - Introduces the concepts used with guests / virtual machines.  Includes things like persistent vs transient domains, creating, starting, stopping domains, saving, restoring, snapshots, and secure wiping of disk images.
 
* [[VM_lifecycle | Guest (VM) Lifecycle]] : '''Read This First''' - Introduces the concepts used with guests / virtual machines.  Includes things like persistent vs transient domains, creating, starting, stopping domains, saving, restoring, snapshots, and secure wiping of disk images.
 
=== CGroups ===
 
 
* [http://berrange.com/posts/2009/12/03/using-cgroups-with-libvirt-and-lxckvm-guests-in-fedora-12/ CGroups usage with QEMU, KVM and LXC guests]
 
 
=== CPU ===
 
 
* [http://berrange.com/posts/2010/02/15/guest-cpu-model-configuration-in-libvirt-with-qemukvm/ Guest CPU model configuration with QEMU/KVM]
 
* [http://berrange.com/posts/2010/02/12/controlling-guest-cpu-numa-affinity-in-libvirt-with-qemu-kvm-xen/ Guest CPU affinity and NUMA placement on host with QEMU/KVM]
 
 
=== KVM / QEMU ===
 
 
* [http://berrange.com/posts/2011/06/07/what-benefits-does-libvirt-offer-to-developers-targetting-qemukvm/ What benefits does libvirt offer to developers targetting QEMU+KVM?]
 
* [http://wiki.libvirt.org/page/IntroductoryGuides Many introductory guides to libvirt with KVM]
 
* [[Qemu_guest_agent|Introduction to qemu guest agent]]
 
 
=== Guest device Configuration ===
 
 
* [http://berrange.com/posts/2010/02/15/stable-guest-machine-abi-pci-addressing-and-disk-controllers-in-libvirt/ Stable guest machine ABI, PCI addressing and drive controller/disk addressing]
 
  
 
=== Virtio ===
 
=== Virtio ===
Line 66: Line 39:
  
 
* [[NPIV in libvirt]]
 
* [[NPIV in libvirt]]
 
= libguestfs / guestfish =
 
 
* [https://rwmj.wordpress.com/2011/01/18/guestfish-generating-inline-commands-from-shell-scripts/ Guestfish: generating inline commands from shell scripts] - Blog entry showing how to generate inline guestfish commands from shell scripts
 
* [https://rwmj.wordpress.com/2011/01/15/libguestfs-live-cd-inspection/ libguestfs: Live CD inspection] - Blog entry showing use of virt-inspector to tell what operating system is on a Live CD image
 
  
 
= Networking =
 
= Networking =
Line 80: Line 48:
 
=== Detailed networking pieces ===
 
=== Detailed networking pieces ===
  
* [http://host-sflow.sourceforge.net Host sFlow] - Open source add-on for exporting sFlow data from guests
 
* [https://www.redhat.com/archives/libvir-list/2010-June/msg00762.html IPtables / firewall usage in libvirt]
 
 
* [[Libvirtd_and_dnsmasq]] - Additional configuration settings needed for running a global dnsmasq in addition to a libvirt controlled one
 
* [[Libvirtd_and_dnsmasq]] - Additional configuration settings needed for running a global dnsmasq in addition to a libvirt controlled one
 
* [[Networking | Networking hints and tips]]
 
* [[Networking | Networking hints and tips]]
* [http://berrange.com/posts/2009/12/13/routed-subnets-without-nat-for-libvirt-managed-virtual-machines-in-fedora/ Routed subnets with virtual networking]
 
* [https://rwmj.wordpress.com/2010/10/26/tip-find-the-ip-address-of-a-virtual-machine/ Tip: Find the IP address of a virtual machine] - Blog entry showing how to get the IP address of a guest domain
 
 
* [[OVS_and_PVLANS]] - Setup OpenvSwitch Flows to emulate PVLANs
 
* [[OVS_and_PVLANS]] - Setup OpenvSwitch Flows to emulate PVLANs
* [https://libvirt.org/nss.html NSS module] - Setup automatic name translation for your domains
 
 
= Perl =
 
 
* [http://search.cpan.org/~danberr/Sys-Virt/ Sys-Virt] - Daniel Berrange's perl module for managing guests
 
 
= Provisioning =
 
 
=== Cobbler ===
 
 
* [http://github.com/proffalken/cucumber-vhost cucumber-vhost] - Automatic provisioning with Cobbler and Cucumber
 
 
=== Foreman ===
 
 
* [http://theforeman.org Foreman] - Automatic provisioning with Foreman and libvirt
 
 
= Remote Management =
 
 
=== CIM ===
 
 
* [[cimtest]]
 
 
=== QPID===
 
 
* [[libvirt-qpid]]
 
  
 
= Security =
 
= Security =
 
=== Host Security ===
 
 
* [http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=/liaai/kvmsec/kvmsecprint.htm Securing KVM guests and the host system in RHEL5.5] or as [http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/index.jsp?topic=/liaai/kvmsec/kvmsecprint.htm PDF]
 
  
 
=== SSH ===
 
=== SSH ===
Line 130: Line 65:
  
 
= Storage =
 
= Storage =
 
=== iSCSI ===
 
 
* [http://berrange.com/posts/2010/05/05/provisioning-kvm-virtual-machines-on-iscsi-the-hard-way-part-2-of-2/ Accessing iSCSI storage pools using virsh]
 
* [http://berrange.com/posts/2010/05/04/provisioning-kvm-virtual-machines-on-iscsi-with-qnap-virt-manager-part-2-of-2/ Accessing iSCSI storage pools using virt-manager]
 
 
=== QCow2 disk encryption ===
 
 
* [http://berrange.com/posts/2009/12/02/using-qcow2-disk-encryption-with-libvirt-in-fedora-12/ Using qcow2 with encrypted disks with QEMU/KVM]
 
  
 
=== Disk and Memory Snapshots ===
 
=== Disk and Memory Snapshots ===
Line 146: Line 72:
 
=== Examples of live block operations ===
 
=== Examples of live block operations ===
  
* [http://wiki.libvirt.org/page/Live-disk-backup-with-active-blockcommit Live disk backup with active blockcommit]
+
* [[Live-disk-backup-with-active-blockcommit Live disk backup with active blockcommit]]
* [http://wiki.libvirt.org/page/Live-merge-an-entire-disk-image-chain-including-current-active-disk Live merge an entire disk image chain including current active disk]
+
* [[Live-merge-an-entire-disk-image-chain-including-current-active-disk Live merge an entire disk image chain including current active disk]]
 
 
= Third Party Libvirt Applications =
 
 
 
* [[Enomaly Elastic Computing Platform (ECP)]] - Cloud Computing / Infrastructure as a Service Platform based on Libvirt API
 
  
 
= Other =
 
= Other =
Line 170: Line 92:
  
 
* [[Debugging]]
 
* [[Debugging]]
 
= Getting started with Avocado-VT =
 
 
== Avocado-VT (and Avocado) installation ==
 
 
Avocado is the base framework for Avocado-VT.  To install it, follow the simple steps documented [https://avocado-framework.readthedocs.io/en/latest/guides/user/chapters/installing.html here].  Then install Avocado-VT, as documented on its own [http://avocado-vt.readthedocs.io/en/latest/GetStartedGuide.html#installing-avocado-vt Getting Started page].
 
 
== libvirt Prerequisites ==
 
 
# To use Avocado-VT with its libvirt backend, the following packages are required: libvirt, virt-install, qemu-kvm, p7zip, genisoimage.  Other packages are also recommended: fakeroot, policycoreutils-python-utils.<p>When installing libvirt on Fedora, make sure you have the following packages  installed: <tt>libvirt-client</tt>, <tt>libvirt-python</tt>, <tt>libvirt-daemon-kvm</tt>, and <tt>libvirt-daemon-config-network</tt>.</p> <p>To help you with copy and paste, here is a command with the complete list of packages needed on a Fedora system:</p><pre>dnf install libvirt virt-install qemu-kvm p7zip genisoimage libvirt-client libvirt-python libvirt-daemon-kvm libvirt-daemon-config-network fakeroot policycoreutils-python-utils</pre>
 
# Start libvirtd service.<p>On systems with systemd, run </p><pre>systemctl start libvirtd.service</pre>
 
 
== Avocado-VT bootstrap ==
 
 
Now that all packages are installed and services have been started, it's time to bootstrap Avocado-VT test providers, configuration and default image files, by running:
 
 
  avocado vt-bootstrap --vt-type=libvirt
 
 
For more information on the bootstrap process, please refer to the the [http://avocado-vt.readthedocs.io/en/latest/GetStartedGuide.html#bootstrapping-avocado-vt Avocado-VT docs].
 
 
== Running tests ==
 
 
To get an idea of the available tests, run
 
 
  avocado list --vt-type=libvirt
 
 
And look for the "VT" tests.  To actually run some tests (all virsh.help tests), run
 
 
  avocado run virsh.help --vt-type=libvirt
 
 
== Testing self-built libvirt ==
 
 
To test self-built libvirt rather then the one installed in the system, either built a proper package and install it or follow the steps below.
 
 
# Configure libvirt to use the same paths as the system one.<pre>$LIBVIRT_SRC/autogen.sh --system</pre>
 
# Compile libvirt.<pre>make</pre>
 
# Change libvirtd service to start your local libvirtd using <tt>/path/to/libvirt/run /path/to/libvirt/daemon/.libs/libvirtd</tt>. On systems with systemd change <tt>ExecStart</tt> in <tt>/etc/systemd/system/multi-user.target.wants/libvirtd.service</tt>. This hack is required for some tests that restart libvirtd service.
 
# Run tests using the self-built libvirt:<pre>/path/to/libvirt/run avocado run virsh.help virsh.console --vt-type libvirt</pre>
 
 
= Getting started with the Wiki =
 
 
This wiki is using the MediaWiki software. The following links will provide help on wiki syntax and other matters
 
 
* [https://secure.wikimedia.org/wikipedia/meta/wiki/MediaWiki_User%27s_Guide#For_editors Editing Help]
 
* [http://www.mediawiki.org/wiki/Help:FAQ MediaWiki FAQ]
 
  
 
= Getting started with libvirt development =
 
= Getting started with libvirt development =

Revision as of 14:18, 15 April 2020

libvirt Wiki

This is the libvirt Wiki for user contributed content.

Due to frequent attacks from spammers who are able to defeat the various anti-spam measures, it has become necessary to disable new account creation.

We still welcome contributions from anyone interested in updating content. Simply send an email to the main libvirt development list asking for an account and one will be created for you with as little delay as practical. Please tell us your preferred wiki user name in the email - if you have no preferences we will create one with "ForenameSurname" style.


General project documentation

Books

  • Chirammal, Mukhedkar, et al., "Mastering KVM Virtualization", 2016, PACKT Publishing, [1]

Guest Management

Concepts

  • Guest (VM) Lifecycle : Read This First - Introduces the concepts used with guests / virtual machines. Includes things like persistent vs transient domains, creating, starting, stopping domains, saving, restoring, snapshots, and secure wiping of disk images.

Virtio

Host SCSI device

NPIV

Networking

Concepts

  • Virtual Networking : Read This First - Introduces the concepts and ideas used in libvirts' networking for guests

Detailed networking pieces

Security

SSH

Transport Layer Security (TLS)

Storage

Disk and Memory Snapshots

Examples of live block operations

Other

Images

The images in this wiki, along with their Inkscape SVG source, are on this page in one place in case you'd like to use or modify them for your own project:

Debugging

In case you want to turn on debuging in libvirt follow:

For other (partially automated) debugging techniques, check

Getting started with libvirt development

Here is the list of small tasks that should enable you to start digging into libvirt source code base

Google Summer of Code

There is a separate page dedicated to Google Summer of Code 2019.

Also, the list for future ideas for projects can be found here Google Summer of Code Ideas.

The previous years can be found here: 2018, 2017 and 2016.

There is also a separate page for FAQ.