Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria



Documenti analoghi
Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria

Architetture software. Virtualizzazione

27/03/2013. Contenuti

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria

Protezione del Kernel Tramite Macchine Virtuali

Processi nei Sistemi Distribuiti

Virtualizzazione e Macchine Virtuali

Architettura di un sistema operativo

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Potenza Elaborativa, Sistemi Operativi e Virtualizzazione

Introduzione alla Virtualizzazione

ANALISI DELLE TECNOLOGIE INTEL-VT E AMD-V A SUPPORTO DELLA VIRTUALIZZAZIONE DELL'HARDWARE

Approccio stratificato

Virtualizzazione con KVM. Reggio Emilia - Linux Day 2014 Stefano Strozzi KVM

Macchine Virtuali. Docente: Fabio Tordini

Efficienza, crescita, risparmi. Esploriamo il pianeta tecnologia VMware VSphere4

Fisciano, 24 ottobre 2008

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Virtualizzazione. Orazio Battaglia

Linux Virtuale Linux Virtuale

Progetto di Applicazioni Software

VIRTUALIZE IT. - digibyte@digibyte.it

Virtualizzazione. Riferimenti bibliografici

Progetto di Applicazioni Software

2. VIRTUALIZZAZIONE MEDIANTE PARTIZIONAMENTO

I sistemi virtuali nella PA. Il caso della Biblioteca del Consiglio Regionale della Puglia

Dr. Andrea Niri aka AndydnA ANDYDNA.NET S.r.l.

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

VIRTUAL INFRASTRUCTURE DATABASE

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA

The Onion PC. Virtualizzazione strato dopo strato

La virtualizzazione ed i suoi aspetti di sicurezza. Sergio Sagliocco Responsabile SecureLAB Direzione R&D CSP

PROPOSTA DI UN ARCHITETTURA IMS INTEGRATA IN UN AMBIENTE VIRTUALIZZATO: ANALISI DI PRESTAZIONI Daniele Costarella

Come Funziona. Virtualizzare con VMware

Virtualizzazione di macchine Linux tramite XEN

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Virtualizzazione con Microsoft Tecnologie e Licensing

Virtualization. Strutturare per semplificare la gestione. ICT Information & Communication Technology

Le virtual machine e la memoria virtuale

Analisi di prestazioni di applicazioni web in ambiente virtualizzato

Introduzione ai sistemi operativi

I - Sistema Operativo Alberto Cammozzo La copia letterale di quest'opera è consentita purché questa nota resti inclusa.

CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Servizio Amazon Storage Gateway

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

C Cloud computing Cloud storage. Prof. Maurizio Naldi

VMware. Gestione dello shutdown con UPS MetaSystem

Architetture Informatiche. Dal Mainframe al Personal Computer

Architetture Informatiche. Dal Mainframe al Personal Computer

Tecnologie per la Virtualizzazione. Ernesto Damiani, Claudio A. Ardagna Lezione 3

Hardware di un Computer

GNUraghe. Desktop Virtualization +VirtualBox+...quando un solo pc non basta più... IL LUG DI ORISTANO. Virtualizzazione dei sistemi con VirtualBox

Il Sistema Operativo (1)

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Cloud Computing: alcuni punti fermi per non smarrirsi fra le nuvole

Architettura di un sistema operativo

Panoramica delle funzionalita

Sistemi Operativi. Conclusioni e nuove frontiere

Infrastrutture e Architetture di sistema

Gartner Group definisce il Cloud

IT Cloud Service. Semplice - accessibile - sicuro - economico

Architetture software

Comunicazione tra Processi

Comunicazione tra Processi

STRUTTURE DEI SISTEMI DI CALCOLO

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Sicurezza nei modelli peer-to-peer. F.Baiardi Dipartimento di Informatica, Centro Serra Università di Pisa

Introduzione ai Web Services Alberto Polzonetti

Infrastrutture Software

Corso di Sistemi di Elaborazione delle informazioni

Linux nel calcolo distribuito

Tecnologie di virtualizzazione per il consolidamento dei server

Virtualizzazione e Network management

Creare una Rete Locale Lezione n. 1

