Soluzioni di virtualizzazione Microsoft. Hyper-V Impossibile avviare l'hypervisor della macchina virtuale Hyper v in esecuzione

Con l'avvento del supporto della virtualizzazione nei nuovi sistemi operativi di Microsoft, anche nei client Windows 7, 8 e 10, il servizio proprietario Hyper-V ha cessato di essere una prerogativa degli amministratori di sistema nelle aziende di medio livello. Hyper-V potrebbe sostituire il popolare VirtualBox di Oracle nel campo della virtualizzazione entry-level (livello client). Tuttavia, prima dell'installazione di questo servizioÈ necessario verificare la conformità requisiti di sistema, altrimenti potresti ricevere il seguente messaggio: "Impossibile avviare macchina virtuale, poiché la shell dell'hyperlevel non è in esecuzione." A cosa dovresti prestare attenzione quando scegli l'hardware per la virtualizzazione. È possibile in qualche modo salvare la situazione se l'hardware è già stato acquistato? Diamo un'occhiata a questo in questo articolo.
Quindi, hai Hyper-V distribuito su un server Windows 2008 e quando provi ad avviare una macchina virtuale, ottieni una finestra

Non disperare; forse la situazione può ancora essere salvata. Va notato che il sistema operativo deve essere a 64 bit, ma ovviamente su x32 non saresti in grado di distribuire Hyper-V. La prima cosa che devi fare è verificare che gli elementi corrispondenti siano abilitati nel BIOS: abilita VT e AMD-V. Successivamente, devi assicurarti che il tuo processore supporti la virtualizzazione; gli strumenti di controllo per le piattaforme Intel e AMD sono descritti come uno di questi. (nella foto sotto).

Anche un'utilità di Mark Russinovich può aiutare a determinarlo.


Un altro problema comune è l'impossibilità di eseguire macchine virtuali da Windows 2008 R2 su processori che supportano la tecnologia Advanced Vector Extensions (AVX). Questo sistema operativo non supporta AVX in modo nativo, tuttavia una correzione potrebbe aiutarti in questa situazione

In questo articolo descriverò solo gli errori che ho riscontrato personalmente riscontrati durante l'installazione e la configurazione di Hyper-V Server 2012. Puoi leggere altri errori e modi per risolverli sul sito Web di Microsoft (ad esempio o, sfortunatamente, solo in inglese).

Errori durante il processo di installazione.

IN.: Nella fase finale dell'installazione di Hyper-V Server 2012, o meglio dopo l'ultimo riavvio, il sistema non si avvia: una schermata nera, nessuna risposta alla pressione dei tasti, aiuta solo ripristino completo, può essere scaricato in Modalità sicura.
P.: Il sistema operativo non supporta o non è compatibile con driver USB 3.0.
R.: Disabilitare il controller USB 3.0 e tutti i dispositivi associati nel BIOS.

IN.: Nella fase finale dell'installazione di Hyper-V Server 2012, o meglio dopo l'ultimo riavvio, il sistema non si avvia: una schermata nera, nessuna risposta alla pressione dei tasti, solo un hard reset aiuta, l'avvio in modalità provvisoria è impossibile.
P.:
R.: Prova la soluzione suggerita dall'autore di questo articolo.

Errori durante la configurazione e l'utilizzo.

IN.: Non visualizzato scheda di rete nella console di configurazione del server Hyper-V (elemento 8).
P.: 1) Il cavo non è inserito nell'adattatore di rete;
2) Problemi con apparecchiature di rete attive (switch, router, ecc.) o passive (cavi, prese, patch panel, ecc.).
R.: 1) Inserire il cavo;
2) Controllare la funzionalità delle apparecchiature di rete.

IN.: Quando provi a eseguire un comando nella console come netsh advfirewall firewall set rule group=" " new Enable=yes viene visualizzato il messaggio di errore "Impossibile specificare il gruppo con altre condizioni di identificazione".
P.: I comandi sono stati inseriti nella console utilizzando il metodo copia-incolla.
R.: Digita i comandi a mano o semplicemente cancella e riscrivi le virgolette.

IN.: Hyper-V Manager visualizza il messaggio di errore "Accesso negato. Impossibile stabilire una comunicazione tra E " (Accesso negato. Impossibile stabilire una connessione tra E ).
P.: All'utente non vengono concessi i diritti di avvio e attivazione remoti in DCOM.
R.: Tutte le manipolazioni vengono eseguite sul computer client:
1) Avviare lo snap-in Servizi componenti con diritti di amministratore completi. A tale scopo è possibile, ad esempio, eseguire il programma %SystemRoot%\System32\dcomcnfg.exe.
2) Nell'albero della console, espandere i nodi "Servizi componenti" e "Computer".
3) Dal menu contestuale dell'oggetto Risorse del computer, selezionare Proprietà.
4) Nella finestra Proprietà del mio computer, seleziona la scheda Sicurezza COM.
5) Nella sezione Autorizzazioni di accesso, fare clic sul pulsante Modifica limiti.
6) Nella finestra di dialogo Autorizzazioni di accesso, selezionare ACCESSO ANONIMO dall'elenco Nomi di gruppo o utente.
Nella colonna Consenti della sezione Autorizzazioni per utente, seleziona Accesso remoto.
7) Chiudere tutte le finestre di dialogo con il pulsante OK.

IN.: Gestione Hyper-V visualizza il messaggio di errore "Impossibile connettersi al servizio RPC sul computer remoto 'xxx.xxx.xxx.xxx'. Assicurarsi che il servizio RPC sia in esecuzione."

P.: 1) Nel firewall non sono state create le regole necessarie.
2) Il file host non ha una corrispondenza chiara tra l'IP del computer e il suo nome di rete.

