virtualizzazione: virtual pc vs virtualbox vs virtual server vs vmware server vs parallels workstation
Pubblicato da Alessio Margutta su 25 Dicembre 2008
Ci avevo già provato tempo fa, sul vecchio PC, tanto per vedere un sito web che stavo sviluppando con Explorer 6 (io uso il 7) e poi con un paio di browser sotto Linux. Perché d’accordo che scrivo come standard comanda, ma fare una prova non guasta.
Siccome adesso ho un nuovo gioiello, non ho resistito alla tentazione di provare a fare girare un po’ di macchinine virtuali. Tanto più che il Phenom supporta AMD-V (ex pacifica), vale a dire la virtualizzazione a livello di hardware.
Intanto ho scoperto che non basta il processore adatto (con estensioni AMD-V o I-VT per AMD e Intel rispettivamente), se la scheda madre non fa il suo dovere. E la mia ASUS M3N-HD/HDMI, anche con il BIOS più recente, non lo fa. Cioè, dice di farlo. C’è pure un’opzione nel BIOS; ma che sia attiva o no lascia abbastanza indifferente il programmino di verifica dell’AMD, scaricabile qui.

AMD Virtualization™ Technology and Microsoft® Hyper-V™ System Compatibility Check Utility
A parte la delusione, poco male, perché non avevo comunque intenzione di lasciare girare i SO sotto la regia di un ipervisore. Intanto perché non avevo voglia di reinstallare tutto quanto. Poi perché dubito che le prestazioni mi renderebbero felice. E soprattutto perché niente accelerazione grafica e quindi niente Urban Terror. Uno schemino – rubato alla vmware – per chi non conoscesse la differenza tra una soluzione host-based e una con ipervisore o bare metal che dir si voglia:

