PDA

View Full Version : Virtualizzazione ed indipendenza dall'hardware..


maxime
07-11-2008, 11:22
Mi sto da poco avvicinando alla virtualizzazione e vorrei un chiarimento: uno tra i punti più favorevoli della virtualizzazione dovrebbe essere l'indipenza dall'hardware. Però probabilmente, non riesco a capire cosa si intenda, perchè le mie, seppur minime, esperienze personali mi portano a non considerare una VM indipendente dall'hardware.

In un talk all'ultimo Linux Day, un sistemista diceva che virtualizzando dei servers su unico server fisico, nel caso in cui il server fisico subiva dei danni all'hardware, loro potevano tranquillamente cambiare il pezzo difettoso anche con uno differente (fece l'esempio della scheda madre) ed i vari server virtualizzati non se ne sarebbero nemmeno accorti.
Mi sono detto: questa cosa è fichissima!!
A puro scopo conoscitivo, ho installato in un PC1 fisico con Windows XP una VM con sistema Windows XP; ovviamente la VM è configurata con i drivers per il PC1 fisico.
A questo punto prendo la VM e la carico in un PC2 fisico con hardware diverso dal PC1 fisico. Ebbene, la VM comincia a cercare i drivers del PC2 fisico.
Allora mi chiedo, dovè l'indipenza dall'hardware?!?! Per una scheda video chi se ne frega, ma se devo sostituire una mainboard rotta magari di "generazione differente", al 90% la macchina virtuale mi damperà!!

Insomma, qualcuno che ha esperienza nel campo, può darmi delle delucidazioni?
Grazie!!

maxhot6
07-11-2008, 22:06
loro che vm usavano e come ?...
tu non la hai virtualizzata ma hai solo installato un altro s.o. con/su vmware.
hai usato vmware server ?
ciao

maxime
08-11-2008, 11:37
loro che vm usavano e come ?...
tu non la hai virtualizzata ma hai solo installato un altro s.o. con/su vmware.
hai usato vmware server ?
ciao

Dalla tua domanda capisco che ho ancora molto da studiare!! :p
Credevo che "virtualizzare" fosse sinonimo di "installare in una VM"... effettivamente io ho creato una VM di un PC tramite VMware Converter, poi ho preso il file e l'ho caricato attraverso VMware player in un altro PC.

Mi potresti spiegare la differenza tra virtualizzare ed installare in una VM?

P.S.: parliamo di VMware sotto Windows, ma utilizzo anche VirtualPC sotto Linux..

hibone
08-11-2008, 13:44
Mi sto da poco avvicinando alla virtualizzazione e vorrei un chiarimento: uno tra i punti più favorevoli della virtualizzazione dovrebbe essere l'indipenza dall'hardware. Però probabilmente, non riesco a capire cosa si intenda, perchè le mie, seppur minime, esperienze personali mi portano a non considerare una VM indipendente dall'hardware.

per comprendere questo aspetto dovresti aver chiaro in primo luogo in che modo un sistema operativo gestisce il processore, devi aver chiara la struttura a livelli di una macchina general purpose e quindi puoi capire la differenza, tra virtualizzazione e sistema non virtualizzato, indipendenza dall'hw e via dicendo...

In un talk all'ultimo Linux Day, un sistemista diceva che virtualizzando dei servers su unico server fisico, nel caso in cui il server fisico subiva dei danni all'hardware, loro potevano tranquillamente cambiare il pezzo difettoso anche con uno differente (fece l'esempio della scheda madre) ed i vari server virtualizzati non se ne sarebbero nemmeno accorti.

questo è il classico esempio dove per generalizzare troppo e per fare esempi ad effetto si finisce per dire una cazzata. I server se ne accorgono visto che li devi spegnere, puoi anche congelare lo stato della macchina virtuale, ma a parte casi critici ha poco senso. Che poi magari non sia necessario cambiare driver è un altra questione, ma dire che "non se ne accorgono" è quantomeno grossolano...


Mi sono detto: questa cosa è fichissima!!
A puro scopo conoscitivo, ho installato in un PC1 fisico con Windows XP una VM con sistema Windows XP; ovviamente la VM è configurata con i drivers per il PC1 fisico.
A questo punto prendo la VM e la carico in un PC2 fisico con hardware diverso dal PC1 fisico. Ebbene, la VM comincia a cercare i drivers del PC2 fisico.
Allora mi chiedo, dovè l'indipenza dall'hardware?!?! Per una scheda video chi se ne frega, ma se devo sostituire una mainboard rotta magari di "generazione differente", al 90% la macchina virtuale mi damperà!!

Insomma, qualcuno che ha esperienza nel campo, può darmi delle delucidazioni?
Grazie!!

C'è poco da delucidare, macchina virtuale significa esattamente questo: che è "virtuale e non reale" cioè non è un dispositivo software.

Come ben sai il sistema operativo è quel "cuscinetto" che permette alla macchina di interagire con i vari software, quindi il sistema operativo ha due interfacce, una dal lato software e l'altra dal lato hardware. Una macchina virtuale è un software che si interfaccia con un sistema operativo, "dal lato
hardware" fa cioè credere all'os di essere un pc.

Fin qui credo sia tutto chiaro.

Dato che le risorse di cui un sistema operativo ha bisogno vengono messe a disposizione dalla macchina virtuale, questa ha, di fronte a se 2 possibilità:
la prima è simulare l'hardware utilizzando delle routine (software)
la seconda è appoggiarsi completamente all'hw sottostante.

Nel primo caso hai l'indipendenza dall'hardware, nel secondo hai il massimo delle prestazioni. Dato che di solito si cercano le prestazioni, soprattutto sui pc domestici, la strada percorsa è quasi sempre la seconda.

Se vuoi l'indipendenza hardware devi cercare quei software di virtualizzazione che ti permettono di specificare l'hardware della macchina virtuale da utilizzare.


Dalla tua domanda capisco che ho ancora molto da studiare!! :p
Credevo che "virtualizzare" fosse sinonimo di "installare in una VM"... effettivamente io ho creato una VM di un PC tramite VMware Converter, poi ho preso il file e l'ho caricato attraverso VMware player in un altro PC.

Mi potresti spiegare la differenza tra virtualizzare ed installare in una VM?

P.S.: parliamo di VMware sotto Windows, ma utilizzo anche VirtualPC sotto Linux..
"Virtualizzare" non vuol dire una fava... :D si tratta di quei neologismi che in italia vanno tanto di moda, quali presunte alternative delle perifrasi.
Puoi tradurlo con "rendere virtuale" rendere fittizio... ma non ha molto senso, o quanto meno non fa capire cosa significhi nella pratica...

La perifrasi corretta è "utilizzo di macchine virtuali". Questa è una pratica piuttosto vecchia, tornata in auge giusto ultimamente giacchè se ne parla in ambito desktop ma conosciuta da decenni in ambito server.

Per chiarire questa cosa occorre sapere come funziona un processore, a grandi linee i fatti sono questi : il processore esegue processi, che sono alla base dei software; il processore viene gestito dal sistema operativo che gli dice quali processi eseguire e quando, in che ordine e così via.

Risulta chiaro che se due processi devono operare senza che l'uno sappia dell'altro, soltanto il sistema operativo può garantire la separazione dei due processi, ma non è detto che tutte le volte ci riesca. Infatti il sistema operativo mette a disposizione di ogni processo, un pezzo della memoria, un intervallo di "tempo-cpu" e così via, ma non sempre riesce ad impedire che un softare possa accedere alla memoria di un altro processo. Per ovviare al problema, tra il sistema operativo e la macchina è stato interposto un ulteriore livello, che sia in grado di prendere il controllo dell'intera macchina, e di passare tale controllo ad un sistema operativo.

Questo livello, è il concetto alla base delle tecnologie proposte da intel e amd. Che è ciò che viene chiamato come "virtualizzazione". Tale livello permette di sfruttare completamente l'hw e di eseguire "contemporaneamente" piu sistemi operativi, indipendenti gli uni dagli altri.

Installare una macchina virtuale, o più correttamente installare un software di "virtualizzazione", è una cosa radicalmente diversa per certi aspetti, molto simile per altri. Software come Virtual pc, permettono di fare la stessa cosa delle tecnologie di virtualizzazione offerte da intel e amd, tuttavia mentre in questo secondo caso ciascun sistema operativo gira direttamente sulla macchina fisica, con virtual pc, i vari sistemi operativi, girano all'interno di un programma, che necessariamente avrà uno spazio di memoria e un tempo di cpu limitato..

bubbi
22-11-2008, 13:03
mi hai chiarito parecchi concetti grazie!!!!!!
ma quali sono alcuni SW che permettono anche la gestione HW della macchina virtuale?