Proudly debugging the system since 1981

Mese: Febbraio 2011

Da VmWare a VirtualBox

Tradizionalmente ho sempre usato vmware, piattaforma storica di virtualizzazione, che offre di tutto e di più. Accelerazione 3D hardware, utilizzo delle estensioni del processore, multicore e multiprocessore, supporto per windows e linux sia come guest che come host … ma … per linux fondamentalmente è una scocciatura perchè non supporta tutti i kernel. Dovendo essere installati dei moduli del kernel questi devono essere compatibili col kernel in uso. Cosa tutt’altro che banale se si usa linux come host. Tant’è che su Kubuntu 10.04 ho dovuto usare una patch non ufficiale fornita dalla community per far andare vmware. E ovviamente dimenticarmi di aggiornare alla 10.10… fortuna che è una LTS.

L’alternativa è virtualBox. Prodotto meno maturo, ma neanche cosi tanto. Il vantaggio è che legge il formato dei dischi di Vmware, quindi in teoria si puo switchare da un prodotto all’altro con la stessa virtual machine.
In teoria, appunto. In pratica no. Perche Vmware usa di default l’ IO APIC mentre virtualbox no. Virtual box si puo configurare per usare questa modalità ma le prestazioni rispetto a vmware sono nell’ordine di 1 a 3. Inoltre la scheda di rete virtuale di virtualbox e vmware ha lo stesso hardware id quindi il sistema operativo guest fa un pò di confusione e continua a cercare di usare i driver di vmware anche se sono stati correttamente installati i driver di virtual box.

Per ottenere un passaggio (quasi) di successo il primo passo è di abilitare l’ IO APIC in virtualbox, far partire la macchina e quindi installare il software addizionale per il sistema operativo guest (windows nel mio caso).
Un bel riavvio e si otterra il classico e comodo mouse integrato tra guest e host, video che si auto ridimensione in base alla finestra e prestazioni in filino migliorate (non molto). Per utilizzare la scheda di rete è necessario aggiornare manualmente il driver passando dalla gestione dell’hardware e selezionare tra quelli compatibili con hardware ovviamente quello di virtualbox.
Un altro riavvio e un controllo sulla buona funzionalità della rete evidenzia comunque che il collegamento virtuale è instaurato a 100Mbit e non a un 1Gbit (probabilmente nella maggior parte dei casi non c’è un impatto significativamente negativo ma in host con un buon hardware alle spalle la comunicazione host-guest potrebbe avvenire a velocità più basse di quanto teoricamente possibile).

A questo punto ci si rende conto come le operazioni di IO su disco siano di una lentezza disarmante e molto ma molto focalizzate sul processore. Come se ogni accelerazione hardware sia completamente inesistente.
Per disabilitare l’ IO APIC bisogna prima dire al sistema operativo guest che le cose cambiano, quindi cambiare la configurazione a mano nell’xml che rappresenta la configurazione di virtualbox, e quindi proteggerlo da scrittura … perche quando si abilita l’IO APIC su VBox pare essere per sempre, nel senso che ogni volta che ricaricate una configurazione con l’opzione disabilitata, questa viene riabilitata in automatico. Per i dettagli : http://ubuntuforums.org/showthread.php?t=1330484

Quindi cosa ne ho guadagnato ?
La libertà di aggiornare alla release successiva, una migliore integrazione della clipboard (su vmware linux fa schifo, funziona una volta su mille), e migliori tempi di congelamento delle VM.

Cosa ho perso ?
Prestazioni, nonostante tutto è ancora parcchio piu lenta … tipo un 50% di tempo in piu a parità di operazione mista IO e CPU Bound (esempio: compilazione) e possibilità di congelare le VM (è vero che è veloce ma se non può scrivere nel file di configurazione che esite una sospensione della macchina, al successivo utilizzo questa verrà ignorata)

Quindi ?
Probabilmente torno a vmware…

© 2024 b0sh.net

Tema di Anders NorenSu ↑