Virtualizzazione host based in confronto alla bare metal.
Faccio solo ancora presente che per quanto ne so, la vmware – che è tuttora leader indiscussa di questa tecnologia – anche nelle soluzioni con ipervisore come ESX Server non si serve delle estensioni a livello hardware dei nuovi processori AMD e Intel, ma implementa il tutto in software con driver dedicati. Se interessa, ESXi è gratis. Idem l’Hyper-V della Microsoft; e XEN ça va sans dire. Tenere a mente tuttavia che si tratta dell’istallazione di un sistema operativo vero e proprio, per quanto piccolo e dedicato a fare girare altri sistemi operativi. Così a naso, senza averli provati, direi che il migliore in termini di scalabilità è ESX, che però è abbastanza schifiltoso quanto all’hardware, almeno stando alla lista dell’hardware certificato: dubito insomma che girerebbe su un PC nuovo preso a caso. Probabilmente minori problemi di compatibilità li dà l’Hyper-V: dovrebbe essere veloce almeno quanto l’ESX; certamente non così scalabile e amministrabile: non è capace ad esempio di effetti speciali come trasportare al volo una macchina virtuale da un server all’altro o di soluzioni per alta disponibilità: tipo si inchioda un server fisico e le macchine virtuali vengono fatte ripartire automaticamente su un altro server. Ma per quanto carine, sono funzioni queste che hanno senso solo in un’azienda piuttosto grande e l’infrastruttura va senz’altro pianificata per bene e messa su con un po’ di testa perché vmware è – ripeto – piuttosto capriccioso quanto all’hardware. Insomma, per un datacenter andrei per vmware, per una decina di server mi orienterei su Microsoft. XEN come quasi tutto il software open-source… mah funzionerà senz’altro. Più o meno bene. Ma se uno non è un masochista se ne tiene alla larga. Ci sarebbe anche VirtualIron, che non ho preso in considerazione per quanto non se ne legga male, perché al momento non ha versioni free.
Insomma, lasciato da parte l’ipervisore, ho provato con le soluzioni host-based, che girano cioè su un sistema operativo preinstallato. Nel mio caso Win XP SP3. Già che ci siamo, qualche indicazione sull’ambiente: processore Phenom X4 9850 2,5 GHz, 2 GB RAM, 2 HD SATA; mi sono premurato di mettere i volumi virtuali su un disco fisico diverso da quello di sistema di Windows.
In effetti il collo di bottiglia di tutte queste macchine virtuali mi sembra essere proprio l’accesso al disco. E’ decisamente più lento: la differenza la si nota immediatamente lanciando un’applicazione e poi rilanciandola, dove la seconda volta il SO virtuale va a ripescare i dati dalla sua cache. Immagino dipenda sia da come il programma di virtualizzazione accede al disco – vale a dire necessariamente attraverso il file system del sistema operativo - sia da quali dispositivi il programma di virtualizzazione mostra al SO operativo virtuale: intendo dire che se la macchina virtuale installa un HD IDE in PIO mode, le prestazioni saranno necessariamente misere. Ovviamente anche l’HD sottostante gioca un ruolo, ma ripeto che i miei dischi virtuali erano su un disco fisico differente e penso quindi di aver fatto tutto il possibile dato l’hardware a disposizione.
Neppure ho provato ad ottimizzare più di tanto: ho preso i vari programmi di virtualizzazione e – settata le memoria, hard disk, NIC e altro hardware virtuale – ho semplicemente provato a installare varie macchine virtuali. Mah, che dire: cominciamo subito ad eliminare parallels workstation: sapevo che è la soluzione standard per i Mac; c’è pure la versione per Windows, di cui si può scaricare una versione di prova per 15 giorni. E’ l’unica applicazione che da me si è inchiodata. Sarà stato un caso, non voglio dire, ma non mi sembra offra niente di più di tutte le altre alternative, che sono e restano gratis, anche dopo il periodo di prova. Scartiamola subito quindi.
Sull’installazione non mi dilungo: tenete solo presente che mentre con virtualbox e vmware server ho installato le macchine virtuali senza problema alcuno, per il virtual PC e il virtual server della Microsoft è spesso necessario aggiungere un qualche parametro al boot di Linux, sia per l’installazione vera e propria che in seguito sotto /boot/grub/menu.lst se, a installazione ultimata, la macchina dovesse avere problemi. I soliti noti sono il mouse (i8042.noloop), la grafica (vga=791), noreplace-paravirt. In generale due rogne sono la risoluzione, problema che si risolve editando /etc/X11/xorg.conf e la scheda audio. Potete sbizzarrirvi oppure dare un’occhiata sulla rete dove si trova più di una guida su come fare. La scheda audio è davvero una rottura quale che sia la soluzione di virtualizzazione utilizzata: spesso e volentieri non c’è verso di farla riconoscere. Sì che parliamo di una SB 16 per virtual PC e a scelta di una SB16 o di una ICH AC97 per VirtualBox: insomma hardware piuttosto comune. Eppure, anche quando tutto fila liscio, la scheda audio virtuale si resetta spesso e volentieri, gracchia più che emettere suoni e e la qualità del suono è orribile. Unica lodevole eccezione, vmware, dove la scheda viene riconosciuta senza problemi e dà un suono limpido. Per quelli veramente pigri, consiglio di dare un’occhiata al vmware player: non permette l’installazione di nuove macchine, ma l’uso di macchine già pronte, che si trovano in tutte le salse sul sito della vmware.

OpenSuse 11.1 sotto vmware server
Le funzioni offerte dalle varie soluzioni sono abbastanza simili: a quelle Microsoft manca il supporto per l’USB, ma – pur presente nelle soluzioni concorrenti – non è così facile da attivare e di fatto non funziona come Dio comanda: chiavetta dentro e via. Comunque funziona. Idem dicasi per spostare i file tra un sistema e l’altro con drag&drop. Idem pure per varie estensioni (ad esempio le Virtual Machine Additions for Linux per Virtual Server o VirtualBox Guest Addition) che promettono – oltre a una integrazione più fluida tra host e macchina virtuale – prestazioni migliori per quanto attiene la grafica. Insomma. Lungi da me dire che non sia possibile. Ma quando ho provato ad esempio con OpenSuse installata di fresco, salta fuori che manca il compilatore. Che ovviamente è installato. Boh. Non sarà registrato. Ma vabbè… tipico Linux. Non l’ho più toccato da almeno cinque anni. E dopo cinque anni lo ritrovo tale e quale: sempre la stessa merda. Non è possibile che serva più di click – acconsento – per installare un plug-in nel browser. Per il flash mi sono sbattuto un attimo. Per queste Virtual Box addition non ne ho davvero voglia. Che si fotta linux!

