Ricerca nel sito web

Come creare e installare macchine virtuali guest in XenServer - Parte 5


Continuando ad andare avanti con la serie XenServer, questo articolo affronterà la creazione degli stessi ospiti reali (spesso chiamati macchine virtuali).

Aggiornamento: A maggio 2016, Citrix ha rilasciato la nuova versione della piattaforma XenServer 7. Per l'installazione seguire: Nuova installazione di XenServer 7.

Questo articolo presuppone che tutti gli articoli precedenti riguardanti la rete, l'applicazione di patch e l'archiviazione siano stati completati. Per fortuna, non è più necessario discutere nuova terminologia e la creazione degli ospiti può iniziare!

Revisione del sistema

A questo punto, sono state configurate molte cose su questo host XenServer. Ciò servirà come una rapida revisione di ciò che è stato configurato e in quale articolo è stato discusso l'argomento.

  1. XenServer 6.5 è stato installato sul server
    1. https://linux-console.net/citrix-xenserver-installation-and-network-configuration-in-linux/
  2. Sono state applicate tutte le patch XenServer 6.5
    1. https://linux-console.net/install-xenserver-patches-in-linux/
  3. Sono stati creati il teaming dell'interfaccia di rete e le VLAN
    1. https://linux-console.net/xenserver-network-lacp-bond-vlan-and-bonding-configuration/
  4. Sono stati creati repository di archiviazione iSCSI e ISO per contenere i file di installazione del sistema operativo e i dischi rigidi virtuali utilizzati dagli ospiti
    1. https://linux-console.net/xenserver-create-and-add-storage-repository/

Creazione di ospiti virtuali in XenServer

Questa parte della guida si affiderà ai programmi di installazione ISO per avviare effettivamente il computer guest appena creato e installare un sistema operativo. Assicurati di rivedere il quarto articolo per informazioni sulla creazione di un repository ISO.

XenServer viene fornito con una serie di modelli che possono essere utilizzati per eseguire rapidamente il provisioning di un guest virtuale. Questi modelli forniscono opzioni comuni per il sistema operativo scelto. Le opzioni includono cose come lo spazio sul disco rigido, l'architettura della CPU e la quantità di RAM disponibile tra le altre opzioni.

Queste opzioni possono essere modificate manualmente in seguito, ma per ora verrà utilizzato un semplice modello per illustrarne l'utilizzo. Per ottenere l'elenco dei modelli disponibili, al tradizionale comando 'xe' possono essere passati diversi argomenti per richiedere al sistema di restituire i modelli disponibili.


xe template-list

È probabile che questo comando restituisca molto output. Per rendere l'output più facile da leggere, si suggerisce di convogliarlo in 'less' come segue:


xe template-list | less

Ciò consentirà un'analisi più semplice dei modelli disponibili per individuare le informazioni UUID necessarie. Questo articolo funzionerà con Debian 8 Jessie ma richiederà l'uso del vecchio modello Debian 7 Wheezy finché Citrix non rilascerà il nuovo modello .

La selezione di Debian 7 non influirà in alcun modo sul funzionamento del sistema operativo vero e proprio. (La schermata seguente utilizzava l'UUID nel comando per eliminare parte dell'output normale).


xe sr-list name-label=”Tecmint iSCSI Storage”

Con questo UUID sono state ottenute tutte le informazioni iniziali per configurare questo ospite. Come quasi tutto in XenServer, verrà utilizzato un altro comando "xe" per eseguire il provisioning del nuovo guest.


xe vm-install template=”Debian Wheezy 7.0 (64-bit)” new-name-label="TecmintVM" sr-uuid=bea6caa4-ecab-8509-33a4-2cda2599fb75

L'UUID evidenziato è l'UUID del guest appena fornito. Ci sono un paio di passaggi domestici che possono potenzialmente rendere le cose più facili in futuro. Il primo consiste nel fornire un'etichetta con il nome al VDI appena creato e il secondo nel modificare le specifiche hardware predefinite fornite dal modello.

Per capire perché sarebbe importante dare un nome alla VDI, dai un'occhiata a ciò che il sistema assegnerà automaticamente alla VDI una volta effettuato il provisioning utilizzando i seguenti comandi "xe":


xe vbd-list vm-name-label=TecmintVM – Used to get the VDI UUID
xe vdi-list vbd-uuids=2eac0d98-485a-7c22-216c-caa920b10ea9    [Used to show naming issue]

Un'altra opzione disponibile per raccogliere entrambe le informazioni è il seguente comando:


xe vm-disk-list vm=TecmintVM

La parte in giallo è la preoccupazione. Per molte persone questo problema è minore, ma per scopi domestici è preferibile un nome più descrittivo per tenere traccia dello scopo di questo particolare VDI. Per rinominare questo particolare VDI, è necessario l'UUID nell'output precedente ed è necessario creare un altro comando 'xe'.


