Introduction

Libvirt is a C toolkit to interact with the virtualization capabilities ofrecent versions of Linux (and other OSes), but libvirt won't try to provideall possible interfaces for interacting with the virtualization features.

To avoid ambiguity about the terms used here here are the definitions forsome of the specific concepts used in libvirt documentation:

  • a nodeis a single physical machine
  • an hypervisoris a layer of software allowing tovirtualize a node in a set of virtual machines with possibly differentconfigurations than the node itself
  • a domainis an instance of an operating system runningon a virtualized machine provided by the hypervisor

Hypervisor and domains running on a node

Now we can define the goal of libvirt: to provide the lowest possiblegeneric and stable layer to manage domains on a node.

This implies the following:

  • the API is not targetted to a single virtualization environment, itcurrently supports Xen and QEmu/KVM. This also implies that some veryspecific capabilities which are not generic enough may not be provided aslibvirt APIs
  • the API should allow to do efficiently and cleanly all the operationsneeded to manage domains on a node
  • the API will not try to provide hight level multi-nodes managementfeatures like load balancing, though they could be implemented on top oflibvirt
  • stability of the API is a big concern, libvirt should isolateapplications from the frequent changes expected at the lower level of thevirtualization framework

So libvirt should be a building block for higher level management toolsand for applications focusing on virtualization of a single node (the onlyexception being domain migration between node capabilities which may need tobe added at the libvirt level). Where possible libvirt should be extendableto be able to provide the same API for remote nodes, however this is not thecase at the moment, the code currently handle only local node accesses(extension for remote access support is being worked on, seethe mailing listdiscussions about it).