tipico Linux
Che poi io sono pigro; ma fino ad un certo punto. Provare roba nuova – come ad esempio un po’ virtualizzazione – mi piace e mi interessa. Avessi l’hardware adatto e un PC di riserva, proverei anche a installare un ipervisore. Ma risolvere puzzle, da quindici anni sempre gli stessi; sempre le stesse menate con l’hardware; con i driver, con i programmini. Basta! Non se ne può più. D’altronde non so quanto siano attendibili questi dati, ma mi sembrano credibili e Windows – nelle sue varie versioni – equipaggia tuttora circa il 90% delle macchine. Mac OS circa il 9%. Il restante 1% se lo dividono tutti gli altri sistemi operativi, tra cui Linux in tutti i suoi sapori. Ridicolo. Linux cammina bene e più che rappresentare il futuro è effettivamente oggigiorno addirittura preponderante nel campo embedded (router, FW, lettori dvd, cellulari, elettrodomestici per intenderci): viene installato in fabbrica. All’aggeggio non si può aggiungere niente. Cammina e non rompe. Già io ho i miei dubbi sui server: per funzioni dedicate e staccate dal resto dell’infrastruttura può essere una scelta. Ma orientativamente propenderei già per Microsoft, a meno che non parliamo di hosting o di HPC. Ma Linux sul PC di casa è vero e proprio masochismo. A meno che uno non sia felice con OpenOffice, posta e internet: un PC con Linux come elettrodomestico per la nonna che vuole fare due cose, sempre quelle, può essere di nuovo una scelta sensata. Ma per il resto, che ci si divertano i nerd con Linux!
Chiudo questo mio sfogo contro Linux, dicendo che ho provato con OpenSuse perché Ubuntu mi mette addosso una tristezza infinita anche solo per via dei colori che ha di default: quel marrone macchie di sangue per terra. Va bene che gli sfondi di Windows sono un po’ idilliaci e tipo mulino bianco. Ma il biglietto da visita di Ubuntu è davvero: sono un sistema operativo per persone tristi e come diceva un mio amico a forza di vivere nel brutto ci si imbruttisce.

Passate lo straccio sul pavimento. Grazie.
Suse è tradizionalmente legata al KDE, che è – secondo me – un altro pianeta rispetto a Gnome. Ha Yast, che è un po’ come il Pannello di Controllo in Windows: permette insomma di configurare udite udite! con il mouse!! da un unico posto un sacco di hardware. Il Desktop si presenta in modo piuttosto elegante e ordinato. Insomma, non fosse che si tratta di Linux, sarebbe anche un buon prodotto. In fondo cammina anche bene. Basta – come per ogni elettrodomestico – non attacarci nient’altro oltre a quello consegnato con la prima installazione.

