Virtualizzazione e PlanetLabricci/29-04-2008-PlanetLab.pdf2008/04/29  · F a livello applicativo:...

Post on 06-Jun-2020

2 views 0 download

Transcript of Virtualizzazione e PlanetLabricci/29-04-2008-PlanetLab.pdf2008/04/29  · F a livello applicativo:...

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 VirtualizzazioneIntroduzionePlatform Virtualization

2 XenCaratteristicheArchitettura

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

Sommario della Seconda Parte

3 PlanetLabIntroduzioneArchitetturaComponentiConclusioni

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:

F memoria virtualeF RAID, storage virtualizationF grid computing, overlay network

2 Platform Virtualization:F emulazione/simulazioneF a livello applicativo: Java VMF a livello di S.O.: FreeBSD Jails, Linux-Vservers, VirtuozzoF 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 altrosistema che si comporta “esattamente” come il primo.

I es.: MAME (Multiple Arcade Machine Emulator)Un simulatore ha il compito di simulare un modello astratto di unsistema da analizzare.

I modelli di sistemi fisici, chimici, etcBinary translation richiede di emulare un set di istruzioni in unaltro set tramite traduzione del codice.

I es.: SPARC→ x86Dynamic recompilation eseguita da emulatori o macchine virtualiper ricompilare a tempo di esecuzione parti di un programma.

I 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 diversiambienti di esecuzione virtuali.

I fine anni ’60 (CP-40)

Le macchine virtuali emulano a software il comportamento dellamacchina reale sottostante.Possibilità di eseguire in concorrenza sulla stessa macchina fisicadiverse 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) è ilsoftware 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ò:

I eseguire numerose MV simultaneamenteI 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 LinuxA livello kernel: Linux-VServer, FreeBSD Jail, OpenVZ.A livello “hardware”:

I paravirtualization: Xen, DenaliI 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’interfacciasottostante.Paravirtualization: espone una interfaccia simile ma non identica aquella sottostante.

I 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 ilsupporto hardware/firmware alla virtualizzazione.

1 lo sviluppo di un VMM è semplificato2 è possibile eseguire sistemi operativi non modificati3 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:I meno privilegiata: VMX non-root, per i guest OSI più privilegiata: VMX root, per i VMM

Due nuove transizioni: VM entry / VM exit.Il controllo dell’esecuzione stabilisce quando le exit avvengono:

I 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:

I LinuxI NetBSDI FreeBSDI SolarisI 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 3server in 60 ms).Fino a 32 VCPU per macchina virtuale.Inclusa in molte distribuzioni Linux: Fedora, Debian, Ubuntu eopenSUSE.

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:

I implementa i meccanismiI esporta un’interfaccia di controllo al dominio 0

Il dominio 0 è una MV privilegiata:I definisce le politicheI crea, sospende, ripristina e migra i domini utente

I domini utente ospitano le MV non privilegiate.I 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.I Analogo delle system call in un sistema operativo.

Tipologie di hypercall:1 relative alla CPU: es., registrazione tabella interruzioni2 relative alla memoria: es., gestione tabella pagine3 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.I sorgenti o pacchetti

2 Creare una partizione per ogni dominio utente.I partizione fisica/LVM/file

3 Creare un file system per il dominio utente nella partizione.I 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 nuoviservizi di rete.

Dal 2003, usata da più di 1000 ricercatori:I Distributed StorageI Network MappingI P2P SystemsI Distributed Hash TablesI Query Processing

Ogni servizio in esecuzione su uno slice:I 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.I università

I nodi di PlanetLab:I sono connessi tramite InternetI 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 direte planetari organizzato da Intel/Princeton/UC Berkeley.Intel dona 100 macchine per il primo prototipo.Ottobre 2002: prima versione del software PlanetLabGennaio 2004: nasce il PlanetLab Consortium, gestito dallaPrinceton University, University of California e University ofWashington.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 termine2 servizi di lunga durata

F i servizi devono essere isolati gli uni dagli altriF numerosi servizi devono poter essere eseguiti in concorrenzaF il carico di lavoro dei client deve essere reale

Convincere i siti ad ospitare servizi sviluppati da altri siti.I proteggere Internet dal traffico generato da PlanetLabI relazione di fiducia tra le parti (PLC=intermediario)