R.: 1) Esistono 2 modi possibili per risolvere il problema:

a) Disabilitare il firewall sul client e sul server (non consigliato).
b) Creare regole nel firewall sul client e sul server inserendo i seguenti comandi:
Per la gestione remota del disco:
Netsh advfirewall firewall imposta gruppo di regole = "Gestione volume remoto" nuova abilitazione = sì
Per avviare in remoto lo snap-in di gestione del firewall:
Netsh advfirewall firewall set rule group=“Gestione remota Windows Firewall” nuova abilitazione=sì
2) Per collegare in modo inequivocabile il nome del server e l'indirizzo IP, è necessario apportare modifiche al file host. Ad esempio:192.168.1.100 Server HV

IN.: Hyper-V Manager visualizza il messaggio di errore "Impossibile avviare la macchina virtuale perché l'hypervisor non è in esecuzione". (La macchina virtuale non può essere avviata perché l'hypervisor non è in esecuzione.)

P.: Esistono varie possibili ragioni per questo errore.

Sfondo

Ho costruito un computer di casa circa 4 anni fa che soddisfaceva tutte le mie esigenze. Ho deciso di risparmiare sul processore: ho preso amd. Non ci sono domande sul computer.

Poi ho iniziato a sviluppare per Android e poi mi aspettava una sorpresa! L'emulatore funzionava solo su un processore Intel. Potrebbe essere lanciato senza virtualizzazione dell'hardware, ovviamente, seguendo questo consiglio www.youtube.com/watch?v=QTbjdBPKnnw&t=127s, ma chiunque lo abbia utilizzato sa che l'avvio dell'emulatore può richiedere molto tempo. Con 12GB mi ci sono voluti fino a 10 minuti. Ciò potrebbe ovviamente essere dovuto alla scheda video integrata.

Il mio posto di lavoro principale era in ufficio, quindi ero particolarmente preoccupato e l'ho testato a casa su dispositivi reali. Ma un paio di mesi fa l'emulatore si è reso necessario. Il primo pensiero è stato, ovviamente, quello di acquistare un processore Intel. Ma è stato necessario acquistare un'altra scheda madre e una scheda video. Molto probabilmente, lo avrei fatto se non mi fossi imbattuto nei requisiti di sistema aggiornati. I requisiti dicono che l'emulatore può ancora essere eseguito su Windows 10 (con aggiornamenti successivi ad aprile 2018) utilizzando la tecnologia WHPX.

Ora la parte principale della storia è come farlo. Tutto si è rivelato non così banale. Mi scuso in anticipo per eventuali omissioni, perché non posso definirmi un esperto né di hardware né di Windows.

Istruzioni

Dopo tutti gli aggiornamenti, l'emulatore naturalmente non si è avviato. AndroidStudio ha provato ad avviare l'emulatore utilizzando HAXM e ha generato l'errore "Emulatore: emulatore: ERRORE: l'emulazione x86 attualmente richiede l'accelerazione hardware!".

Deve supportare il funzionamento con la virtualizzazione dell'hardware.

3. Rimuovere HAXM:

4. Abilita la modalità di virtualizzazione nel BIOS. Potrebbe essere chiamato IOMMU lì, non VT.

5. Scarica gli aggiornamenti del BIOS dal sito ufficiale. Per il mio Asus, ad esempio, erano .

La versione del Bios dovrebbe essere qualcosa intorno alla 3001:

7. Vai al sito Web di Microsoft e studia le istruzioni per abilitare il componente.

8. È necessario verificare i requisiti Hyper-V. Per fare ciò, digita systeminfo sulla riga di comando. Controlliamo che vengano visualizzati questi valori:

Invece mi è arrivato questo messaggio:

Il sito Web ufficiale afferma che finché non viene visualizzato Sì-Sì-Sì-Sì, il sistema WHPX non funzionerà. Per me, l'emulatore inizia con la shell di basso livello abilitata.

Nella traduzione russa i nomi sono leggermente diversi:

A proposito, dopo aver disabilitato il componente "Piattaforma Shell Windows", i "requisiti Hyper-V" diventano Sì-Sì-Sì-Sì. Non ho capito questo momento. Se qualcuno lo sa, scriva nei commenti.

10. Determinare se abbiamo bisogno di tutto questo? Oppure sarebbe stato più semplice acquistare Intel)

Dopo queste impostazioni tutto dovrebbe funzionare:

Vorrei sottolineare che utilizzando la tecnologia WHPX e un processore AMD, l'avvio dell'emulatore richiede circa lo stesso tempo di un processore Intel. Considerando che il resto dell'hardware è paragonabile nei suoi parametri.

Causa. L'hypervisor non è in esecuzione. Nel registro errori di sistema viene visualizzato il seguente messaggio di errore: "La macchina virtuale non può essere avviata perché l'hypervisor non è in esecuzione."

Eliminazione. Per eseguire l'hypervisor, il computer fisico deve soddisfare determinati requisiti hardware. Per ulteriori informazioni, vedere Requisiti per l'installazione di Hyper-V. Se il tuo computer non soddisfa i requisiti, non potrai utilizzarlo per eseguire macchine virtuali. Se il tuo computer soddisfa i requisiti e l'hypervisor non è in esecuzione, potrebbe essere necessario abilitare le opzioni per la virtualizzazione utilizzando l'hardware e la prevenzione dell'esecuzione dei dati hardware (DEP) nel BIOS. Dopo aver modificato queste impostazioni, è necessario spegnere il computer e quindi riaccenderlo. Quando si riavvia il computer, le modifiche alle impostazioni non hanno effetto.

Causa. Il disco virtuale, utilizzato come disco di sistema, è collegato al controller SCSI.

