La virtualizzazione * La virtualizzazione Hardware Sistema operativo Host Virtual Machine Manager Virtual Machine Guest OS(Linux) Applicazioni Virtual Machine Virtual Machine Guest OS(Windows XP) Guest OS(Free BSD) Applicazioni Applicazioni V i r t u a l P h y s i c a l
La virtualizzazione * Vantaggi Evita la sottoutilizzazione dei server (Server consolidation)
Riduce il downtime grazie alla rilocazione
Semplifica il load-balancing
Rinforza le politiche di sicurezza
La virtualizzazione * Requisiti per la virtualizzazione di Popek e Goldberg Sono le condizioni sufficienti perché un’architettura possa supportare la virtualizzazione
Le istruzioni di un’ISA vengono distinte in tre gruppi:
Privileged instructions
Generano una trap solo se si è in user mode.
Control sensitive instructions
Tentano di modificare le risorse del sistema (es. I/O, …).
Behavior sensitive instructions
Istruzioni il cui risultato dipende dalla configurazione delle risorse.
La virtualizzazione * Requisiti per la virtualizzazione di Popek e Goldberg Le istruzioni “Control sensitive” devono essere un sottoinsieme di quelle privilegiate.
Tutte le istruzioni che possono influenzare l’esecuzione del Virtal Machine Monitor devono generare una trap ed essere gestite dal VMM stesso.
Le istruzioni non privilegiate possono essere eseguite nativamente.
La virtualizzazione * Tipi di virtualizzazione Emulazione:
Permette l’esecuzione di un SO su una CPU completamente differente
Virtualizzazione piena:VirtualBox, Qemu, …
Esegue copie di SO completi
Poco efficiente
Para-virtualizzazione (UML, Xen)
Esegue SO completi su architetture particolari (es: XEN/x86)
La virtualizzazione * Flusso di istruzioni 1 2 3 4 5 6 Istruzioni
privilegiate Salti
La virtualizzazione * Binary rewriting Vengono esaminate le istruzioni del flusso del programma (a tempo di esecuzione)
Vengono individuate le istruzioni privilegiate
Vengono riscritte queste istruzioni con le versioni emulate.
La virtualizzazione * Binary rewriting Permette la virtualizzazione in spazio utente
Più lento
Si deve usare il caching delle locazioni di memoria
Le prestazioni tipiche vanno dall’80% al 97% di una macchina non virtualizzata.
Può essere implementato con i meccanismi dei debugger come i breakpoint.
La virtualizzazione * Paravirtualizzazione L’interfaccia presentata al software è simile ma non identica a quella dell’hardware perché alcune istruzioni non possono essere virtualizzate
Se un’istruzione del sistema guest genera una trap, questo ne deve gestire le conseguenze
Il sistema guest deve essere modificato.
Concettualmente simile al binary rewriting, ma il rewriting avviene a tempo di compilazione.
La virtualizzazione * Paravirtualizzazione Quando un’applicazione genera una systemcall, questa viene intercetta dal SO (guest)
Quando il SO guest prova ad eseguire istruzioni privilegiate, il VMM “intrappola” (traps) l’operazione e le esegue correttamente
Quindi i SO guest effettuano Hypercall per interagire con le risorse del sistema. Questo permette la protezione delle VM.
La virtualizzazione * Paravirtualizzazione su x86 Vengono usati i Ring dei processori x86: SO Applicazioni Hypervisor Applicazioni SO Esecuzione nativa Paravirtualizzazione 3 2 1 0
La virtualizzazione * Para-virtualizzazione: Xen Xen estende l’architettura x86
Simile a x86, Xen è invocato per le operazioni con privilegi
Elimina i binary rewriting
Minimiza il numero di transizioni a Xen
Modifications relatively simple and self-contained
Modify kernel to understand virtualised env.
Wall-clock time vs. virtual processor time
Desire both types of alarm timer
Expose real resource availability
Enables OS to optimise its own behaviour
La virtualizzazione * XEN: caratteristiche Secure isolation between VMs
Resource control and QoS
Only guest kernel needs to be ported
User-level apps and libraries run unmodified
Linux 2.4/2.6, NetBSD, FreeBSD, Plan9, Solaris
Execution performance close to native
Broad x86 hardware support
Live Relocation of VMs between Xen nodes
La virtualizzazione * Xen 3.0 Architecture Event Channel Virtual MMU Virtual CPU Control IF Hardware (SMP, MMU, physical memory, Ethernet, SCSI/IDE) Native
Device
Driver GuestOS
(XenLinux) Device
Manager &
Control s/w VM0 Native
Device
Driver GuestOS
(XenLinux) Unmodified
User
Software VM1 Front-End
Device Drivers GuestOS
(XenLinux) Unmodified
User
Software VM2 Front-End
Device Drivers Unmodified
GuestOS
(WinXP)) Unmodified
User
Software VM3 Safe HW IF Xen Virtual Machine Monitor Back-End Back-End VT-x x86
(32/64) SMP
La virtualizzazione * Ruolo del Domain 0 L’Hypervisor permette l’esecuzione dei SO guest.
Ogni SO guest viene eseguito in un ambiente detto domain
Il dom0 è il primo domain caricato da xen.
La virtualizzazione * Ruolo del Domain 0 Xen carica il dom0 come modulo (quindi non ha bisogno di filesystems) ed ha elevati privilegi.
Gli altri SO guest vengono eseguiti in Unprivileged Domains (domU);
Tutti i driver vengono gestiti dal SO in dom0: gestisce di dispositivi.
La virtualizzazione * Esempio di invio di un pacchetto di dati Domain U Guest Domain 0 Guest XEN Hardware Applicazione TCP/IP Split Dev. Driver Split Dev. Driver TCP/IP Driver Device Driver
La virtualizzazione * ring 3 Xen su x86 Xen reserva la parte alta dello spazio di indirizzamento
La segmentazione protegge le aree di xen
La velocità delle system call è invariata
Kernel User 4GB 3GB 0GB Xen S S U ring 1 ring 0
La virtualizzazione * Xen su x86 a 64 bit Large VA space makes life a lot easier, but:
No segment limit support
Need to use page-level protection to protect hypervisor
Kernel User 264 0 Xen U S U Reserved 247 264-247
Comments