Virtualizzazione e PlanetLab



Documenti analoghi
Protezione del Kernel Tramite Macchine Virtuali

Architetture software. Virtualizzazione

Virtualizzazione e Macchine Virtuali

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

Fisciano, 24 ottobre 2008

Virtualizzazione di macchine Linux tramite XEN

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

2. VIRTUALIZZAZIONE MEDIANTE PARTIZIONAMENTO

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

Online Help StruxureWare Data Center Expert

Introduzione alla Virtualizzazione

Approccio stratificato

Architettura di un sistema operativo

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

Linux Virtuale Linux Virtuale

27/03/2013. Contenuti

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

The Onion PC. Virtualizzazione strato dopo strato

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

VIRTUAL INFRASTRUCTURE DATABASE

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

VirtualBox. Eseguire altri sistemi operativi dentro Linux. Stefano Sanfilippo. POuL. 28 ottobre 2013

Analisi di prestazioni di applicazioni web in ambiente virtualizzato

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

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

Riferimento rapido per l'installazione SUSE Linux Enterprise Server 11

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

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Riferimento rapido per l'installazione SUSE Linux Enterprise Server 11 SP1

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

Potenza Elaborativa, Sistemi Operativi e Virtualizzazione

Macchine Virtuali. Docente: Fabio Tordini

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Analisi dei rischi della system call chroot e un valido sostituto: le jail. Marco Trentini mt@datasked.com

Progetto Virtualizzazione

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA

Il Sistema Operativo (1)

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

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

SISTEMI OPERATIVI DISTRIBUITI

Sommario. Oracle Database 10g (laboratorio) Grid computing. Oracle Database 10g. Concetti. Installazione Oracle Database 10g