Eliminazione. Collegare l'unità di sistema al controller IDE. Per istruzioni, vedere Configurazione di dischi e dispositivi di archiviazione.

Causa. La macchina virtuale è configurata per utilizzare CD e DVD fisici come supporto di installazione e utilizza un'unità disco fisica.

Eliminazione. Solo una macchina virtuale alla volta può accedere a un'unità CD o DVD fisica. Scollega l'unità CD/DVD dall'altra macchina virtuale e riprova.

Il sistema operativo non può essere installato su una macchina virtuale in rete.

Causa. La macchina virtuale utilizza un adattatore di rete anziché un adattatore di rete legacy oppure l'adattatore di rete legacy non è connesso alla rete esterna appropriata.

Eliminazione. Assicurati che la macchina virtuale sia configurata per utilizzare un adattatore di rete legacy connesso alla rete esterna che fornisce servizi di installazione. Per istruzioni sulla configurazione degli adattatori di rete, vedere Configurazione della rete.

La macchina virtuale viene automaticamente sospesa.

Causa. La macchina virtuale verrà automaticamente sospesa se non c'è abbastanza spazio libero sul volume in cui sono archiviati gli snapshot o i dischi rigidi virtuali. Lo stato della macchina virtuale in Hyper-V Manager verrà elencato come "Critico sospeso".

Eliminazione. Crea ulteriore spazio su disco utilizzando Hyper-V Manager per applicare o eliminare gli snapshot singolarmente. Oppure, per rimuovere tutte le istantanee, esportare la macchina virtuale senza i relativi dati, quindi importare la macchina virtuale.

Quando provi a creare o avviare una macchina virtuale, ricevi messaggi di errore: "L'utente ha aperto una sezione mappata", "La risorsa o il dispositivo di rete non è più disponibile" o "L'operazione di I/O è stata interrotta perché il comando thread terminato o a causa di una richiesta di applicazione."

Causa.

Eliminazione.

Le macchine virtuali sono scomparse dalla console di gestione Hyper-V.

Causa. La causa potrebbe essere un programma antivirus in esecuzione sul sistema operativo host quando il monitoraggio dei file della macchina virtuale in Hyper-V è configurato utilizzando il componente di scansione in tempo reale.

Eliminazione. Escludi i file della macchina virtuale dalla scansione in tempo reale. Per informazioni su file specifici, vedere l'articolo della Microsoft Knowledge Base 961804 (http://go.microsoft.com/fwlink/?LinkId=143978).

Quando si utilizza una connessione a una macchina virtuale, il puntatore del mouse diventa un punto o rimane bloccato nella finestra della macchina virtuale.

Causa. Nel sistema operativo della macchina virtuale non sono installati servizi di integrazione.

Eliminazione. Se il sistema operativo sulla macchina virtuale è supportato, i servizi di integrazione saranno disponibili per quel sistema operativo. Per migliorare l'integrazione del mouse, installare i servizi di integrazione. Per istruzioni, vedere Installare il sistema operativo su una macchina virtuale. Se il sistema operativo della macchina virtuale non è supportato, puoi utilizzare una scorciatoia da tastiera per spostare il mouse fuori dalla finestra della macchina virtuale. La combinazione di tasti predefinita è CTRL+ALT+FRECCIA SINISTRA.

Impossibile utilizzare il mouse per controllare la macchina virtuale. Utilizzare Connessione desktop remoto per connettersi a un server su cui è installato Hyper-V.

Causa. Quando si utilizza Gestione Hyper-V per connettersi a una macchina virtuale, questa connessione viene fornita dal componente Connessione macchina virtuale. Tuttavia, l'utilizzo della connessione di una macchina virtuale in una sessione di Connessione desktop remoto non è supportato a meno che non sia installato Integration Services. Pertanto, il risultato previsto è la perdita della funzionalità del mouse.

