libvirt

libvirtLogolibvirt è un insieme di strumenti e applicazioni che servono per gestire più software di virtualizzazione o hypervisor. libvirt supporta QEMU, KVM, OpenVz, Xen e LXC. E’ rilasciato con la licenza LGPL che favorisce l’utilizzo e l’integrazione delle librerie in numerosi ambienti operativi.

libvirt è già disponibile in molte distribuzioni GNU/Linux e in alcuni casi è installato automaticamente se viene installato anche uno dei software di virtualizzazione compatibili.

L’architettura di libvirt è strutturata in modo da supportare due tipi di virtualizzazione: la prima è l’hyervisor di Xen e l’altra è QEMU e KVM.

In Xen, libvirt viene messa in esecuzione nel dominio zero. Da lì, a seconda che sia stata avviata con permessi root o meno, si interfaccia con xend, il demone di Xen, attraverso uno strato HTTP RPC. Alternativamente può creare un connessione in lettura e scrittura con XenStore oppure usare le chiamate messe a disposizione dal’hypervisor.

Se libvirt non è in esecuzione come root allora si collega come un demone per procura (proxy deamon) e fornisce supporto esclusivamente in lettura.

E’ il programma di più alto livello che si adopera per interfacciarsi con libvirt che sceglie quale delle tre strategie utilizzare per gestire le virtual machine (Convirt, virt-manager…).

Nel caso in cui si debba amministrare macchine virtuali create da QEMU o KVM (Kernel-based VM), libvirt genera un processo (un fork del processo che esegue libvirt) che gira in background che si occupa di avviare e gestire un processo di QEMU o KVM. Il processo di libvirt si collega alla console di QEMU (o KVM) e così può controllarne lo stato.

Oltre a Xen, QEMU e Kernel-based Virtual Machine, libvirt riesce a gestire altri hypervisor o software di virtualizzazione utilizzando un modulo nelle librerie che funziona come front-end e che usa delle istruzioni comuni implementate in altri hypervisor come OpenVZ, LXC.

Sorgenti, da compilare, di libvirt.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *