VMware Workstation su Linux host: come ricompilare i moduli da riga di comando

Primo post del 2016!

Perdonate la lunga assenza, ma sono stato lontano dal blog causa lavoro | mancanza di ispirazione a scrivere | vita privata.
Riprendo, spero in maniera più assidua, con un piccolo appunto: come ricompilare, su VMware Workstation in un host Linux, i moduli (vmnet, vmbridge, vmmon) VMware da riga di comando, cosa utile quando viene aggiornato il kernel.

Collegandosi come root è sufficiente lanciare:

root@altair:/home/albertoscotti# vmware-modconfig --install-all --console

Al termine della breve compilazione, se tutto è andato a buon fine, i servizi di VMware verranno avviati senza errori.

 

Ubuntu 15.10 e VMware Workstation 12: risolvere il problema del mancato avvio del programma

Su Ubuntu 15.10 ho riscontrato un curioso bug di VMware Workstation 12: nonostante l’installazione avvenga correttamente, semplicemente non si avvia 😀

Il problema è causato dal fatto che in Ubuntu 15.10 non sono referenziate in path alcune librerie necessarie a VMware.
Per risolvere il problema è sufficiente:

  1. editare il file /usr/bin/vmware (richiesto diritti di root)
  2. creare una nuova linea dopo la linea 17 (dopo export PRODUCT_NAME="VMware Workstation")
  3. aggiungere: export LD_LIBRARY_PATH=/usr/lib/vmware/lib/libglibmm-2.4.so.1/:$LD_LIBRARY_PATH
  4. salvare

VMware finalmente si avvierà correttamente.

 

CentOS 7: come installare VMware Workstation 10 e risolvere il problema di compilazione di “vmnet”

E’ possibile installare VMware Workstation 10 su CentOS 7, pur non essendo al momento una distribuzione supportata ufficialmente, a patto di installare un paio di package extra e smanettare un po’ con i sorgenti del modulo vmnet di VMware.

In particolare, anche se l’installazione di VMware viene completata correttamente, non è possibile avviare il programma poiché il modulo kernel “vmnet”, necessario per il funzionamento della virtual network, non viene compilato a causa di una incompatibilità tra i sorgenti di vmnet ed i sorgenti del kernel.

Per installare WMware Workstation su CentOS 7 dobbiamo (come root):

  1. aggiornare il sistema:
    yum update kernel
  2. riavviare
  3. installare i sorgenti del kernel e l’ambiente base per compilare:
    yum install gcc kernel-headers kernel-devel
  4. installare VMware

Completata l’installazione, avviando VMware partirà il task di compilazione del modulo vmnet da inserire nel kernel, ma la compilazione fallirà e verrà creato un log con i dettagli dell’errore.

A questo punto viene il bello: bisognerà editare un file dei sorgenti di vmnet per correggere un paio di errori:

  1. andare in:
    /usr/lib/vmware/modules/source
  2. scompattare l’archivio dei sorgenti di vmnet:
    tar -xvf vmnet.tar
  3. portarsi nella directory estratta:
    cd vmnet-only
  4. editare il file filter.c:
    vi filter.c
  5. alle righe 206 e 259 modificare la stringa:
    #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
    in
    #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 0, 0)
  6. tornare in:
    cd /usr/lib/vmware/modules/source
  7. aggiornare l’archivio vmnet.tar con il file modificato:
    tar -uvf vmnet.tar vmnet-only

Con questa semplice modifica ora sarà possibile avviare VMware Workstation e far compilare correttamente vmnet.

 

Windows7: ottimizzare il sistema operativo per utilizzo in un virtualizzatore (GuestVM)

Una serie di consigli su come ottimizzare Windows7 per essere utilizzato come GuestVM: un sistema operativo ottimizzato è più veloce e responsivo, occupa meno risorse e ci permette di lavorare più efficacemente.

  • disabilitare i servizi di Windows non necessari;
  • disinstallare le funzionalità di Windows non necessarie (es. “Componenti TabletPC”);
  • utilizzare il profilo energetico “Prestazioni elevate”: sarà compito del virtualizzatore gestire gli idle-state ed il throttling della vCpu;
  • disattivare la sospensione (Sleep) del sistema operativo: non vogliamo occupare la RAM / HD del nostro host con una VM in sospensione, vero?;
  • disattivare il System Restore e cancellare i punti di ripristino: è nettamente più comodo e flessibile lavorare con le snapshot dell’intera VM, ed in caso di bisogno è molto più veloce ripristinarle;
  • disattivare tutti gli effetti grafici, regolando le impostazioni in modo da ottenere prestazioni migliori;
  • eseguire l’utility Pulitura Disco per rimuovere i file temporanei, i file di backup del Service Pack e di Windows Update;
  •  eseguire l’utility Deframmentazione Disco per consolidare e riorganizzare i file frammentati;
  • disattivare l’esecuzione automatica dell’utility Deframmentazione Disco: non vogliamo che una VM in idle inizi improvvisamente a deframmntare il disco;
  • disattivare il timestamping su filesystem dell’ultimo accesso ai file tramite fsutil con il comando:
    fsutil behavior set disablelastaccess 1
  • aumentare il valore del timeout sugli HD tramite regedit, modificando TimeOutValuea “190” (decimale) in:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Disk
  • aumentare la memoria della scheda video virtuale a 128MB;
  • disabilitare IPv6, a meno che non sia necessario usarlo;

VMware vSphere: come avviare o arrestare le VM remotamente da riga di comando

