#

Documentazione ufficiale

## libvirt

La libreria libvirt è utilizzata per interfacciarsi con differenti tecnologie di virtualizzazione. Prima di iniziare a utilizzare libvirt è utile accertarsi che il proprio hardware supporti le estensioni di virtualizzazione necessarie per KVM. In un terminale, digitare quanto segue:

     egrep '(vmx|svm)' /proc/cpuinfo

Se non viene stampato nulla, la CPU non supporta la virtualizzazione.

Sulla maggior parte dei computer i cui processori supportano la virtualizzazione, è necessario attivare un'opzione nel bios per poterla abilitare. Il metodo precedentemente descritto non mostra lo stato della sua attivazione.

### Rete virtuale

Esistono diversi modi per consentire accesso alla rete esterna a una macchina virtuale. La configurazione di rete predefinita è usermode, che utilizza il protocollo SLIRP e il traffico è passato attraverso l'interfaccia dell'host verso la rete esterna.

Affinché gli host esterni possano accedere i servizi su una macchina virtuale, è necessario configurare un bridge. Questo consente alle interfacce virtuali di connettersi alla rete esterna attraverso l'interfaccia fisica, facendole apparire come normali host al resto della rete. Per informazioni su come impostare un bridge, consultare la sezione chiamata «Bridging».

### Installazione

Per installare i pacchetti necessari, da un terminale digitare:

    sudo apt-get install kvm libvirt-bin

Dopo aver installato libvirt-bin, l'utente usato per la gestione delle macchine virtuali deve essere aggiunto al gruppo libvirtd. In questo modo, all'utente è garantito accesso alle configurazioni avanzate di rete.

In un terminale digitare:

    sudo adduser $USER libvirtd

Se l'utente scelto è quello corrente, è necessario terminare la sessione e ri-accedervi affinché le modifiche abbiano effetto.

È ora possibile installare un sistema operativo ospite. La procedura di installazione di una macchina virtuale è la stessa di un sistema operativo normale ed è quindi necessario automatizzare la procedura oppure avere una tastiera e uno schermo collegati al computer.

Nel caso delle macchine virtuali, un'interfaccia grafica è analoga all'uso di una tastiera e di un mouse. Invece di installare un'interfaccia grafica, è possibile usare virt-viewer per connettersi alla console di una macchina virtuale via VNC. Per maggiori informazioni, consultare la la sezione chiamata «Visualizzatore di macchine virtuali».

Ci sono diversi modi per automatizzare il processo di installazione di Ubuntu, per esempio tramite l'utilizzo di "preseed", "kickstart", ecc... Per maggior informazioni, fare riferimento alla guida all'installazione di Ubuntu.

Un altro metodo per installare una macchina virtuale Ubuntu consiste nell'usare l'applicazione ubuntu-vm-builder. ubuntu-vm-builder consente di impostare partizioni avanzate, eseguire script personalizzati post-installazione, ecc... Per maggiori informazioni, consultare la sezione chiamata «JeOS e vmbuilder»

### virt-install

virt-installfa parte del pacchetto python-virtinst. Per installarlo, in un terminale, digitare:

    sudo apt-get install python-virtinst

Durante l'uso di virt-install sono disponibili molte azioni, per esempio:

    sudo virt-install -n web_devel -r 256 -f web_devel.img \ -s 4 -c jeos.iso --accelerate \ --connect=qemu:///system --vnc \ --noautoconsole -v

- -n web_devel: il nome della nuova macchine virtuale usato in questo esempio sarà web_devel.

- -r 256: specifica la quantità di memoria che la macchina virtuale userà.

- -f web_devel.img: indica il percorso al disco virtuale che può essere un file, una partizione o un volume logico. In questo esempio è un file chiamato `web_devel.img`.

- -s 4: la dimensione del disco virtuale.

- -c jeos.iso: il file usato come CD-ROM virtuale. Il file può essere un file ISO o il percorso al device del CD-ROM nell'host.

- --accelerate: abilita letecnologie di accelerazione nel kernel.

- --vnc: esporta la console virtuale usando VNC.

- --noautoconsole: non si collegherà automaticamente alla console della macchina virtuale.

- -v: crea un ospite completamente virtualizzato.

Una volta lanciata virt-install è possibile collegarsi alla console della macchina virtuale utilizzando, localmente, un'interfaccia grafica oppure l'utilità virt-viewer.

### virt-clone

