Migrazione P2V di Ubuntu 16.04


In questo articolo vedremo come convertire un sistema Linux Ubuntu 16.04 server installato direttamente sull’hardware in una virtual machine che andrà a girare su un host VMware ESXi.

Tale conversione, ossia la migrazione da un sistema fisico ad uno virtuale, prende il nome di P2V (Physical to Virtual).

Un sistema Ubuntu 16.04 può essere facilmente spostato su un virtualizzatore in relativamente poco tempo: la migrazione del sistema può essere fatta con il server Ubuntu acceso fino al completamento della conversione. Poi il vecchio server Ubuntu può essere spento e la nuova virtual machine accesa in pochi minuti.

Non ci sono particolari vincoli o restizioni nella migrazione P2V. E’ conveniente però fermare eventuali database sul server Ubuntu e servizi non essenziali.

Oltre ad un host ESXi, con un datastore VMware con sufficiente spazio per ospitare la virtual machine, ci serve un PC sul quale installare VMware VCenter Converter Standalone.

VMware VCenter Converter Standalone può essere scaricato gratuitamente da qui: https://my.vmware.com/group/vmware/details?downloadGroup=CONV62&productId=701&rPId=20180#, in questo articolo si fa riferimento alla versione 6.2.0.1 di VMware VCenter Converter Standalone.

Note: se il vostro sistema Ubuntu ha un kernel molto aggiornato, installate l’ultima versione disponibile altrimenti potreste incappare in incompatibiltà.

Questo software può essere installato sia su Linux sia su Windows. E’ importante, per semplificare le cose, che il PC sia sulla stessa LAN oppure che abbia completa visibilità sia dell’host ESXi sia del server Ubuntu.

Lato Ubuntu, prima di partire bisogna predisporre di un account Linux. E’ possibile utilizzare l’account di root ma deve essere abilitato a collegarsi tramite SSH oppure si può usare un utente sudo purchè possa eseguire tutti i comandi di sudo senza dover inserire una password.

Per abilitare quest’ultima cosa è sufficiente aggiungere la seguente riga “username ALL=(ALL) NOPASSWD: ALL” dove username è il nome dell’utente sudo nel file /etc/sudoers; il tutto usando l’editor visudo.

$ sudo visudo

Fortunatamente tale riga può essere rimossa al termine della migrazione p2v.

Ora per migrare P2V il sistema Ubuntu 16.04, basta avviare VMware VCenter Converter Standalone e cliccare su “Convert machine”

Apparirà la prima finestra della procedura guidata che ci invita a selezionare Remote Linux machine dal primo menù a tendina.

Poi di indicare l’indirizzo IP oppure l’hostname del server Ubuntu 18.04 da virtualizzare, nonchè nome utente e password. Queste possono essere le credenziali di root oppure dell’utente sudo predisposto prima.

Viene chiesto di verificare che l’impronta del server Ubuntu sia quella che ci si aspetti, confermando con YES, è possibile andare oltre.

Se l’utente inserito è corretto, viene chiesto di immettere le informazioni necessarie per collegarsi all’host ESXi, è sufficiente inserire l’IP, un utente amministrativo come root e la sua password.

Viene chiesto di dare un nome alla virtual machine di destinazione, di default viene preso l’hostname del server Ubuntu. E’ possibile cambiarlo. Nell’inventory sono presenti tutte le VM che sono già ospitate sull’host ESXi.

Viene data la possibilità di selezionare un datastore: scegliamo il datastore con spazio adeguato alle dimensioni della virtual machine che sarà creata durante il P2V del server Ubuntu.

In seguito vengono mostrati i dettagli di come verranno fatte le VM. In particolare si nota che lo spazio che sarà occupato dalla virtual machine è di circa 5 GB. Queste informazioni possono essere accomodate alle proprie necessità, basta cliccare sulla voce Edit.

Andando avanti, mantenendo inalterate le impostazioni precedenti, avremmo comunque un riepilogo dopo il quale partirà il job di P2V di Ubuntu.

Inizialmente la stima può essere anche molto maggiore del tempo effettivamente necessario; la prima parte prevedere la creazione della virtual machine nuova sull’host e poi parte la migrazione di Ubuntu.

Durante la migrazione possiamo vedere come vengono aggiornati dei log.

Nella fase di conversione della macchina fisica a virtuale, sul server Ubuntu di origine vengono lanciati dei comandi di copia e processi ssh: tar e sshd.

Al termine dell’operazione di P2V è possibile spegnere il server fisico e accendere la virtual machine. Ricordiamoci di rimuovere, se l’abbiamo aggiunta, la riga nel file sudoers.

Ecco il sistema, su virtual machine, funzionante!

Risoluzione errori

Unable to query the live Linux source machine. Make sure that you can run sudo without entering a password when logged in to the source machine over SSH as ‘vale’.

L’utente vale, benchè abbia diritti di sudo, richiede la password via SSH. Disabilitarla inserendo la riga “vale ALL=(ALL) NOPASSWD: ALL” nel file sudoers.

FAILED: An error occurred during the conversion: ‘GrubInstaller::InstallGrub: /usr/lib/vmware-converter/installGrub.sh failed with return code: 127, and message: FATAL: kernel too old Error running vmware-updateGrub.sh through chroot into /mnt/p2v-src-root Command:

chroot “/mnt/p2v-src-root” /vmware-updateGrub.sh “GRUB2” “(hd0)” “(hd0,1)” /vmware-device.map “grub2-install” ‘

Questo errore compare attorno al 97-98% della fase di conversione della virtual machine e ciò è dovuto a una combinazione di kernel/grub non correttamente riconosciuta da VMware Converter, in questo caso Ubuntu 18.04. Questo errore per esempio si verifica con la combinazione Grub 2.02-2ubuntu8.14 e Linux 4.15.0-74-generic. Al momento non è risolvibile e Ubuntu 18.04 non funziona con questa versione di Converter.

Kernel Panic – not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Kernel panic della VM Ubuntu 16.04

Al primo avvio (e ai successivi) la VM virtualizzata Ubuntu 16.04 continua ad andare in kernel panic. Per risolvere il problema, collegare il DVD/iso alla VM e avviare in modalità ripristino, ossia scegliendo la voce “Ripristina un sistema danneggiato”.

Se Ubuntu 16.04 era stato installato con le impostazioni di default (LVM) selezionare il filesystem di root che corrisponde al logical volume che termina con la parola root.

Inserire i comandi che compaioni sotto:

update-initramfs -u
update-grub
exit

Dopo exit, scegliere di riavviare il sistema.

Rimuovere il DVD/iso e avviare la virtual machine. Ora dovrebbe essere possibile collegarsi ad Ubuntu.

Lascia un commento

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