Eliminazione. Non utilizzare la connessione di una macchina virtuale in una sessione di Desktop remoto finché non vengono installati i servizi di integrazione. Esistono diversi modi per risolvere questo problema.

  • Installa i servizi di integrazione. Per istruzioni, vedere Installare il sistema operativo su una macchina virtuale.
  • Stabilisci una sessione di connessione desktop remoto direttamente sulla macchina virtuale.
  • Accedere alla console del server che esegue Hyper-V e utilizzare il componente Connessione macchina virtuale per connettersi alla macchina virtuale.
  • Su un computer client supportato, installare gli strumenti di gestione Hyper-V per installare la funzionalità di connessione della macchina virtuale e creare una sessione di connessione alla macchina virtuale. Per ulteriori informazioni, consultare la Libreria tecnica di Windows Server 2008 (http://go.microsoft.com/fwlink/?LinkId=143558).

Quando si apre Gestione dispositivi nel sistema operativo su una macchina virtuale, alcuni dispositivi vengono contrassegnati come sconosciuti.

Causa. Gestione dispositivi non riconosce i dispositivi ottimizzati per l'uso nelle macchine virtuali ed eseguiti utilizzando Hyper-V a meno che non siano installati i servizi di integrazione. I dispositivi sconosciuti identificati in Gestione dispositivi variano a seconda del sistema operativo della macchina virtuale e possono includere: VMBus, Microsoft VMBus HID Miniport, Microsoft VMBus Network Adapter e storvsc Miniport.

Eliminazione. Se il sistema operativo sulla macchina virtuale è supportato, i servizi di integrazione saranno disponibili per quel sistema operativo. Dopo aver installato Integration Services, Gestione dispositivi riconoscerà i dispositivi disponibili per quel sistema operativo sulla macchina virtuale. Per istruzioni, vedere Installare il sistema operativo su una macchina virtuale.

È necessario monitorare le prestazioni della macchina virtuale, ma le informazioni sul processore in Task Manager non mostrano quali risorse del processore vengono utilizzate dalla macchina virtuale.

Causa. Task Manager non mostra le informazioni sulla CPU per le macchine virtuali.

Eliminazione. Per visualizzare le informazioni sull'utilizzo della CPU per le macchine virtuali in esecuzione su un server che esegue Hyper-V, utilizzare Monitoraggio prestazioni e stabilità del sistema. Mostra i dati raccolti dai contatori delle prestazioni Hyper-V. Per aprire il Monitoraggio delle prestazioni e della stabilità del sistema, fare clic su Inizio, seleziona un comando Eseguire ed entra perfmon.

I seguenti contatori delle prestazioni possono essere visualizzati nel sistema operativo host (che esegue il ruolo Hyper-V).

  • Processore logico Hyper-V Hyper-V - % tempo guest: determina la quantità di risorse del processore fisico utilizzate per eseguire le macchine virtuali. Questo contatore non identifica le singole macchine virtuali o la quantità di risorse consumate da ciascuna macchina virtuale.
  • Processore virtuale hypervisor Hyper-V Hyper-V - % tempo guest: determina la quantità di risorse del processore virtuale consumate dalla macchina virtuale.

Hyper-V è un esempio di tecnologia di virtualizzazione del server. Ciò significa che Hyper-V consente di virtualizzare un intero computer eseguendo più sistemi operativi (solitamente basati su server) su un computer fisico (solitamente con hardware di livello server). Ogni sistema operativo ospite pensa (se i sistemi operativi possono pensare) di possedere il computer e di avere il diritto esclusivo di utilizzare le sue risorse hardware (o qualsiasi altro insieme di risorse informatiche a cui la macchina virtuale ha accesso). Pertanto, ciascun sistema operativo viene eseguito in una macchina virtuale separata, con tutte le macchine virtuali in esecuzione sullo stesso computer fisico. In un ambiente standard non virtualizzato, un computer può eseguire solo un sistema operativo. La tecnologia Hyper-V offre al tuo computer questa capacità. Prima di esaminare come funziona la tecnologia Hyper-V, dobbiamo comprendere i principi operativi generali delle macchine virtuali.

Informazioni generali sulle macchine virtuali

Una macchina virtuale è un ambiente informatico implementato nel software che alloca le risorse hardware di un computer fisico in modo tale da fornire la possibilità di eseguire più sistemi operativi su un computer. Ogni sistema operativo viene eseguito nella propria macchina virtuale e dispone di istanze logiche dedicate di processori, dischi rigidi, schede di rete e altre risorse hardware del computer. Un sistema operativo in esecuzione in una macchina virtuale non sa di essere in esecuzione in un ambiente virtuale e si comporta come se avesse il pieno controllo dell'hardware del computer. L'implementazione delle macchine virtuali nel modo sopra descritto implica che la virtualizzazione del server deve essere implementata in conformità con i seguenti requisiti:

  • Interfacce di controllo
    La virtualizzazione del server richiede interfacce di gestione che consentano agli amministratori di creare, configurare e controllare le macchine virtuali in esecuzione su un computer. Queste interfacce devono inoltre supportare l'amministrazione del software e funzionare in rete, consentendo la gestione remota delle macchine virtuali.
  • Gestione della memoria
    La virtualizzazione del server richiede un gestore della memoria per garantire che tutte le macchine virtuali ricevano risorse di memoria allocate e isolate.
  • Strumento di pianificazione
    La virtualizzazione del server richiede uno strumento di pianificazione per controllare l'accesso delle macchine virtuali alle risorse fisiche. Lo strumento di pianificazione deve essere configurabile dall'amministratore ed essere in grado di assegnare diversi livelli di priorità alle apparecchiature.
  • Macchina statale
    La virtualizzazione del server richiede una macchina a stati che monitora le informazioni sullo stato corrente di tutte le macchine virtuali sul computer. Le informazioni sullo stato della macchina virtuale includono informazioni su CPU, memoria, dispositivi e stato della macchina virtuale (in esecuzione o arrestata). La macchina statale deve anche supportare la gestione delle transizioni tra stati diversi
  • Archiviazione e rete
    La virtualizzazione del server richiede la capacità di fornire risorse di archiviazione e di rete su un computer, consentendo a ciascuna macchina virtuale di avere accesso separato ai dischi rigidi e alle interfacce di rete. Inoltre, la virtualizzazione desktop richiede anche la possibilità per più macchine di accedere simultaneamente ai dispositivi fisici mantenendo coerenza, isolamento e sicurezza.
  • Dispositivi virtualizzati
    La virtualizzazione dei server richiede dispositivi virtualizzati che forniscano ai sistemi operativi in ​​esecuzione su macchine virtuali rappresentazioni logiche di dispositivi che si comportano allo stesso modo delle loro controparti fisiche. In altre parole, quando il sistema operativo accede a un dispositivo informatico fisico da una macchina virtuale, l'accesso al dispositivo virtualizzato corrispondente avviene in modo identico al processo di accesso a un dispositivo fisico.
  • Driver di dispositivo virtuale
    Per virtualizzare un server, è necessario installare i driver del dispositivo virtuale nei sistemi operativi in ​​esecuzione sulle macchine virtuali. I driver di dispositivo virtuale forniscono alle applicazioni l'accesso alle rappresentazioni virtuali dell'hardware e alle connessioni I/O allo stesso modo dell'hardware fisico.
Vedremo di seguito che la soluzione di virtualizzazione del server Hyper-V di Microsoft soddisfa tutti questi requisiti, ma prima esamineremo il componente software principale che consente la virtualizzazione del server, l'hypervisor.

Comprendere la Shell

Hypervisor è una piattaforma di virtualizzazione che consente l'esecuzione di più sistemi operativi su un singolo computer fisico: il computer host. La funzione principale dell'hypervisor è creare ambienti di esecuzione isolati per tutte le macchine virtuali e gestire l'interazione tra il sistema operativo guest sulla macchina virtuale e le risorse hardware sottostanti del computer fisico. Il termine hypervisor fu coniato nel 1972 quando IBM aggiornò il software di gestione per la piattaforma informatica System/370 per supportare la virtualizzazione. La creazione dell'hypervisor ha rappresentato una nuova pietra miliare nell'evoluzione della tecnologia informatica, poiché ha consentito di superare i limiti dell'architettura e ridurre i costi di utilizzo dei computer mainframe. Le shell di basso livello sono diverse. Ad esempio, differiscono nel tipo, ad es. a seconda che vengano eseguiti su hardware fisico o siano ospitati in un ambiente di sistema operativo. I gusci possono anche essere divisi per design: monolitici o microcore.

Conchiglia di tipo 1

Le shell di tipo 1 vengono eseguite direttamente sull'hardware fisico sottostante dei computer host e agiscono come programmi di controllo. In altre parole, vengono eseguiti “sull’hardware”. In questo caso, i sistemi operativi guest vengono eseguiti su più macchine virtuali situate sopra il livello dell'hypervisor (vedere Figura 1).

Poiché gli hypervisor di tipo 1 vengono eseguiti direttamente sull'hardware anziché nell'ambiente del sistema operativo, in genere forniscono prestazioni, disponibilità e sicurezza ottimali rispetto ad altri tipi. Gli hypervisor di tipo 1 sono implementati anche nei seguenti prodotti di virtualizzazione del server:

  • Microsoft Hyper-V
  • Citrix XenServer
  • Server VMware ESX

Guscio di tipo 2

Le shell di tipo 2 vengono eseguite in un ambiente del sistema operativo in esecuzione sul computer host. In questo caso, i sistemi operativi guest vengono eseguiti su macchine virtuali sopra un hypervisor (vedere Figura 2). Questo tipo di virtualizzazione viene solitamente chiamata virtualizzazione ospitata. Confrontando la Figura 2 con la Figura 1 si scopre che i sistemi operativi guest in esecuzione in macchine virtuali su piattaforme hypervisor di tipo 2 sono separati dall'hardware sottostante da un altro livello. Avere un livello aggiuntivo tra macchine virtuali e hardware provoca un degrado delle prestazioni sulle piattaforme shell di tipo 2 e limita il numero di macchine virtuali che possono essere eseguite nella pratica. Gli hypervisor di tipo 2 sono implementati anche nei seguenti prodotti di virtualizzazione del server:

  • Server virtuale Microsoft
  • Server VMware
Anche il prodotto di virtualizzazione desktop Microsoft Virtual PC utilizza un'architettura hypervisor di tipo 2.

Gusci monolitici di basso livello

Un'architettura shell monolitica prevede driver di dispositivo che supportano, risiedono all'interno e sono controllati dalla shell (vedere Figura 3).

L’architettura monolitica presenta sia vantaggi che alcuni svantaggi. Ad esempio, gli hypervisor monolitici non richiedono un sistema operativo host (principale) perché tutti gli ospiti comunicano direttamente con l'hardware del computer sottostante utilizzando i driver di dispositivo. Questo è uno dei vantaggi dell'architettura monolitica. D'altro canto, il fatto che i driver debbano essere progettati specificatamente per l'hypervisor presenta notevoli difficoltà, poiché sul mercato esistono diversi tipi di schede madri, controller di archiviazione, adattatori di rete e altre apparecchiature. Di conseguenza, i produttori di piattaforme hypervisor monolitiche devono collaborare strettamente con i produttori di hardware per garantire che i driver di questi dispositivi supportino l'hypervisor. Inoltre, ciò rende i produttori di shell dipendenti dai produttori di hardware per fornire i driver necessari per i loro prodotti. Pertanto, la gamma di dispositivi che possono essere utilizzati nei sistemi operativi virtualizzati su piattaforme shell monolitiche di basso livello è significativamente più ristretta rispetto alla situazione in cui gli stessi sistemi operativi vengono eseguiti su computer fisici. Una caratteristica importante di questa architettura è che ignora uno dei principi di sicurezza più importanti: la necessità di una difesa in profondità. Con la difesa in profondità si creano diverse linee di difesa. In questo modello non esiste una difesa in profondità, poiché tutto viene fatto nella parte più privilegiata del sistema. Un esempio di prodotto di virtualizzazione server che utilizza un'architettura hypervisor monolitica è VMware ESX Server.

Gusci di microkernel

Le shell di basso livello del microkernel non richiedono driver speciali, poiché il sistema operativo funge da partizione principale (genitore). Tale partizione fornisce l'ambiente di runtime necessario affinché i driver del dispositivo accedano all'hardware fisico sottostante del computer host. Delle partizioni parleremo più avanti, ma per ora immaginiamo che il termine “partizione” equivalga a macchina virtuale. Sulle piattaforme hypervisor microkernel, l'installazione del driver del dispositivo è richiesta solo per i dispositivi fisici in esecuzione sulla partizione principale. L'installazione di questi driver sui sistemi operativi guest non è necessaria poiché i sistemi operativi guest devono solo accedere alla partizione principale per accedere all'hardware fisico del computer host. In altre parole, l’architettura del microkernel non consente ai sistemi operativi guest di accedere direttamente all’hardware sottostante. È possibile accedere ai dispositivi fisici solo interagendo con la partizione principale. La Figura 4 mostra più in dettaglio l'architettura del microkernel dell'hypervisor.

L'architettura microkernel presenta numerosi vantaggi rispetto all'architettura monolitica. Innanzitutto, l'assenza della necessità di driver speciali consente l'utilizzo di un'ampia gamma di driver esistenti forniti dal produttore. In secondo luogo, i driver del dispositivo non sono inclusi nella shell, quindi crea meno carico, è più piccola ed è più resistente. In terzo luogo, e soprattutto, la potenziale superficie di attacco è ridotta al minimo perché nella shell non viene caricato codice estraneo (i driver del dispositivo vengono creati da terze parti e sono quindi considerati codice estraneo dal punto di vista dello sviluppatore della shell). Accetto che il software dannoso che penetra nella shell e stabilisce il controllo su tutti i sistemi operativi virtuali del computer è l'ultima cosa che vorresti sperimentare. L'unico inconveniente della progettazione del microkernel è la necessità di una partizione principale speciale. Ciò aumenta il carico sul sistema (anche se di solito è minimo) poiché l'accesso delle partizioni figlie all'hardware richiede che interagiscano con la partizione genitore. Un vantaggio significativo dell'architettura microkernel di Hyper-V è la fornitura di una difesa approfondita che consente di ridurre al minimo l'esecuzione del codice nell'hypervisor e di trasferire più funzioni nello stack (ad esempio, macchina a stati e controllo). interfacce, che in modalità utente vengono eseguite più in alto nello stack). Qual è un esempio di piattaforma di virtualizzazione server con architettura microkernel? Si tratta senza dubbio di Microsoft Hyper-V, con la partizione principale che esegue Windows Server 2008 o versioni successive.

