Virtualizzazione e Macchine Virtuali



Documenti analoghi
Architetture software. Virtualizzazione

Introduzione alla Virtualizzazione

Lezione 4 La Struttura dei Sistemi Operativi. Introduzione

Architettura di un sistema operativo

Approccio stratificato

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

Il Sistema Operativo (1)

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

Architetture Applicative

27/03/2013. Contenuti

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

Macchine Virtuali. Docente: Fabio Tordini

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

Potenza Elaborativa, Sistemi Operativi e Virtualizzazione

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

VMware. Gestione dello shutdown con UPS MetaSystem

Protezione del Kernel Tramite Macchine Virtuali

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

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

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

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Generazione Automatica di Asserzioni da Modelli di Specifica

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

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

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

Corso di Informatica

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

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

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

Dispensa di Informatica I.1

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

Il sistema operativo TinyOS

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

System Center Virtual Machine Manager Library Management

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

Fisciano, 24 ottobre 2008

2. VIRTUALIZZAZIONE MEDIANTE PARTIZIONAMENTO

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

Sistemi Operativi. Conclusioni e nuove frontiere

Il Software. Il software del PC. Il BIOS

Dipartimento di Scienze Applicate

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

Protezione. Protezione. Protezione. Obiettivi della protezione

VIRTUAL INFRASTRUCTURE DATABASE

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

Linux nel calcolo distribuito

Gestione della memoria centrale

ASPETTI GENERALI DI LINUX. Parte 2 Struttura interna del sistema LINUX

Software di base. Corso di Fondamenti di Informatica

Hardware delle reti LAN

VIRTUALIZZAZIONE. Docente: Marco Sechi Modulo 1

Automazione Industriale 4- Ingegneria del Software

B.P.S. Business Process Server ALLEGATO C10

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Il Sistema Operativo

Approfondimenti. Contenuti

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

Approfondimento: Migrazione dei database e backup della posta

Introduzione al sistema operativo Il file system: file, directory,...

Introduzione alla Progettazione per Componenti

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Architettura del calcolatore

Informatica. Prof. A. Longheu. Introduzione a Java

PROTOTIPAZIONE DI UN TRADUTTORE DA SORGENTE PLC AD ASSEMBLY DI UNA MACCHINA VIRTUALE

Joomla! e la virtualizzazione in locale... pro e contro

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

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

Sistemi operativi e reti A.A Lezione 2

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

STRUTTURE DEI SISTEMI DI CALCOLO

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

Java: Compilatore e Interprete

Virtualizzazione di macchine Linux tramite XEN

Software. Algoritmo. Algoritmo INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Corso di Informatica

InfiXor. il programma facile e versatile per preventivi veloci e completi. il software di preventivazione per produttori e rivenditori di infissi

FTP. Appunti a cura del prof. ing. Mario Catalano

Virtualizzazione VirtualBox su Host Windows

PROGETTAZIONE MECCANICA DESIGN INDUSTRIALE OUTSOURCING RICERCA E SVILUPPO GRAFICA DOCUMENTAZIONE TECNICA STUDIO TECNICO

SDD System design document

Database. Si ringrazia Marco Bertini per le slides

Capitolo 3: Strutture dei sistemi operativi

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

Riferimento rapido per l'installazione SUSE Linux Enterprise Server 11

Infrastrutture Software

Progettazione : Design Pattern Creazionali

Acronis Universal Restore

Il computer: primi elementi

Transcript:

Virtualizzazione e Macchine Virtuali Gabriele D Angelo, Ludovico Gardenghi {gda, garden}@cs.unibo.it http://www.cs.unibo.it/~gdangelo/ http://www.cs.unibo.it/~gardengl/ Università di Bologna Corso di Laurea in Scienze dell Informazione Dicembre, 2006 1

Scaletta della lezione Virtuale? In che senso? Breve storia IBM VM/370 Gli anni 90 Anni recenti Metodologie di virtualizzazione Macchine virtuali complete Paravirtualizzazione Virtualizzazione del sistema operativo Bibliografia 2

Virtuale? In che senso? Partiamo da una definizione di virtuale: oggetto non realmente esistente, non avente una sua fisicità Ma un software non è un entità fisica, quindi di cosa stiamo parlando? Macchina virtuale: un software che crea fra il computer e l utente finale un ambiente all interno del quale è possibile eseguire software 3