Una rassegna dei sistemi operativi per il Cloud Computing

Sistemi Operativi. Processi GESTIONE DEI PROCESSI. Concetto di Processo. Scheduling di Processi. Operazioni su Processi. Processi Cooperanti

Sistemi operativi e reti A.A Lezione 2

Infrastruttura di produzione INFN-GRID

Government Cloud Computing

Indice generale. Introduzione...xiii. Perché la virtualizzazione...1. Virtualizzazione del desktop: VirtualBox e Player...27

Affidamento della progettazione e messa in opera di una infrastruttura tecnologia per la realizzazione di un sistema di continuità operativa ICT

Introduzione al Cloud Computing

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi

La componente tecnologica dei. sistemi informativi. Architettura hw. Componenti di una architettura hw

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

3. PRODOTTI PER LA VIRTUALIZZAZIONE

Progetto Vserver- HighAvailability

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

La Gestione delle risorse Renato Agati

Desktop Cloud: modelli, vantaggi, criticità

Consolidamento Server

Le virtual machine e la memoria virtuale

Allegato. Servizio Hosting Virtual DataCenter di Regione Lombardia. per l ENTE UCL Asta del Serio

In estrema sintesi, NEMO VirtualFarm vuol dire:

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

CLOUD LAB. Servizi IT innovativi per le aziende del territorio. Parma, 5 Dicembre 2012

Online Help StruxureWare Data Center Expert

Sicurezza e Gestione delle Reti (di telecomunicazioni)

Transcript:

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Virtual machines and virtualization of clusters and data centers, chapter 3 of Distributed and Cloud Computing. M. Boari, M. Balboni, Tecniche di virtualizzazione: teoria e pratica, Mondo Digitale, 2007. J. Daniels, Server virtualization architecture and implementation, ACM Crossroads, 2009. M. Rosenblum, T. Garfinkel, Virtual machine monitors: current technology and future trends, IEEE Computer, 2005. J.E. Smith, R. Nair, The architecture of virtual machines, IEEE Computer, 2005. Altri riferimenti sul sito del corso Valeria Cardellini - SDCC 2012/13 1

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

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 2012/13 4 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 2012/13 5

Alla fine degli anni 90, l interesse rinasce per rendere meno onerosa la programmazione hw specialpurpose 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 oggigiorno una delle tecnologie abilitanti del Cloud computing Valeria Cardellini - SDCC 2012/13 6 Facilita la compatibilità, la portabilità e la migrazione di applicazioni ed ambienti Indipendenza dall hw Create Once, Run Anywhere VM legacy: eseguire vecchi SO su nuove piattaforme Valeria Cardellini - SDCC 2012/13 7

Permette il consolidamento dei server in un data center, con vantaggi economici, gestionali ed energetici Obiettivo: ridurre il numero totale di server necessari ad una azienda ed utilizzarli in modo più efficiente Vantaggi: riduzione dei costi, riduzione dei consumi energetici, semplificazione nella gestione, manutenzione ed upgrade dei server, riduzione dello spazio occupato, riduzione dei tempi di downtime Valeria Cardellini - SDCC 2012/13 8 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 Partizionamento delle risorse di sistema Valeria Cardellini - SDCC 2012/13 9

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 2012/13 10 Common virtualization layers include: Application level (also process VM) Library level (user-level API) Operating system level ISA level Requires binary translation and optimization, e.g., dynamic binary translation Hardware abstraction layer (also system VM): virtual machine monitor (VMM), also hypervisor Valeria Cardellini - SDCC 2012/13 11

Valeria Cardellini - SDCC 2012/13 12 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 2012/13 13

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, Microsoft Virtual PC, Parallels, VirtualBox, Xen, KVM Istanze multiple di combinazioni <applicazioni, sistema operativo> Valeria Cardellini - SDCC 2012/13 14 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 Considerando il VMM, distinguiamo: VMM di sistema VMM ospitato Virtualizzazione completa Paravirtualizzazione Valeria Cardellini - SDCC 2012/13 15