OpenSuSe con KDE 4: Grafica puilta. Ho sbattuto sul Desktop un paio di Widget inutili. Ma tanto per mostrare.
Torniamo ai programmi di virtualizzazione. Sono tutti facili da usare. Come prestazioni direi che il più veloce in assoluto è il vmware Server. E’ l’unico dove si ha quasi l’impressione di lavorare su una macchina reale. Un po’ lentina, ma sono quasi sicuro che - messo a tutto schermo – un ignoto visitatore potrebbe pensare di essere di fronte ad un PC vero, per quanto non molto veloce. Sia le soluzioni Microsoft che la Virtualbox mi sembrano più lente. Con la Virtualbox - ma non avevo le guest addition installate – ho avuto un po’ di fastidi con mouse e risoluzione: la VM va a tutto schermo, ma lo schermo non scala: io ad esempio – avendo un 19” da 1280×1024 – preferisco usare in finestra per le macchine virtuali 1024×768 perché così vedo anche le restanti finestre. Quando vado a tutto schermo con il Virtual PC o con vmware, lo schermo, pur restando alla stessa risoluzione, scala in grandezza. Con Virtualbox no: va a tutto schermo e resta una bella cornice nera attorno al 1024×768. Poi quando mando a tutto schermo il mouse certe volte – pur catturato all’interno delle VM – resta incastrato in una finestra Windows sottostante: posso cioè cliccare un’applicazione e quello che voglio nella VM, ma posso muovermi solo in un rettangolo grande quanto la finestra Windows che sta dietro.
Niente di drammatico: solo un po’ fastidioso. Anche in questo caso, vmware è la migliore: senza installare proprio nessuna addition, il mouse si muove tra sistema fisico e macchina virtuale, dentro e fuori, senza dover pigiare ALT o CTRL o qualche altra combinazioni di tasti per farlo uscire. Le combinazioni di tasti ci sono; solo che è molto più comodo usare il mouse, no? Simile soluzione – intendo per facilità d’uso – per lo schermo intero: se massimizzo la finestra vado a schermo intero, su cui resta in alto – volendo a scomparsa – una piccola barra.
Barra vmware schermo intero
Clicco su ridimensiona, e la VM è di nuovo in finestra in Windows.
Quale consigliare? Beh, intanto consiglio di provarle tutte e tre. Non costa niente, tempo a parte. Poi io resterei o su Microsoft o su vmware. Perché? Ma perché queste soluzioni host-based sono solo giocattoli, per quanto ben fatti. Ma – sia nel caso di Microsoft che nel caso di vmware - le si può considerare se si vuole il primo gradino verso soluzioni professionali. Ad esempio una macchina creata con Virtual PC parte anche con il Microsoft Virtual Server; non so se sia ufficialmente supportato, ma provare per credere: funziona. Pare che la Microsoft non metta a disposizione nessun tool per importare una macchina nell’hyper-v; ma ricreata la macchina a manina – vale a dire quei quattro setting per memoria, rete, ecc. – poi il disco – cioè la macchina virtuale - parte anche con l’hyper-v. Idem dicasi per macchine create con vmware server: si lasciano importare in un vmware ESXi o ESX server (ipersvisori). Insomma, non che la Virtualbox non funzioni. Ma è un vicolo cieco che non porta da nessuna parte.
WebMasta detto
grazie per la drittà, carino anche qusto post !!!
Francesco detto
Virtual Iron ha anch’esso un versione free (come ESX e Xen di Citrix).
Se un giorno volessi fare delle prove con degli Ipervisori ti consiglio di provare sia virtual Iron che Xen di Citrix, entrambi Xen based (…quest’open source…qualcuno poi ci spende pure :-) )
Alessio Margutta detto
grazie della nota: hai ragione, mi erano scappati.
Anche per VirtualIron c’è una versione free:
http://www.virtualiron.com/Products-and-Services/Software-Packaging-And-Pricing/Single-Server-Edition/index.php
E avevo totalmente dimenticato Citrix, probabilmente perché la associo a terminal server. Hanno anche loro una soluzione di virtualizzazione, gratis pure quella.
http://www.citrix.com/English/ss/downloads/index.asp
Quanto a provarli… non so, mi servirebbe una macchina in più che al momento non ho (infatti sono andato per soluzioni host-based).
Open Source: mah, questione di filosofia. In fondo ci sono soluzioni closed che sono gratis pure quelle (VMware e Microsoft). Forse avrai capito che non sono un grande fan di OSS, Linux & co.
Ma insomma, il mondo è bello perché è vario.