Breve storia: IBM VM/370 Il concetto di macchina virtuale nasce negli anni 60 da parte di IBM con il suo prodotto VM/370 La spinta viene dalla necessità di condividere (costose) risorse tra più utenti Il sistema proposto da IBM è composto da più componenti, ciascun utente ha a disposizione un sistema operativo mono-utente denominato CMS (Conversational Monitor System) Il CMS anziché essere direttamente eseguito sull hardware si appoggia ad uno strato di virtualizzazione chiamato CP (Control Program) che, a sua volta, ha il controllo della macchina reale. Il suo scopo è quello di mostrare al livello superiore un astrazione la cui interfaccia sia uguale a quella dell hardware sottostante In questo modo le applicazioni non devono essere riscritte per la macchina virtuale ma rimangono totalmente compatibili 4

Breve storia: IBM VM/370 La complessità del CP risiede nell offrire questa astrazione in modo efficiente e sicuro (caratteristiche comuni anche in seguito) In questo caso per sicuro intendiamo che deve evitare che le singole istanze di CMS possano uscire dallo spazio a loro riservato e causare, potenzialmente, danni di vario tipo agli altri utenti In principio quindi per virtualizzazione si intendeva: un meccanismo per suddividere una macchina reale in più copie della stessa, garantendo la compatibilità del software, isolamento e, per quanto possibile, prestazioni simili a quelle originali Il passare del tempo, con l evoluzione dell hardware, la diffusione delle macchine personali e i sistemi operativi multi-utente hanno reso questo approccio piuttosto raro 5

Breve storia: gli anni 90 I motivi, che negli anni 90, hanno portato nuovo interesse alle tecniche di virtualizzazione sono completamente diversi La ricerca di un meccanismo per rendere un programma portabile su più architetture, con il numero minimo di interventi e con l invasività minima possibile (es. senza la necessità di ricompilare) La soluzione di maggior diffusione è legata al linguaggio di programmazione Java e in particolare all utilizzo di una macchina virtuale simulata: la Java Virtual Machine (JVM) Il software Java è basato sull utilizzo di bytecode che viene interpretato ed utilizza le funzionalità offerte dalla JVM invece di quanto offerto direttamente dal sistema operativo A sua volta la JVM è responsabile della traduzione delle richieste nei confronti del sistema reale di esecuzione 6

Breve storia: anni recenti Negli anni recenti c è stato un rinnovato interesse per la virtualizzazione dell hardware, in parte a discapito dell interesse per la virtualizzazione di singole applicazioni o linguaggi, non solo su sistemi server ma anche desktop Gli scopi sono molteplici, ad esempio: Compatibilità delle applicazioni con architetture diverse da quelle disponibili od obsolete Testing e sviluppo di nuovi sistemi Prototipazione di architetture complesse Isolamento di dati ed utenti 7

Non tutte le virtualizzazioni sono uguali Esistono vari approcci per la virtualizzazione, molto diversi come filosofia e di conseguenza come implementazione Virtualizzazione dell architettura del processore: La macchina virtuale ricrea un ambiente hardware completo o, comunque, reimplementa (appoggiandosi eventualmente all hardware reale per migliorare le prestazioni) le istruzioni eseguite dal sistema operativo e dalle applicazioni sotto il suo controllo. Un approccio di questo tipo permette di realizzare macchine complete; portando la macchina virtuale su più architetture si può ottenere la portabilità in ambienti eterogenei di interi sistemi operativi e di tutte le applicazioni 8

Non tutte le virtualizzazioni sono uguali System call trapping: Questi metodi si basano sull intercettazione delle chiamate di sistema dei processi interni alla virtualizzazione. Manipolando i risultati è possibile far eseguire al sistema reale (detto anche sistema host) le operazioni, mostrando poi ai processi interni della macchina virtuale (guest) effetti potenzialmente diversi da quelli ottenuti Questo approccio rende le macchine virtuali solitamente più efficienti ma anche meno portabili. I sistemi per intercettare le system call sono strettamente dipendenti dal sistema operativo e dall architettura della macchina reale Normalmente richiedono versioni ad-hoc del sistema operativo da virtualizzare 9

Macchine virtuali complete (QEMU) Con macchine virtuali complete intendiamo quelle che permettono la virtualizzazione di un completo calcolatore con una determinata architettura. Questa tipologia di macchina è usata per eseguire un sistema operativo completo e le relative applicazioni QEMU: permette di emulare diverse architetture fra cui Intel x86 / x86-64, PowerPC e Motorola M68K. Di conseguenza supporta un ampia gamma di sistemi operativi, consente la presenza simultanea su una singola macchina ospite di più architetture e sistemi operativi. QEMU virtualizza l hardware e il processore, ha un invasività minima ed è eseguibile anche con i soli permessi utente. Per migliorare le prestazioni QEMU fa uso di traduzione dinamica delle istruzioni dei processi virtualizzati 10