In quale livello dell architettura di sistema collocare il VMM? direttamente sull hardware (VMM di sistema o classico) come applicazione su un SO esistente (VMM ospitato) host guest guest host VMM di sistema VMM ospitato Valeria Cardellini - SDCC 2012/13 16 VMM di sistema: eseguito direttamente sull hw, offre funzionalità di virtualizzazione integrate in un SO semplificato L hypervisor può avere un architettura a micro-kernel (solo funzioni di base, no device driver) o monolitica Esempi: Xen, VMware ESX VMM ospitato: eseguito sul SO host, accede alle risorse hw tramite le chiamate di sistema del SO host Vantaggio: non occorre modificare il SO guest Vantaggio: può usare il SO host per gestire le periferiche ed utilizzare servizi di basso livello offerti dal SO sottostante (es. scheduling, gestione delle risorse) Svantaggio: degrado delle prestazioni rispetto a VMM di sistema Esempi: VirtualBox, Parallels Desktop Valeria Cardellini - SDCC 2012/13 17

Quale modalità di dialogo tra la VM ed il VMM per l accesso alle risorse fisiche? Virtualizzazione completa Paravirtualizzazione Virtualizzazione completa Il VMM espone ad ogni VM interfacce hw simulate funzionalmente identiche a quelle della sottostante macchina fisica Il VMM intercetta ogni richiesta di accesso privilegiato all hw e ne emula il comportamento atteso Il VMM gestisce un contesto di CPU per ogni VM Il VMM condivide le CPU fisiche tra tutte le VM Il VMM comprende uno scheduler di VM Esempi: KVM, VMware ESXi Valeria Cardellini - SDCC 2012/13 18 Quale modalità di dialogo tra la VM ed il VMM per l accesso alle risorse fisiche? Paravirtualizzazione Il VMM espone ad ogni VM interfacce hw simulate funzionalmente simili (ma non identiche) a quelle della sottostante macchina fisica Non viene emulato l hw, ma viene creato uno strato minimale di sw (Virtual Hardware API) per assicurare la gestione delle singole istanze di VM ed il loro isolamento Esempi: PikeOS, Oracle VM, Xen Confronto qualitativo delle diverse soluzioni per VM http://en.wikipedia.org/wiki/comparison_of_platform_virtual_machines Valeria Cardellini - SDCC 2012/13 19

Principale vantaggio Non occorre modificare il SO guest (non sa dell esistenza del VMM) Svantaggi VMM più complesso Collaborazione del processore per implementazione efficace Perché? L architettura del processore opera secondo almeno 2 livelli (ring) di protezione: supervisor e user Solo il VMM opera in supervisor mode, mentre il SO guest e le applicazioni (quindi la VM) operano in user mode Problema del ring deprivileging: il SO guest opera in uno stato che non gli è proprio! non può eseguire istruzioni privilegiate Problema del ring compression: poiché applicazioni e SO guest eseguono allo stesso livello, occorre proteggere lo spazio del SO Valeria Cardellini - SDCC 2012/13 20 Come risolvere il ring deprivileging Trap-and-emulate: se il SO guest tenta di eseguire un istruzione privilegiata, il processore notifica un eccezione (trap) al VMM e gli trasferisce il controllo; il VMM controlla la correttezza dell operazione richiesta e ne emula il comportamento Si ha invece un esecuzione diretta delle istruzioni non privilegiate eseguite dal SO guest Architettura x86 senza virtualizzazione Architettura x86 con virtualizzazione completa e supporto hw per la virtualizzazione Valeria Cardellini - SDCC 2012/13 21

Ma il meccanismo di notifica al VMM per ogni istruzione privilegiata è offerto solo dai processori con supporto hardware per la virtualizzazione (Intel VT-x e AMD-V) IA-32 non lo è! Come realizzare la virtualizzazione completa in mancanza del supporto hw? Fast binary translation: il VMM scansiona il codice prima della sua esecuzione per sostituire blocchi contenenti istruzioni privilegiate con blocchi equivalenti dal punto di vista funzionale e contenenti istruzioni per la notifica di eccezioni al VMM! maggiore complessità del VMM e minori prestazioni Architettura x86 con virtualizzazione completa e binary translation Valeria Cardellini - SDCC 2012/13 22 Needs to modify the guest OS kernel Nonvirtualizable OS instructions are replaced by hypercalls that communicate directly with the hypervisor Pros: overhead reduction, relatively more easy and more practical (vs full virtualization) Cons: cost of maintaining para-virtualized OSes X86 architecture with paravirtualization Valeria Cardellini - SDCC 2012/13 23

