View Full Version : Istruzioni VT-x e VT-d per virtualizzazione: differenze?
Sono orientato ad acquistare un processore intel; nel mio prossimo pc ho anche intenzione di adoperare più sistemi operativi sulla stessa macchina e informandomi ho capito che dovrò utilizzare la tecnologia della virtualizzazione.
1)Riguardo le istruzioni VT-x e VT-d, che differenze intercorrono tra le due?
2)Considerando che utilizzerò dai 2 ai 4 (circa) S.O. diversi, è meglio che il processore che comprerò possegga entrambe le istruzioni, o va bene anche solo la VT-x?
3)Sicuramente utilizzerò almeno un sistema windows, e uno Linux; esiste qualche gerarchia da rispettare nell'installazione dei S.O.?
Cioè: conviene installare come S.O. principale prima windows e successivamente Linux, o va bene anche il contrario?
In ogni caso, il secondo S.O. installato andrà necessariamente avviato da una macchina virtuale?
4)Dovendo utilizzare un sistema che debba rispondere a queste esigenze, come ci si regola col comparto hardware degli HDD?
Si possono installare più S.O. su un solo HDD con una grande capacità, ad esempio 2 TB, senza risentire di possibili interferenze fra gli S.O. installati?
Oppure una soluzione con più HDD, sebbene più dispendiosa, evita questi problemi, ammesso che ci siano?
5)Io pensavo di acquistare un SSD da utilizzare per i S.O. e un HDD per i dati.
I programmi vanno necessariamente installati sullo stesso spazio fisico dei S.O. o possono anche essere installati sul HDD destinato ai dati?
stefanonweb
29-04-2012, 09:30
Mi associo... Cambia qualcosa con software tipo VMWare?
riuppo le domande del mio primo post.
Jones D. Daemon
29-04-2012, 20:55
In pratica avendo piu set di istruzioni si possono far eseguire al sistema operativo guest queste suddette sitruzioni per dare ad esempio accesso alla libreria completa delle istruzione della CPU senza che il sistema host ne risenta, oppure attivare feature avanzate quali il supporto direct3d o librerie grafiche senza passare per emulatori che caricherebbero molto la cpu, sfruttando direttamente anceh la gpu.
http://imageshack.us/f/837/24191900.png/
Nell'immagine sopra è presente uno screen della cartella dove sono collocati i file di una VM, in questo caso centOS. Ci sono varie cartelle e file di diverso tipo, ma quello importante è il sesto partendo dall'alto, in pratica quel file rappresenta il disco fisso della macchina virtuale.
http://imageshack.us/f/403/23033064.png/
In quest'altra immagine si puo vedere la VM accesa si VMWare, in cui si nota un disco da 21 GB asseghnato alla VM, ma il file fisico nella cartella ha un peso diverso, questo perche al file (e quindi all'HDV) viene conferita una dimensione massima, ma non verrà allocato tutto lo spazio ma riempito pian piano dalla VM.
Si possono virtualizzare quanti OS si vogliono, ma con certe condizioni:
1) non saturare mai i core della cpu, ad esempio:
io ho 6 core, 2 a CentOs, 2 a Win 7 e gli altri 2 li lascio liberi per il guest, Win8, di modo che avra sempre risorse libere per svolgere le sue operazioni.
2) Mai saturare la RAM
Per il discorso dischi, va benissimo usare un SSD per l'host OS e un HDD meccanico grande per le VM, configurazione esattamente uguale alla mia.
Sono orientato ad acquistare un processore intel; nel mio prossimo pc ho anche intenzione di adoperare più sistemi operativi sulla stessa macchina e informandomi ho capito che dovrò utilizzare la tecnologia della virtualizzazione.
Dipende da cosa devi fare con i diversi sistemi operativi, se devi usarli in contemporanea non c'è scampo, devi virt., se puoi usarli uno alla volta allora dipende da cosa devi andare a fare, perché potrebbe essere meglio usare un dualboot.
1)Riguardo le istruzioni VT-x e VT-d, che differenze intercorrono tra le due?
Non sono istruzioni che servono a fare le stesse cose: VT-x (o AMD-V per le cpu amd) è il set di istruzioni di intel che serve ad avere la virtualizzazione con supporto hardware (c'è anche la paravirtualizzazione, per la quale non servono le lib vt-x).
Col tempo sono state introdotte altre librerie per avere delle funzionalità aggiuntive, come il set VT-d (IOMMU per amd) che serve a dare accesso diretto alle periferiche ai SO virtualizzati (ad esempio potresti dedicare interamente ad una VM una scheda video, o una scheda di rete, o altro).
Oltre alle vt-d, ci sono anche altre lib, ma penso sia inutile parlarne perché non ti servirebbeero mai.
2)Considerando che utilizzerò dai 2 ai 4 (circa) S.O. diversi, è meglio che il processore che comprerò possegga entrambe le istruzioni, o va bene anche solo la VT-x?
Da come hai potuto capire dalla mia risposta precedente, questa domanda non sta ne in cielo ne in terra, devi vedere se le cose che ti permette di fare il set VT-d ti interessano :)
3)Sicuramente utilizzerò almeno un sistema windows, e uno Linux; esiste qualche gerarchia da rispettare nell'installazione dei S.O.?
Cioè: conviene installare come S.O. principale prima windows e successivamente Linux, o va bene anche il contrario?
In ogni caso, il secondo S.O. installato andrà necessariamente avviato da una macchina virtuale?
Con la virtualizzazione piena (quella di vmware) ogni sistema operativo risiede su una macchina virtuale e non ha la benché minima idea di essere in un contenitore, per il SO è come se stesse girando su un pc fisico (figurati che vmware emula anche il BIOS). Quindi puoi installare nell'ordine che ti pare i SO nelle VM.
4)Dovendo utilizzare un sistema che debba rispondere a queste esigenze, come ci si regola col comparto hardware degli HDD?
Si possono installare più S.O. su un solo HDD con una grande capacità, ad esempio 2 TB, senza risentire di possibili interferenze fra gli S.O. installati?
Oppure una soluzione con più HDD, sebbene più dispendiosa, evita questi problemi, ammesso che ci siano?
5)Io pensavo di acquistare un SSD da utilizzare per i S.O. e un HDD per i dati.
I programmi vanno necessariamente installati sullo stesso spazio fisico dei S.O. o possono anche essere installati sul HDD destinato ai dati?
Come ho scritto, solitamente si usano file contenitore, è ovvio che se hai tot sistemi che accedono al "file contenitore" (per la VM quelli sono visti come degli hd fisici) sei legato alle prestazioni dell'hd.
Se tu sul tuo pc prendi e copi in contemporanea dei file avrai dei rallentamenti no? :)
L'ideale sarebbe avere uno o più hd fisici per ogni VM, ma tutto dipende da quel che devi farci con le VM, se lo fai per cazzeggio anche se hai qualche rallentamento te ne freghi...
Comunque io uso degli ssd per archiviare i dischi virtuali delle VM e ogni sera faccio fare snapshot automatici sugli hd normali per avere le copie di backup :)
Ah, una VM occupa risorse solo quando la avvii, quindi se, ad esempio, vuoi giocare sul tuo pc, spegni le VM ed hai tutta la potenza a disposizione.
stefanonweb
30-04-2012, 05:05
Io vorrei sapere solo tra un Intel E8400 (che ha istruzzioni VT) ed un E7300 (che non le ha) se ci sono differenze con VMWare Workstation... Grazie...
http://ark.intel.com/products/33910/Intel-Core2-Duo-Processor-E8400-(6M-Cache-3_00-GHz-1333-MHz-FSB)
http://ark.intel.com/products/36463/Intel-Core2-Duo-Processor-E7300-(3M-Cache-2_66-GHz-1066-MHz-FSB)
Io vorrei sapere solo tra un Intel E8400 (che ha istruzzioni VT) ed un E7300 (che non le ha) se ci sono differenze con VMWare Workstation... Grazie...
http://ark.intel.com/products/33910/Intel-Core2-Duo-Processor-E8400-(6M-Cache-3_00-GHz-1333-MHz-FSB)
http://ark.intel.com/products/36463/Intel-Core2-Duo-Processor-E7300-(3M-Cache-2_66-GHz-1066-MHz-FSB)
Senza avere le vtx dimenticati di usare vmware, semplice.
stefanonweb
30-04-2012, 09:52
Senza avere le vtx dimenticati di usare vmware, semplice.
Mica tanto semplice visto che lo sto usando con un E7300 e lo ho usato con un E5200.... Sei sicuro di quello che dici??? Grazie...
Mica tanto semplice visto che lo sto usando con un E7300 e lo ho usato con un E5200.... Sei sicuro di quello che dici??? Grazie...
La differenza in performance è abissale, semplice.
Studiati cosa fanno le VT-x, come lavora la virtualizzazione e capisci subito di cosa sto parlando.
Inoltre vmware non ti permette di virtualizzare SO a 64bit su cpu che non hanno le istruzioni di virtualizzazione.
devil_mcry
30-04-2012, 10:07
si infatti, cambiano le prestazioni e la compatibilita
le vt-d permettono l'accesso diretto all'io
stefanonweb
30-04-2012, 10:53
La differenza in performance è abissale, semplice.
Studiati cosa fanno le VT-x, come lavora la virtualizzazione e capisci subito di cosa sto parlando.
Inoltre vmware non ti permette di virtualizzare SO a 64bit su cpu che non hanno le istruzioni di virtualizzazione.
Ok comunque un siatema a 32 bit con performance inferiori funziona virtualizzato anche con un E7300 privo di VT-x? Giusto? Grazie...
Grazie davvero per le risposte, la discussione si fa molto interessante.
Sono orientato ad acquistare un processore intel; nel mio prossimo pc ho anche intenzione di adoperare più sistemi operativi sulla stessa macchina e informandomi ho capito che dovrò utilizzare la tecnologia della virtualizzazione.
Risposta:
Dipende da cosa devi fare con i diversi sistemi operativi, se devi usarli in contemporanea non c'è scampo, devi virt., se puoi usarli uno alla volta allora dipende da cosa devi andare a fare, perché potrebbe essere meglio usare un dualboot.
Il mio obiettivo è assemblare un pc che mi permetta di sperimentare più cose possibili nel campo dell'informatica senza bisogno di 1000 soluzioni hardware differenti: tutto ciò anche in ambito di programmazione, e utilizzo di S.O diversi (per far pratica nel loro utilizzo e magari utilizzare programmi che girano su un S.O. piuttosto che in un altro).
Anche io all'inizio avevo pensato a qualcosa simile al dualboot, ossia la mia idea era di avviare il pc e poter scegliere l'S.O. da BIOS a seconda di quello che mi serve, poi ho notato che la soluzione più utilizzata è la virtualizzazione tramite software come vmware e vrtualbox.
Il fatto è che non conosco i pro e i contro tra questi 2 tipi di virtualizzazione.
Un'altra cosa che può ostacolare nella scelta è il fatto che, volendo fare overclock e scegliendo quindi proci serie K, non si può avere contemporaneamente le istruzioni VT-d, quindi o l'uno o l'altro.
Quando per esempio risulta essere un vantaggio l'utilizzo in contemporanea di più S.O. rispetto al caricamento tramite boot loader?
Jones D. Daemon ha scritto:
Si possono virtualizzare quanti OS si vogliono, ma con certe condizioni:
1) non saturare mai i core della cpu, ad esempio:
io ho 6 core, 2 a CentOs, 2 a Win 7 e gli altri 2 li lascio liberi per il guest, Win8, di modo che avra sempre risorse libere per svolgere le sue operazioni.
2) Mai saturare la RAM
Per il discorso dischi, va benissimo usare un SSD per l'host OS e un HDD meccanico grande per le VM, configurazione esattamente uguale alla mia.
WarSide ha scritto:
Non sono istruzioni che servono a fare le stesse cose: VT-x (o AMD-V per le cpu amd) è il set di istruzioni di intel che serve ad avere la virtualizzazione con supporto hardware (c'è anche la paravirtualizzazione, per la quale non servono le lib vt-x).
Col tempo sono state introdotte altre librerie per avere delle funzionalità aggiuntive, come il set VT-d (IOMMU per amd) che serve a dare accesso diretto alle periferiche ai SO virtualizzati (ad esempio potresti dedicare interamente ad una VM una scheda video, o una scheda di rete, o altro).
Oltre alle vt-d, ci sono anche altre lib, ma penso sia inutile parlarne perché non ti servirebbeero mai.
WarSide, per piacere puoi specificare meglio in cosa consiste il supporto hardware che ho evidenziato riguardo le VT-x?
Sinora ho capito che le istruzioni VT-x permettono una virtualizzazione unicamente tramite software (vmware etc.), o meglio non permettono un lavoro di partizionamento hardware come accennato da Jones D. Daemon, mentre le istruzioni VT-d non sono altro che un'evoluzione delle VT-x, e permettono di poter scegliere come gestire l'hardware da destinare ai diversi S.O., è giusto?
Se è così, il lavoro che accenna Jones D. Daemon nel primo dei due quote qua sopra può essere eseguito unicamente con istruzioni VT-d, giusto?
Con le VT-x quindi non potrei decidere se destinare un tot di core ad un determinato S.O. piuttosto che un intera scheda video etc., mentre potrei farlo con le istruzioni VT-d.
Correggetemi se sbaglio.
Mi piacerebbe sapere in quale ambito informatico sono strettamente necessarie le istruzioni VT-d, server forse?
WarSide, hai accennato a altre librerie oltre le VT-d, se ti va puoi accennarne il funzionamento e dove vengono utilizzate, solo a scopo informativo? Sarebbe bello per rendere ancora più interessante il thread.
Il mio obiettivo è assemblare un pc che mi permetta di sperimentare più cose possibili nel campo dell'informatica senza bisogno di 1000 soluzioni hardware differenti: tutto ciò anche in ambito di programmazione, e utilizzo di S.O diversi (per far pratica nel loro utilizzo e magari utilizzare programmi che girano su un S.O. piuttosto che in un altro).
Anche io all'inizio avevo pensato a qualcosa simile al dualboot, ossia la mia idea era di avviare il pc e poter scegliere l'S.O. da BIOS a seconda di quello che mi serve, poi ho notato che la soluzione più utilizzata è la virtualizzazione tramite software come vmware e vrtualbox.
Il fatto è che non conosco i pro e i contro tra questi 2 tipi di virtualizzazione.
Un'altra cosa che può ostacolare nella scelta è il fatto che, volendo fare overclock e scegliendo quindi proci serie K, non si può avere contemporaneamente le istruzioni VT-d, quindi o l'uno o l'altro.
Quando per esempio risulta essere un vantaggio l'utilizzo in contemporanea di più S.O. rispetto al caricamento tramite boot loader?
Se vuoi sperimentare meglio usare la virtualizzazione, così con SO più esotici non hai problemi di compatibilità con l'hw.
WarSide, per piacere puoi specificare meglio in cosa consiste il supporto hardware che ho evidenziato riguardo le VT-x?
Sinora ho capito che le istruzioni VT-x permettono una virtualizzazione unicamente tramite software (vmware etc.), o meglio non permettono un lavoro di partizionamento hardware come accennato da Jones D. Daemon, mentre le istruzioni VT-d non sono altro che un'evoluzione delle VT-x, e permettono di poter scegliere come gestire l'hardware da destinare ai diversi S.O., è giusto?
Se è così, il lavoro che accenna Jones D. Daemon nel primo dei due quote qua sopra può essere eseguito unicamente con istruzioni VT-d, giusto?
Con le VT-x quindi non potrei decidere se destinare un tot di core ad un determinato S.O. piuttosto che un intera scheda video etc., mentre potrei farlo con le istruzioni VT-d.
Correggetemi se sbaglio.
Mi piacerebbe sapere in quale ambito informatico sono strettamente necessarie le istruzioni VT-d, server forse?
WarSide, hai accennato a altre librerie oltre le VT-d, se ti va puoi accennarne il funzionamento e dove vengono utilizzate, solo a scopo informativo? Sarebbe bello per rendere ancora più interessante il thread.
http://en.wikipedia.org/wiki/X86_virtualization
http://www.intel.com/technology/itj/2006/v10i3/1-hardware/6-vt-x-vt-i-solutions.htm
Google è tuo amico ;)
EDIT:
Dimenticavo: guarda che la CPU NON è una periferica (come non lo è la ram), vt-d server solo per dare ad una VM accesso DIRETTO ED ESCLUSIVO ad una o più periferiche che hai scelto. Data la tua inesperienza dubito seriamente che tu te ne faccia qualcosa delle vt-d...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.