L'applicazione virt-clone può essere usata per copiare una macchina virtuale in un'altra, per esempio:

    sudo virt-clone -o web_devel -n database_devel -f /path/to/database_devel.img --connect=qemu:///system

- -o: macchina virtuale originale.

- -n: nome della nuova macchina virtuale.

- -f: percorso al file, volume logico o partizione da usare per la nuova macchina virtuale.

- --connect: specifica a quale hypervisor collegarsi.

Usare anche le opzioni -d o --debug per risolvere i problemi che potrebbero verificarsi con virt-clone.

Sostituire web_devel e database_devel con i nomi delle macchine virtuali appropriati.

### Gestire la macchina virtuale

#### virsh

Sono disponibili diverse utilità per la gestione delle macchine virtuali e di libvirt. L'utilità virsh può essere utilizzata dalla riga di comando. Alcuni esempi:

- Per elencare le macchine virtuali in esecuzione:

      virsh -c qemu:///system list

- Per avviare una macchina virtuale:

      virsh -c qemu:///system start web_devel

- Similmente, per lanciare una macchina virtuale durante l'avvio del computer:

      virsh -c qemu:///system autostart web_devel

- Riavviare una macchina virtuale con:

      virsh -c qemu:///system reboot web_devel

- Lo stato di una macchina virtuale può essere salvato in un file per poterlo ripristinare successivamente. Il seguente comando salva lo stato della macchina virtuale in un file nominato in base alla data.

      virsh -c qemu:///system save web_devel web_devel-022708.state

  Una volta salvata, la macchina virtuale non sarà più in esecuzione.

- Per ripristinare una macchina virtuale:

      virsh -c qemu:///system restore web_devel-022708.state

- Per arrestare una macchina virtuale:

      virsh -c qemu:///system shutdown web_devel

- Per montare un CD-ROM in una macchina virtuale, digitare:

      virsh -c qemu:///system attach-disk web_devel /dev/cdrom /media/cdrom

Nell'esempio precedente, sostituire web_devel con il nome della macchina virtuale appropriata e `web_devel-022708.state` con un nome file descrittivo.

#### Gestore macchina virtuale

Il pacchetto virt-manager contiene un'utilità grafica per gestire le macchie virtuali locali e remote. Per installare virt-manager digitare:

    sudo apt-get install virt-manager

Dato che virt-manager richiede un'interfaccia grafica (GUI), è raccomandato installarlo su una workstation o una postazione di prova invece che un server di produzione. Per connettersi al servizio libvirt locale:

    virt-manager -c qemu:///system

È possibile collegarsi al servizio libvirt in esecuzione su un altro host digitando, in un terminale:

    virt-manager -c qemu+ssh://virtnode1.mydomain.com/system

L'esempio precedente assume che la connessione SSH tra il sistema di gestione e virtnode1.mydomain.com sia già configurata e utilizzi le chiavi SSH per l'autenticazione. Le chiavi SSH sono necessarie perché libvirt invia il prompt password a un altro processo. Per maggiori informazioni sulla configurazione di SSH, consultare la la sezione chiamata «Server OpenSSH»

### Visualizzatore di macchine virtuali

L'applicazione virt-viewer consente di collegarsi alla console di una macchina virtuale. virt-viewer non richiede un'interfaccia grafica per interagire con la macchina virtuale.

Per installare virt-viewer, da un terminale digitare:

    sudo apt-get install virt-viewer

Una volta installata e in esecuzione, è possibile connettersi alla console della macchina virtuale digitando:

    virt-viewer -c qemu:///system web_devel

Analogamente a virt-manager, virt-viewer può collegarsi a un host remoto utilizzando SSH con chiave di autenticazione:

    virt-viewer -c qemu+ssh://virtnode1.miodominio.it/system web_devel

Assicurarsi di sostituire web_devel con il nome corretto della macchina virtuale.

Se configurato per usare un'interfaccia di rete bridged, è anche possibile impostare accesso SSH alla macchina virtuale. Per maggiori informazioni, consultare la sezione chiamata «Server OpenSSH» e la sezione chiamata «Bridging».

### Risorse

- Per maggiori informazioni, consultare il sito web di KVM.

- Per maggiori informazioni su libvirt, consultare il sito web di libvirt

- Il sito di Virtual Machine Manager dispone di ulteriori informazioni riguardo lo sviluppo di virt-manager.

- È anche possibile passare nel canale IRC #ubuntu-virt su freenode per discutere delle tecnologie di virtualizzazione in Ubuntu.

Capitolo 17. Virtualizzazione |  | JeOS e vmbuilder