Premessa Le indicazioni seguenti sono parzialmente tratte da Wikipedia ( e da un tutorial di Pierlauro Sciarelli su comefare.

Software per Helpdesk

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

Prima Esercitazione. Unix e GNU/Linux. GNU/Linux e linguaggio C. Stefano Monti smonti@deis.unibo.it

Processi nei Sistemi Distribuiti

Dispensa di Informatica I.1

Virtualizzazione. Orazio Battaglia

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

VMware. Gestione dello shutdown con UPS MetaSystem

Introduzione alle applicazioni di rete

Introduzione al sistema operativo. Laboratorio Software C. Brandolese

Gartner Group definisce il Cloud

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

Il Software. Il software del PC. Il BIOS

Ambienti di calcolo a griglia Parte 2. Risorse (e loro gestione) Job di griglia e applicazioni di griglia Riservare le risorse ai job

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

Virtualizzazione VirtualBox su Host Windows

Acronis Universal Restore

Il Sistema Operativo

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Progetto Vserver- HighAvailability

Introduzione ai Sistemi Operativi

Allegato Tecnico Server Virtuale

Tecnologie di virtualizzazione per il consolidamento dei server

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Esercitazione 05. Sommario. Packet Filtering [ ICMP ] Esercitazione Descrizione generale. Angelo Di Iorio (Paolo Marinelli)

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1

confinamento e virtualizzazione maurizio pizzonia sicurezza dei sistemi informatici e delle reti

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

Protezione. Protezione. Protezione. Obiettivi della protezione

Installazione di GFI LANguard Network Security Scanner

I Sistemi Operativi. Installazione Ubuntu Linux su Macchina Virtuale

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Sistemi Operativi. Conclusioni e nuove frontiere

Setup dell ambiente virtuale

Intel One Boot Flash Update Utility Guida dell utente

System Center Virtual Machine Manager Library Management

Corso di Amministrazione di Reti A.A. 2002/2003

CLOUD AWS. #cloudaws. Community - Cloud AWS su Google+ Amazon Web Services. Amazon VPC (Virtual Private Cloud)

STRUTTURE DEI SISTEMI DI CALCOLO

Deploy di infrastrutture di rete business tramite ambienti completamente virtualizzati

01/05/2013 Istruzioni per l installazione

Virtualizzazione e Network management

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Corso di Informatica

Sistemi operativi e reti A.A Lezione 2

Scalabilità, Controllo distribuito e Console multiple

Agent, porte, connettività e reti L agent di Kaseya utilizza la porta 5721 per comunicare con il server, ma che tipo di porta è?...

Software di gestione della stampante

UTC Fire & Security - Training University. ATS8600 Advisor Integrated Management Training installatore

Navigare verso il cambiamento. La St r a d a. p i ù semplice verso il ca m b i a m e n t o

Hardware delle reti LAN

Dipartimento di Scienze Applicate

InitZero s.r.l. Via P. Calamandrei, Arezzo

Architetture Applicative

NAL DI STAGING. Versione 1.0

Transcript:

Virtualizzazione e PlanetLab Daniele Sgandurra Università di Pisa 29 Aprile 2008 Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 1 / 72

Sommario della Prima Parte 1 La Virtualizzazione Introduzione Platform Virtualization 2 Xen Caratteristiche Architettura Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 2 / 72

Sommario della Seconda Parte 3 PlanetLab Introduzione Architettura Componenti Conclusioni Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 3 / 72

Parte I La Virtualizzazione Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 4 / 72

La Virtualizzazione Un livello di astrazione. 1 Resource Virtualization: memoria virtuale RAID, storage virtualization grid computing, overlay network 2 Platform Virtualization: emulazione/simulazione a livello applicativo: Java VM a livello di S.O.: FreeBSD Jails, Linux-Vservers, Virtuozzo a livello hardware : VMWare, Xen Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 5 / 72

Alcuni Termini Un emulatore duplica le funzioni di un sistema utilizzando un altro sistema che si comporta esattamente come il primo. es.: MAME (Multiple Arcade Machine Emulator) Un simulatore ha il compito di simulare un modello astratto di un sistema da analizzare. modelli di sistemi fisici, chimici, etc Binary translation richiede di emulare un set di istruzioni in un altro set tramite traduzione del codice. es.: SPARC x86 Dynamic recompilation eseguita da emulatori o macchine virtuali per ricompilare a tempo di esecuzione parti di un programma. codice più efficiente, etc. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 6 / 72

Resource Virtualization: Esempi Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 7 / 72

Resource Virtualization: Esempi Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 7 / 72

Platform Virtualization Una metodologia per creare sulla stessa macchina fisica diversi ambienti di esecuzione virtuali. fine anni 60 (CP-40) Le macchine virtuali emulano a software il comportamento della macchina reale sottostante. Possibilità di eseguire in concorrenza sulla stessa macchina fisica diverse istanze di sistemi operativi. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 8 / 72

Macchine Virtuali Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 9 / 72

Macchine Virtuali Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 9 / 72

IBM 360/67 e CP/CMS Il CP-67 forniva agli utenti repliche virtuali di un IBM 360. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 10 / 72

Virtualizzazione a Livello Applicativo: Java VM Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 11 / 72

Virtualizzazione a Livello di S.O.: Virtuozzo Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 12 / 72

Virtualizzazione a Livello Hardware: Xen Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 13 / 72

Benefici della Virtualizzazione Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 14 / 72

Il Gestore delle Macchine Virtuali Il gestore delle macchine virtuali (VMM = Virtual Machine Monitor) è il software che: 1 crea e gestisce le macchine virtuali, 2 media l accesso alle risorse fisiche, 3 garantisce l isolamento tra le MV, 4 grazie alla proprietà dell incapsulamento può: eseguire numerose MV simultaneamente migrare MV in esecuzione tra diversi host Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 15 / 72

Tipologie di Virtual Machine Monitor Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 16 / 72

Tipologie di Macchine Virtuali A livello utente: User-Mode Linux A livello kernel: Linux-VServer, FreeBSD Jail, OpenVZ. A livello hardware : paravirtualization: Xen, Denali full virtualization: VMWare ESX Server, QEMU Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 17 / 72

Full Virtualization e Paravirtualization Full Virtualization: fornisce una replica esatta dell interfaccia sottostante. Paravirtualization: espone una interfaccia simile ma non identica a quella sottostante. Richiede che i sistemi operativi siano (in parte) modificati. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 18 / 72

Full Virtualization: VMWare ESX Server Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 19 / 72

Paravirtualization: Xen Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 20 / 72

Intel VT e AMD-V Intel Virtualization Technology e AMD Virtualization hanno introdotto il supporto hardware/firmware alla virtualizzazione. 1 lo sviluppo di un VMM è semplificato 2 è possibile eseguire sistemi operativi non modificati 3 prestazioni più elevate Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 21 / 72

Esempio: Intel VT-x Due nuove modalità di operazione: meno privilegiata: VMX non-root, per i guest OS più privilegiata: VMX root, per i VMM Due nuove transizioni: VM entry / VM exit. Il controllo dell esecuzione stabilisce quando le exit avvengono: accesso a stati privilegiati, eccezioni, etc Struttura VM Control Structure per controllare operazioni VT-x. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 22 / 72

Xen Xen è un software Open Source: licenza GNU GPL. Progetto dell Università di Cambridge. Supporta IA-32, x86-64, IA-64 e PowerPC. Sistemi operativi supportati: Linux NetBSD FreeBSD Solaris Windows (con VT) Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 23 / 72

Xen Supporters Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 24 / 72

Vantaggi di Xen Prestazioni paragonabili a soluzioni non virtualizzate ( 8% overhead). Migrazione di una macchina virtuale in tempo reale (Quake 3 server in 60 ms). Fino a 32 VCPU per macchina virtuale. Inclusa in molte distribuzioni Linux: Fedora, Debian, Ubuntu e opensuse. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 25 / 72

Architettura di Xen Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 26 / 72

Terminologia di Xen In Xen una macchina virtuale è detta dominio. Xen Hypervisor è il VMM: implementa i meccanismi esporta un interfaccia di controllo al dominio 0 Il dominio 0 è una MV privilegiata: definisce le politiche crea, sospende, ripristina e migra i domini utente I domini utente ospitano le MV non privilegiate. ognuno di essi esegue il proprio S.O. e applicazioni Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 27 / 72

Livelli di Protezione della CPU Xen utilizza il concetto di ring x86: livelli di privilegio. I domini devono invocare Xen per le operazioni privilegiate. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 28 / 72

Hypercall I domini invocano Xen tramite hypercall. Analogo delle system call in un sistema operativo. Tipologie di hypercall: 1 relative alla CPU: es., registrazione tabella interruzioni 2 relative alla memoria: es., gestione tabella pagine 3 relative all I/O: es., event channel (notifica interruzioni) Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 29 / 72

Il Modello Split Device Driver un dominio driver controlla un dispositivo tramite il driver originale, e accetta richieste tramite un backend driver. gli altri domini utilizzano un frontend driver. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 30 / 72

Passi per Creare un Dominio Utente 1 Installare Xen e il kernel del dominio 0. sorgenti o pacchetti 2 Creare una partizione per ogni dominio utente. partizione fisica/lvm/file 3 Creare un file system per il dominio utente nella partizione. ad es.: debootstrap 4 Creare il kernel per il dominio utente. 5 Creare il file di configurazione per il dominio utente. 6 Avviare il dominio utente tramite il comando xm create. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 31 / 72

Esempio Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 32 / 72

Esempio Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 33 / 72

Parte II PlanetLab Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 34 / 72

PlanetLab PlanetLab è una rete di ricerca a livello globale per lo sviluppo di nuovi servizi di rete. Dal 2003, usata da più di 1000 ricercatori: Distributed Storage Network Mapping P2P Systems Distributed Hash Tables Query Processing Ogni servizio in esecuzione su uno slice: una rete di macchine virtuali Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 35 / 72

Visione Generale La maggior parte dei nodi situata in istituzioni di ricerca. università I nodi di PlanetLab: sono connessi tramite Internet piattaforme basate su Linux (VServer), dotate di software per eseguire bootstrap, per gestire e monitorare il nodo, etc Testbed per overlay network. Esperimenti sotto condizioni reali e su larga scala. Short-term experiments/long-running services. Un microcosmo per la nuova Internet. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 36 / 72

Breve Storia Marzo 2002: primo meeting di ricercatori interessati in servizi di rete planetari organizzato da Intel/Princeton/UC Berkeley. Intel dona 100 macchine per il primo prototipo. Ottobre 2002: prima versione del software PlanetLab Gennaio 2004: nasce il PlanetLab Consortium, gestito dalla Princeton University, University of California e University of Washington. Luglio 2004: PlanetLab raggiunge 400 nodi. Settembre 2005: PlanetLab raggiunge 600 nodi. Giugno 2007: PlanetLab raggiunge 800 nodi. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 37 / 72

I Nodi di PlanetLab Attualmente, formata da 854 nodi su 428 siti. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 38 / 72

Requisiti di PlanetLab Fornire una piattaforma globale per supportare: 1 sperimentazioni di breve termine 2 servizi di lunga durata i servizi devono essere isolati gli uni dagli altri numerosi servizi devono poter essere eseguiti in concorrenza il carico di lavoro dei client deve essere reale Convincere i siti ad ospitare servizi sviluppati da altri siti. proteggere Internet dal traffico generato da PlanetLab relazione di fiducia tra le parti (PLC=intermediario) Controllo decentralizzato. delegare la gestione dei nodi ai siti Scalabilità. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 39 / 72

Requisiti: Relazione di Fiducia Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 40 / 72

Requisiti: Relazione di Fiducia Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 40 / 72

Principi Architetturali di PlanetLab Distributed Virtualization: ogni servizio viene eseguito all interno di uno slice di PlanetLab molteplici servizi eseguiti in concorrenza uno slice fa da contenitore per isolare i servizi Unbundled Management: gestione di PlanetLab decomposta in una collezione di servizi di infrastruttura fortemente indipendenti ognuno di questi servizi è sviluppato da terze parti ed è in esecuzione su uno slice. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 41 / 72

Principi Architetturali di PlanetLab Chain of Responsability: deve essere sempre possibile mappare le attività visibili dall esterno (es., la trasmissione di un pacchetto) con l utente responsabile di quell attività Decentralized Control: componenti di varie organizzazione autonome minimizzazione degli aspetti che richiedono accordi globali Efficient Resource Sharing: disaccoppiamento tra creazione dello slice e allocazione delle risorse: strategia best effort overbooking Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 42 / 72

Principi Architetturali: Chain of Responsability Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 43 / 72

Terminologia di PlanetLab Sito: locazione fisica che ospita nodi PlanetLab, istituzione di ricerca Principal Investigator (PI): responsabile di un sito. crea e gestisce gli slice per sviluppare nuovi servizi Nodo: un computer che esegue componenti per servizi PlanetLab. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 44 / 72

Terminologia di PlanetLab Slice: insieme di risorse distribuite su PlanetLab, usato per sviluppare un particolare servizio/esperimento. Un PI: crea uno slice aggiunge gli utenti sceglie su quali nodi sviluppare il servizio Infine, per ogni nodo dello slice, viene creata una macchina virtuale associata allo slice. VServer: patch del kernel Linux per creare le macchine virtuali. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 45 / 72

Componenti Architetturali: Nodo Ogni istituzione deve ospitare due nodi per unirsi a PlanetLab. Ogni nodo deve: avere un IP pubblico e non deve essere protetto da firewall/nat dare accesso root a PlanetLab essere in grado di creare macchine virtuali (VServer) Ogni MV del nodo è rappresentata in maniera astratta tramite un insieme di attributi, detti resource specification (RSpec): quante risorse del nodo sono associate alla macchina virtuale Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 46 / 72

Boot del Nodo Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 47 / 72

Componenti Architetturali: Macchine Virtuali VServer: virtualizzazione a livello di chiamate di sistema. Ogni VServer è eseguito in un security context (secctx). ogni processo è associato ad un VServer tramite il secctx UID/GUID appartenenti a un namespace privato. Utilizzo di capability per limitare root. determinare se operazioni privilegiate sono permesse al root Utilizzo di chroot per confinare i file system. Scala a 1000 VServer per nodo (29MB ognuno). Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 48 / 72

Componenti Architetturali: Macchine Virtuali Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 49 / 72

Componenti Architetturali: Macchine Virtuali Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 49 / 72

Componenti Architetturali: Node Manager Programma in esecuzione su ogni nodo che crea le macchine virtuali e gestisce le risorse associate a ogni macchina virtuale. Fornisce un interfaccia tramite cui i servizi su PlanetLab creano macchine virtuali e ci associano risorse. rcap = CreatePool(rspec, slice name) rcap[] = GetRcap() rspec = GetRspec(rcap) rcap = SplitPool(rcap, rspec) Bind(rcap, slice name) Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 50 / 72

Componenti Architetturali: Slice Ogni nodo PlanetLab esegue un insieme di macchine virtuali. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 51 / 72

Componenti Architetturali: Slice Ogni nodo PlanetLab esegue un insieme di macchine virtuali. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 51 / 72

Componenti Architetturali: Slice Un servizio sviluppato su PlanetLab è un insieme di programmi distribuiti e cooperanti che forniscono funzionalità di alto livello. Ogni servizio viene eseguito su uno slice: una rete di macchine virtuali. ogni slice ha a disposizione un insieme di risorse (processore, memoria, disco) su vari nodi PlanetLab distribuiti sulla rete ogni progetto viene eseguito su uno slice distinto Il nome dello slice identifica l esperimento. Accesso allo slice tramite SSH. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 52 / 72

Slice: Visione del Sito Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 53 / 72

Slice: Visione del Sito Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 53 / 72

Slice: Visione del Sito Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 53 / 72

Slice: Visione del Sito Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 53 / 72

Slice: Visione Gloable Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 54 / 72

Slice: Visione Gloable Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 54 / 72

Slice: Visione Gloable Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 54 / 72

Creazione di uno Slice: Interazioni Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 55 / 72

Creazione di uno Slice: Node Manager Il Node Manager è in esecuzione su ogni nodo. Riceve un insieme di ticket in input per creare MV. Controlla la policy locale, e determina se i ticket possono essere utilizzati. In caso positivo: riserva le risorse specificate crea le macchine virtuali e le associa alle risorse ritorna una lease Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 56 / 72

Creazione di uno Slice: Resource Monitor e Agent Il Resource Monitor è un servizio in esecuzione su ogni nodo. Monitorizza la disponibilità delle risorse sul nodo locale. Periodicamente esegue un report a uno o più agent. Un Agent colleziona informazioni sulla disponibilità di risorse da un insieme di resource monitor o altri agent. Genera ticket che sono utilizzati per acquisire risorse. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 57 / 72

Creazione di uno Slice: Resource Broker Il Resource Broker risponde a query inviate da service manager che cercano di acquisire uno slice. Ogni query descrive le risorse necessarie per il servizio. Il broker contatta uno o più agent in cerca di ticket. Se è possibile soddisfare la specifica dello slice, richiede i ticket dagli agenti e li ritorna al service manager. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 58 / 72

Creazione di uno Slice: Service Manager Un Service Manager è associato con ogni servizio. Contatta un broker per acquisire uno slice e ottenere i ticket necessari per istanziarlo. Ottenuti i ticket, li utilizza su i nodi associati ai ticket per creare macchine virtuali. Create le macchine virtuali su ogni nodo, avvia il servizio, cioè un programma su ogni macchina virtuale. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 59 / 72

Creazione di uno Slice Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 60 / 72

Creazione di uno Slice Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 60 / 72

Creazione di uno Slice Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 60 / 72

Creazione di uno Slice Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 60 / 72

Creazione di uno Slice Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 60 / 72

Creazione di uno Slice Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 60 / 72

Creazione di uno Slice Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 60 / 72

Creazione di uno Slice Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 60 / 72

Creazione di uno Slice Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 60 / 72

Creazione di uno Slice Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 60 / 72

Creazione di uno Slice Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 60 / 72

Creazione di uno Slice Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 60 / 72

Creazione di uno Slice Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 60 / 72

Componenti Architetturali: Slice Authority Database che registra lo stato persistente di ogni slice registrato. principal = (name, email, org, addr, key, role) org = (name, addr, admin) slice = (state, rspec) Per creare uno slice, bisogna prima inserire un record nel database: CreateSlice(auth, slice name) SetSliceAttr(auth, slice name, attribute) AddSlicePrincipal(auth, slice name, principals[]) AddSliceNode(auth, slice name, nodes[]) Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 61 / 72

Componenti Architetturali: Management Authority Mantiene un server che installa e aggiorna il software in esecuzione su i nodi di PlanetLab. Monitora i nodi e esegue azione appropriate in presenza di anomalie guasti. Database che contiene: principal = (name, email, org, addr, keys, role) org = (name, address, admin, sites[]) site = (name, tech, subnets, lat long, nodes[]) node = (ipaddr, state, nodekey, nodeid) Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 62 / 72

Componenti Architetturali: Resource Specification Oggetto astratto utilizzato da un node manager e da un slice creation service. Rappresenta sia una macchina virtuale che un pool di risorse. Insieme di attributi (coppie nome/valore). Es., di RSpec per una macchina virtuale: cpu share = 1 disk quota = 5 (GB) mem limit = 256 (MB) base rate = 1 (Kbps) burst rate = 100 (Mbps) sustained rate = 1.5 (Mbps) Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 63 / 72

Come usare PlanetLab Appartenere ad un istituzione che partecipa a PlanetLab. Creare un account in PLC e attendere la validazione. Generare e fare l upload di una chiave SSH. Loggarsi attraverso il PlanetLab Central (web) or ssh. Creare uno slice: ucb_p2p (solo il responsabile del sito può farlo). Aggiungere nodi allo slice, es. planetlab1.berkeley.intel-research.net. Loggarsi in uno qualsiasi dei nodi tramite ssh: ssh ucb_p2p@planetlab1.berkeley.intel-research.net. Installare programmi, eseguire codice, creare account, etc. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 64 / 72

Tipologie di Servizi Sviluppati su PlanetLab Content Distribution Networks: CoDeeN (Princeton), Coral (NYU), Coweb (Cornell) Distributed Hash Tables: OpenDHT (Berkeley), Chord (MIT) Large File Transfer: CoBlitz (Princeton), SplitStream (Rice), Bullet (UCSD) Routing Overlays: i3 (Berkeley), Pluto (Princeton) Network Measurement: ScriptRoute (Maryland, Washington) Anomaly Detection & Fault Diagnosis: NetBait (Intel), PlanetSeer (Princeton) Multicast, Mobility, Network Games, DNS,... Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 65 / 72

Esempi Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 66 / 72

Esempi Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 66 / 72

Esempi Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 66 / 72

Sicurezza Un numero ristretto di coppie di chiavi pubbliche e certificati sono creati e distribuiti ai nodi che partecipano a PlanetLab. chiavi root: certificati top-level ogni istituzione che fornisce un servizio globale in PlanetLab deve avere una coppia di chiavi pubbliche e un certificato firmato da una certification authority Boot del nodo tramite SSL e chiavi PGP. Confinamento degli slice. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 67 / 72

Sicurezza Capability per limitare privilegi utenti root. Connessioni tramite SSH. Monitoraggio di ogni pacchetto per poter risalire all utente responsabile di quel pacchetto. Acceptable User Policy definisce quali attività sono legali. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 68 / 72

Confluenza di Tecnologie Cluster-based management. Overlay e reti P2P. Macchine virtuali e sandboxing. Framework per la composizione di servizi. Internet measurement. Web services.... Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 69 / 72

Applicazioni Emergenti Content distribution. Peer-to-Peer networks. Global storage. Mobility services.... Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 70 / 72

Riassumendo... Infrastruttura aperta per la nuova generazione di servizi a livello globale ( planetary-scale ). Nucleo da cui far emergere l Internet di prossima generazione. Diverse tipologie di testbed per reti. Incoraggia i ricercatori a sviluppare nuovi servizi per Internet. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 71 / 72

Riferimenti [Sito] http://planet-lab.org [Paper] Larry Peterson, Tom Anderson, David Culler, Timothy Roscoe A Blueprint for Introducing Disruptive Technology Into the Internet. 2002. [Paper] Larry Peterson, Steve Muir, Timothy Roscoe, Aaron Klingaman PlanetLab Architecture: An Overview. 2006. [Libro di Testo] Timothy Roscoe Peer-to-Peer Systems and Applications (cap. 33: The PlanetLab Platform). 2005. Daniele Sgandurra (Università di Pisa) Virtualizzazione e PlanetLab 29 Aprile 2008 72 / 72