The hypervisor (not the kernel) has interrupt handlers installed When an application VM issues a guest OS system call, execution jumps to the hypervisor to handle, which then passes control back to the guest OS (Courtesy of The Definitive Guide to XEN hypervisor by D. Chisnall) Valeria Cardellini - SDCC 2012/13 24 Xen è l esempio più noto di paravirtualizzazione http://xen.org (sviluppato all università di Cambridge) Il VMM offre al SO guest un interfaccia virtuale (hypercall API) alla quale il SO guest deve riferirsi per aver accesso alle risorse fisiche della macchina Occorre rendere compatibile con Xen il kernel ed i driver del SO guest Soluzione preclusa ai sistemi operativi commerciali, a meno di non avere un processore che supporti la virtualizzazione nativa (gestita a partire da Xen 3.0) Valeria Cardellini - SDCC 2012/13 25

Vantaggi Overhead minimo: in grado di fornire prestazioni molto simili a quelle dell esecuzione non virtualizzata Supporta la migrazione live di macchine virtuali Usato come VMM da molti provider di Cloud pubbliche Ad es. Amazon EC2, Rackspace Cloud Server Valeria Cardellini - SDCC 2012/13 26 Finora considerata virtualizzazione a livello di sistema La virtualizzazione a livello di SO permette l esecuzione all interno di un singolo SO di molteplici ambienti di esecuzione tra di loro isolati Detti virtual execution environment (VE), virtual private system (VPS), container, Ciascun VE ha un proprio insieme di processi, file system, utenti, interfacce di rete con indirizzi IP, tabelle di routing, regole del firewall, I VE condividono il kernel dello stesso SO Valeria Cardellini - SDCC 2012/13 27

Layer di virtualizzazione in OpenVZ Valeria Cardellini - SDCC 2012/13 28 Vantaggi Degrado di prestazioni pressoché nullo Normali chiamate di sistema Tempi minimi di startup/shutdown Densità elevata Centinaia di istanze su una singola macchina fisica Svantaggio: minore flessibilità Non permette di eseguire allo stesso tempo kernel di differenti SO Esempi: FreeBSD Jail, Solaris Zones/Containers, LXC (per Linux), OpenVZ (per Linux), Parallels Virtuozzo Valeria Cardellini - SDCC 2012/13 29

Validi per virtualizzazione sia a livello hw sia a livello di SO In ambito personale In ambito didattico In ambito professionale Per ambienti di test e sviluppo di applicazioni In ambito aziendale Per consolidare l infrastruttura dei data center Per garantire business continuity: incapsulando interi sistemi in singoli file (system image) che possono essere replicati e reinstallati su qualsiasi server Valeria Cardellini - SDCC 2012/13 30 PlanetLab: un sistema distribuito collaborativo caratterizzato da virtualizzazione distribuita http://www.planet-lab.org/ Ampio insieme di macchine sparse su Internet Più di 1000 nodi in oltre 500 siti Usato come testbed per sperimentare sistemi ed applicazioni distribuite su scala planetaria in un ambiente reale Alcuni esempi di sistemi ed applicazioni testati su PlanetLab Distributed Hash Table (Chord, Tapestry, Pastry, Bamboo, ) Content Distribution Network (CoDeeN, ) Virtualizzazione ed isolamento (Denali, ) Multicast di livello applicativo (Scribe, ) Misure di rete (Scriptroute, I3, ) M-Lab: nuova piattaforma per lo sviluppo di strumenti di misura in Internet, è un evoluzione di PlanetLab Valeria Cardellini - SDCC 2012/13 31

