Windows Server Virtualization: Architettura - Parte 1

Per comprendere meglio l’architettura di Windows Server Virtualization conviene confrontarla con quella di Virtual Server 2005.

 

Una delle difficoltà nello sviluppo di Virtual Server è il fatto che malgrado i decennia di sviluppo dell’architettura x86, questa presenta ancora troppe lacune per poter supportare efficacemente uno strato di virtualizazione altamente compatibile.

Compatibilità per i Guest

Una dei maggiori vincoli posti durante lo sviluppo di Virtual Server 2005 è stata la richiesta di avere un ambiente di virtualizzazione in grado di fornire la massima compatibilità possibile con un ampio spettro di vecchi sistemi operative. Virtual Server è in grado, infatti, di eseguire un gran numero di sistemi operativi: da DOS a Windows Vista, passando per OS/2, Windows 95, Linux ecc… Io personalmente sono riuscito a far girare sistemi operativi un po’ esoterici come BeOS. Tre tecnologie chiavi consentono a Virtual Server di ottenere questi risultati: ring compression, patching del sistema operativo guest ed emulazione dei device.

Sotto trovate un diagramma dell’architettura di Virtual Server 2005 che ci faciliterà nel proseguio del discorso.

 

 WSV-004

 

Ring compression

Concentriamoci sulla parte destra dello schema soprastante ed in particolare la parte indicata con Guest Kernel Mode. Quello che accade è che il sistema operativo installato nella macchina virtuale pensa di essere eseguito a Ring 0 mentre nella realtà è eseguito a Ring 1. La tecnica Ring Compression consiste esattamente in questo. Virtual Server esegue la ring compression in modo da poter eseguire il Virtual Machine Monitor (VMM.sys) al di sotto del sistema operative guest, in Ring 0. In questo modo VMM.sys è in grado di intercettare le chiamate al “sottostante hardware”. Il ruolo principale di VMM.sys è quello di monitor: risiede tra hardware e sistema operative guest in modo da impedire a quest’ultimo di valicare il confine assegnati. Questa tecnica è un compromesso necessario per far funzionare la virtualizzazione su sitemi che non forniscono supporto hardware alla virtualizzazione.

L’avvento del supporto hardware alla virtualizzazione (Intel-VT e AMD-V) ha reso possibile disegnare Windows Server Virtualization in modo che non sia più necessario usare la Ring Compression. In questo modo è possibile:

· Semplificare lo strato di virtualizzazione

· Ridurre i problemi di test e di sviluppo

· Ridurre la superficie di esposizione

VM Additions

Consideriamo ora un altro componente presente nella parte destra dello schema sovrastante: le Virtual Machine Addition.

Le Virtual Machine Addition sono installate nel sistema operativo Guest (Windows o Linux – non disponibili per altri sistemi opertivi) e hanno due funzioni:

· Fornire integrazione con il sistema operativo Host (sincronizzazione del tempo, integrazione del cursore, hearthbeat del guest,…)

· Patchare il sistema operativo Guest in memoria per aumentarne le prestazioni

 

Se avete provato ad accedere ad un sistema operative Guest senza Virtual Machine Addition installate, lo scopo della prima funzione è ovvio.

La seconda funzione (modifica in memoria del sistema operativo guest) è tutta correlata alle prestazioni. Le Virtual Machine Addition includono un driver che è caricato a boot time nelle prime fasi del processo di boot. Lo scopo di questo driver è quello di patchare 6 istruzioni del sistema operativo guest che sono difficili ed dispendiose, in termini di prestazioni, da emulare. Anche questo è un compromesso legato alla non disponibilità di supporto hardware alla virtualizzazione. Con Windows Server Virtualizaztion e la virtualizzazione assistita da hardware non sarà più necessario eseguire il patching al volo del sistema operativo guest per aumentare le prestazioni.

 

Emulazione dei device

È il tipo di virtualizzazione dei device in cui l’interfaccia verso i device virtuali è indistinguibile dall’interfaccia degli analoghi device fisici.

L’emulazione dei device è resa necessaria da una serie di motivi, tra cui:

· Astrarre il sistema operativo Guest dal reale hardware fisico

· Fornire un metodo per la condivisione di diversi device fisici (es. dischi e rete) tra diversi sistemi operativi

Il team di sviluppo ha deciso di emulare una serie di specifici device fisici in modo da essere ragionevolmente sicuri che i sistemi operativi Guest avessero i driver necessari per supportare l’hardware virtuale. Alcuni dei device emulati sono:

· Piastra madre Intel 440 BX

· Scheda di rete DEC/Intel 21140

· Scheda grafica S3 Trio con 4MB di RAM video

· Scheda SCSI Adaptec 7870

La tecnica di emulazione dei device ha permesso di ottenere un’elevata compatibilità con un numero elevato di sistemi operativi, ma presenta dei pro e dei contro:

Pro:

Compatibilità: Il maggior beneficio dell’emulazione di device è l’estesa compatibilità all’indietro. La compatibilità con più di mille sistemi operativi è sicuramente una cosa importante (ATTENZIONE: compatibilità non significa supporto da parte di Microsoft)

Contro:

Prestazioni: Il prezzo che si paga con l’emulazione dei device è un sovraccarico che penalizza le prestazioni.

Ora abbiamo gli elementi base dell’architettura di Virtual Server che ci consentiranno di fare dei confronti con l’architettura di Windows Server Virtualization.

foto-technet Giorgio