UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA Corso di Sistemi Operativi Prof. Stefano Berretti SEMINARIO: VIRTUALIZZAZIONE DI INFRASTRUTTURE INFORMATICHE a cura di: Nicola Fusari A.A. 2012/2013
1. INTRODUZIONE 2
Virtualizzazione Realizzazione di risorse in astrazione dalla fisicità delle strutture hardware sulle quali si appoggiano materialmente Contesti, approcci e soluzioni anche molto differenti Varie chiavi di interpretazione Consolidamento, ottimizzazione, risparmio Superamento dei limiti delle strutture ITC reali Incremento di affidabilità e disponibilità 3
Virtualizzazione per grandi Riduzione degli spazi e dei costi, energetici e di gestione, dei grandi data center Innalzamento delle prestazioni Realizzazione di strutture di fault tolerance e piccoli Virtualizzazione del desktop Virtualizzazione a livello utente 4
2. RACCORDI CON IL CORSO DI S.O. 5
Sistema Operativo E uno dei quattro componenti fondamentali di un Sistema di Calcolo (a sua volta costituito da utenti, applicativi, sistema operativo e hardware) E l ambiente che funge da tramite fra le esigenze degli utenti e le risorse (hardware e dati) del Sistema di Calcolo E l unico programma sempre in esecuzione su un computer (kernel) 6
Classificazione (ed evoluzione) dei S.O. Sistemi batch semplici (totale assenza di interattività, spreco di tempo macchina) Sistemi batch multiprogrammati (spooling, scheduling dei job) Sistemi time-sharing (multiutenza, interattività, ottimizzazione dello sfruttamento del tempo macchina e dei costi dei mainframe) Sistemi per personal computer (praticità e prontezza d uso vs sfruttamento tempo macchina) Sistemi paralleli Sistemi distribuiti Sistemi real-time (hard real-time e soft-real time) 7
Spooling La CPU si svincola in parte dai tempi dei dispositivi di I/O utilizzando il disco come una sorta di buffer per i dati di ingresso e uscita Scheduling dei job Poiché i job sono recuperabili da disco in un ordine NON necessariamente sequenziale, il S.O. può decidere l ordine di caricamento in memoria ed esecuzione degli stessi al fine di ottimizzare lo sfruttamento della CPU 8
Modalità user e monitor (o privilegiata) della CPU Possibilità della CPU di lavorare in due distinte modalità: utente e monitor (o privilegiata). Le istruzioni in grado di alterare lo stato del sistema possono essere eseguite solo in modalità privilegiata (e quindi dal S.O.) Un applicativo utente che debba eseguire un operazione che richiede un istruzione privilegiata deve passare necessariamente attraverso il S.O. 9
3. LE BASI DELLA VIRTUALIZZAZIONE 10
Obiettivi richiesti ai prodotti di Virtualizzazione: Introdurre un ulteriore livello di astrazione tra le applicazioni e l'hardware Favorire una riduzione dei costi e della complessità Eliminare le ridondanze e massimizzare l'utilizzo delle infrastrutture IT Migliorare i livelli e la qualità del servizio Allineare in modo più efficace i processi IT agli obiettivi aziendali Garantire l'isolamento delle risorse informatiche per una migliore affidabilità e sicurezza. 11
ATLAS Computer (Manchester University) nasce il concetto di «Hypervisor» Cenni Storici IBM VM/370 Introduzione di un VMM (in hardware) che gestisce varie VM per vari utenti Decentralizzazione e proliferazione dei Server 1960 1962 1964 1972 1978 1983 1997 Christopher Strachey (Oxford University) introduce il concetto di «Time Sharing» IBM M44/44X (Centro di Ricerca T.J. Watson, NY) viene coniato il termine «Virtual Machines» per istanze in contemporanea esecuzione Intel 8086 Olivetti M24 Diffusione famiglia x86 80286/80386 80486/Pentium VirtualPC VMWare VirtualPC VirtualBox 1997 1998 2003 2007 2012 Ritorno alla Centralizzazione reinterpretata alla luce della Virtualizzazione mediante software VMM 12
Centralizzazione reinterpretata in chiave moderna tramite la Virtualizzazione 13
4. I PERCHÉ ED I COME DELLA VIRTUALIZZAZIONE 14
Benefici offerti dalla Virtualizzazione: CONSOLIDAMENTO AFFIDABILITÀ SICUREZZA 15
Consolidamento Riduzione dell hardware e bilanciamento dei carichi di lavoro Incremento del livello di sfruttamento delle risorse dei server fisici Migrazione dei sistemi legacy verso hardware di nuova generazione Aggregazione di S.O. diversi su di una medesima piattaforma hardware Snellimento e riduzione degli ambienti di sviluppo e di test Flessibilità nell impiego delle risorse disponibili, con la possibilità di variare in base alle esigenze del momento le risorse fisiche dedicate a ciascuna VM 16
Affidabilità (e Disponibilità) Isolamento completo fra le VM ed i relativi processi relativamente agli errori delle applicazioni in esecuzione Semplificazione e velocizzazione delle operazioni di backup e ripristino che possono riguardare non solo i dati ma tutta la VM completa di Sistema Operativo e relative impostazioni Possibilità di realizzare una migrazione a caldo delle macchine virtuali Possibilità di creare VM di scorta in grado di sostituirne altre con modalità on-demand oppure just-in-time Possibilità di riutilizzo dell hardware dedicato ai sistemi di fault tolerance 17
Sicurezza Isolamento completo fra le VM relativamente ad eventuali falle di sicurezza Configurazioni di sicurezza distinte per macchine virtuali diverse anche in esecuzione sul medesimo server host Credenziali di Administrator (o diritti di root) distinte per macchine virtuali diverse 18
I meccanismi della Virtualizzazione basata sul software 19
Virtualizzazione basata sul software e architettura x-86 Anelli privilegiati nell Architettura x-86 privilegi minori privilegi maggiori Anelli privilegiati nei moderni S.O. 20
Tipi di Hypervisor o Virtual Machine Manager (VMM): VMM di Tipo-1 VMM di Tipo-2 21
Requisiti di virtualizzazione di Popek e Goldberg per un VMM Equivalenza (Fidelity) Controllo delle Risorse (Safety) Efficienza (Performance) 22
Full Virtualization Paravirtualizzazione Tipi di Virtualizzazione Problema: Implementare un VMM che soddisfi i requisiti di Popek-Goldberg nel contesto di un architettura x-86 Approcci (tipologie) principali alla Virtualizzazione: Virtualizzazione del Sistema Operativo Virtualizzazione Hardware Assisted (o Nativa) 23
Full Virtualization Nessuna necessità di modifica dei S.O. guest e degli applicativi delle VM Necessità di impiegare il trap delle istruzioni critiche e la loro traduzione binaria, con effetti negativi sulle prestazioni 24
Paravirtualizzazione Basso overhead di virtualizzazione e buone performance in virtù delle modifiche del S.O. guest Impossibilità di supportare S.O. guest NON modificabili (proprietari). 25
Virtualizzazione del S.O. Viene realizzata attraverso la creazione di copie del S.O. installato sull Host. I sistemi guest risultano così a tutti gli effetti istanze del S.O. host, con un proprio file system, librerie, applicazioni, ed un proprio utente di root, ma utilizzano tutte il medesimo kernel dell host con un conseguente minor utilizzo di memoria fisica. Leggera ed efficace (ogni istanza praticamente gira a velocità normale) Non supporta l hosting di S.O. diversi fra loro e le varie istanze guest, condividendo il kernel, non sono così isolate e sicure come con altri tipi di virtualizzazione 26
Hardware Assisted Virtualization Evita sia il trap che la traduzione binaria delle istruzioni privilegiate del S.O. guest, approfittando della presenza di un livello privilegiato al di sotto del ring-0 (livello di root mode) messo a disposizione del VMM dalle moderne CPU Richiede processori dotati delle istruzioni estese di virtualizzazione (VT-x o AMD-V) 27
5. UN ESEMPIO DI VMM TYPE-2: ORACLE VIRTUALBOX 28
Caratteristiche di Oracle VirtualBox : È rilasciato in versione OSE (Open Source Edition) sotto licenza GPL (General Public Licence) È un VMM di Tipo-2 caratterizzato da grande portabilità e da ampio supporto ai più diffusi S.O. guest Realizza una virtualizzazione di tipo «full» nel contesto della quale i S.O. guest sono inconsapevoli di non essere in uno scenario fisico Non richiede necessariamente le estensioni di virtualizzazione dei processori più recenti, ma se presenti trae pieno vantaggio da queste in termini di efficienza Può contare, oltre che su Oracle, su una folta comunità di utenti, in grado di fornire (tramite forum e numerosissimi siti) supporto tecnico sostanzialmente a costo zero efficienza? prestazioni? 29
Alcuni Print Screen esemplificativi 2 Server + 4 Client in esecuzione: situazione stabile sull Host dell Ambiente Virtualizzato Miniature RDP di 2 Server e 4 Client Virtualizzati in contemporanea esecuzione sul Server Host di VirtualBox 1 2 L aggiunta di 1 ulteriore Client genera un errore che manda in blocco tale client SENZA però INFLUENZARE le altre VM in esecuzione 6 3 5 4 7 Print Screen Server Host VirtualBox con errore su una VM 30
Fine