Organizzazione di base di un nodo PlanetLab Ogni nodo ospita una o più macchine virtuali VMM, parte di un SO Linux esteso Virtualizzazione a livello di sistema operativo vserver (da settembre 2012 migrazione a LXC): ambiente separato in cui può essere eseguito un gruppo di processi Completa indipendenza, concorrenza ed isolamento tra processi in vserver diversi Riferimento: L. Peterson, T. Roscoe, The design principles of PlanetLab, Operating Systems Review, 40(1):11-16, Jan. 2006. Valeria Cardellini - SDCC 2012/13 32 Un applicazione in PlanetLab viene eseguita in una slice della piattaforma Slice: insieme di vserver (in esecuzione su nodi diversi), su ciascuno dei quali l applicazione riceve una frazione delle risorse del nodo sotto forma di VM; assimilabile ad un cluster virtuale Virtualizzazione distribuita: insieme distribuito di VM che sono trattate dal sistema come un entità singola Programmi appartenenti a slice diverse, ma in esecuzione sullo stesso nodo, non interferiscono gli uni con gli altri Molteplici esperimenti possono essere eseguiti simultaneamente su PlanetLab Valeria Cardellini - SDCC 2012/13 33

Storage virtualization is the pooling of physical storage from multiple network storage devices into what appears to be a single storage device that is managed from a central console The virtualized storage system aggregates a set of storage servers into a single block-level substrate, and then allows this substrate to be divided up into individual volumes for export to network-attached hosts Valeria Cardellini - SDCC 2012/13 34 Storage virtualization is commonly implemented through Storage Area Network machines (SAN) Fiber Channel (FC): highspeed network technology Requires special-purpose cabling Internet SCSI (iscsi): IPbased protocol for linking data storage facilities Uses existing network infrastructures Valeria Cardellini - SDCC 2012/13 35

A process of abstraction which separates logical network behavior from the underlying physical network resources A method of combining the available resources in a network by splitting up the available bandwidth into channels Each channel is independent and can be assigned (or reassigned) to a server or device in real-time The idea is that virtualization disguises the true complexity of the network by separating it into manageable parts Valeria Cardellini - SDCC 2012/13 36 Hw and sw elements of network virtualization At the physical machine level or cluster level (also internal network virtualization): using VMM features Goal: to create a network in the box Among multiple systems (also external network virtualization): using VLAN technology and intelligent (layer 3) switches Valeria Cardellini - SDCC 2012/13 37

Virtual cluster nodes: either physical or virtual machines The VMs in a virtual cluster are interconnected logically by a virtual network across several physical networks VMs can be replicated in multiple servers to promote distributed parallelism, fault tolerance, and disaster recovery Size (number of nodes) of a virtual cluster: can grow or shrink dynamically Failure of a physical node may disable some VMs installed on that node; but failure of VMs will not pull down the host system Important to store the large number of VM images efficiently VM images are large (typically 1-30GB in size) Valeria Cardellini - SDCC 2012/13 38 Valeria Cardellini - SDCC 2012/13 39

Valeria Cardellini - SDCC 2012/13 40 We examine two techniques useful for the deployment and management of virtual clusters Live migration of VMs Dynamic resizing of VMs Valeria Cardellini - SDCC 2012/13 41

Migrazione di codice In sistemi omogenei In sistemi eterogenei Migrazione di macchine virtuali Particolarmente utile in cluster virtuali per attuare: consolidamento dell infrastruttura, flessibilità nel failover, bilanciamento del carico, politiche energyefficient (green computing), Ma l overhead di migrazione di VM non è trascurabile Valeria Cardellini - SDCC 2012/13 42 Nei SD la comunicazione può non essere limitata al passaggio dei dati, ma riguardare anche il passaggio di programmi, anche durante la loro esecuzione Motivazioni per la migrazione del codice Bilanciare o condividere il carico di lavoro Risparmiare risorse di rete e ridurre il tempo di risposta processando i dati vicino a dove risiedono Sfruttare il parallelismo Configurare dinamicamente il SD Valeria Cardellini - SDCC 2012/13 43

