Xen creazione di un dominio e Xen Manager

Creazione di un nuovo dominio

Il primo passo da fare prima di aggiungere un dominio è di creare il file di configurazione per la nuova macchina virtuale. Nella directory /etc/xen/ (oppure /etc/xen/examples) si trovano due file che possono essere usati come modello per il file di configurazione. Il file xmexample1 è l’ideale per chi ha bisogno di una sola virtual machine mentre xmexample2 è indicato per l’uso di più macchine virtuali sullo stesso host. Per avviare alcuni domini automaticamente al boot dell’host è sufficiente mettere un link nella directory /etc/xen/auto/ al file di configurazione della macchina virtuale.
La variabile kernel, nel file di configurazione, deve essere modificata se il kernel usato da Xen è stato rinominato durante la creazione, solitamente va lasciata inalterata. Stesso ragionamento per il ramdisk, se presente.
Le variabili bootloader e bootentry servono per specificare un caricamento diverso da quello standard. Il campo builder va lasciato su linux se le virtual machine verranno create su un host con kernel Linux. Il parametro memory serve per indicare la quantità di memoria ram a disposizione della virtual machine. La variabile nome è da modificare, qui deve essere scelto il nome del dominio; il nome deve essere differente per ogni virtual machine.
Per assegnare una o più cpu al dominio indicare in cpus il numero della cpu che si intende concedere; di default sarà Xen a effettuare la scelta. Se si possiedono cpu virtuali (quelle fornite per esempio dalla tecnologia hyperthreading di Intel) si possono specificare oppure lasciando commentato sarà Xen a gestirle.
La variabile vif serve per creare delle schede di rete per la virtual machine. Di default non verrà creata nessuna scheda di rete.
Configurando la variabile disk è possibile specificare a quali dischi la macchina virtuale può accedere e in che modalità. Ad esempio se disk = [ ‘phy:hda1,hda1,w’ ], allora il dominio accederà alla partizione 1 del disco hda in scrittura e in lettura. Questo spazio sarà lo spazio che la virtual machine assegnerà alla partizione root. Se si sta configurando il file per più macchine virtuali mettendo disk = [ ‘phy:sda%d,sda1,w’ % (7+vmid), ‘phy:sda6,sda6,r’ ] verranno create tante delle macchine virtuali che useranno come root le partizioni sda7, sda8 e così via per il numero di virtual machine, in più tutte avranno accesso in sola lettura alla partizione sda6. Naturalmente le macchine saranno create solamente se le partizioni sda7… esistono. Sempre nel file xmexample2 è possibile specificare quante macchine virtuali creare e assegnare loro un vmid (virtual machine id).
In entrambi i file di configurazione è possibile specificare l’allocazione automatica degli indirizzi IP togliendo il commendo alla variabile dhcp, inoltre si possono specificare alcuni parametri come la netmask, il gateway…
Modificando la variabile root è possibile indicare dove è situata la partizione di root normalmente questa opzione non va modificata a mano che non si intenda usare un server nfs.
Ora il file va salvato nella directory /etc/xen con nome, per esempio, vmconfig.
Per creare una macchina virtuale basta digitare:
# xm create -c vmconfig
Il parametro -c serve per avviare la console del dominio subito dopo averlo creato.
Se il file che si è usato è xmexample2 e si sono volute preparare tre virtual machine, si può usare questo comando:
# xm create -c vmconfig vmid=1
Per creare la prima delle tre.

Parametri di xm (Xen Manager)