Caratteristiche principali di Hyper-V

Di seguito sono elencate alcune delle caratteristiche principali della versione originale della piattaforma Microsoft Hyper-V:

  • Supporto per vari sistemi operativi
    Hyper-V supporta l'esecuzione simultanea di vari tipi di sistemi operativi, inclusi sistemi operativi a 32 e 64 bit su varie piattaforme server (ad esempio Windows, Linux e così via).
  • Estensibilità
    La tecnologia Hyper-V dispone di interfacce WMI (Windows Management Instrumentation) standard e API di programmazione che consentono a fornitori e sviluppatori di software indipendenti di creare rapidamente strumenti ed estensioni personalizzati per la piattaforma di virtualizzazione.
  • Bilanciamento del carico di rete
    Hyper-V fornisce funzionalità di commutazione virtuale che consentono l'uso del bilanciamento del carico di rete di Windows per bilanciare il carico tra macchine virtuali di server diversi.
  • Architettura del microkernel
    Hyper-V dispone di un'architettura hypervisor microkernel a 64 bit che consente alla piattaforma di fornire metodi di supporto per più dispositivi, prestazioni aggiuntive e sicurezza.
  • Virtualizzazione dell'hardware
    Hyper-V richiede l'uso delle tecnologie di virtualizzazione hardware Intel-VT o AMD-V.
  • Architettura di condivisione hardware
    Hyper-V utilizza un'architettura VSP (Virtualization Service Provider) e un'architettura VSC (Virtualization Service Client) che fornisce accesso e utilizzo migliorati delle risorse hardware (come disco, rete e video).
  • Migrazione veloce
    Hyper-V consente di spostare una macchina virtuale in esecuzione da un computer host fisico a un altro con una latenza minima. Questa operazione viene eseguita utilizzando gli strumenti di gestione ad alta disponibilità di Windows Server 2008 e System Center.
  • Scalabilità
    Hyper-V supporta più processori e core a livello di host, nonché l'accesso avanzato alla memoria a livello di macchina virtuale. Questo supporto rende gli ambienti di virtualizzazione scalabili per ospitare un gran numero di macchine virtuali su un singolo host. Tuttavia, le funzionalità di migrazione rapida consentono anche di scalare su più nodi.
  • Supporto per l'architettura multiprocessore simmetrico (SMP).
    Hyper-V supporta fino a quattro processori in un ambiente di macchina virtuale per l'esecuzione di applicazioni multi-thread in una macchina virtuale.

  • Hyper-V offre la possibilità di acquisire snapshot delle macchine virtuali in esecuzione per ripristinare rapidamente uno stato precedente, semplificando le soluzioni di backup e ripristino.