Controllo decentralizzato.I 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:I ogni servizio viene eseguito all’interno di uno slice di PlanetLabI molteplici servizi eseguiti in concorrenzaI uno slice fa da contenitore per isolare i servizi

Unbundled Management:I gestione di PlanetLab decomposta in una collezione di servizi di

infrastruttura fortemente indipendentiI 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:I deve essere sempre possibile mappare le attività visibili

dall’esterno (es., la trasmissione di un pacchetto) con l’utenteresponsabile di quell’attività

Decentralized Control:I componenti di varie organizzazione autonomeI minimizzazione degli aspetti che richiedono accordi globali

Efficient Resource Sharing:I disaccoppiamento tra creazione dello slice e allocazione delle

risorse: strategia best effortI 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,I istituzione di ricerca

Principal Investigator (PI): responsabile di un sito.I 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 persviluppare un particolare servizio/esperimento. Un PI:

I crea uno sliceI aggiunge gli utentiI sceglie su quali nodi sviluppare il servizio

Infine, per ogni nodo dello slice, viene creata una macchinavirtuale 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:

I avere un IP pubblico e non deve essere protetto da firewall/NATI dare accesso root a PlanetLabI essere in grado di creare macchine virtuali (VServer)

Ogni MV del nodo è rappresentata in maniera astratta tramite uninsieme di attributi, detti resource specification (RSpec):

I 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).

I ogni processo è associato ad un VServer tramite il secctx

UID/GUID appartenenti a un namespace privato.Utilizzo di capability per limitare root.

I 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 macchinevirtuali e gestisce le risorse associate a ogni macchina virtuale.Fornisce un’interfaccia tramite cui i servizi su PlanetLab creanomacchine virtuali e ci associano risorse.

I rcap = CreatePool(rspec, slice name)I rcap[] = GetRcap()I rspec = GetRspec(rcap)I rcap = SplitPool(rcap, rspec)I 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 programmidistribuiti e cooperanti che forniscono funzionalità di alto livello.Ogni servizio viene eseguito su uno slice:

I una rete di macchine virtuali.I ogni slice ha a disposizione un insieme di risorse (processore,

memoria, disco) su vari nodi PlanetLab distribuiti sulla reteI 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 essereutilizzati.In caso positivo:

I riserva le risorse specificateI crea le macchine virtuali e le associa alle risorseI 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 uninsieme 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 checercano 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 ticketdagli 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 ticketnecessari per istanziarlo.Ottenuti i ticket, li utilizza su i nodi associati ai ticket per crearemacchine virtuali.Create le macchine virtuali su ogni nodo, avvia il servizio, cioè unprogramma 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.I principal = (name, email, org, addr, key, role)I org = (name, addr, admin)I slice = (state, rspec)

Per creare uno slice, bisogna prima inserire un record neldatabase:

I CreateSlice(auth, slice name)I SetSliceAttr(auth, slice name, attribute)I AddSlicePrincipal(auth, slice name, principals[])I 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 inesecuzione su i nodi di PlanetLab.Monitora i nodi e esegue azione appropriate in presenza dianomalie guasti.Database che contiene:

I principal = (name, email, org, addr, keys, role)I org = (name, address, admin, sites[])I site = (name, tech, subnets, lat long, nodes[])I 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 slicecreation service.Rappresenta sia una macchina virtuale che un pool di risorse.Insieme di attributi (coppie nome/valore). Es., di RSpec per unamacchina virtuale:

I cpu share = 1I disk quota = 5 (GB)I mem limit = 256 (MB)I base rate = 1 (Kbps)I burst rate = 100 (Mbps)I 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 sonocreati e distribuiti ai nodi che partecipano a PlanetLab.

I chiavi root: certificati top-levelI ogni istituzione che fornisce un servizio globale in PlanetLab deve

avere una coppia di chiavi pubbliche e un certificato firmato da unacertification 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’utenteresponsabile 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 livelloglobale (“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, TimothyRoscoeA Blueprint for Introducing Disruptive Technology Into the Internet.2002.

[Paper] Larry Peterson, Steve Muir, Timothy Roscoe, AaronKlingamanPlanetLab Architecture: An Overview.2006.

[Libro di Testo] Timothy RoscoePeer-to-Peer Systems and Applications (cap. 33: The PlanetLabPlatform).2005.

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