Processo composto da tre segmenti Segmento del codice Le istruzioni del programma in esecuzione Segmento delle risorse I riferimenti alle risorse esterne di cui il processo ha bisogno Segmento dell esecuzione Lo stato del processo (stack, PC, dati privati) Alcune alternative per la migrazione Mobilità leggera o mobilità forte Leggera: trasferito solo il segmento del codice Forte: trasferito anche il segmento dell esecuzione Migrazione iniziata dal mittente o avviata dal destinatario Nuovo processo per eseguire il codice migrato o clonazione Esempi: migrazione di processi in MOSIX Argomento approfondito a Mobile Systems and Applications Valeria Cardellini - SDCC 2012/13 44 In ambienti eterogenei, la macchina di destinazione può non essere in grado di eseguire il codice La definizione del contesto di processo, thread e processore è fortemente dipendente dall hw, dal SO e dal sistema runtime Quale soluzione per migrare in ambienti eterogenei? Migrare la macchina virtuale Macchina virtuale di processo (ad es. JVM) Monitor di macchina virtuale Valeria Cardellini - SDCC 2012/13 45

Migrazione di istanze di macchine virtuali tra macchine fisiche Live migration: la VM è in funzione durante la migrazione Spegnere la VM e trasferirne l immagine richiede tempo: l immagine della VM può essere grande ed il trasferimento su rete geografica con banda limitata Prima di avviare la migrazione live Fase di setup: si identifica l host di destinazione (ad es. tramite strategie di load balancing, energy efficiency, server consolidation) Occorre migrare memoria, storage e connessioni di rete in modo trasparente alle applicazioni in esecuzione Valeria Cardellini - SDCC 2012/13 46 Per migrare lo storage: Il VMM che gestisce la VM sorgente salva tutti i dati della VM sorgente in un file di immagine, che viene trasferito sull host di destinazione In alternativa: uso di un sistema di storage di rete (SAN o più economico NAS (Network Attached Server)) oppure di un file system distribuito Per migrare le connessioni di rete: Si assegna alla VM sorgente un indirizzo IP virtuale (eventualmente anche un indirizzo MAC virtuale) Valeria Cardellini - SDCC 2012/13 47

Per migrare la memoria: 1. Fase di warm-up: il VMM copia in modo iterativo le pagine da VM sorgente a VM di destinazione mentre la VM sorgente è in esecuzione 2. Fase di stop-and-copy: la VM sorgente viene fermata e vengono copiate soltanto le pagine dirty Tempo di downtime: da qualche msec a qualche sec, in funzione della dimensione della memoria, delle applicazioni e della banda di rete tra le VM 3. Fasi di commitment e reactivation: la VM di destinazione carica lo stato e riprende l esecuzione dei programmi; la VM sorgente viene rimossa (ed eventualmente spento l host sorgente) Valeria Cardellini - SDCC 2012/13 48 Valeria Cardellini - SDCC 2012/13 49

Vantaggi rispetto alla migrazione del codice Trasferimento consistente ed efficiente dello stato inmemory La macchina fisica originale può essere spenta Esempi: Supportata da alcune soluzioni di virtualizzazione già considerate (KVM, Xen, VirtualBox, OpenVZ, Virtuozzo) Come prodotto extra: VMware vmotion Valeria Cardellini - SDCC 2012/13 50 Fine-grain mechanism with respect to VM migration or VM allocation/deallocation Example: application running on a VM starts consuming a lot of resources and the VM starts running out of RAM and CPU Pros: more cost-effective and rapid than VM allocation/ deallocation Cons: not supported by all virtualization products and guest OSs What can be resized without powering off and rebooting the VM? Number of CPUs Memory size Valeria Cardellini - SDCC 2012/13 51

To add or remove CPUs In Linux-based systems support for CPU hot-plug/hotunplug (e.g., KVM hypervisor) Uses information in virtual file system sysfs (processor info in /sys/devices/system/cpu) /sys/devices/system/cpu/cpux for cpux (X=0, 1, 2, ) To turn on cpux: echo 1 > /sys/devices/system/cpu/cpux/online To turn off cupx: echo 0 > /sys/devices/system/cpu/cpux/online Valeria Cardellini - SDCC 2012/13 52 Based on memory ballooning technique In KVM: virtio_balloon driver When balloon deflates: more memory for the VM the memory size cannot exceed maxmemory When balloon inflates swap area out-of-memory (OOM) killer Valeria Cardellini - SDCC 2012/13 53