Tutte queste funzionalità vengono discusse in dettaglio in questa recensione, ma le più interessanti sono le funzionalità aggiunte a Hyper-V in R2. Queste funzioni sono descritte di seguito.

Novità in Hyper-V R2

Windows Server 2008 R2 aggiunge nuove funzionalità al ruolo Hyper-V. Migliorano la flessibilità, le prestazioni e la scalabilità di Hyper-V. Diamo un'occhiata a loro in modo più dettagliato.

Maggiore flessibilità

Hyper-V R2 include le seguenti nuove funzionalità che aumentano la flessibilità di distribuzione e manutenzione di un'infrastruttura di virtualizzazione del server:

  • Migrazione in tempo reale
    Hyper-V R2 include una funzionalità di migrazione in tempo reale che consente di spostare una macchina virtuale da un server Hyper-V a un altro senza interrompere la connessione di rete, senza interrompere l'esperienza dell'utente o interrompere il servizio. Lo spostamento comporta solo una diminuzione delle prestazioni per pochi secondi. La migrazione in tempo reale aiuta a garantire un'elevata disponibilità di server e applicazioni in esecuzione su server Hyper-V in cluster in un ambiente data center virtualizzato. La migrazione in tempo reale semplifica inoltre il processo di aggiornamento e manutenzione dell'hardware host e fornisce nuove funzionalità come la capacità di bilanciare i carichi di rete per la massima efficienza energetica o l'utilizzo ottimale del processore. La migrazione in tempo reale è descritta in dettaglio di seguito nella sezione Utilizzo della migrazione in tempo reale.
  • Volumi condivisi del cluster
    I volumi condivisi del cluster sono una nuova funzionalità del clustering di failover di Windows Server 2008 R2. Fornisce uno spazio dei nomi file singolo e coerente che consente a tutti i nodi del cluster di accedere allo stesso dispositivo di archiviazione. L'uso dei volumi condivisi del cluster è altamente consigliato per la migrazione in tempo reale ed è descritto di seguito nella sezione Utilizzo della migrazione in tempo reale.
  • Supporto per l'aggiunta e la rimozione a caldo di supporti di memorizzazione
    La versione R2 di Hyper-V consente di aggiungere o rimuovere dischi rigidi virtuali e dischi passthrough su una macchina virtuale in esecuzione senza spegnerla o riavviarla. Ciò ti consente di regolare l'intero spazio di archiviazione utilizzato dalla macchina virtuale man mano che il carico di lavoro cambia senza tempi di inattività. Inoltre, fornisce nuove funzionalità di backup in Microsoft SQL Server, Microsoft Exchange Server e nei data center. Per utilizzare questa funzionalità, i dischi virtuali e passthrough devono essere collegati alla macchina virtuale utilizzando un controller SCSI virtuale. Per ulteriori informazioni sull'aggiunta di controller SCSI alle macchine virtuali, vedere la sezione "Gestione delle macchine virtuali" di seguito.
  • Modalità di compatibilità del processore
    La nuova modalità di compatibilità del processore, disponibile in Hyper-V R2, consente di migrare una macchina virtuale da un computer host a un altro se l'architettura del processore corrisponde (AMD o Intel). Ciò semplifica l'aggiornamento dell'infrastruttura host Hyper-V semplificando la migrazione delle macchine virtuali da computer con hardware precedente a computer con hardware più recente. Inoltre, fornisce flessibilità per la migrazione delle macchine virtuali tra i nodi del cluster. Ad esempio, la modalità di compatibilità del processore può essere utilizzata per migrare macchine virtuali da un host Intel Core 2 a un host Intel Pentium 4 o da un host AMD Opteron a un host AMD Athlon. Tieni presente che la modalità di compatibilità del processore consente di migrare le macchine virtuali solo se l'architettura del processore dei nodi corrisponde. In altre parole, è supportata la migrazione AMD-AMD e Intel-Intel. La migrazione delle macchine virtuali da un computer host di un'architettura a un computer host di un'altra architettura non è supportata. In altre parole, le migrazioni AMD-Intel e Intel-AMD non sono supportate. Per ulteriori informazioni sulla modalità di compatibilità del processore e su come configurarla, consultare la barra laterale “Come funziona. modalità di compatibilità del processore."

