Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Hyper-V è una tecnologia di virtualizzazione basata su hypervisor per determinate versioni x64 di Windows. L'hypervisor è fondamentale per la virtualizzazione. Si tratta della piattaforma di virtualizzazione specifica del processore che consente a più sistemi operativi isolati di condividere una singola piattaforma hardware.
Hyper-V richiede un processore che include la virtualizzazione assistita dall'hardware, ad esempio viene fornito con la tecnologia Intel VT o AMD Virtualization (AMD-V).
Il diagramma seguente offre una panoramica generale dell'architettura di un ambiente Hyper-V.
Partizioni radice e figlio
Hyper-V supporta l'isolamento in termini di partizione. Una partizione è un'unità logica di isolamento, supportata dall'hypervisor, in cui vengono eseguiti i sistemi operativi. L'hypervisor Microsoft deve avere almeno un elemento padre, o radice, partizione, che esegue Windows. Lo stack di gestione della virtualizzazione viene eseguito nella partizione padre e ha accesso diretto ai dispositivi hardware. La partizione radice crea quindi le partizioni figlio che ospitano i sistemi operativi guest. Una partizione radice crea partizioni figlio usando l'API (Application Programming Interface) hypercall.
Le partizioni secondarie non hanno accesso diretto ad altre risorse hardware e ricevono una vista virtualizzata delle risorse, come dispositivi virtuali (VDevs). Le richieste ai dispositivi virtuali vengono reindirizzate tramite VMBus o l'hypervisor ai dispositivi nella partizione padre, che gestisce le richieste.
Gestione di interrupt e memoria
Le partizioni non hanno accesso al processore fisico, né gestiscono gli interrupt del processore. Hanno invece una visualizzazione virtuale del processore ed eseguite in un'area di indirizzi di memoria virtuale privata per ogni partizione guest. L'hypervisor gestisce gli interrupt al processore e li reindirizza alla rispettiva partizione.
Hyper-V può anche accelerare la conversione degli indirizzi tra vari spazi di indirizzi virtuali guest usando un'unità IOMMU (Input Output Memory Management Unit) che opera indipendentemente dall'hardware di gestione della memoria usato dalla CPU. Un IOMMU viene usato per eseguire il mapping degli indirizzi di memoria fisica agli indirizzi usati dalle partizioni figlio.
Annotazioni
SLAT (Second Level Address Translation) è necessario per Hyper-V in Windows Server 2016 e versioni successive.
VMBus, VSP e VSC
VMBus è un canale di comunicazione tra partizioni logiche. La partizione padre ospita i provider di servizi di virtualizzazione (VSP) che comunicano tramite VMBus per gestire le richieste di accesso ai dispositivi dalle partizioni figlio. Le partizioni figlio ospitano i consumer del servizio di virtualizzazione (VSC) che reindirizzano le richieste dei dispositivi ai vsp nella partizione padre tramite VMBus. Questo intero processo è trasparente per il sistema operativo guest.
Servizi di I/O e integrazione illuminati
I dispositivi virtuali possono anche sfruttare una funzionalità di virtualizzazione di Windows Server, denominata "Enlightened I/O", per archiviazione, rete, grafica e sottosistemi di input. L'I/O con riconoscimento dei dati aziendali è un'implementazione specializzata in grado di supportare la virtualizzazione di protocolli di comunicazione di alto livello (ad esempio SCSI) che usano direttamente vmBus, ignorando qualsiasi livello di emulazione del dispositivo. In questo modo la comunicazione risulta più efficiente, ma richiede un guest con riconoscimento dei dati con riconoscimento dei dati di hypervisor e VMBus.
Hyper-V I/O ottimizzato e un kernel consapevole dell'hypervisor vengono forniti tramite i servizi di integrazione Hyper-V. I componenti di integrazione, che includono i driver di Virtual Server Client (VSC), sono disponibili anche per altri sistemi operativi client.
Glossario
- APIC – Advanced Programmable Interrupt Controller – Un dispositivo che consente di assegnare i livelli di priorità agli output di interrupt.
- Partizione figlio: partizione che ospita un sistema operativo guest: tutti gli accessi alla memoria fisica e ai dispositivi da una partizione figlio vengono forniti tramite il bus di macchina virtuale (VMBus) o l'hypervisor.
- Hypercall : interfaccia per la comunicazione con l'hypervisor: l'interfaccia hypercall supporta l'accesso alle ottimizzazioni fornite dall'hypervisor.
- Hypervisor : un livello di software che si trova tra l'hardware e uno o più sistemi operativi. Il processo principale consiste nel fornire ambienti di esecuzione isolati denominati partizioni. L'hypervisor controlla e arbitra l'accesso all'hardware sottostante.
- IC : componente di integrazione: componente che consente alle partizioni figlio di comunicare con altre partizioni e l'hypervisor.
- IOMMU: unità di gestione della memoria di input/output – una unità di gestione della memoria che connette un bus di I/O capace di accesso diretto alla memoria alla memoria principale, rimappando gli indirizzi fisici agli indirizzi fisici guest per l'isolamento del dispositivo.
- Stack di I/O - Stack di input/output
- MSR – Model-Specific Registri. Utilizzato per i valori di stato e controllo.
- Partizione radice : talvolta denominata partizione padre. Gestisce funzioni a livello di computer, ad esempio driver di dispositivo, risparmio energia e aggiunta/rimozione dei dispositivi ad accesso frequente. La partizione radice (o padre) è l'unica partizione che ha accesso diretto a memoria fisica e dispositivi.
- VDev – dispositivo virtuale – rappresentazione virtualizzata di un dispositivo hardware presentato alle partizioni figlio. VDevs astrae l'hardware fisico, consentendo ai sistemi operativi guest di interagire con i dispositivi tramite il VMBus o l'hypervisor.
- VID - Driver dell'infrastruttura di virtualizzazione: fornisce servizi di gestione delle partizioni, servizi di gestione del processore virtuale e servizi di gestione della memoria per le partizioni.
- VMBus : meccanismo di comunicazione basato sul canale usato per la comunicazione tra partizioni e l'enumerazione dei dispositivi nei sistemi con più partizioni virtualizzate attive. VmBus viene installato con Hyper-V Integration Services.
- VMMS - Servizio Gestione macchine virtuali : responsabile della gestione dello stato di tutte le macchine virtuali nelle partizioni figlio.
- VMWP - Processo di lavoro di macchine virtuali: componente in modalità utente dello stack di virtualizzazione. Il processo di lavoro fornisce servizi di gestione delle macchine virtuali dall'istanza di Windows Server 2008 nella partizione padre ai sistemi operativi guest nelle partizioni figlio. Il servizio Virtual Machine Management genera un processo di lavoro separato per ogni macchina virtuale in esecuzione.
- VSC - Virtualization Service Client: istanza di dispositivo sintetico che risiede in una partizione figlio. Le schede di confronto usano risorse hardware fornite dai provider di servizi di virtualizzazione (VSP) nella partizione padre. Comunicano con i vsp corrispondenti nella partizione padre su VMBus per soddisfare le richieste di I/O dei dispositivi delle partizioni figlio.
- VSP : provider di servizi di virtualizzazione: risiede nella partizione radice e fornisce il supporto del dispositivo sintetico alle partizioni figlio sul bus di macchine virtuali (VMBus).
- WinHv - Libreria dell'interfaccia di Windows Hypervisor - WinHv è essenzialmente un ponte tra i driver di un sistema operativo partizionato e l'hypervisor che consente ai driver di chiamare l'hypervisor usando convenzioni di chiamata standard di Windows
- WMI : il servizio Gestione macchine virtuali espone un set di API basate su Strumentazione gestione Windows (WMI) per la gestione e il controllo delle macchine virtuali.