P2V di CentOS 7 su VMware

In un precedente articolo abbiamo visto come trasformare un’installazione di Ubuntu su hardware reale in una virtual machine da caricare su un host VMware ESXi. In questo, invece, vediamo come virtualizzare, ossia fare P2V, di un sistema CentOS 7 su VMware.

La procedura è analoga a quella di Ubuntu, o forse è ancora più semplice.

Basta installare VMware vCenter Converter Standalone, il software messo a disposizione in maniera gratuita da VMware, che può essere scaricato gratuitamente da qui: https://my.vmware.com/group/vmware/details?downloadGroup=CONV62&productId=701&rPId=20180#, noi facciamo riferimento alla versione 6.2.0.1.

Il tool può essere installato su Linux o su Windows. Se non si dispone di una GUI sul proprio server CentOS è conveniente installare VMware vCenter Converter su un portatile o su una workstation con interfaccia grafica.

La virtualizzazione P2V di CentOS viene fatta a sistema operativo acceso, conviene però fermare applicativi e database presenti sulla macchina. La versione 6.2.0.1 del Converter supporta tutte le versioni di CentOS 6 e le versioni CentOS 7.0, 7.1, 7.2, 7.3, 7.4, 7.5 (64-bit), non la 7.6 e successive; in questi casi è possibile fare P2V su CentOS però ci sono delle cose da fare dopo aver trasformato il sistema in virtual machine.

Quindi aprendo il tool di conversione, lanciare il comando Convert machine e selezionare come Source Type “Powered on” e poi “Remote Linux Machine”. Indicare l’indirizzo IP o l’hostname del server CentOS, immettere l’username root e la sua password.

Indicare i parametri dell’host ESXi sul quale importare la nuova virtual machine.

Indicare il nome con cui verrà chiamata la virtual machine sul host ESXi. Se sono presenti altre VM sull’host, essere verranno elencate.

Se sono presenti più datastore sull’host ESXi, selezionare quello con spazio sufficiente o quello desiderato.

In seguito apparirà un riepilogo delle caratteristiche della futura VM.

Cliccando su Finish nella schermata precedente comincia subito il P2V di CentOS 7.

Il tempo necessario alla conversione dipende da diversi fattori tra i quali la banda e la dimensione della VM. In questo caso la trasformazione in virtual machine di CentOS è stata rapida.

Ora è possibile spegnere il server fisico con CentOS e accendere la virtual machine.

Risoluzione degli errori

All’avvio del sistema virtualizzato compare questa schermata “error: can’t find command ‘:’.”

E’ sufficiente premere INVIO alcune volte in modo che il sistema proceda con l’avvio.

Una volta che il sistema è avviato lanciare come utente root i seguenti comandi:

sed -i '/^:/d' /etc/grub2.cfg
sed -i '/^:/d' /boot/grub2/grub.cfg
grub2-mkconfig -o /boot/grub2/grub.cfg

Riavviare il sistema.

Questa anomalia si verifica se si utilizza una versione non supportata es. CentOS 7.7 da VMware Converter. In questo caso i file con la configurazione del bootloader Grub2 risultano “rovinati” da un errore: molte righe cominciano con il carattere due punti. Questi vanno eliminati e la configurazione rigenerata.

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.