Prestazione migliorata

Hyper-V R2 contiene le seguenti nuove funzionalità che possono migliorare le prestazioni dell'infrastruttura di virtualizzazione del server:

  1. Supporta fino a 384 macchine virtuali simultanee e fino a 512 processori virtuali per server
    Con l'hardware giusto, i server Hyper-V R2 possono essere utilizzati per raggiungere livelli di consolidamento dei server precedentemente irraggiungibili. Ad esempio, su un computer host Hyper-V puoi ospitare:
    • 384 macchine virtuali con un processore (significativamente inferiore al limite di 512 processori virtuali)
    • 256 macchine virtuali con due processori (totale 512 processori virtuali)
    • 128 macchine virtuali con quattro processori (512 processori virtuali in totale)

    È inoltre possibile eseguire qualsiasi combinazione di processori single-core, dual-core e quad-core, purché il numero totale di macchine virtuali non superi 384 e il numero totale di processori virtuali allocati alle macchine virtuali non superi 512. Queste funzionalità consentono a Hyper-V R2 di fornire le più alte densità di macchine virtuali attualmente disponibili sul mercato. In confronto, la versione precedente di Hyper-V in Windows Server 2008 SP2 supportava solo fino a 24 processori logici e fino a 192 macchine virtuali. Tieni presente che quando si utilizzano cluster di failover, Hyper-V R2 supporta fino a 64 macchine virtuali per nodo del cluster.

  2. Supporto per la traduzione degli indirizzi di secondo livello (SLAT).
    In Hyper-V R2, il processore gestisce le traduzioni degli indirizzi nelle macchine virtuali anziché nel codice Hyper-V che esegue a livello di codice i mapping delle tabelle. Pertanto, la tecnologia SLAT crea un secondo livello di pagine sotto le tabelle delle pagine x86/x64 dei processori x86/x64 attraverso uno strato di collegamento indiretto dall'accesso alla memoria della macchina virtuale all'accesso alla memoria fisica.
  3. Se utilizzato con i processori giusti (come i processori Intel con tabelle di pagine EPT estese a partire dalla generazione i7 o i più recenti processori AMD con tabelle di pagine NPT nidificate), Hyper-V R2 migliora significativamente le prestazioni del sistema in molti casi. I miglioramenti delle prestazioni sono dovuti a miglioramenti nella tecnologia di gestione della memoria e a una riduzione del numero di copie di memoria necessarie per utilizzare queste funzionalità del processore. Le prestazioni migliorano soprattutto quando si lavora con set di dati di grandi dimensioni (ad esempio, Microsoft SQL Server). L'utilizzo della memoria per l'hypervisor Microsoft Hypervisor può essere ridotto dal 5% all'1% della memoria fisica totale. Pertanto, sarà disponibile più memoria per le partizioni secondarie, consentendo un elevato grado di consolidamento.

  4. Camino
    Questa funzionalità consente di inoltrare il traffico TCP/IP per una macchina virtuale all'adattatore di rete fisico del computer host. Per raggiungere questo obiettivo, l'adattatore di rete fisica e il sistema operativo devono supportare l'offload TCP Chimney, che migliorerà le prestazioni della macchina virtuale riducendo il carico della CPU sui processori logici. Il supporto per l'offload di TCP Chimney su Microsoft Windows è apparso nelle versioni
  5. Tieni presente che non tutte le applicazioni potrebbero utilizzare questa funzionalità. In particolare, le applicazioni che utilizzano buffer preassegnati e connessioni di lunga durata con grandi quantità di dati trasferiti trarranno i maggiori vantaggi dall'abilitazione di questa funzionalità. Inoltre, tenere presente che gli adattatori di rete fisici che supportano l'offload TCP Chimney possono gestire un numero limitato di connessioni scaricate condivise da tutte le macchine virtuali sull'host.

  6. Supporto per la coda della macchina virtuale (VMQ).
    Hyper-V R2 fornisce supporto per le code dei dispositivi delle macchine virtuali (VMDq) - Intel Virtualization Technology For Connectivity. VMQ trasferisce l'attività di smistamento del traffico dati della macchina virtuale dal Virtual Machine Manager al controller di rete. Ciò consente a una singola NIC fisica di apparire come più NIC (code) nel guest, ottimizzando l'utilizzo della CPU e consentendo un aumento del throughput della rete e migliori capacità di gestione del traffico delle macchine virtuali. Il computer host quindi non memorizza i dati di accesso diretto alla memoria (DMA) dai dispositivi nel proprio buffer, poiché l'adattatore di rete può utilizzare questo accesso per instradare i pacchetti alla memoria della macchina virtuale. La riduzione del percorso I/O garantisce prestazioni migliori. Per ulteriori informazioni sulla coda VMDq, consultare il sito Web Intel all'indirizzo http://www.intel.com/network/connectivity/vtc_vmdq.htm.
  7. · Supporto per telai di grandi dimensioni
    I frame Jumbo sono frame Ethernet contenenti più di 1500 byte di carico utile. I frame di grandi dimensioni erano precedentemente disponibili in ambienti non virtuali. Hyper-V R2 offre la possibilità di eseguirli in macchine virtuali e supporta frame con dimensioni fino a 9014 byte (se supportato dalla rete fisica sottostante).

