Condividi tramite


Architettura Hyper-V

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 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 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.

Anche le partizioni figlio non hanno accesso diretto ad altre risorse hardware e vengono presentate una visualizzazione virtuale delle risorse, come dispositivi virtuali (VDev). Le richieste ai dispositivi virtuali vengono reindirizzate tramite VMBus o l'hypervisor ai dispositivi nella partizione padre, che gestisce le richieste. 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.

I dispositivi virtuali possono anche sfruttare una funzionalità di virtualizzazione di Windows Server, denominata I/O con riconoscimento dei dati aziendali, 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 con riconoscimento dei dati e un kernel compatibile con hypervisor viene fornito tramite l'installazione di Hyper-V integration services. I componenti di integrazione, inclusi i driver del client server virtuale (VSC), sono disponibili anche per altri sistemi operativi client. 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.

Diagramma dell'architettura generale di Hyper V, che mostra le quattro partizioni e le sezioni hypervisor.

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.
  • Stack di I/O - Stack di input/output
  • MSR - Routine del servizio memoria
  • 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.
  • 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.