Per la creazione delle macchine virtuali si utilizzerà l’utility virt-install, che automatizza alcuni processi preliminari, come la registrazione
di una nuova macchina virtuale e la creazione di un file immagine per il disco.
Con il comando che segue verrà creata una macchina virtuale CentOS 7.0, identificata con il nome centos-7-x86_64-vm1, cui verranno assegnate 2
VCPU (Virtual CPU), 2 GB di RAM e un disco rigido da 20 GByte. Sarà richiesta la virtualizzazione completa (hardware), e sarà specificato il tipo di
sistema operativo in corso d’installazione.
[code]
virt-install --name centos-7-x86_64-vm1 --description "CentOS 7 x86_64 vm1" --ra|
m=2048 --vcpus=2 --hvm --os-type=linux --os-variant=rhel5.4 --disk path=/var/lib|
/libvirt/images/centos-7-x86_64-vm1.img,size=20 --location http://mirrors.kernel|
.org/centos/7/os/x86_64 --network bridge:br0
--noautoconsole --extra-args='console=tty0 console=ttyS0,115200n8 serial'
[/code]
La tabella seguente illustra le opzioni utilizzate nel comando precedente.
Opzione | Descrizione |
---|---|
--name centos-7-x86_64-vm1 |
Assegna l’identificativo indicato alla macchina virtuale che si sta creando. Questo identificativo dovrà essere adoperato in tutte le future interazioni tramite i virt-tools |
--description "CentOS 7 x86_64 vm1" |
Fornisce una descrizione in linguaggio naturale del contenuto della macchina virtuale |
--ram=2048 |
Assegna 2048 MB (2 GB) di RAM alla macchina virtuale |
--vcpus=2 |
Assegna 2 CPU virtuali alla macchina. 1 CPU virtuale corrisponde a 1 core fisicamente presente sull’host, il cui utilizzo viene ovviamente regolato dallo scheduler in presenza di diverse macchine virtuali in esecuzione contemporanea. |
--hvm |
Si richiede la virtualizzazione completa: i virt-tools, infatti, possono funzionare anche con altri sistemi paravirtualizzati come Xen o VirtualBox; con questa opzione si forza l’utilizzo di KVM |
--os-type=linux |
Ottimizza la configurazione della macchina virtuale per un sistema operativo basato su kernel Linux |
--os-variant=rhel5.4 |
Suggerisce che si utilizzerà Red Hat Enterprise Linux 5.4 o superiore all’interno della macchina virtuale, per rifinire ulteriormente l’ottimizzazione per tipo di sistema operativo |
--disk path=/var/lib/libvirt/images/centos-7-x86_64-vm1.img,size=20 |
Crea un disco virtuale al percorso indicato di 20 GB di capienza |
--location http://mirrors.kernel.org/centos/7/os/x86_64 |
Si specifica da dove scaricare materialmente i file del sistema operativo da installare (in alternativa si può installare da immagine ISO) |
--network bridge:br0 |
Connette la macchina virtuale al dispositivo di tipo bridge configurato in precedenza |
--noautoconsole |
Disattiva il passaggio automatico alla modalità console seriale all’interno del terminale virtuale attualmente in uso (che non sarebbe comunque possibile senza il parametro che segue) |
--extra-args='console=tty0 console=ttyS0,115200n8 serial' |
Parametri passati direttamente al kernel Linux della macchina virtuale: si richiede l’utilizzo di due console virtuali, una associata allo “schermo” e una seriale a 115200 bit al secondo, 8 bit dati per carattere, nessun bit di parità |
Il comando salverà le impostazioni della VM nel percorso /etc/libvirt/qemu/centos-7-x86_64-vm1.xml.
Sebbene virt-install dia la possibilità di avviare direttamente (con l’opzione –graphics=vnc,password=XXXXXX) un server VNC per esportare
il display della macchina virtuale appena creata, abbiamo riscontrato problemi nell’interazione con il mouse all’interno del client.
Per questo motivo, forti dell’attivazione del bridging, lasceremo che sia direttamente l’istanza di CentOS ad avviare VNC al suo interno. La procedura
prevede che si acceda temporaneamente alla console della macchina virtuale con:
[code] virsh console centos-7-x86_64-vm1 [/code]
per il tempo necessario a scegliere una password per il server VNC ed avviarlo.
In genere, la porta che si assegna a VNC è la 5900: nell’immagine precedente si invita l’utente a connettere il proprio client all’indirizzo 10.211.55.13:1, dove con :1 ci si riferisce alla porta 5900+1, ovvero 5901. A connessione stabilità sarà mostrato l’installer grafico di CentOS:
Prima di riavviare la macchina virtuale, occorre assicurarsi che sia abilitata una console seriale virtuale, modificando le righe “kernel” nel file /boot/grub.conf in modo tale che appaiano come segue:
[code] console=tty0 console=ttyS1,115200n8 [/code]
Avviare la macchina virtuale al termine dell’installazione
Per avviare la macchina virtuale appena creata, al termine dell’installazione non resta che usare il comando:
[code] # virsh start centos-7-x86_64-vm1 [/code]