Ciò si traduce in un aumento del throughput della rete e in una riduzione dell'utilizzo della CPU durante il trasferimento di file di grandi dimensioni.

Maggiore scalabilità

Hyper-V R2 include le seguenti nuove funzionalità che migliorano la scalabilità dell'infrastruttura di virtualizzazione del server:

  • Supporta fino a 64 processori logici nel pool di processori principale
    Il numero di processori logici supportati in questa versione di Hyper-V è quadruplicato rispetto alla vecchia versione di Hyper-V. Ciò consente alle aziende di sfruttare i più recenti sistemi server scalabili e di grandi dimensioni per massimizzare i vantaggi derivanti dal consolidamento dei carichi di lavoro esistenti. Inoltre, l'uso di tali sistemi server rende più semplice fornire più processori per ciascuna macchina virtuale. Hyper-V supporta fino a quattro processori virtuali logici per macchina virtuale.
  • Supporto al parcheggio principale
    La funzionalità Core Parking consente a Windows e Hyper-V di consolidare l'elaborazione dei dati su un numero minimo di core del processore. Per fare ciò, i core del processore inattivi vengono sospesi ponendoli nello stato C (lo stato "parcheggiato"). Ciò consente di pianificare le macchine virtuali su un singolo nodo anziché distribuirle su più nodi. Ciò ha il vantaggio di avvicinarsi a un modello di elaborazione verde riducendo la quantità di energia richiesta dalla CPU dei nodi del data center.

Confronto tra Hyper-V e server virtuale

La potenza di Hyper-V ha già portato a sostituire Microsoft Virtual Server in molte organizzazioni che in precedenza si affidavano a Virtual Server per il consolidamento dei server, la continuità aziendale, i test e lo sviluppo. Allo stesso tempo, Virtual Server può ancora trovare applicazione nell'infrastruttura di virtualizzazione aziendale. La tabella 1 mette a confronto alcune funzionalità e dati tecnici di Hyper-V e Virtual Server.

Tabella 1. Confronto tra componenti e specifiche tecniche di Virtual Server 2005 R2 SP1 e Hyper-V R2

Componente o dati tecnici

Server virtuale 2005 R2 SP1

Architettura

Tipo di virtualizzazione

Sistemi ospitati

Basato sull'hypervisor

Prestazioni e scalabilità

Macchine virtuali a 32 bit

Macchine virtuali a 64 bit

Nodi a 32 bit

Nodi a 64 bit

Macchine virtuali con più processori

RAM guest massima per macchina virtuale

Numero massimo di CPU guest per macchina virtuale

RAM massima del nodo

Numero massimo di macchine virtuali in esecuzione

Gestione delle risorse

Disponibilità

Failover ospite

Failover dei computer host

Migrazione dei nodi

Istantanee della macchina virtuale

Controllo

Possibilità di espansione e controllo tramite script

Interfaccia utente

interfaccia web

Interfaccia MMC 3 0

Integrazione SCVMM

Ulteriori informazioni Per ulteriori informazioni sulle funzionalità del server virtuale e su come scaricarlo, visitare http://www.microsoft.com/windowsserversystem/virtualserver/downloads.aspx. Per informazioni sulla migrazione delle macchine virtuali da Virtual Server a Hyper-V, vedere la "Virtual Machine Migration Guide: How To Migrate from Virtual Server to Hyper-V" nella Libreria TechNet all'indirizzo http://technet.microsoft.com/en - us/library/dd296684.aspx .

Pubblicazioni sull'argomento