xe vdi-param-set uuid=90611915-fb7e-485b-a0a8-31c84a59b9d8 name-label="TecmintVM Disk 0 VDI"
xe vm-disk-list vm=TecmintVM

Potrebbe sembrare banale da impostare, ma per esperienza ha evitato un problema serio quando si scollegava un repository di archiviazione da un XenServer e si tentava di collegarlo a un altro XenServer. In questo particolare scenario, un backup dei metadati di tutte le informazioni del guest non è stato ripristinabile sul nuovo XenServer e fortunatamente nominando il VDI su ciascuno dei guest, la corretta mappatura del guest sul suo VDI è stata eseguita semplicemente dal etichetta con il nome.

Il prossimo passo di questo articolo è fornire a questo particolare ospite più risorse. Come previsto, questo guest avrà solo circa 256 MiB (Mebibyte) di memoria. Per la maggior parte degli ospiti questo non è sufficiente, quindi è utile sapere come aumentare la memoria disponibile di un ospite. Come per qualsiasi cosa in XenServer, ciò può essere ottenuto con i comandi "xe".


xe vm-param-list uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e | grep -i memory

La casella in verde sopra indica che la memoria massima che questo particolare ospite potrebbe mai avere è di circa 256 MiB. A scopo di test questo andrebbe bene, ma per qualsiasi tipo di sistema ad uso intensivo si rivelerebbe insufficiente.

Per modificare questo valore e consentire al guest di accedere a più RAM, è possibile eseguire un semplice comando "xe" con il guest spento. In questo esempio, la quantità di RAM da fornire a questa macchina sarà rappresentata in byte ma equivarrà a 2 Gibibyte di RAM.


xe vm-memory-limits-set dynamic-max=2147483648 dynamic-min=2147483648 static-max=2147483648 static-min=2147483648 name-label=TecmintVM

Nota che questo riserverà sempre due GiB di RAM per questo ospite.

Ora questo particolare ospite è pronto per avere un sistema operativo installato. Dall'articolo precedente sui repository di archiviazione, è stata aggiunta una condivisione Samba a questo XenServer per archiviare i file di installazione ISO. Ciò può essere confermato con il seguente comando 'xe':


xe sr-list name-label=Remote\ ISO\ Library\ on:\ //<servername>/ISO

Assicurati di sostituire <servername> con il nome del server Samba appropriato per l'ambiente in cui viene eseguita questa configurazione. Una volta confermato che XenServer vede il repository di archiviazione ISO, è necessario aggiungere un CD-ROM virtuale al guest per avviare il file ISO. Questa guida presuppone che l'ISO di Debian Net Installer esista nel repository di archiviazione ISO.


xe cd-list | grep debian


xe vm-cd-add vm=TecmintVM cd-name=debian-8-netinst.iso device=3
xe vbd-list vm-name-label=TecmintVM userdevice=3

I comandi precedenti elencano innanzitutto il nome dell'ISO Debian. Il comando successivo aggiungerà un dispositivo CD-ROM virtuale al guest TecmintVM e gli assegnerà l'ID dispositivo di 3.

Il terzo comando viene utilizzato per determinare l'UUID del CD-ROM appena aggiunto per continuare a configurare il dispositivo per avviare l'ISO Debian.

Il passaggio successivo consiste nel rendere avviabile il CD-ROM e nel dare istruzioni al guest di installare un sistema operativo dal CD-ROM.


xe vbd-param-set uuid=3836851f-928e-599f-dc3b-3d8d8879dd18 bootable=true
xe vm-param-set uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e other-config:install-repository=cdrom

Il primo comando sopra imposta il CD-ROM come avviabile utilizzando il suo UUID evidenziato in verde nella schermata sopra. Il secondo comando indica al guest di utilizzare il CD-ROM come metodo per installare il sistema operativo. L'UUID per l'ospite Tecmint è evidenziato in giallo nello screenshot qui sopra.

L'ultimo passaggio nella configurazione dell'ospite è collegare un'interfaccia di rete virtuale (VIF). Ciò è particolarmente importante per questo metodo di installazione poiché viene utilizzato il programma di installazione Debian Network e sarà necessario estrarre i pacchetti dai repository Debian.

Ripensando all'articolo sulla rete XenServer, per questo ospite è già stata creata una VLAN speciale ed era VLAN 10. Utilizzando 'xe' è possibile creare e assegnare a questo ospite l'interfaccia di rete necessaria.


xe network-list name-description="Tecmint test VLAN 10"
xe vif-create vm-uuid=6eab5bdd-c277-e55d-0363-dcfd186c8e8e network-uuid=cfe987f0-b37c-dbd7-39be-36e7bfd94cef device=0

