Consulenze presso Eunet srl, via dell'Artigianato 15, 09122 Cagliari 070 753609 Lun - Ven 08:30-13:00 / 14.30-17.00

VMware VMotion e Storage VMotion

Con VMware Vmotion è possibile spostare le macchine virtuali da un host ESX ad un altro, senza necessità di spegnere la macchine virtuali stesse e senza interruzioni di servizio. VMware vMotion necessita di un’infrastruttura vSphere completa di storage condiviso, come sistemi Fibre Channel, SAN iSCSI o NAS (Network Attached Storage), con i file delle Virtual Machines su partizioni VMFS. Più precisamente, una macchina virtuale può essere spostata, tramite vMotion, da un host sorgente ad uno di destinazione solo se questi vedono la stessa LUN contenente i files della VM stessa. Il file system cluster VMFS (Virtual Machine File System) di VMware consente infatti a più server ESX di accedere in contemporanea alla stessa macchina virtuale (ossia ai file che costituiscono la VM). Pertanto la macchina virtuale continua ad essere ospitata sulla stessa LUN, vMotion semplicemente "incarica" un altro host di mantenere in esecuzione la macchina virtuale, fornendo le risorse necessarie (principalmente memoria e cpu).

VMware Storage VMotion, a differenza del semplice vMotion, è in grado di spostare fisicamente le VM da uno storage ad un altro. Consente di migrare in tempo reale i dischi delle macchine virtuali senza causare interruzioni per gli utenti o perdite di servizi. In sostanza pemette di spostare le macchine virtuali da uno storage ad un altro "a caldo", senza spegnere le VM.

Prima di spostare i file della macchina virtuale su un altro storage, viene spostata la "home directory" della macchina virtuale nella nuova posizione. La home directory contiene i meta-dati della macchina virtuale (configurazione, swap, file di log). Dopo aver spostato la home directory, Storage VMotion copia tutto il contenuto del disco virtuale della VM sullo storage di destinazione , sfruttando un meccanismo di "changed block tracking", ossia tracciamento delle modifiche che avvengono durante il processo di migrazione, al fine di mantenere l'integrità dei dati. Al termine della copia, viene interrogato il modulo di tracciamento per determinare quali blocchi del disco siano stati scritti/modificati durante il primo step, quindi viene eseguito un secondo passaggio della migrazione per sincronizzare i dati in base alle modifiche rilevate.

Appena il processo è stato completato, la macchina virtuale viene sospesa e riattivata immediatamente, in modo da poter essere eseguita dalla nuova posizione. Infine, i files della VM presenti nello storage sorgente vengono eliminati.

 

Configurazione del vMotion e dello Storage vMotion

Gli esempi proposti si basano su una struttura vSphere con SAN iSCSI, creata negli articoli precedenti (vedere Laboratorio vSphere su VMware Workstation).

Devono essere soddisfati i punti seguenti:

  1. disponibilità di una SAN iSCSI (vedere SAN iSCSI con Openfiler);
  2. collegamento degli hosts ESX/ESXi alla SAN iSCSI, ed in particolare le LUN devono essere presenti come datastore su tutti gli host ESX/ESXi (vedere VMware ESX su SAN iSCSI);
  3. su ogni host ESX/ESXi, deve esistere un'interfaccia VMkernel abilitata al vMotion.

Quando dobbiamo gestire traffico per servizi iSCSI, NFS, vMotion, Fault Tolerance  e Management Network (in generale tutto il traffico diverso da quello proprio delle macchine virtuali), è necessario utilizzare connessioni VMkernel. Una connessione VMkernel collega lo strato più basso di VMware ESX/ESXi alla rete locale tramite UpLink sulle interfacce di rete fisiche. Su VMware ESX, è necessario creare una porta VMkernel ed abilitarla al vMotion. Su VMware ESXi, esiste in maniera predefinita un'interfaccia VMkernel che fornisce la connettività per l'host stesso (mentre su ESX il management è permesso grazie ad una Service Console Port): su tale interfaccia è sufficiente abilitare la funzionalità vMotion.

Proseguendo i nostri esempi su VMware ESXi, per ognuno degli host disponibili:

1) andare su Configuration/Networking e selezionare la voce "Properties"

2) modificare l'unica interfaccia VMkernel presente, ossia quella impiegata per il management, selezionando la voce "Edit"

3) abilitare la funzione vMotion

Creiamo ora una nuova macchina virtuale all'interno di un nodo ESXi, avendo cura di memorizzarla all'interno di un datastore condiviso. In alternativa, possiamo procedere con la macchina virtuale creata ed inserita nel cluster nel precedente articolo (Cluster HA con VMware vSphere). Sia chiaro che vMotion e Storage vMotion non richiedono l'esistenza di un cluster HA per funzionare. Negli esempi che seguono, la macchina virtuale con Ubuntu Server (IP 192.168.108.3) è registrata sull'host ESXi nodo A (IP 192.168.108.10) e memorizzata all'interno del datastore iSCSI_lun0, come evidenziato nell'immagine sottostante:

vmotion 4

 

Utilizzo del vMotion

1) Tasto destro sulla macchina virtuale; dal menu contestuale selezionare la voce "Migrate"

2) Selezioniamo l'opzione "Change host".

3) Selezioniamo il secondo host ESXi con IP 192.168.108.20

4) Accettiamo le selezioni raccomandate e andiamo avanti.

5) Cliccando su Finish verrà avviato il trasferimento della VM dall'host A all'host B.

6) Durante il trasferimento, è andato perso un solo ping.

7) Una volta concluso il trasferimento, possiamo osservare che la VM è ora ospitata sul secondo host. Il datastore è ovviamente lo stesso (iSCSI_lun0).

 

 

Utilizzo dello Storage vMotion

1) Tasto destro sulla macchina virtuale; dal menu contestuale, selezionare la voce "Migrate"

2) Selezioniamo l'opzione "Change datastore". In questo caso la VM (o meglio i files che la compongono) sarà fisicamente spostata da un datastore ad un altro.

3) Selezioniamo la seconda lun iSCSI (iSCSI_lun1)

4) In questa schermata possiamo decidere se mantenere il formato del disco così come si presenta all'origine, oppure effettuare al volo una conversione. Le possibilità sono 2:

Thin provisioned format: rende i dischi "dinamici"; in sostanza la dimensione massima del disco non viene allocata interamente sullo storage. Lo spazio occupato sarà quello effettivamente occupato dai dati presenti nella VM.

Thick format: sullo storage viene allocato uno spazio corrispondente alla dimensione del disco (full size).

5) Cliccando su Finish verrà avviato lo spostamento della VM da iSCSI_lun0 a iSCSI_lun1.

6) Durante il trasferimento, è andato perso un solo ping.

7) Una volta concluso il trasferimento, possiamo osservare che la VM è ospitata sempre sul secondo host, ma il datastore è cambiato da iSCSI_lun0 a iSCSI_lun1.

(0 Votes)