virtualizzazione
play

Virtualizzazione Corso di Sistemi Distribuiti e Cloud Computing - PDF document

Universit degli Studi di Roma Tor Vergata Dipartimento di Ingegneria Civile e Ingegneria Informatica Virtualizzazione Corso di Sistemi Distribuiti e Cloud Computing A.A. 2017/18 Valeria Cardellini Main references Virtual


  1. Università degli Studi di Roma “ Tor Vergata ” Dipartimento di Ingegneria Civile e Ingegneria Informatica Virtualizzazione Corso di Sistemi Distribuiti e Cloud Computing A.A. 2017/18 Valeria Cardellini Main 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 2017/18 1

  2. Virtualizzazione • Virtualizzazione: livello alto di astrazione che nasconde i dettagli dell’implementazione sottostante • Virtualizzazione: astrazione di risorse computazionali – Si presenta all’utilizzatore una vista logica diversa da quella fisica • Le tecnologie di virtualizzazione comprendono una varietà di meccanismi e tecniche usate per risolvere problemi di: – Affidabilità, prestazioni, sicurezza, … • Come? Disaccoppiando l’architettura ed il comportamento delle risorse percepiti dall’utente dalla loro realizzazione fisica Valeria Cardellini - SDCC 2017/18 2 Virtualizzazione di risorse • Virtualizzazione delle risorse hw e sw di sistema – Macchina virtuale, container, … • Virtualizzazione dello storage – Storage Area Network (SAN), … • Virtualizzazione della rete – Virtual LAN (VLAN), Virtual Private Network (VPN), … • Virtualizzazione del data center Valeria Cardellini - SDCC 2017/18 3

  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 2017/18 4 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, controller SCSI) possono essere diverse dai componenti fisici della macchina reale • Una singola macchina fisica può essere rappresentata e usata come differenti ambienti di elaborazione – Molteplici VM su una singola macchina fisica Valeria Cardellini - SDCC 2017/18 5

  4. 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 2017/18 6 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 2017/18 7

  5. 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 su nuove piattaforme Valeria Cardellini - SDCC 2017/18 8 Virtualizzazione: vantaggi (2) • Permette il consolidamento dei server in un data center, con vantaggi economici, gestionali ed energetici – Obiettivo: ridurre il numero totale di server ed utilizzarli 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 2017/18 9

  6. Virtualizzazione: vantaggi (3) • Permette di isolare componenti malfunzionanti o soggetti ad attacchi di sicurezza, incrementando quindi 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 2017/18 10 Taxonomy of virtualization techniques • Execution environment virtualization is the oldest, most popular and most developed area we will mostly investigate it Valeria Cardellini - SDCC 2017/18 11

  7. Uso di ambienti di esecuzione virtualizzati • In ambito personale e didattico – Per eseguire diversi SO simultaneamente e 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 2017/18 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 2017/18 13

  8. 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 2017/18 14 Virtualization layers • Common virtualization layers include: – Application level (also process VM ) – Library level (user-level API) Our – Operating system level (also containers ) focus – ISA level • Requires binary translation and optimization, e.g., dynamic binary translation Our – Hardware abstraction layer (also system VM ): 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 Valeria Cardellini - SDCC 2017/18 15

  9. Virtualization layers (2) Docker Valeria Cardellini - SDCC 2017/18 16 Macchina virtuale di processo • 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 2017/18 17

  10. Monitor della macchina virtuale • Uno 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, Parallels, VirtualBox, Xen, KVM Istanze multiple di combinazioni <applicazioni, sistema operativo> Valeria Cardellini - SDCC 2017/18 18 Termini e classificazione VMM • 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 • Consideriamo per prima la virtualizzazione a livello di sistema (VMM o hypervisor) • Per il VMM, distinguiamo: – VMM di sistema – VMM ospitato – Virtualizzazione completa – Paravirtualizzazione Valeria Cardellini - SDCC 2017/18 19

More recommend