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)