Università degli Studi di Roma “ Tor Vergata ” Dipartimento di Ingegneria Civile e Ingegneria Informatica Virtualizzazione Corso di Sistemi Distribuiti e Cloud Computing A.A. 2018/19 Valeria Cardellini References • “Virtual machines and virtualization of clusters and data centers”, chapter 3 of Distributed and Cloud Computing http://bit.ly/2xBa2xg • “Virtualization” , chapter 3 of Mastering Cloud Computing • J.E. Smith, R. Nair, The architecture of virtual machines, IEEE Computer , 2005. http://bit.ly/2z5cW0X • D. Bernstein, Containers and Cloud: From LXC to Docker to Kubernetes , IEEE Cloud Computing , 2014. http://bit.ly/2hqudbf • More papers on the course web site Valeria Cardellini - SDCC 2018/19 1
Virtualizzazione • Livello alto di astrazione che nasconde i dettagli dell’implementazione sottostante • Astrazione di risorse computazionali – Si presenta all’utilizzatore una vista logica diversa da quella fisica • Gli obiettivi della virtualizzazione possono essere diversi: – Affidabilità, prestazioni, sicurezza, … • Come? Disaccoppiando l’architettura ed il comportamento delle risorse hw e sw percepiti dall’utente dalla loro realizzazione fisica Valeria Cardellini - SDCC 2018/19 2 Virtualizzazione di risorse • Virtualizzazione di risorse (hw e sw) di sistema – Macchina virtuale, container, … • Virtualizzazione di storage – Storage Area Network (SAN), … • Virtualizzazione di rete – Virtual LAN (VLAN), Virtual Private Network (VPN), … • Virtualizzazione di data center Valeria Cardellini - SDCC 2018/19 3
Components of virtualized environment • Three major components: – Guest – Host – Virtualization layer • Guest : system component that interacts with the virtualization layer rather than with the host • Host : original environment where the guest is supposed to be managed • Virtualization layer : responsible for recreating the same or a different environment where the guest will operate Valeria Cardellini - SDCC 2018/19 4 Taxonomy of virtualization techniques • Execution environment virtualization is the oldest, most popular and most developed area we will mostly investigate it Valeria Cardellini - SDCC 2018/19 5
Macchina virtuale • Una macchina virtuale (VM, Virtual Machine) permette di rappresentare le risorse hw/sw di una macchina diversamente dalla loro realtà – Ad es. le risorse hw della macchina virtuale (CPU, scheda di rete, … ) possono essere diverse dalle risorse fisiche della macchina reale • Una singola macchina fisica può essere rappresentata e usata come differenti ambienti di elaborazione – Molteplici VM su una singola macchina fisica VM1 VM2 VM3 Virtualization layer Hardware Valeria Cardellini - SDCC 2018/19 6 Virtualizzazione: cenni storici • Il concetto di VM è un’idea “ vecchia ” , essendo stato definito negli anni ’ 60 in un contesto centralizzato – Ideato per consentire al software legacy (esistente) di essere eseguito su mainframe molto costosi e condividere in modo trasparente le (scarse) risorse fisiche – Ad es. il mainframe IBM System/360-67 • Negli anni ’ 80, con il passaggio ai PC il problema della condivisione trasparente delle risorse di calcolo viene risolto dai SO multitasking – L’interesse per la virtualizzazione svanisce Valeria Cardellini - SDCC 2018/19 7
Virtualizzazione: cenni storici (2) • Alla fine degli anni '90, l’interesse rinasce per rendere meno onerosa la programmazione hw special- purpose – VMware viene fondata nel 1998 • Si acuisce il problema dei costi di gestione e di sottoutilizzo di piattaforme hw e sw eterogenee – L’hw cambia più velocemente del sw (middleware e applicazioni) – Aumenta il costo di gestione e diminuisce la portabilità • Diventa nuovamente importante la condivisione dell’hw e delle capacità di calcolo non usate per ridurre i costi dell’infrastruttura • E’ una delle tecnologie abilitanti del Cloud computing Valeria Cardellini - SDCC 2018/19 8 Virtualizzazione: vantaggi • Facilita la compatibilità, portabilità, interoperabilità e migrazione di applicazioni ed ambienti – Indipendenza dall’hw – Create Once, Run Anywhere – VM legacy: eseguire vecchi SO o vecchie applicazioni su nuove piattaforme Valeria Cardellini - SDCC 2018/19 9
Virtualizzazione: vantaggi (2) • Permette il consolidamento dei server in un data center, con vantaggi economici, gestionali ed energetici – Multiplexing di molteplici VM sullo stesso server – Obiettivo: ridurre il numero totale di server usati, utilizzandoli in modo più efficiente – Vantaggi: • Riduzione dei costi e dei consumi energetici • Semplificazione nella gestione, manutenzione ed upgrade dei server • Riduzione dello spazio occupato e dei tempi di downtime Valeria Cardellini - SDCC 2018/19 10 Virtualizzazione: vantaggi (3) • Permette di isolare componenti malfunzionanti o soggetti ad attacchi di sicurezza, incrementando l’affidabilità e la sicurezza delle applicazioni – Macchine virtuali di differenti applicazioni non possono avere accesso alle rispettive risorse – Bug del software, crash, virus in una VM non possono danneggiare altre VM in esecuzione sulla stessa macchina fisica • Permette di isolare le prestazioni – Ad es. tramite opportuno scheduling delle risorse fisiche che sono condivise tra molteplici VM • Permette di bilanciare il carico sui server – Tramite la migrazione della VM da un server ad un altro Valeria Cardellini - SDCC 2018/19 11
Uso di ambienti di esecuzione virtualizzati • In ambito personale e didattico – Per eseguire diversi SO simultaneamente – Per semplificare l’installazione di sw • In ambito professionale – Per debugging , testing e sviluppo di applicazioni • In ambito aziendale – Per consolidare l’infrastruttura del data center – Per garantire business continuity : incapsulando interi sistemi in singoli file (system image) che possono essere replicati, migrati o reinstallati su qualsiasi server Valeria Cardellini - SDCC 2018/19 12 Architetture delle macchine virtuali A che livello realizzare la virtualizzazione? • Dipende fortemente dalle interfacce offerte dai vari componenti del sistema – Interfaccia tra hw e sw ( user ISA : istruzioni macchina non privilegiate, invocabili da ogni programma) [interfaccia 4] – Interfaccia tra hw e sw ( system ISA : istruzioni macchina invocabili solo da programmi privilegiati) [interfaccia 3] – Chiamate di sistema [interfaccia 2] • ABI (Application Binary Interface): interfaccia 2 + interfaccia 4 – Chiamate di libreria ( API ) [interfaccia 1] • Obiettivo della virtualizzazione – Imitare il comportamento di queste interfacce Riferimento: “The architecture of virtual machines” Valeria Cardellini - SDCC 2018/19 13
Machine reference model Applications A1 API Libraries A2 ABI System calls Operating System A3 ISA System ISA User ISA Hardware An application uses library functions (A1), makes system calls (A2), and executes machine instructions (A3) Valeria Cardellini - SDCC 2018/19 14 Levels of abstraction for virtualization • Five levels of virtualization: – ISA level • The ISA emulation requires binary translation and its optimization, e.g., dynamic binary translation Our – Hardware level (also system VMs ) focus • Based on virtual machine monitor ( VMM ), also called hypervisor • VMM: software that securely partitions the resources of a computer system into one or more VMs Our – Operating system level (also containers ) focus – Run-time library level – User application level (also process VMs ) Valeria Cardellini - SDCC 2018/19 15
Levels of abstraction for virtualization (2) • Relative merits of virtualization at the different levels Valeria Cardellini - SDCC 2018/19 16 Macchina virtuale di processo (process VM) • Virtualizzazione per un singolo processo – VM di processo: piattaforma virtuale che esegue un singolo processo – Fornisce un ambiente ABI o API virtuale per le applicazioni utente • Il programma è compilato in un codice intermedio (portabile), che viene successivamente eseguito nel sistema runtime • Esempi: JVM, .NET CLR Istanze multiple di combinazioni <applicazione, sistema runtime> Valeria Cardellini - SDCC 2018/19 17
Monitor della macchina virtuale (VMM) • Strato sw separato che scherma (completamente) l’hw sottostante ed imita l’insieme di istruzioni dell’architettura • Sul VMM possono essere eseguiti indipendentemente e simultaneamente sistemi operativi diversi • Esempi: VMware, KVM, Xen, Parallels, VirtualBox Istanze multiple di combinazioni <applicazioni, sistema operativo> Valeria Cardellini - SDCC 2018/19 18 Termini VMM • Consideriamo la virtualizzazione a livello di sistema (VMM o hypervisor) • Host : piattaforma di base sulla quale si realizzano le VM; comprende: – Macchina fisica – Eventuale sistema operativo nativo – VMM • Guest : tutto ciò che riguarda ogni singola VM – Sistema operativo ed applicazioni eseguite nella VM Valeria Cardellini - SDCC 2018/19 19
Classificazione VMM • Distinguiamo: – VMM di sistema – VMM ospitato – Virtualizzazione completa – Paravirtualizzazione Valeria Cardellini - SDCC 2018/19 20 VMM di sistema o VMM ospitato In quale livello dell’architettura di sistema si colloca il VMM? – Direttamente sull’hardware ( VMM di sistema ) – Come applicazione su un SO esistente ( VMM ospitato ) guest host guest host VMM di sistema VMM ospitato Valeria Cardellini - SDCC 2018/19 21
Recommend
More recommend