La libreria
libvirt non si limita naturalmente solo alla gestione dell’
hypervisor, ma anche di tutti gli aspetti correlati, quali i dischi, il supporto alla rete, alle USB e molti altri ancora. Sia l’organizzazione delle macchine virtuali — i
domini nella nomenclatura
libvirt — che l’organizzazione della rete vengono gestiti tramite appositi
file XML, usati anche per la gestione dello storage, organizzata attorno a due concetti chiave: quello di
volume, una singola unità di storage basata su dispositivi reali o file opportunamente configurati, e quello di
pool, un apposito sistema in grado di gestire e organizzare unità di storage in volumi.
La
gestione della rete permette di organizzare la struttura dal punto di vista logico completamente svincolata dal punto di vista fisico, consentendo di creare ciò che si realizza con switch/HUB e macchine reali, tramite bridge e macchine virtuali.
Occorre segnalare che
libvirt ha una sua implementazione di switch di rete e che non esiste, per ora, nessun supporto per
VDE. Questo significa che la riga di comando indicata per avviare il dominio con
libvirt, deve essere riscritta nel relativo file XML tenendo conto di tale diversità. Per semplificare l’operazione, si può utilizzare
virsh, un tool a riga di comando che tra le altre cose, consente di
convertire un set di argomenti per KVM nel corrispettivo file di configurazione in XML per
libvirt.
Come indicato
nella documentazione, occorre creare un file di aiuto con all’interno la riga di comando menzionata:
$ cat > demo.args <<EOF
kvm –name XPDomain -hda winxp.img -m 512 -vnc :1 -usb -usbdevice host:0529:0001 -net nic,macaddr=52:54:00:00:AA:03 -net vde
EOF
e digitare il commando:
virsh domxml-from-native qemu-argv demo.args >> XPDomain.xml
Come detto, occorre modificare il file per quanto riguarda la rete, e anche relativamente alla tipologia del disco virtuale. Modificheremo anche la tipologia del sistema di puntamento utilizzato, per eliminare il problema del puntatore virtuale sfasato rispetto a quello reale.
Dato che il file XML è abbastanza intuitivo, analizzeremo solo le parti che necessitano di modifica per il nostro scopo, e in particolare, la sezione di interesse è il quella relativa al tag
<devices>, in cui sono descritti tutti i componenti che verranno emulati, tra cui il disco, la rete e il metodo di puntamento. Per una completa descrizione rimando alla
documentazione ufficiale.