Windows Server Virtualization: Architettura - parte 2

Dopo aver visto l’architettura di Virtual Server 2005 abbiamo ora le basi per poter vedere quella di Windows Server Virtualization evidenziando le differenze.

No ring compression

Mentre in Virtual Server 2005 la ring compression era una tecnica fondamentale per rendere possible la virtualizzazione, in Windows Server Virtualization questa tecnica non è stata minimamente usata.

Diamo un’occhiata al diagramma sottostante. È da notare la presenza e l’uso di tre diversi ring di processore: Ring-3 (User mode), Ring-0 (Kernel mode) e un nuovo “Ring -1.” “Ring-1” rappresenta una delle principali novità introdotte dalla virtualizzazione assistita da hardware: l’aggiunta di nuovi ring alla piattaforma hardware per facilitare la virtualizzazione. Questo significa che non è più necessario comprime un sistema operativo in “Ring-1” per poter inserire codice al di sotto, semplicemente si usa un nuovo ring che risiede sotto il ring di esecuzione del sistema operativo: in questo nuvo ring è eseguito l’hypervisor

 WSV-005

Nessuna patch per i guest

Un altro beneficio dell’esecuzione del sistema operativo guest in Ring-0 (nella modalità per cui è stato disegnato) è un incremento delle prestazioni senza nessuna modifica: non è più necessario usare delle patch (VMAddition) per aumentare le prestazioni del sistema operative guest.

Windows hypervisor

Un altro aspetto da notare nel diagramma sovrastante è la presenza di Windows hypervisor. Questo è un elemento completamente nuovo. In Virtual Server il Virtual Machine Monitor gira in Windows (questa viene chiamata virtualizzazione hosted). Con Windows Server Virtualization il Virtual Machine Monitor (hypervisor) gira “sul metallo”: questa è chiamata virtualizzazione hypervisor-based. L’hypervisor è un componente che viene installato solo quando si decide di installare il ruolo server di Windows Server Virtualization, non è presente per default nelle installazioni di Windows Server “Longhorn”.

Partizione Parent

La partizione Parent agisce come proprietario di default di tutte le risorse hardware. Tra i suoi compiti tipici ci sono la gestione del power management, del plug and play e degli eventi legati agli errori hardware. La partizione è anche responsabile della creazione e della gestione delle altre partizioni e dell’assegnazione delle risorse hardware. Entriamo in maggiore dettaglio nelle funzioni della partizione Parent.

I driver risiedono nella partizione Parent

Una domanda frequente che mi è posta quando si parla di Windows Server Virtualization è “Dove devo installare i driver della mia scheda fiber channel, della mia scheda video, del mio adattatore di rete, ecc?”

I driver dei componenti hardware del sistema sono installati nella partizione Parent (sono indicati nel diagramma sovrastante come “IHV Drivers”). Questi driver sono normali driver standard per Windows drivers, non driver speciali per la virtualizzazione. Il fatto che Windows Server Virtualization non richieda driver speciali è fondamentale se consideriamo le migliaia di driver disponibile per Windows.

Nessun driver per l’hardware del sistema fisico host è eseguito nelle partizioni Child. Le macchine virtuali presentano al sistema operativo guest dei device virtualizzati in forma di device emulati o di device sintetici. Torneremo a breve sull’argomento device driver.

Gestione remota di Windows Server Virtualization via interfaccia WMI nella partizione Parent

Windows Server Virtualization usa le API WMI per creare, gestire, controllare, configurare le risorse virtuali (“WMI Provider” nel diagramma sovrastante). Allo stato attuale di sviluppo (siamo in fase pre-beta alla data di scrittura di questo articolo) le API non sono ancora complete e quindi non sono ancora state pubblicate. Quando la prima beta di Windows Server Virtualization sarà rilasciata al pubblico il team di sviluppo rilascerà anche una prima versione beta della documentazione relativa a queste API. Quando il prodotto sarà completo e rilasciato in via definitiva al pubblico le WMI API di Windows Server Virtualization saranno rese disponibili, con la relativa documentazione via MSDN.

Ci aspettiamo che le API WMI di Windows Server Virtualization vengano diffusamente usate in una serie di differenti scenari:

  • Da vendor di sistemi di gestione che vogliano scrivere tools per la gestione di WSV (esempio HP Openview e IBM Director)
  • Da grandi aziende che vogliano costruire i loro tool interni di gestione degli ambienti virtualizzati
  • Sviluppatori che vogliano automatizzare la virtualizzazione di ambient di sviluppo/test usando script

Importante

Le API WMI son oil metodo preferenziale per gestire programmaticamente Windows Server Virtualization.

Da quanto detto fin’ora sulla partizione Parent è evidente che questa costituisca un single point of failure. Effettivamente la perdita di funzionalità della partizione Parent per spegnimenti pianificati (manutenzione, applicazione di patch) o non pianificati (problemi hardware o di alimentazione, per es.) determina la perdità di funzionalità di tutte le macchine virtuali. Questo fatto rende ancora più evidente l’importanza di un punto rimarcato sin dall’uscita di Virtual Server 2005 R2: alta disponibilità e virtualizzazione devono viaggiare appaiati. Con Windows Server Virtualization l’utilizzo del servizio di Microsoft Cluster Service, integrato in un’installazione Server Core di Windows Server “Longhorn”, è molto più semplice di quanto non sia oggi con Virtual Server 2005 R2.

Credo che i due consigli ripetuti più frequentemente relativamente a Windows Server Virtualization saranno:

  1. Eseguire Windows Server Virtualization con un’installazione Server Core di Windows Server “Longhorn”
  2. Mettere in cluster gli host fisici

Un’altra obbiezione che può essere fatta riguardo la partizione Parent è che questa sembra molto simile al sistema operative hoste di Virtual Server (e di Virtual PC). Effettivamente la partizione Parent di Windows Server Virtualization fa alcune delle cose che sono fatte dal sistema operativo host di Virtual Server. La cosa che deve essere chiara è che Windows Server Virtualization non è virtualizzazione hosted, ma hypervisor-based e la differenza tra le due è sostanziale, come ho cercato di evidenziare fino ad ora. La partizione parent è il “luogo” dove vengono eseguiti i device driver per i dispositivi hardware, a differenza di quanto avviene per esempio in VMWare ESX dove questi sono eseguiti nell’hypervisor stesso. Questa scelta è stata fatta per evitare che codice di terze parti fosse eseguito nell’hypervisor e per non determinare un eccessiva crescita delle dimensioni di questo con importanti ricadute negative su sicurezza e prestazioni.

Windows Server Virtualization può essere eseguito indifferentemente con un’installazione full o con un’installazione Server Core di Windows Server “Longhorn”

Pur potendo usare entrambe le modalità di installazione di Windows Server “Longhorn” è consigliato l’utilizzo della modalità Server Core per ridurre la quantità di risorse usate dalla partizione Parent e per ridurre la superficie di esposizione. Se si esegue Windows Server Virtualization con un’installazione full di Windows Server “Longhorn”, dalla partizione Parent sembrerà di trovarsi in una situazione di virtualizzazione hosted, ma non è così.

Eseguendo Windows Server Virtualization con una partizione Parent installata in modalità Server Core, si nota immediatamente la differenza.

Per oggi fermiamo qui. Nel prossimo articolo vedremo come funzionano i device virtuali.

Buona giornata a tutti

 

foto-technet

 

Giorgio