Il primo comando viene utilizzato per ottenere l'UUID della rete creata per questo ospite. Il comando successivo viene utilizzato per creare un adattatore di rete per l'ospite e collegare l'adattatore di rete alla rete corretta.

Congratulazioni! A questo punto, la macchina virtuale è pronta per l'avvio e l'installazione! Per avviare l'ospite, esegui il seguente comando "xe".


xe vm-start name-label=TecmintVM

Se il terminale non produce errori, il guest è stato avviato correttamente. Il corretto avvio del guest può essere confermato con il seguente comando 'xe':


xe vm-list name-label=TecmintVM

Ora la grande domanda. Come accedere al programma di installazione? Questa è una domanda valida. Il metodo approvato da Citrix consiste nell'utilizzare XenCenter. Il problema qui è che XenCenter non funziona su Linux! Esiste quindi una soluzione alternativa in modo che gli utenti non debbano creare una stazione Windows speciale semplicemente per accedere alla console di un guest in esecuzione.

Questo processo prevede la creazione di un tunnel SSH dal computer Linux all'host XenServer e quindi il port forwarding di una connessione VNC attraverso quel tunnel. È molto intelligente e funziona meravigliosamente, ma questo metodo presuppone che l'utente possa accedere a XenServer tramite SSH.

Il primo passo è determinare il numero di dominio dell'ospite su XenServer. Questo viene fatto attraverso l'uso di diversi comandi.


xe vm-list params=dom-id name-label=TecmintVM
xenstore-read /local/domain/1/console/vnc-port

L'ordine di questi comandi è importante! Il primo comando restituirà un numero necessario per il secondo comando.

L'output di entrambi i comandi è importante. Il primo output indica l'ID dominio in cui è in esecuzione l'ospite; 1 in questo caso. Il comando successivo richiede quel numero per determinare la porta VNC per la sessione della console ospite. L'output di questo comando fornisce la porta VNC che può essere utilizzata per connettersi all'uscita video di questo particolare guest.

Una volta ottenute le informazioni di cui sopra, è ora di passare a una stazione Linux e connettersi a XenServer per visualizzare la sessione della console di questo ospite. Per fare ciò, verrà creato un tunnel SSH e verrà impostato il port forwarding per dirigere una connessione VNC locale attraverso il tunnel SSH. Questa connessione verrà effettuata da una workstation Linux Mint 17.2 ma dovrebbe essere simile per altre distribuzioni.

Il primo passo è assicurarsi che il client OpenSSH e xtightnvcviewer siano installati sull'host Linux. In Linux Mint questo può essere ottenuto con il seguente comando:


sudo apt-get install openssh-client xtightvncviewer

Questo comando installerà le utilità necessarie. Il passaggio successivo consiste nel creare un tunnel SSH per l'host XenServer e impostare il port forwarding alla porta VNC determinata in precedenza sull'host XenServer (5902).


ssh -L <any_port>:localhost:<VM_Port_Above> root@<server> -N
ssh -L 5902:localhost:5902 root@<servername> -N

L'opzione '-L' dice a ssh di eseguire il port forwarding. La prima porta può essere qualsiasi porta superiore a 1024 che non è in uso sulla macchina Linux Mint. Il 'localhost:5902' indica che il traffico deve essere inoltrato alla porta localhost remota 5902 in questo caso cioè la porta XenServer VNC del TecmintVM forte>.

'root@' sono le credenziali di accesso a SSH nell'host XenServer. Infine la '-N' dice a SSH di aprire semplicemente una connessione di port forwarding. Utilizzando il comando "lsof" il tunnel può essere visualizzato nell'output.


sudo lsof -i | grep 5902

Qui il tunnel è configurato e in ascolto delle connessioni. Ora è il momento di aprire una connessione VNC al guest su XenServer. L'utilità installata è 'xvncviewer' e la connessione ssh per inoltrare il traffico a XenServer è in ascolto su 'localhost:5902' in modo che sia possibile creare il comando appropriato.


xvncviewer localhost:5902

Ecco! È presente la sessione della console TecmintVM che esegue Debian Network Installer in attesa dell'inizio del processo di installazione. A questo punto l'installazione procede come qualsiasi altra installazione Debian.

Fino a questo punto, tutto con XenServer è stato fatto tramite l'interfaccia a riga di comando (CLI). Sebbene molti utenti Linux apprezzino la CLI, esistono utilità per semplificare il processo di gestione degli host e dei pool XenServer. Il prossimo articolo di questa serie riguarderà l'installazione di questi strumenti per gli utenti che desiderano utilizzare sistemi grafici anziché CLI.