Macchine virtuali complete (VMware) VMware: si tratta di un progetto proprietario. Permette la virtualizzazione di macchine complete su architetture x86, i sistemi host e guest possono essere Microsoft oppure Linux Non si tratta di un singolo prodotto ma piuttosto di una famiglia di prodotti (es. GSX server ed ESX server) La maggior differenza tra i vari prodotti risiede nella tecnica per l astrazione della macchina virtuale Nel primo caso (GSX server) è necessaria la presenza di un sistema operativo host che esegua la macchina virtuale Nel secondo caso (ESX server) la macchina virtuale è in grado di lavorare direttamente sull hardware senza bisogno di alcun sistema operativo host Attraverso l uso di varie tecniche di ottimizzazione, le prestazioni che vengono ottenute sono in linea di massima piuttosto buone 11

Macchine virtuali complete (VMware) È possibile personalizzare l hardware della macchina virtuale, decidendo il numero delle CPU e varie tipologie di periferiche La presenza di un Virtual Infrastructure Layer permette di unire più macchine host, mostrandosi al sistema guest come una macchina unica Fra gli host partecipanti all infrastruttura virtuale è possibile avere mobilità delle macchine virtuali a caldo e senza interruzioni 12

Macchine virtuali complete (Microsoft) Microsoft Virtual PC e Virtual server: sistema di virtualizzazione Microsoft. Sono due versioni di un singolo prodotto, una orientata all uso personale e una pensata per l utilizzo server Il prodotto fornisce virtualizzazione dell hardware (solamente architettura x86) Come altri prodotti o progetti anche questo consente la creazione di macchine virtuali che possono comunicare con l esterno tramite un architettura di rete virtuale La differenza tra i due prodotti riguarda la scalabilità e la presenza di emulazione per l hardware usato in ambito server 13

Paravirtualizzazione Con il termine paravirtualizzazione ci si riferisce ad una particolare forma di virtualizzazione: la macchina non traduce alcune istruzione, si limita a creare uno strato minimale di software per assicurare la gestione delle singole istanze di macchine virtuali e il loro isolamento Un esempio è Xen, un prodotto patrocinato da IBM che risulta particolarmente efficiente. Non supporta direttamente tutto l hardware della macchina reale ma si appoggia ai driver del sistema operativo della prima macchina virtuale ad essere eseguita Supporta la migrazione a caldo degli ambienti virtuali 14

Virtualizzazione del sistema operativo (UML) In questa categoria le macchine virtuali si applicano a livello di processo, mostrando quindi come interfaccia quella di un sistema operativo User-Mode Linux (UML): nella pratica si tratta del progetto maggiormente sviluppato e diffuso di questa categoria. Il suo obiettivo è rendere possibile l esecuzione di un kernel Linux in modalità utente. Utilizzi classici: Kernel debugging Isolamento di processi; L uso di ambienti diversi senza avere più macchine reali, per la creazione di sandbox (ad esempio per operazioni pericolose) 15

Virtualizzazione del sistema operativo (UML) UML realizza l ambiente virtuale modificando il kernel, il suo obiettivo è riuscire ad eseguirlo come un normale processo usermode L interfaccia messa a disposizione da UML è quella delle systemcall, che vengono redirette al kernel reale Questo procedimento viene reso possibile dalla system call ptrace. UML controlla i processi interni al suo ambiente virtuale tramite tracciamento delle chiamate di sistema: un processo che esegue una system call viene intercettato da UML, che reagisce modificandone il comportamento 16

Virtualizzazione del sistema operativo (Virtuozzo) Virtuozzo e OpenVZ: il suo scopo è quello di consentire la presenza di Virtual Private Server (VPS) Linux su uno o più host Ciascuno dei VPS è una collezione di applicazioni che condividono lo stesso spazio virtuale Ambienti virtuali diversi possono differire per visione del file system, della rete, e per le zone di memoria accessibili A differenza di UML, Virtuozzo non prevede l esecuzione di copie multiple del Kernel: l unica copia attiva è quella dell host e tutti i VPS si appoggiano direttamente a quella Le prestazioni di questo meccanismo sono molto buone, offre funzionalità avanzate come la migrazione a caldo di VPS Recentemente una parte del prodotto è stata rilasciata con licenza libera sotto il nome di OpenVZ 17

Bibliografia Virtual Machines: Versatile Platforms for Systems and Processes (The Morgan Kaufmann Series in Computer Architecture and Design). Jim Smith, Ravi Nair Comparison of Virtual Machines, http://en.wikipedia.org/wiki/comparison_of_virtual_machines What is virtualization? http://www.vmware.com/virtualization/ User Mode Linux (UML), http://user-modelinux.sourceforge.net/ OpenVZ, http://openvz.org/ 18