Product SiteDocumentation Site

Chapter 1. Introduction

1.1. Overview
1.2. Glossary of terms
Libvirt is a hypervisor-independent virtualization API and toolkit that is able to interact with the virtualization capabilities of a range of operating systems. It is free software under the GNU Lesser General Public License.
This chapter provides an introduction to libvirt and defines common terms that will be used throughout the guide.

1.1. Overview

Libvirt provides a common, generic and stable layer to securely manage domains on a node. As nodes may be remotely located, libvirt provides all methods required to provision, create, modify, monitor, control, migrate and stop the domains, within the limits of hypervisor support for these operations. Although multiple nodes may be accessed with libvirt simultaneously, the methods are limited to single node operations.
Libvirt is designed to work across multiple virtualization environments, which means that more common capabilities are provided as methods and functions. Due to this, certain specific capabilities may not be provided. For example, it does not provide high level virtualization policies or multi-node management features such as load balancing. However, method stability ensures that these features can be implemented on top of libvirt. To maintain this level of stability, libvirt seeks to isolate applications from the frequent changes expected at the lower level of the virtualization framework.
Libvirt is intended as a building block for higher level management tools and applications focusing on virtualization of a single node, with the only exception being domain migration between multiple node capabilities. It provides methods to enumerate, monitor and use the resources available on the managed node, including CPUs, memory, storage, networking and Non-Uniform Memory Access (NUMA) partitions. Although a management node can be located on a separate physical machine to the management program, this should only be done using secure protocols.
This guide is not intended to be a full reference to the entire Python libvirt interface. The list of functions, classes, and methods covered in this guide is only partial and nowhere near complete. The complete reference can always be found on any host where the libvirt-python module has been installed (most hosts). It is available by running the command pydoc libvirt from any command line terminal.