Introduction

Libvir won't try to provide all possible interfaces for interacting with the virtualization features of a set of Linux (or other OS) system.

To avoid ambiguity about the terms used here here are the definitions for soem of the specific terms used in libvir documentation:

  • a node is a single physical machine
  • an hypervisor is a layer of software allowing to virtualize a node in a set of virtual machines with possibly different configurations than the node itself
  • a domain is an instance of an operating system running on a virtualized machine

Now we can define the goal of libvir: to provide the lowest possible generic layer to manage domains on a node.

This implies the following:

  • the API should not be targetted to a single virtualization environment though Xen is the current default, which also means that some very specific capabilities which are not generic enough may not be provided as libvir APIs
  • the API should allow to do efficiently and cleanly all the operations needed to manage domains on a node
  • the API will not try to provide hight level multi-nodes management features like load balancing, though they could be implemented on top of libvir

So libvir should be a building block for higher level management tools or for applications focusing on virtualization on a single node (the only exception being domain migration between node capabilities which may need to be added at the libvir level)