In situazioni di emergenza, è molto comodo usare SSH (sempre che abbiate precedentemente attivato il servizio) per collegarsi ad un host vSphere ed avviare o arrestare le VM: per fare questo ci viene in aiuto il potente tool vim-cmd.

Per prima cosa enumeriamo tutte le VM presenti sul host ed individuiamo il VMID della VM che ci interessa:

vim-cmd vmsvc/getallvms

Per precauzione verifichiamo lo stato della VM:

vim-cmd vmsvc/power.getstate VMID

Per avviare la VM lanceremo il comando:

vim-cmd vmsvc/power.on VMID

Per arrestare, cioè eseguire uno shutdown “pulito,” la VM (a patto che abbia a bordo i Vmware Tools), lanciare il comando:

vim-cmd vmsvc/power.shutdown VMID

In caso il sistema operativo della VM non risponda più ai comandi di shutdown, è possibile “staccare brutalmente la spina” e terminare la VM con il comando:

vim-cmd vmsvc/power.off VMID

 

VMware vSphere: come installare patch ed aggiornamenti sul hypervisor dalla commandline

La prima cosa da fare prima di installare gli aggiornamenti di vSphere ESX/ESXi è fermare tutte le virtual machine in esecuzione, mettere l’hypervisor in “Maintenance mode” ed attivare il servizio SSH.
Gli update scaricati dal sito di VMware vanno poi copiati sul hypervisor in un datastore / directory a nostra scelta (io uso /var/tmp).
Infine bisogna collegarsi in SSH al hypervisor ed inserire il seguente comando

# esxcli software vib update -d "/vmfs/volumes/Datastore/DirectoryName/Patch.zip"

A questo punto verranno aggiornati tutti i pacchetti necessari e vi verrà chiesto di riavviare l’hypervisor per applicare le modifiche.

VMware vSphere 5.1: come risolvere l’errore “#PF Exception 14 in world 12323:vmast” (PSOD)

Su una delle mie macchine (un HP Proliant) sto avendo numerosi crash di VMware vSphere ESXi 5.1, i temuti Purple Screen of Death (PSOD).
VMware ESXi 5.1, una nuova installazione e non un update dalla versione precedente, crasha con una frequenza quasi giornaliera, segnalando l’errore “#PF Exception 14 in world 12323:vmast“: il server è certificato per supportare ESXi, e con la versione precedente 5.0 non ho mai avuto problemi.
A quanto pare, i crash non sono causati da problemi hardware ma da un bug nel software che verrà fissato da VMware con la Patch 01.

Nel frattempo, è possibile risolvere il problema con un workaround: è sufficiente, infatti, eseguire il seguente comando dalla console ESXi:

esxcli system settings advanced set -o /BufferCache/MinZeroCopyBufferLength -i 512

L’applicazione di questo comando necessita del riavvio del server per attivare le modifiche.

VMware Workstation: un trucchetto per ottimizzare le VM Windows

E’ normale, per me, lavorare con virtual machine contemporaneamente attive sulla mia workstation selfmade, con processore Intel Core i7-2600, 16 GB di ram e svariati TB di disco: pur avendo a disposizione hardware di tutto rispetto, è fondamentale ottimizzare periodicamente le VM per tenerle in buona efficienza ed evitare problemi di performance.

Uno dei problemi più comuni derivato dall’uso di VM che porta a problemi di performance è la frammentazione dei file container che ospitano il file system della VM, siano essi VMDK, VHD, qcow o VDI: prima di deframmentare questi file è prima necessario riorganizzare i dati del disco all’interno della VM seguendo queste linee guida:

  • eseguire la “Pulitura disco”, svuotare il cestino, cancellare i file temporanei;
  • deframmentare il disco: io uso UltraDefrag in modalità “Full optimization” per consolidare i dati;
  • eseguire il tool “sdelete” con opzione “-z” di Windows Sysinternals per cancellare (tecnicamente “scrivere tutti 0”) completamente il contenuto dei cluster marcati come inutilizzati (cioè lo spazio libero su disco);

A questo punto è possibile spegnere la VM ed eseguire la compattazione e la deframmentazione dei file container: in VMware Workstation è possibile farlo dai “Settings” della VM, “Hard disk”, “Utilities”.

 

VMware Workstation 8: come entrare nel BIOS di una VM

Ci sono due cose di VMware Workstation 8 che trovo “stupide”:

  1. l’impossibilità di modificare la sequenza di boot dei device di una VM dal pannello delle impostazione della VM: bisogna avviare la VM ed entrare nel BIOS;
  2. l’impossibilità di modificare qualsiasi parametro di BIOS di una VM: bisogna avviare la VM ed entrare nel BIOS;
  3. il ridottissimo tempo in cui appare a video il BIOS della VM, non appena avviata: è praticamente impossibile entrare nel BIOS sperando di riuscire a premere il tasto corretto.

Come faccio ad entrare nel BIOS di una VM per editarne i parametri (per esempio quelli relativi alla sequenza di boot) ?

Primo modo: nella finestra principale di VMware cliccare su VM > Power > Power on to BIOS
Secondo modo: editare il file VMX (testuale) di configurazione della VM dove vogliamo visualizzare il BIOS ed aggiungere la seguente nuova riga:

bios.bootdelay = 20000

ciò aggiunge un delay di 20 secondi al boot che permette di rimanere nella pagina delle informazioni del POST della VM e, quindi, permette di avere tutto il tempo necessario per premere F2 per entrare nel BIOS