libvirt

A proposito di Libvirt

A proposito di Libvirt
Libvirt è uno degli strumenti di gestione della virtualizzazione più popolari in circolazione. È composto da un'API di gestione e da un demone con cui puoi interagire con il tuo stack di virtualizzazione. Libvirt si sforza di unificare il processo di gestione per tutte le varie tecnologie di virtualizzazione da KVM a VMWare ESX e persino BHyve. Può anche gestire contenitori LXC e persino alcune delle tecnologie di paravirtualizzazione come Xen.

Solo perché supporta una vasta gamma di tecnologie, non significa che devi avere familiarità con tutte all. Puoi concentrarti su una tecnologia come KVM e costruire la tua esperienza libvirt attorno a quella. Questo articolo cercherà di fornire una critica completa della tecnologia dall'esperienza personale dell'autore con essa.

sfondo

Per capire di cosa è capace Libvirt e come puoi usarlo sul tuo sistema puoi seguire le seguenti guide:

  1. Installa KVM e Libvirt su Debian
  2. Libvirt con Python

Se hai già familiarità con strumenti come virsh, virt-install, virt-manager, oVirt, ecc., allora stai già usando libvirt senza nemmeno saperlo. I suddetti strumenti utilizzano libvirt nel backend e forniscono un'interfaccia user-friendly sia che si tratti di riga di comando o GUI.

Architettura

Libvirt è progettato per funzionare con qualsiasi hypervisor ed è cresciuto negli anni per funzionare con una vasta gamma di hypervisor. Il demone libvirt espone un'API che può essere utilizzata da app come virt-manager o virsh (e persino i tuoi script Python personalizzati). Le richieste degli utenti vengono ricevute dall'API. Queste richieste potrebbero essere qualcosa come creare un ospite KVM o mostrarmi la memoria utilizzata da un determinato contenitore LX, ecc.

Il demone libvirt quindi delega la richiesta al driver hypervisor libvirt appropriato. Questo driver comprende e implementa tutte le specifiche di una determinata tecnologia di virtualizzazione ed esegue le istruzioni di conseguenza.

Esiste una classe diversa di driver per la gestione dell'archiviazione e persino delle reti di macchine virtuali.

Pool e volumi

Le VM hanno bisogno di molto spazio di archiviazione. La stessa tecnologia di storage è molto variabile da hypervisor a hypervisor. VMWare utilizza il proprio formato vmdk, a QEMU piace usare qcow2, ci sono anche immagini disco non elaborate e anche le immagini LXC sono una storia diversa. Inoltre, desideri raggruppare tutte le immagini del disco VM e fornire loro un supporto di archiviazione diverso come un server NFS, un set di dati ZFS o solo una directory. Ciò ti consente di utilizzare libvirt in una varietà di casi d'uso diversi da un singolo server domestico a una soluzione di virtualizzazione scalabile di livello aziendale.

Nel vernacolo libvirt, un singolo dispositivo di archiviazione virtuale associato a qualsiasi VM, come il file di immagine qcow2, raw o vmdk di una VM o ISO montabile è noto come volume. Il supporto di archiviazione utilizzato sull'host per archiviare un gruppo di volumi associati è noto come a piscina. Puoi utilizzare un server NFS come pool o un set di dati ZFS, come accennato in precedenza. Se non disponi di una soluzione di archiviazione fantasiosa, puoi semplicemente utilizzare una directory.

Per impostazione predefinita, libvirt ha due diversi pool. Il primo è /var/lib/libvirt/images e /var/lib/libvirt/boot. I volumi per una singola VM possono essere suddivisi in più pool. Ad esempio, conservo tutte le immagini cloud pulite e le ISO del programma di installazione del sistema operativo nel pool /var/lib/libvirt/boot e per le singole VM rootfs è installato nei file di immagine archiviati in /var/lib/libvirt/images.

Puoi anche avere un singolo pool per una singola VM, oppure puoi dividere ulteriormente i pool per snapshot, backup e così via della VM. È tutto molto flessibile e ti consente di organizzare i tuoi dati secondo le tue comodità.

Configurazioni

Virsh è uno strumento popolare per configurare qualsiasi cosa, dalla tua VM, alla rete della macchina virtuale e persino all'archiviazione. I file di configurazione stessi vivono nel formato XML. Ti ritroverai a impartire comandi come:

$ virsh dumpxml VM1
$ virsh modifica VM1

E allo stesso modo, ci sono sottocomandi come net-dumpxml e pool-edit per visualizzare o configurare la configurazione di pool, reti, ecc. Se sei curioso di sapere dove risiedono questi file di configurazione, puoi andare su /etc/libvirt/ e trovare la directory interessata dei tuoi hypervisor.  La directory principale /etc/libvirt/ stessa contiene molte configurazioni globali come i driver (e.g qemu.conf e lxc.conf ) e la loro configurazione e il comportamento predefinito di libvirt.

Per guardare la configurazione specifica dei singoli componenti come le macchine virtuali, i pool e i volumi devi andare alle directory corrispondenti. Per gli ospiti qemu questo è /etc/libvirt/qemu

root@deb:/etc/libvirt/qemu# ls -al
totale 24
drwxr-xr-x 4 radice radice 4096 21 aprile 10:39 .
drwxr-xr-x 6 radice radice 4096 Apr 28 17:19…
drwxr-xr-x 2 root root 4096 21 aprile 10:39 avvio automatico
drwxr-xr-x 3 root root 4096 14 aprile 13:49 reti
-rw------- 1 radice radice 3527 Apr 20 19:10 VM1.xml
-rw------- 1 root root 3527 Apr 20 19:09 VM2.xml

La directory di avvio automatico conterrà collegamenti simbolici a VM1.xml e VM2.xml se hai configurato le VM per l'avvio automatico all'avvio del sistema host ( $ virsh autostart VM1 ).

Allo stesso modo, /etc/libvirt/qemu/network contiene una configurazione per la rete predefinita un guest qemu. Il /etc/libvirt/storage contiene XML che definiscono gli storage pool.

Conclusione

Se sei interessato a configurare il tuo host di virtualizzazione, un buon punto di partenza sarà questo articolo in cui mostro come installare i guest QEMU-KVM su un host Debian usando libvirt e gli strumenti correlati.

Dopodiché puoi iniziare a giocare con la CLI di virsh e vedere e gestire entità come Domain (libvirt chiama le VM guest a dominio) reti, storage pool e volumi. Questo ti renderà abbastanza a tuo agio con la tecnologia da poter passare ad altri concetti come istantanee e filtro di rete. Spero che questo articolo si riveli un buon punto di partenza per te.

Come modificare le impostazioni del mouse e del touchpad utilizzando Xinput in Linux
La maggior parte delle distribuzioni Linux viene fornita con la libreria "libinput" per impostazione predefinita per gestire gli eventi di input su un...
Rimappa i pulsanti del mouse in modo diverso per software diversi con X-Mouse Button Control
Forse hai bisogno di uno strumento che possa cambiare il controllo del tuo mouse con ogni applicazione che utilizzi. In questo caso, puoi provare un'a...
Recensione del mouse wireless Microsoft Sculpt Touch
Ho letto di recente del Microsoft Scolpisci il tocco mouse wireless e ho deciso di acquistarlo. Dopo averlo usato per un po', ho deciso di condividere...