Il programma xm serve per gestire le macchine virtuali di Xen, si appoggia sul demone xend e richiede generalmente i privilegi di root per essere eseguito. Si supponga che il file di configurazione sia vmconfig e il nome del dominio sia VMValent.
La sintassi a riga di comando è:
# xm [comando] id-dominio [opzioni]
Con il comando create e l’opzione -c è possibile, specificando il file di configurazione, creare un nuovo dominio.
# xm create -c vmconfig
Con l’opzione -c si può controllare se il dominio che si ha appena creato funzionerà a dovere. E’possibile che la verifica del dominio si interrompa a causa di alcuni problemi.
Usando il comando destroy è possibile cancellare il dominio. E’utile se nella creazione della virtual machine qualcosa è andato torto.
# xm destroy VMValent
Con domid si converte il nome del dominio in un id di dominio secondo il mapping del demone xend. L’id del dominio viene scelto da xend.
# xm domid 145
Viceversa usando domname si può convertire l’id di dominio in un nome di dominio. L’output sarà il numero del id dominio associato da xend alla virtual machine indicata.
# xm domname VMValent
Il parametro list permette di vedere delle informazioni relative a un dominio, se non è specificato alcun nome di domino, verranno mostrati i dettagli di tutti i domini (compreso il dominio zero).
# xm list VMValent
I campi delle informazioni sullo stato dei domini sono sei: r (running = in esecuzione), b (blocked = in attesa), p (paused = fermato), s (shutdown = arrestato), c (crashed = colliso), d (dying = in fase di spegnimento). Lo stato blocked indica che il dominio è in attesa di un’operazione di IO oppure che non ha compiti da svolgere, paused è riscontrabile quando il dominio è stato fermato tramite l’uso del comando xn paused id-dom. Lo stato shutdown mostra c’è il dominio è stato spento mentre crashed appare quando il dominio ha avuto un crash.
Ritornando ai comandi di xm, indicando mem-max è possibile porre un limite massimo alla memoria riservata alla macchina virtuale, attenzione non deve essere uguale a quella scelta nel file di configurazione.
# xm mem-max VMValent 512
Con mem-set si può decidere quanta memoria far vedere alla virtual machine, è da usare con attenzione perchè troppa memoria o troppo poca potrebbe causare crash nel dominio interessato.
# xm mem-set VMValent 512
Il comando migrate permette di spostare un dominio da un host all’altro. E’ un’operazione rischiosa da usare con cautela. La funzione di migrazione sarà analizzata in prossimi articoli.
Usando paused come argomento allo Xen Manager, il dominio verrà congelato tuttavia farà uso delle risorse assegnategli (memoria,…) ma lo scheduler dello Xen hypervisor non gli dedicherà del tempo per l’elaborazione.
# xm paused VmValent
Con il comando reboot, il dominio viene riavviato come se fosse stato impartito il comando di riavvio all’interno della macchina vituale, per cui le perferiche virtuali verranno disattivate e inizializzate nuovamente all’avvio. Aggiungendo -all verranno riavviati tutti i domini.
# xm reboot VmValent
# xm reboot -all
Il comando save consente di salvare la virtual machine creando un’immagine che potrà essere in seguito ripristinata, è simile alla funzione snapshot di altri programmi di virtualizzazione. Il parametro che segue il nome del dominio è il nome del file d’immagine nel quale verranno posti i dati della virtual machine.
# xm save VmValent /home/salvaValent
Per ripristinare uno “snapshot” è sufficiente indicare il percorso dell’immagine e usare:
# xm restore /home/salvaValent
Per spegnere un dominio basta utilizzare il comando shutdown, che funzionerà similmente al comando reboot, ossia spegnerà la virtual machine disattivando le periferiche. Usando -all come opzione saranno spente tutti i domini (escluso lo zero).
# xm shutdown VMValent
Affiancando il comando sysrq a xm, si possono inviare combinazioni di tasti al dominio specificato.
L’espressione sysrq non è altro che l’abbreviazione di Magic SysRq Key. Non tutti i kernel Linux sono abilitati all’uso di questa funzione, per altre informazioni consultare il file /usr/src/linux/Documentation/sysrq.txt. In questo caso con la lettera “o” viene ordinato lo spegnimento del sistema operativo sulla virtual machine.
# xm sysrq VMValent o
Per svegliare il dominio dallo stato di pausa si usa il comando unpause.
# xm unpaused VMValent
Con il comando vcpu-set si possono indicare quante cpu virtuali possano essere usate della macchina virtuale.
# xm vcpu-set VMValent 2
Per vedere informazioni sulle cpu virtuali adoperate da dominio basta usare vcpu-list, se non si indica il nome del dominio verranno mostrati i dati per tutte le macchine virtuali.
# xm vcpu-list VMValent
Utilizzando vcpu-pin, xend assegna la cpu virtuale ad una specifica cpu fisica. Generalmente i processori virtuali vengono attribuiti a rotazione alle cpu fisiche in base al carico di lavoro. La ripartizione può migliorare le prestazioni se eseguito consapevolmente. Nell’esempio la cpu virtuale numero 1 viene associata al processore fisico 2.
# xm vcpu-pin VMValent 1 2
L’ultimo comando uptime, mostra da quanto la virtual machine è attiva in ore.
# xm uptime VMValent

Comandi per la gestione del host

Utilizzando lo Xen Manager si può amministrare oltre ai domini anche l’host.
Attraverso dmesg, simile a dmesg di Linux, si possono reperire informazioni sul boot del kernel Xen/Linux, è molto utile in caso di problemi.
# xm dmesg
Con il comando info invece vengono mostrate dei dettagli sul host in modo più ordinato, in caso di bisogno di assistenza è importante fornire l’output a chi di dovere.
# xm info
Adoperando il comando log verrà mostrato il file di log di xend, che normalmente è /var/log/xend.log
Indicando come argomento top allo Xen Manager, apparirà un intefaccia di monitoraggio in con valori aggiornati in tempo reale sui vari domini attivi.
# xm top

xm top

Lascia un commento

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