Gestione di Macchine Virtuali in Ambiente Cloud TR 1. Giuseppe CALARCO

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Gestione di Macchine Virtuali in Ambiente Cloud TR 1. Giuseppe CALARCO"

Transcript

1 Gestione di Macchine Virtuali in Ambiente Cloud TR 1 Giuseppe CALARCO

2 Indice 1 Introduzione 6 2 Installazioni automatiche Introduzione Windows Seven Answer File Installazione silenziosa di applicazioni Cloud Computing I diversi paradigmi di calcolo distribuito Architettura Virtualizzazione CLEVER La comunicazione La gestione dello storage

3 INDICE La virtualizzazione La Virtualizzazione Introduzione Modalità di virtualizzazione Virtual Machine e Hypervisor Tipologie di virtualizzazione dei sistemi Esempi di virtualizzatori Lo standard OVF Virtual Appliance Obiettivi di progettazione Descrizione dell implementazione Agente CreateImage CreateImage Creazione del disco Shell di amministrazione OVF Descriptor OVF Wrapper Agente OVFCompute

4 INDICE 3 6 Test sperimentali Configurazione delle macchine Scenario Conclusioni e sviluppi futuri 91

5 Elenco delle figure 2.1 Confronto fra installazione automatica e manuale Interfaccia Windows SIM Panoramica dei paradigmi di calcolo distribuito Architettura Cloud Infrastruttura hardware per il middleware CLEVER Virtualizzazione del sistema operativo Tipo Tipo Livelli di protezione dell architettura x Virtualizzazione completa Hardware assisted virtualization Paravirtualization Containers virtualization

6 ELENCO DELLE FIGURE Hosted virtualization Virtual Appliance Diagramma delle classi CreateImage Diagramma delle classi OVF Diagramma delle classi OVFComputeAgent Scenario

7 Capitolo 1 Introduzione Il lavoro di tesi si inserisce nell ambito del cloud computing, che si sta diffondendo notevolmente nel mondo IT e la cui diffusione è destinata a crescere in futuro. Per questo si è determinata una rapida evoluzione ed un notevole incremento dei servizi offerti disponibili su richiesta al singolo utente, il quale potrà gestirli come preferisce indipendentemente dalla macchina che si trova ad utilizzare ed in qualunque parte del mondo si trovi. In tal senso l Università degli Studi di Messina, in particolare la Facoltà di Ingegneria, ha sviluppato un architettura cloud open source, di nome CLEVER (CLoud-Enabled Virtual EnviRonment) [17]. Essa ha il vantaggio di essere flessibile, scalabile, modulare e fault-tolerance, nonchè di utilizzare un approccio a plugin rendendo semplice la modifica della struttura, l integrazione di nuove tecnologie e l aggiunta di nuove funzionalità. Il lavoro svolto nella presente tesi si è incentrato sul concetto di virtualizzazione in 6

8 CAPITOLO 1. INTRODUZIONE 7 CLEVER. Tale tecnologia, che fonda le sue radici nel passato, ormai gode di notevole diffusione grazie al fatto che garantisce numerosi benefici in termini di flessibilità, scalabilità della struttura e notevole riduzione dei costi. L obiettivo considerato ha portato ad estendere le funzionalità del cloud, al fine di poter permettere a ciascun utente di disporre di un proprio ambiente virtuale, realizzato secondo le sue esigenze. In questo modo, il generico fruitore dei servizi del cloud potrà creare un disco immagine con il sistema operativo desiderato, al quale sarà possibile accedere solo con un proprio account personale. Una volta creato il disco, l utente potrà creare ed avviare la macchina virtuale associata tramite delle operazioni già implementate in CLEVER. Un ulteriore sviluppo ha portato all introduzione in CLEVER dello standard OVF (Open Virtualization Format), che descrive un formato aperto, sicuro, portabile ed efficiente per la distribuzione di macchine virtuali. Esso è indipendente dall hypervisor utilizzato, non si basa sull impiego di una piattaforma host specifica e per questo è indipendente dalla piattaforma di virtualizzazione e dal sistema operativo guest. Tali file OVF sono stati adattati secondo i requisiti richiesti ed è stato, quindi, implementato il parsing di questi file, utilizzando apposite librerie [20]. La prima parte del lavoro di tesi si incentra sullo studio di tecniche di installazione automatica in ambienti Windows. A seguire vengono approfonditi i concetti relativi al cloud computing e le sue relazioni con la virtualizzazione. Successivamente, viene descritto lo standard OVF, come meccanismo di distribuzione di applicazioni virtuali, fornendo infine una trattazione dettagliata dell implementazione mediante l uso del linguaggio UML.

9 Capitolo 2 Installazioni automatiche 2.1 Introduzione L installazione automatica è una tecnologia utilizzata per l installazione o l aggiornamento di un sistema operativo con un intervento minimo o nullo da parte dell utente, ecco perché essa spesso viene definita unattended (non presidiata). L installazione automatica è meno conosciuta e meno usata rispetto a quella manuale. Quest ultima richiede l avvio da CD-ROM, procedendo attraverso una serie di menu che permettono di personalizzare determinate opzioni, di contro, quella automatica richiede una fase di configurazione iniziale, necessaria a creare uno o più file di risposta (answer file). Un file di risposta è un file di testo formattato in modo opportuno che indica al programma di installazione le informazioni necessarie per installare e configurare il sistema operativo. 8

10 CAPITOLO 2. INSTALLAZIONI AUTOMATICHE 9 Figura 2.1: Confronto fra installazione automatica e manuale Un installazione automatica, tipicamente, viene utilizzata in relazione a setup di larga scala. Ad esempio, data un istanza iniziale di un applicativo software o di un sistema operativo da attivare su più siti, risulterebbe molto utile avvalersi di un installazione di tipo unattended. L installazione automatica arreca dunque numerosi vantaggi agli utenti, nonché agli assemblatori, agli amministratori di sistema e, in generale, a chi debba configurare un elevato numero di macchine in modo standardizzato.

11 CAPITOLO 2. INSTALLAZIONI AUTOMATICHE 10 Alcuni vantaggi sono i seguenti. si realizzano meno errori durante l installazione. Mediante un installazione automatica non vi è la minima interazione da parte degli amministratori e tecnici durante il processo di installazione e questo riduce il numero di errori che si presentano durante il processo di installazione. sussiste una maggiore coerenza nel corso di un setup di larga scala. Utilizzando lo stesso file di risposte per installare e configurare il sistema operativo, è possibile garantire che tutti i computer di un organizzazione siano impostati esattamente nello stesso modo. si riducono i tempi di installazione. L installazione automatica è più veloce rispetto a quella interattiva perché non è necessario attendere che gli amministratori o i tecnici inseriscano le informazioni di configurazione richieste; al programma di installazione, infatti, basterà leggere il file delle risposte precedentemente settato. si determinano minori costi di supporto. Riducendo al minimo gli errori durante il processo di installazione, aumentando la coerenza dei computer di una struttura, e riducendo il tempo necessario al setup, è possibile ridurre i costi globali di sostegno all interno di un organizzazione aziendale. Molti sono i sistemi operativi che permettono di eseguire delle installazioni automatiche, tra cui anche i sistemi Linux e Microsoft Windows, ed il principio di funzionamento è piuttosto simile nei vari casi. Di seguito si esaminerà l installazione unattended di Windows Seven.

12 CAPITOLO 2. INSTALLAZIONI AUTOMATICHE Windows Seven A partire dal sistema operativo Windows Vista, il programma di installazione ha subito notevoli cambiamenti che hanno reso le installazioni più veloci e più consistenti rispetto a quelle di Windows XP. Si utilizza, infatti, l Image Based Setup(IBS), una nuova tecnologia basata sull utilizzo di più file immagine in formato WIM (Windows Imaging) con le seguenti proprietà: Memorizzazione di più immagini all interno dello stesso file. Riduzione della dimensione del file immagine, utilizzando specifiche tecniche di compressione. Personalizzazione del file immagine senza ricrearlo aggiungendo aggiornamenti oppure drivers. File.wim sono bootabili. Installazione più semplice e veloce. Per questo, l immagine del sistema operativo è memorizzata in un unico file, install.wim, memorizzato all interno della cartella sources. Vi è poi un ulteriore file immagine, boot.wim, necessario per l avviamento del programma di installazione. Questa nuova tecnologia permette di poter installare, in base alla Product Key, diverse versioni del sistema operativo, come: Windows Seven Home premium, Professional, Ultimate. L installazione di Windows Seven può essere divisa nelle seguenti fasi.

13 CAPITOLO 2. INSTALLAZIONI AUTOMATICHE 12 Preinstallation Phase In questa fase viene configurata l installazione del sistema operativo. Le attività eseguite possono essere così suddivise: Configurazione di Windows Setup: l installazione viene configurata utilizzando le finestre di dialogo (interattiva) oppure il file di risposta (unattended), successivamente viene configurato il disco e le impostazione sulla lingua. Configurazione di Windows PE: vengono applicate le impostazioni lette nel file di risposta. Configurazione del disco: l hard disk viene formattato e partizionato per l installazione del sistema operativo. Copia dell immagine di Windows: l immagine del disco (install.wim) viene copiata nel disco. Configurazione delle informazioni di boot: è possibile configurare sia singolo che multi-boot. Configurazione dei servizi offline: vengono applicati gli aggiornamenti nell immagine di Windows 7, tra cui correzioni software, language pack ed altri aggiornamenti di sicurezza. Online Configuration Phase Durante questa fase, Windows 7 esegue attività di personalizzazione relative all identità del computer, che rendono questa nuova installazione di Windows unica.

14 CAPITOLO 2. INSTALLAZIONI AUTOMATICHE 13 Windows Welcome Phase Durante un installazione manuale viene richiesto di scegliere un nome utente, il nome del computer, uno sfondo del desktop e cosi via; mentre se è presente la sezione oobesystem nel file di risposta quest ultima viene elaborata. Infine vi è l esecuzione della sezione Windows Welcome, che è conosciuta anche come Machine Out-Of-Box- Experience (OOBE), durante la quale si possono eseguire personalizzazioni finali, come la creazione di account aggiuntivi Answer File Il file di risposta di Windows Seven è un file XML (AutoUnattend.xml), grazie al quale è possibile automatizzare tutto o parte del processo di installazione. Esso può essere creato mediante l ausilio di Windows Automated Installation Kit (AIK), che comprende un insieme di tool atti a realizzare immagini di Windows personalizzate. In particolare l utility che permette di creare il file di risposta prende il nome di Windows SIM (System Image Manager). L interfaccia grafica di Windows SIM presenta cinque riquadri distinti: Distribution share. In cui è possibile inserire, ad esempio, eventuali driver aggiuntivi da installare. Windows Image. In questo riquadro viene visualizzata l immagine di Windows attualmente aperta (è necessario aprire un file.wim per creare un file di risposta).

15 CAPITOLO 2. INSTALLAZIONI AUTOMATICHE 14 Figura 2.2: Interfaccia Windows SIM Answer file. In cui si crea o si modifica il file di risposta. Properties. Dove si consente di configurare i componenti e i pacchetti selezionati. Messages. Mostra errori, warning e messaggi informativi riguardanti la sintassi del file creato. Una volta aperto il file install.wim attraverso Windows SIM, è possibile creare il file di risposta aggiungendo ai passi di configurazione i componenti desiderati. I passi di configurazione sono suddivisi in: Windows PE. I componenti aggiunti a questo passo configurano la fase di Windows PE.

16 CAPITOLO 2. INSTALLAZIONI AUTOMATICHE 15 Offline servicing. Passo di configurazione utilizzabile per aggiungere dei driver all immagine di Windows. Specialize. Passaggio utilizzato dal sistema per configurare impostazioni specifiche di rete. AuditSystem. Si realizza il passaggio solo quando l installazione avviene in modalità di controllo. Questa modalità è utilizzata per l aggiunta di varie personalizzazioni a un immagine di Windows e salta la fase finale di Windows Welcome dell installazione; in questo modo le configurazioni avvengono prima che l utente esegua il login. AuditUser. Passaggio simile al precedente ma eseguito solo dopo che l utente ha effettuato il login. OobeSystem. Corrisponde alla terza ed ultima fase del programma d installazione. 2.3 Installazione silenziosa di applicazioni L installazione silenziosa è una modalità di installazione dei programmi in cui non c è interazione con l utente, quindi non si realizza una visualizzazione di un interfaccia oppure di finestre di dialogo. In questo modo, il programma si installerà con le impostazioni di default, cioè: accettazione automatica della licenza;

17 CAPITOLO 2. INSTALLAZIONI AUTOMATICHE 16 creazione di scorciatoie; installazione dei tool aggiunti. Per eseguire un installazione silenziosa, basta eseguire il file di installazione con determinati parametri. Il metodo classico per ricavare i parametri di installazione è quello di utilizzare il comando /?. La procedura però, non è delle più veloci e non sempre questo comando funziona. Possiamo però utilizzare un comodo strumento (che si integra nel menù contestuale) per la determinazione dei parametri di installazione silenziosa: CMenu. Una volta scaricato ed installato, cliccate con il tasto destro del mouse, sul file di installazione di cui volete conoscere i parametri di installazione silenziosa, scegliete dal menù contestuale More Options Installer Tools Identify Installer. Tali parametri variano in base al package installer, dipendono cioè dal sistema d installazione utilizzato per la specifica applicazione. I parametri più comuni di installazione silenziosa sono /s, /S, SILENT, silent, /qn. Le sintassi per lanciare l installazione di un programma sono quindi: setup.exe /s, setup.exe /S, setup.exe /SILENT. I più comuni package installer sono: Inno Setup; Install Shield Installer; Nullsoft Scriptable Install System (NSIS);

18 CAPITOLO 2. INSTALLAZIONI AUTOMATICHE 17 Windows Installer Service (MSI packages); Wise Installer.

19 Capitolo 3 Cloud Computing Il Cloud Computing, secondo il National Institute of Standards and Technology (NIST): è un modello per rendere possibile un accesso via rete, su richiesta e in maniera conveniente, a un insieme condiviso di risorse configurabili (ad esempio reti, server, storage, applicazioni e servizi) che possono essere rapidamente fornite e rilasciate con costi di gestione o interazioni con il fornitore minimali [8]. L ambito è quello di calcolo distribuito e lo scenario è quindi quello di un utente che con un qualsiasi device (PC, tablet, smartphone) ed una connessione ad Internet può accedere al cloud che gli fornisce tutti i servizi e i dati richiesti [9]. È evidente così come il Cloud Computing faccia in campo IT ciò che quotidianamente viene fatto mediante la fornitura di elettricità, gas o altri tipi di servizi di uso comune. Tali servizi vengono forniti all utente su richiesta senza che debba preoccuparsi di come siano forniti: l utente chiede e il servizio viene fornito nella quantità desiderata. In un modello di business cloud-based, il cliente, quindi, paga il provider in base al consumo 18

20 CAPITOLO 3. CLOUD COMPUTING 19 che effettivamente si verificherà. Il Cloud Computing offre, inoltre, a sviluppatori ed utenti di applicazioni una visione astratta dei servizi che semplifica, ignorando molti dei dettagli implementativi e dei funzionamenti interni dei servizi stessi [10]. 3.1 I diversi paradigmi di calcolo distribuito La definizione di Cloud Computing può essere comparata alle tecnologie esistenti, come Grid Computing, Utility Computing, Service Computing, e calcolo distribuito in generale. In particolare, il Cloud Computing può essere considerato l evoluzione del Grid Computing, da cui prende le mosse. L evoluzione è la conseguenza di un cambiamento di scenario che si è realizzato col passaggio da una tecnologia che fornisce storage e grandi risorse di elaborazione (nel caso del Grid), ad una la cui economia è fondata sull erogazione di servizi e risorse più astratte. Per quanto riguarda, invece, l Utility Computing, esso non consiste in un nuovo paradigma di infrastruttura di calcolo, ma anzi consiste in un modello di business nel quale le risorse di calcolo sono confezionate come servizi dosati, simili all elettricità ed alla rete telefonica. L Utility Computing è, tipicamente, implementato utilizzando altre infrastrutture di calcolo, come le griglie, e aggiungendo dei servizi aggiuntivi di monitoraggio. Un infrastruttura cloud può essere invece utilizzata all interno di una società oppure esposta pubblicamente come Utility Computing. La figura 3.1 ci mostra una panoramica del rapporto fra il Cloud Computing e gli

21 CAPITOLO 3. CLOUD COMPUTING 20 altri domini ai quali viene contrapposto. Il Web 2.0 copre quasi l intero spettro di applicazioni orientate ai servizi. Figura 3.1: Panoramica dei paradigmi di calcolo distribuito Supercomputing e Computing Cluster si basano sulle tradizionali applicazioni noservices. Il Grid Computing si sovrappone a tutti questi domini, però presenta una minore scalabilità rispetto ai supercomputer ed ai clouds. Il Grid Computing si propone di consentire la condivisione delle risorse e di problemsolving in organizzazioni virtuali dinamiche e multi-istituzionali [11]. Caratteristica chiave di questo modello è rappresentata dal fatto che le griglie provvedono a fornire un paradigma di calcolo distribuito che si estende su più organizzazioni virtuali (VO), in cui ognuna di essa può essere costituita da istituzioni fisicamente distribuite o progetti correlati logicamente. L obiettivo di tale paradigma è quello di consentire la condivisione delle risorse associate ad ambienti distribuiti dinamici. L approccio adottato come standard de facto [12], è quello di costruire un ambiente uniforme di calcolo mediante la definizione di protocolli di rete standard, fornendo dei middleware

22 CAPITOLO 3. CLOUD COMPUTING 21 per mediare l accesso a una vasta gamma di risorse eterogenee. Secondo Ian Foster [13] una griglia deve coordinare risorse che non sono soggette a controllo centralizzato, utilizzare protocolli ed interfacce standard, open e generalpurpose e offrire qualità di servizio non banali. I punti di vista di cloud e grid sono molto simili, i dettagli e le tecnologie utilizzate possono essere diverse, ma le due comunità sono alle prese con molti degli stessi problemi. 3.2 Architettura L infrastruttura cloud consiste in un ampio pool di risorse di calcolo e di storage, a cui è possibile accedere tramite protocolli standard attraverso un interfaccia astratta. Vi sono moltissime definizioni di architettura per i clouds, una di queste si basa su quattro strati: Figura 3.2: Architettura Cloud

23 CAPITOLO 3. CLOUD COMPUTING 22 fabric che contiene le risorse grezze a livello hardware, come risorse di calcolo, le risorse storage e di rete. unified resource che contiene le risorse astratte, incapsulate (di solito per effetto della virtualizzazione), in modo che possano essere esposte allo strato superiore, ad esempio, un computer virtuale, cluster, un database, ecc... platform che aggiunge una collezione di strumenti specializzati, middleware e servizi per fornire una piattaforma di distribuzione. application che contiene le applicazioni che girano nel cloud. I clouds, generalmente, possono fornire servizi che principalmente possono essere ricondotti a tre tipi fondamentali [14]: SaaS (Software as service). E il livello più alto di servizi forniti. Attraverso questa tecnologia è possibile avviare e utilizzare programmi in remoto. I clienti non pagano per il possesso del software bensì per l utilizzo dello stesso. Essi utilizzano il software tramite API accessibili via web, spesso come Web Services o REST. Alcuni esempi di servizi SaaS sono un accesso webmail, un CRM e le classiche Google Apps. PaaS. È l acronimo di Platform as a Service, cioè la virtualizzazione di una piattaforma. L utente che utilizza tale servizio non deve occuparsi di gestire l infrastruttura sottostante, in quando questa operazione è stata già effettuata dal fornitore del servizio. Ciò rappresenta anche una limitazione in quanto

24 CAPITOLO 3. CLOUD COMPUTING 23 l utente per realizzare la propria applicazione dovrà necessariamente utilizzare un infrastruttura predefinita senza poterla adattare alle proprie esigenze. IaaS. È l acronimo di Infrastructure as a Service ed è il servizio più vicino a ciò che forma il cloud. Al cliente viene fornito un computer virtuale caratterizzato da una certa quantità di ram, un certo numero di cpu, un interfaccia di rete e una certa quantità di storage. L utente ha la possibilità di installare un qualsiasi sistema operativo e di installare i programmi che preferisce. Inoltre, ha a disposizione un computer virtuale, quindi non dovrà preoccuparsi di eventuali guasti al sistema, in quanto vengono gestiti dal fornitore del servizio. Generalmente tale servizio è tariffato ad ore di utilizzo, anche se esistono delle soluzioni flat con fatturazione periodica. Un esempio è il servizio EC2/S3 fornito da amazon. 3.3 Virtualizzazione La virtualizzazione è la caratteristica che differenzia maggiormente il Cloud Computing dal precedente paradigma di calcolo distribuito Grid Computing. Così come i thread sono stati introdotti per fornire l illusione, come se all interno di un computer fossero in esecuzione simultaneamente più attività, e ciascuna di esse utilizzasse tutte le risorse disponibili, all interno di un cloud è necessario eseguire applicazioni per utenti multipli contemporaneamente ed in cui ciascuna di esse possa utilizzare tutte le risorse disponibili. La virtualizzazione consente che ogni applicazione sia incapsulata, in modo tale da

25 CAPITOLO 3. CLOUD COMPUTING 24 poterla configurare, distribuire, lanciare, migrare, sospendere, stoppare, ecc... Tutto questo fornisce una migliore sicurezza, gestione ed isolamento. Ci sono molti altri motivi per cui i cloud tendono ad adottare la virtualizzazione. Per esempio perché viene garantito il consolidamento dei server e delle applicazioni: più applicazioni possono essere eseguite sullo stesso server, più le risorse possono essere utilizzate in modo efficiente. Si permette poi la configurazione, tramite cui le risorse necessarie per le varie applicazioni potrebbero differire in modo significativo, dato che alcune di esse potrebbero richiedere grandi dimensioni di memorizzazione, e altre maggiori risorse di elaborazione. Al fine di configurare in modo dinamico e combinare le risorse per le varie esigenze, è necessaria la virtualizzazione, perchè non è realizzabile altrimenti a livello hardware. La virtualizzazione consente comunque una maggiore affidabilità, perché permette un recupero veloce da interruzioni non pianificate, e inoltre, gli ambienti virtuali possono essere sottoposti a backup e migrazione senza interruzione del servizio. Con il nuovo modello, poi, si determina maggiore reattività, in quanto possono essere automatizzati sia provisioning delle risorse che monitoraggio e manutenzione, e le risorse comuni possono essere memorizzate all interno della cache e riutilizzate successivamente.

26 CAPITOLO 3. CLOUD COMPUTING CLEVER Il progetto CLEVER (Cloud Enabled Virtual EnviRonment) nasce con lo scopo di creare un middleware distribuito per la gestione di un infrastruttura di cloud computing e, allo stesso tempo, per consentire l interconnessione con altri cloud al fine di formare un cloud federato. CLEVER è interamente sviluppato in linguaggio Java ed offre un architettura altamente scalabile, modulare, tollerante ai guasti e flessibile; quest ultimo requisito è stato raggiunto integrando nella struttura di CLEVER il paradigma a plug-in, grazie al quale è possibile modificare alcune parti del middleware o aggiungerne di nuove senza mettere mani nel codice, bensì modificando degli opportuni file di configurazione [17]. CLEVER è stato pensato per essere eseguito su un infrastruttura hardware costituita da un numero di nodi variabile e non necessariamente costante nel tempo, connessi tra loro per mezzo di una rete internet. Non è dunque strettamente necessario che i nodi fisici del cluster risiedano tutti sulla stessa rete locale. A supporto di tale infrastruttura, come riportato in fig 3.3, è però necessaria la presenza di un server XMPP, che rappresenta il cuore delle comunicazioni inter-modulo e di un database distribuito, su cui verranno salvati tutti i dati necessari al corretto funzionamento e ripristino del middleware. CLEVER è strutturato in maniera gerarchica e modulare, ed alla base troviamo dei moduli denominati Host Manager, i cui compiti sono quelli di amministrare gli ambienti virtuali sotto il loro controllo e collaborare con il sistema operativo dell host sottostante per monitorarne le risorse fisiche. Sopra gli Host Manager troviamo

27 CAPITOLO 3. CLOUD COMPUTING 26 Figura 3.3: Infrastruttura hardware per il middleware CLEVER un Cluster Manager, che ha una duplice funzione: monitora lo stato generale del cluster, decidendo eventualmente la migrazione delle macchine virtuali da un host ad un altro, in base alle condizioni di carico del cluster e si interfaccia con gli utenti ricevendo comandi, eseguendo le operazioni specificate e restituendo ai primi i risultati relativi a tali operazioni. I moduli Cluster Manager e Host Manager sono a loro volta costituiti da sotto-moduli, rappresentati da un nucleo centrale, che coordina l intero modulo, e dagli agenti, ciascuno dei quali è deputato a svolgere un compito ben preciso. Gli agenti a loro volta implementano un plug-in, attraverso il quale possono eseguire le proprie operazioni. Per il corretto funzionamento del middleware è necessario che su ogni host sia presente

28 CAPITOLO 3. CLOUD COMPUTING 27 un modulo Host Manager, e almeno un Cluster Manager per tutto il cluster. Tuttavia per aumentare la fault tollerance dell architettura, saranno contemporaneamente presenti, su host differenti, più Cluster Manager. Solo uno di questi svolgerà il ruolo di coordinatore del cluster, gli altri serviranno da rimpiazzo nel caso quest ultimo andasse incontro ad un qualche errore che ne comporterebbe la terminazione La comunicazione In Clever si distinguono principalmente due tipi di comunicazioni, quella interna e quella esterna. La comunicazione interna avviene all interno dello stesso modulo, e viene sfruttato il bus di sistema (D-Bus). Ogni agente infatti è un processo a sé stante, ed è quindi possibile la comunicazione fra i vari agenti sfruttando il bus di sistema. La comunicazione esterna è necessaria per lo scambio di messaggi fra il Cluster Manager e gli Host Manager; i moduli girano infatti su nodi differenti e non è quindi possibile utilizzare il bus di sistema per la comunicazione. Per permettere la comunicazione inter-nodo si è scelta un architettura client-server in cui tutti i nodi risultano connessi attraverso la rete ad un server XMPP, che ha il compito di smistare i messaggi verso il nodo corretto La gestione dello storage Per la gestione dello storage ad alto livello [22], CLEVER utilizza una struttura ad albero gerarchica, ovvero un catalogo logico in grado di gestire l accesso ai file all in-

29 CAPITOLO 3. CLOUD COMPUTING 28 terno del cluster. In tal senso, l utente può decidere di caricare immediatamente un dato all interno del cluster, oppure in alternativa ha la facoltà di specificare un ubicazione esterna, che può essere un server FTP o HTTP di sua proprietà. Il catalogo logico rende CLEVER un unico File System Virtuale (VFS: Virtual File System), in quanto fornisce un livello di astrazione che nasconde le differenze tra FS diversi. L albero che descrive tale catalogo virtuale prevede la presenza di tre tipi di nodi: Clever node che rappresenta un nodo virtuale che l utente può creare in qualsiasi momento e che al suo interno può contenere altri nodi clever oppure nodi link o nodi mount. Link node che rappresenta un collegamento ad un qualsiasi altro nodo logico dell albero. Si può fare un link anche ad uno specifico path fisico all interno del file system (mount node) in maniera del tutto trasparente. È un nodo foglia, il che significa che non può avere nodi figli. Mount node che è un particolare nodo del file system nel quale sono effettivamente contenuti dei dati che è possibile esplorare. Anch esso è un nodo foglia, pertanto non è possibile creare dei sotto-nodi. Fornendo un analogia con i file system reali, i nodi clever rappresentano le directory, mentre i nodi link ed i nodi mount sono i file che possono risiedere all interno di tali directory. I nodi dell albero possono avere lo stesso nome, ma devono essere raggiungibili da path differenti, come accade in un normalissimo FS. I clever node ed i link node hanno un significato logico più ad alto livello, mentre i nodi mount sono quelli che hanno

30 CAPITOLO 3. CLOUD COMPUTING 29 un significato fisico più a basso livello. L utente, specificando un determinato path, è in grado di eseguire l attraversamento dell albero in modo del tutto trasparente. Tale path è costituito da due parti, il path logico che è il percorso dalla root ad un qualsiasi nodo clever (clever node,link node, mount node ) e il path fisico che è il percorso interno al file system. Giungere ad un nodo di tipo mount significa entrare all interno del FS e dunque, esplorarne il suo contenuto La virtualizzazione Tutta la gestione delle macchine virtuali ad alto livello è affidata al componente Virtualization Manager presente nel modulo Cluster Manager. Mediante la classe VirtualizationManagerClever vengono offerte molte funzionalità quali: registazione (register), creazione (createvm ), avvio (startvm) ed arresto (stopvm) di una VM. La registrazione di un macchina virtuale consiste nella creazione da parte dell utente di un file XML, all interno del quale vengono specificate tutte le caratteristiche della VM. L intero meccanismo si fonda sulla classe VEDescription e sulle classi ad essa collegate. Per una maggiore trattazione sull implementazione delle suddette classi si rimanda il lettore al seguente lavoro di tesi [21]. In dettaglio, i parametri dell ambiente virtuale (VE-Virtual Enviroment) sono visibili nel seguente codice XML: <?xml version="1.0" encoding="utf-8"?> <org.clever.common.veinfo.vedescription> <os_guest_id>ubuntuguest</os_guest_id>

31 CAPITOLO 3. CLOUD COMPUTING 30 <name>vvl</name> <storage> <org.clever.common.veinfo.storagesettings> <diskpath>peppecal/localftp/peppexp_github.img</diskpath> </org.clever.common.veinfo.storagesettings> </storage> <cpu> <numcpu>1</numcpu> <coresxcpu>1</coresxcpu> <frequency>0.0</frequency> <architecture>x86_64</architecture> </cpu> <mem> <size>512000</size> </mem> <network> <org.clever.common.veinfo.networksettings></org.clever.common.veinfo.networksettings> </network> <desktop> <username></username> <password_user></password_user> <password_vnc_vm></password_vnc_vm> <ip_vnc></ip_vnc> <port></port> </desktop> </org.clever.common.veinfo.vedescription> Ai fini dello storage, riveste un ruolo importante il tag diskpath in cui l utente dovrà specificare il percorso virtuale dell immagine. La creazione di una macchina virtuale consiste nel provvedere al recupero dell immagine del disco, rendendola disponibile all hypervisor. Si recupera l oggetto VEDescription, lo si de-serializza e si estrae il diskpath relativo all ubicazione dell immagine della VM. Se le informazioni relative al nuovo ambiente virtuale sono corrette, nel senso che non esiste già una VM con lo stesso nome oppure l immagine del disco è realmente presente nel path logico fornito, allora mediante il processo di creazione

32 CAPITOLO 3. CLOUD COMPUTING 31 viene copiato il disco all interno del repository di Clever. L operazione di avvio provvederà al lancio della macchina virtuale appena registrata e creata.

33 Capitolo 4 La Virtualizzazione 4.1 Introduzione La virtualizzazione è espressione di un trend in evoluzione negli ultimi anni in ambito informatico che comunque affonda le sue radici nel passato, come qualsiasi avvenimento legato alla tecnologia. Si tratta di un sistema di tipo time-sharing che consente a più utenti di accedere allo stesso computer e i suoi inizi si datano intorno agli anni 60, quando in aziende, come IBM per esempio, nasceva l esigenza di consolidare i numerosi server, sparsi fisicamente, in un unica macchina fisica, lasciando inalterate le caratteristiche principali (indrizzo IP, servizi, ecc.) ma riducendo fortemente il consumo elettrico. I sistemi di virtualizzazione non sono stati semplici da implementare. Inizialmente, infatti, la maggior parte degli ingegneri aveva pensato di rendere i sistemi operativi tradizionali maggiormente interattivi al fine di permettere a più utenti di entrare nello 32

34 CAPITOLO 4. LA VIRTUALIZZAZIONE 33 stesso sistema, ma in questo modo il sistema operativo stesso diventava estremamente complesso. Un gruppo di ingegneri IBM di Cambridge, Mass., adottò poi un nuovo approccio che permetteva a ciascun utente di accedere allo stesso sistema attraverso una propria macchina virtuale (VM). In tal modo non si ravvisavano difficoltà nell implementazione del sistema operativo perché doveva supportare un singolo utente. Tecnicamente, con il termine virtualizzazione si intende la possibilità di astrarre le componenti hardware degli elaboratori al fine di renderle disponibili al software in forma di risorsa virtuale. L insieme delle componenti hardware virtuali (Hard Disk, RAM, CPU, NIC) prende il nome di macchina virtuale e su di esse possono essere installati i software, come i sistemi operativi e le relative applicazioni. I principali benefici derivati dall avvento della virtualizzazione sono rappresentati: Scalabilità dell infrastruttura, sia per un eventuale richiesta di maggiore potenza di calcolo, sia per una richiesta di disponibilità di spazio per la memorizzazione. Riduzione dei costi: la riduzione di server e delle relative risorse hardware diminuisce le esigenze di spazio e le esigenze di alimentazione e raffreddamento. Con l ausilio di strumenti di gestione ottimizzati è possibile migliorare il rapporto server gestiti per amministratore e, di conseguenza, ridurre le esigenze di personale. Migrazione: esecuzione di backup sicuri e migrazione di interi ambienti virtuali senza interruzioni operative. Eliminazione dei downtime pianificati e ripristino immediato in caso di imprevisti.

35 CAPITOLO 4. LA VIRTUALIZZAZIONE 34 Sicurezza: possibilità di controllare e interrompere eventuali attività pericolose in quanto tutte confinate nella virtual machine sotto il completo controllo del sistema che ne governa l esecuzione (hypervisor). 4.2 Modalità di virtualizzazione Complessivamente, le aree di virtualizzazione sono quattro, a seconda che il processo avvenga al livello delle applicazioni, di rete, del sistema di archiviazione o dei sistemi operativi. Virtualizzazione dei server di applicazioni Questo tipo di virtualizzazione è nato con i primi servizi di bilanciamento del carico, ragion per cui viene spesso definito virtualizzazione delle applicazioni. In effetti, gli strumenti di bilanciamento del carico estendono il concetto di virtualizzazione del server a un gruppo di server distribuiti tramite un proxy inverso, permettendo di accedere a numerosi servizi applicativi in maniera trasparente tramite un applicazione o un servizio specifico. In un normale deployment, un proxy inverso ospita un interfaccia virtuale accessibile per l utente a livello front-end. A livello back-end, ovvero del sistema di produzione interno che comprende i server critici dell azienda, quali i server del data center o, in certi casi, i server di applicazioni, il proxy inverso distribuisce il carico fra i vari server e applicazioni, come ad esempio i server Web. L interfaccia virtuale, spesso denominata IP virtuale o VIP, diventa a questo punto

36 CAPITOLO 4. LA VIRTUALIZZAZIONE 35 il server Web effettivo, che gestisce le connessioni in entrata e in uscita a livello del server a seconda delle esigenze. Questo permette al servizio di bilanciamento del carico di gestire più applicazioni o server Web in modo centralizzato, come un istanza unica, offrendo una topologia più sicura e resistente rispetto a un architettura con accesso diretto a ogni server Web. Si tratta di un modello di virtualizzazione uno-amolti applicabile a qualsiasi tipo di architettura e deployment di applicazioni, in cui un unico server rappresenta più server accessibili tramite un proxy inverso. Virtualizzazione di rete La virtualizzazione di rete consiste nella possibilità di riferirsi a risorse di rete senza utilizzare la loro reale locazione fisica. Un esempio può essere visto attraverso la VLAN (Virtual Local Area Networks). Essa consiste in un gruppo di host che comunicano tra di loro come se fossero collegati allo stesso cablaggio, a prescindere dalla loro posizione fisica. Le VLAN servono a creare vari gruppi di lavoro nell ambito di una LAN o MAN senza la necessità che i componenti di un gruppo occupino spazi fisicamente contigui. I vantaggi che ne derivano sono l isolamento del traffico multicast e broadcast dei vari gruppi di lavoro al livello Data Link e, di conseguenza, l aumento della sicurezza del trasporto dei dati e la diminuzione del carico di tutta la rete. Un altro esempio è dato dalla VPN (Virtual Area Network). Essa è una tecnologia che grazie all utilizzo di internet od un altra rete intermedia garantisce il collegamento fra computer con reti di computer remote, altrimenti inaccessibili. La VPN offre sicurezza, in quanto il traffico inviato attraverso la rete instaurata rimane isolato

37 CAPITOLO 4. LA VIRTUALIZZAZIONE 36 dagli altri computer presenti nella rete intermedia. Virtualizzazione dei dispositivi di storage La virtualizzazione del sistema di storage permette di rappresentare i dati indipendentemente dalla posizione e dalle caratteristiche dello storage, rendendo possibile un miglior utilizzo delle risorse, un ripristino delle risorse più rapido e una semplificazione dei requisiti di spazio, energia e raffreddamento. Tuttavia, l efficacia dei vantaggi ottenibili con tale tecnologia dipende dalla completezza della soluzione di virtualizzazione del sistema di storage e dalla qualità della sua integrazione con l architettura per la gestione dei dati critici. Virtualizzazione del sistema operativo Oltre a rappresentare il tipo di virtualizzazione più diffuso, i sistemi operativi virtualizzati, o macchine virtuali, sono un componente indispensabile dell infrastruttura IT, che permette di eseguire sulla stessa piattaforma hardware più sistemi standard, fornendo agli utenti degli ambienti di esecuzione isolati e dedicati (Virtual Enviroment). Si definiscono: Host machine: la macchina reale sulla quale viene effettuata la virtualizzazione. Guest machine: la macchina virtuale vera e propria che viene generata Un Virtual Environment non è altro che un insieme di componenti hardware e periferiche implementate via software, conosciuto con il nome di Virtual Machine (Macchina

38 CAPITOLO 4. LA VIRTUALIZZAZIONE 37 Figura 4.1: Virtualizzazione del sistema operativo Virtuale). La Virtual Machine permette l esecuzione di un sistema operativo guest ed una o più applicazioni che eseguono sopra di esso. Ogni Virtual Machine a sua volta esegue sopra ad uno strato di virtualizzazione chiamato tecnicamente Hypervisor (Supervisore), il quale possiede un Virtual Machine Monitor (VMM). L hypervisor è il componente chiave che idealmente deve operare in maniera trasparente senza pesare con la propria attività sul funzionamento e sulle prestazioni dei sistemi operativi. 4.3 Virtual Machine e Hypervisor In dipendenza delle specifiche applicazioni, è possibile distinguere differenti classi di Virtual Machine. Quelle maggiormente significative e utilizzate sono tre - sandbox, emulation e native - e possono essere così descritte: Sandbox - Macchine Virtuali di processo. Si fa riferimento ad un meccanismo

39 CAPITOLO 4. LA VIRTUALIZZAZIONE 38 di sicurezza per incapsulare programmi in esecuzione, fornendo un set di risorse altamente controllato. Le macchine virtuali appartenenti a questa classe possono quindi essere utilizzate per l esecuzione di codice non testato o programmi non fidati, per restringere l accesso a specifiche risorse per una data applicazione o ancora per eseguire applicazioni sviluppate e compilate per specifici sistemi operativi su altri sistemi. In una sandbox, la memoria, il filesystem, la connessione di rete e in generale tutte le risorse, sono rese accessibili tramite delle interfacce API fornite direttamente dalla sandbox stessa, la quale così è in grado di monitorare e controllare ogni tipo di accesso a tali risorse. Esempi di sandbox largamente utilizzate al giorno d oggi sono la Java Virtual Machine [1], l Adobe s Flash Player o ancora l antivirus Avast! Emulation - Macchine Virtuali di sistema Hosted. Queste macchine virtuali emulano il completo funzionamento di un sistema operativo e con esse è possibile pertanto eseguire sistemi operativi basati anche su architetture di processori differenti. Ne sono esempi QEMU [2] o Bochs [3]. Native - Macchine Virtuali di sistema Nativo. Anche questa classe di macchine virtuali, come la classe emulation, tenta di eseguire un sistema operativo guest per intero. Essa sfrutta le caratteristiche di virtualizzazione proprie dell hardware che utilizza, come le VT-X di Intel o le SVM di AMD, garantendo così delle prestazioni migliori. Per esempio, considerando l estensione di virtualizzazione di Intel VT-X 6, possono essere introdotte in particolare due transizioni:

40 CAPITOLO 4. LA VIRTUALIZZAZIONE 39 VMentry e VMExit, e, semplificando il discorso, si può verificare una VMentry quando il controllo passa dal monitor VMM alla VM guest e analogamente si verifica una VMexit quando il controllo passa dalla VM guest al VMM. Esempi di VM di tipo native sono KVM [4] o VMware. Il VMM, o hypervisor, viene definito come un software in esecuzione sulla macchina reale che ha il completo controllo delle risorse hardware. Esso crea degli ambienti d esecuzione, detti macchine virtuali, che forniscono agli utenti l illusione di un accesso diretto alle risorse della macchina fisica. Un VMM deve possedere le seguenti caratteristiche: Equivalenza: gli effetti dell esecuzione di un programma attraverso il VMM devono essere identici a quelli dello stesso programma eseguito direttamente sulla macchina fisica, ad eccezione al più del tempo d esecuzione dovuto all overhead del VMM, alla ridotta disponibilità di risorse, che potrebbe fare andare in swap il programma in esecuzione, ed ai dispositivi I/O agganciati, perché se la VM non prevede periferiche collegate alla macchina reale (scheda di rete, USB, scheda audio) potrebbe non poter accedere ad esse. Efficienza: l ambiente virtuale deve essere efficiente. La maggior parte delle istruzioni eseguite all interno di tali ambienti deve essere eseguita direttamente dal processore reale senza che il VMM intervenga. Le istruzioni che non possono essere eseguite direttamente dal processore reale sono interpretate dal VMM. Controllo delle Risorse: il controllo delle risorse hardware deve essere di esclusiva competenza del VMM, senza interferenze da parte delle VM.

41 CAPITOLO 4. LA VIRTUALIZZAZIONE 40 L hypervisor può essere suddiviso in tre generici moduli: dispatcher, allocator ed interpreter. Il compito del dispatcher è di intercettare le istruzioni sensibili eseguite dalle VM e passare il controllo ai moduli preposti a gestire tali operazioni. L allocator si preoccupa di fornire alle macchine virtuali le risorse necessarie evitando i conflitti. Mentre l interpreter si rende necessario in quanto le macchine virtuali non possono avere accesso diretto alle risorse fisiche e non conoscono lo stato dell hardware reale, ma solo quello del loro ambiente virtuale. Le istruzioni che fanno riferimento alle risorse vengono quindi simulate dall interpreter. Si possono individuare due tipologie di VMM [5] in base alla collocazione nell ambiente della macchina fisica: Il VMM di tipo 1 è posto immediatamente sopra l hardware e dispone di tutti i meccanismi di un normale kernel per quello che riguarda la gestione delle memoria, delle periferiche e del processore. Figura 4.2: Tipo 1

42 CAPITOLO 4. LA VIRTUALIZZAZIONE 41 Il VMM di tipo 2 è un normale processo in esecuzione nell ambito del sistema operativo host. Gestisce direttamente le macchine virtuali, che sono suoi sottoprocessi, mentre la gestione hardware è demandata al sistema ospitante. In virtù di quanto detto la sua implementazione dovrebbe essere più semplice rispetto al VMM di tipo 1. Figura 4.3: Tipo Tipologie di virtualizzazione dei sistemi Un concetto importante riguarda i livelli di protezione dell architettura x86 (ring level). Il livello 0 ha i privilegi più alti e, normalmente, in esso vi è il sistema operativo. Il codice eseguito in questo livello può essere in esecuzione in modalità: system space, kernel mode oppure supervisor mode. Qualsiasi altro tipo di codice, come

43 CAPITOLO 4. LA VIRTUALIZZAZIONE 42 le applicazioni del sistema operativo, operano in livelli meno privilegiati (livello 3). L hypervisor viene eseguito direttamente nell hardware del sistema host nel ring 0. Figura 4.4: Livelli di protezione dell architettura x86 Esso gestisce le richieste hardware per conto del sistema operativo guest. Esistono comunque scenari dove alcune operazioni non possono essere eseguite dal sistema operativo guest se non ha diretto contatto con l hardware. Per questo motivo l hypervisor deve implementare una metodologia per intrappolare queste richieste di operazioni delicate e trasformarle in operazioni eseguibili correttamente, il tutto operando in maniera dinamica. Tale obiettivo è raggiungibile mediante diversi approcci [6]. Full Virtualization Essa consente l esecuzione di sistemi operativi non modificati (o non modificabili per ragioni di licenza) in un ambiente totalmente ricreato ed isolato dal sistema operativo che lo ospita; tale ambiente è realizzato da un apposito software che si occupa di emulare l hardware necessario traducendo le istruzioni eseguite dal sistema ospite in

44 CAPITOLO 4. LA VIRTUALIZZAZIONE 43 qualcosa che il sistema operativo ospitante sia in grado di eseguire. Come è possibile intuire, la traduzione di ogni singola istruzione è molto onerosa a livello di potenza di calcolo, per ovviare a ciò è necessario eseguire la maggior parte delle istruzioni in modo nativo. Sebbene quindi esistano emulatori di CPU differenti dall architettura x86, come ad esempio Qemu che è in grado di emulare ARM, Alpha, MIPS, SPARC o Hercules che emula System/370, ESA/390 e z/architecture, questi emulatori tendono ad essere molto lenti poiché devono tradurre ogni istruzione verso l architettura x86, eseguirla, e quindi tradurne il risultato verso l architettura emulata. Imponendo quindi un limite sull architettura virtualizzata (x86 virtualizza solo x86), è possibile velocizzare notevolmente l esecuzione dei sistemi guest mappando direttamente memoria e CPU (per quanto riguarda le istruzioni accessibili). Questo limite rende però impossibile virtualizzare sistemi x86 64 se il sistema operativo di base è i386 (come nel caso di VMWare ESX). Questo succede perché l architettura i386 prevede l esecuzione di codice in due modalità: Real Mode: dove ogni processo ha completo accesso a tutto l hardware (tale modalità è quantomeno rischiosa e preclude il concetto di virtualizzazione); Protected Mode: vengono creati diversi livelli di protezione che possono essere immaginati come anelli (RING) concentrici sempre più restrittivi man mano che si procede verso l esterno.

45 CAPITOLO 4. LA VIRTUALIZZAZIONE 44 Figura 4.5: Virtualizzazione completa. Hardware Assisted Virtualization Conosciuta anche come Accelerated Virtualization oppure con nomi diversi a seconda del produttore, ad esempio Xen la chiama Hardware Virtual Machine (HVM), Virtual Iron la chiama Native Virtualization. Questa tecnica si appoggia a speciali funzioni della CPU (Intel VT e AMD-V) e permette l esecuzione direttamente in hardware di alcune chiamate della macchina virtuale. La più importante conseguenza di questo supporto in hardware è il superamento del limite della Full Virtualization: grazie a queste estensioni è infatti possibile avere come guest sistemi x86 64 nonostante il sistema ospitante sia i386. Occorre precisare che l attuale virtualizzazione assistita si occupa di aiutare solamente funzioni di CPU e memoria; tutte le funzionalità di I/O sono ancora emulate. Esistono già delle specifiche per permettere a diverse istanze virtuali di condividere schede PCI Express. Vengono introdotte due nuove modalità operative, trasversali ai livelli di protezione dell architettura (ring level): la modalità Root e la modalità non Root. Sia i guest che

46 CAPITOLO 4. LA VIRTUALIZZAZIONE 45 gli host potranno operare sempre al giusto ring-level (generalmente 0 in kernel-mode, 3 in user-mode), ma solo il VMM potrà accedere alla modalità Root, che fornisce l accesso a tutte le funzionalità di gestione della virtualizzazione implementate dalle estensioni. Figura 4.6: Hardware assisted virtualization.

47 CAPITOLO 4. LA VIRTUALIZZAZIONE 46 ParaVirtualization Essa è una tecnica in cui il sistema operativo virtualizzato riesce a comunicare direttamente con il Motore di Virtualizzazione (hypervisor). Questo comporta la necessità di modificare il kernel del sistema operativo da virtualizzare risultando problematico nel caso di prodotti come Windows che, per motivi di licenza, non permettono la modifica del codice. Xen, ad esempio, permette l installazione di sistemi operativi Linux con kernel modificato e driver personalizzati. Il vantaggio nell usare la ParaVirtualization consiste nella maggior velocità di esecuzione delle applicazioni utente. Xen e Microsoft Virtual Server sono esempi di software che utilizzano ParaVirtualization. Figura 4.7: Paravirtualization.

48 CAPITOLO 4. LA VIRTUALIZZAZIONE 47 Containers Questa tipologia di Virtualizzazione è ancora più slegata dall hardware fisico e più legata al sistema operativo stesso. Containers prevede che sia in esecuzione un solo kernel unico che crea diverse istanze in user space; in questo modo si ha un bassissimo overhead, ma anche un bassissimo isolamento: un kernel panic sarebbe fatale per tutti i sistemi contenuti nello stesso hardware. Una ovvia conseguenza è che avendo un unico kernel, i sistemi operativi ospitati avranno ovviamente la stessa versione di kernel. Semplificando al massimo, questa tecnologia si avvicina molto al concetto di chroot. Figura 4.8: Containers virtualization.

49 CAPITOLO 4. LA VIRTUALIZZAZIONE 48 Hosted L ultima tipologia di virtualizzazione forse è più familiare all utente rispetto le altre. Tutti i prodotti desktop di virtualizzazione, come VMware Workstation, VMware Fusion, Parallels Desktop per Mac, e Microsoft Virtual PC implementano una virtualizzazione di tipo hosted. Gli utenti possono installare un prodotto di virtualizzazione sul proprio pc come qualsiasi altra applicazione, e continuare a usare il loro sistema operativo desktop. Figura 4.9: Hosted virtualization.

50 CAPITOLO 4. LA VIRTUALIZZAZIONE Esempi di virtualizzatori Di seguito vengono trattati alcuni tipi di virtualizzatori. Qemu Qemu, acronimo di Quick EMUlator, è un software che implementa un particolare sistema di emulazione che permette di ottenere un architettura nuova e disgiunta in un altra che si occuperà di ospitarla. Esso ha due modi di operare: Full system emulation. In questo caso Qemu emula l intero sistema, incluso il processore e le periferiche. Può essere utilizzato per lanciare differenti sistemi operativi senza il riavvio del PC. User mode emulation (solo per Linux). Qemu può essere lanciato come processo Linux compilato per una CPU o per un altra. KVM Kernel-based Virtual Machine è un sistema full-virtualization esclusivamente per GNU Linux, su piattaforma x86, che può essere facilmente installato su qualsiasi distribuzione, l unico prerequisito è possedere un processore con istruzioni Intel-VT o AMD-V. Esso consiste in un modulo kernel (kvm.ko) che fornisce la virtualizzazione dell infrastruttura di base ed un modulo specifico per il processore in uso (kvm-intel.ko o

51 CAPITOLO 4. LA VIRTUALIZZAZIONE 50 kvm-amd.ko) a seconda dei casi. KVM presenta un approccio diverso rispetto ad altri sistemi di virtualizzazione professionale. Esso non prevede infatti l utilizzo di un hypervisor a se stante, ma utilizza il kernel Linux a questo scopo, questa è una scelta strategica decisiva che porta numerosi vantaggi. Uno tra tutti è il fatto che grazie a questo, il team di sviluppo di KVM, non deve preoccuparsi di scrivere da sé driver per le periferiche o tool di gestione, tutto ciò è offerto dal kernel Linux. L integrazione di KVM con il kernel è così profonda, che le virtual machine sono nel sistema dei semplici processi. Il fatto che le singole virtual machine vengano viste dal sistema come semplici processi, consente al kernel di trattarli come tali e questo ne aumenta notevolmente la facilità di gestione. Grazie a ciò infatti la macchina che ospita la VM, se dotata di hardware sufciente, risulta sempre uida e dimostra buona velocità di risposta, anche quando il sistema ospitato è sotto sforzo. VirtualBox VirtualBox è una piattaforma di virtualizzazione prodotta da Sun Microsystems, che abilita una full virtualization. Supporta Windows, Mac, Linux e Solaris come sistemi operativi host e permette l esecuzione di ambienti virtuali a sistemi di ogni tipo, sia x86 che x VirtualBox ha un architettura modulare con interfacce di programmazione interne ben definite e una chiara divisione tra codice client e server. Questo rende possibile controllare agevolmente una macchina virtuale tramite diverse interfacce: ad esempio, è possibile creare una macchina virtuale tramite l interfaccia grafica per poi control-

52 CAPITOLO 4. LA VIRTUALIZZAZIONE 51 larla da riga di comando. VirtualBox funziona allo stesso modo su tutte le piattaforme e le macchine virtuali possono essere facilmente importate ed esportate utilizzando lo standard OVF (Open Virtualization Format). Per quanto riguarda lo storage virtuale, viene utizzato un file immagine sul disco fisico ed esso sarà presentato al sistema guest come hard disk virtuale. Quando il sistema operativo guest effettua operazioni di lettura o scrittura su disco, l hypervisor di VirtualBox redireziona la richiesta verso questo file. I formati del file supportati sono VDI, VMDK, VHD ed HDD. Oltre all interfaccia grafica, VirtualBox presenta diversi front-end: VBoxManage; è la CLI di Virtualbox e fornisce funzionalità avanzate non accessibili tramite l interfaccia grafica. VBoxSDL; è un interfaccia grafica con un insieme limitato di funzioni, designata per visualizzare macchine virtuali controllate con VBoxManage. VBoxHeadless; non fornisce nessun tipo di output sull host e agisce unicamente da server RDP. Inoltre, VirtualBox permette di attivare un server RDP, che prende il nome di VRDP (VirtualBox RDP), grazie al quale è possibile visualizzare e controllare una macchina virtuale in remoto attraverso un client RDP standard. Di default il server VRDP utilizza la porta TCP standard di RDP (3389).

53 CAPITOLO 4. LA VIRTUALIZZAZIONE Lo standard OVF La rapida adozione delle infrastrutture virtuali ha messo in luce la necessità di un modello standard e portabile per la distribuzione di macchine virtuali fra le diverse piattaforme di virtualizzazione. La creazione di un applicazione con un determinato sistema operativo nel quale è certificato che essa possa essere trasferita fra differenti ISV(Indipendent Software Vendor) come un unità pre-configurata, risulta essere molto vantaggioso ed allettante. Si tratta di applicazioni che possono essere lanciate attraverso macchine virtuali e sono chiamate Virtual Appliance. Al fine di sviluppare il concetto in larga scala è importante che i produttori adottino uno standard neutrale per il confezionamento delle macchine virtuali ed utilizzino dei meta-dati necessari per un installazione automatica e sicura, nonché per la configurazione ed il lancio della Virtual Appliance in qualsiasi piattaforma di virtualizzazione. Le Virtual Appliance hanno cambiato il paradigma di distribuzione del software perché permettono agli sviluppatori di ottimizzare le fasi di creazione del software per la loro applicazione. Quindi per i fornitori, la creazione di una Virtual Appliance risulta essere più semplice ed economicamente più conveniente rispetto ad un Hardware Appliance dato che l applicazione è direttamente distribuita con il sistema operativo riducendo così la necessità di effettuare certificazioni e i test di compatibilità applicazione/os. Per gli utenti finali, le Virtual Appliance offrono l opportunità di semplificare drasticamente la gestione del ciclo di vita del software attraverso l utilizzo di un set di processi standard, automatizzati ed efficienti. Una Virtual Appliance è descritta attraverso un formato run-time che illustra la con-

54 CAPITOLO 4. LA VIRTUALIZZAZIONE 53 figurazione delle immagini dei dischi adatti ad un particolare tipo di hypervisor. Tali formati sono ottimizzati per l esecuzione, mentre per un efficiente distribuzioni sono necessarie ulteriori caratteristiche che includono la portabilità, l indipendenza dalla piattaforma, la verifica ed i termini di licenza. L Open Virtual Machine Format (OVF) [7] è indipendente dall hypervisor utilizzato, efficiente, facilmente estensibile e descrive Virtual Appliance composte da una o più macchine virtuali. Esso mira a facilitare l automazione, la gestione sicura non solo delle singole macchine virtuali ma della Virtual Appliance vista come un unita funzionale Virtual Appliance Una Virtual Appliance è un applicazione preconfigurata che comprende una o più macchine virtuali. Ciascuna VM è un entità indipendente, installabile run-time, che contiene un sistema operativo, informazioni riguardanti specifiche applicazioni e la descrizione dell hardware virtuale richiesto da ciascuna VM. Il concetto di Virtual Appliance racchiude tutte quelle applicazioni per utenti finali Figura 4.10: Virtual Appliance.

55 CAPITOLO 4. LA VIRTUALIZZAZIONE 54 accessibili dalla rete, come server DNS, database, o soluzioni CRM complete. Di regola, un servizio software è implementato come un applicazione multistrato composta da più macchine virtuali e comunicante attraverso la rete. I servizi spesso comprendono altri servizi, i quali a loro volta possono essere applicazioni multistrato oppure altri servizi. Questo modello è conosciuto come Service-Oriented-Architecture (SOA). Il modello SOA si adatta chiaramente ad un infrastruttura basata su Virtual Appliance. Ad esempio, consideriamo una tipica web application composta da 3 livelli, un livello web che implementa una presentazione logica, uno strato in cui vi è un application server che implementa una logica di business ed uno strato rappresentante un database di back-end. In primo luogo si potrebbe pensare di suddividere l applicazione in tre macchine virtuali, una per ogni livello. In questo modo, sarebbe possibile scalare da uno a tre host fisici. Un altro approccio riguarda la possibilità di trattare ciascun livello come un servizio in se stesso. Quindi ciascun livello potrebbe essere considerato come un servizio multi-vm che fornisce una soluzione di tipo clusterizzata. Questo approccio potrebbe fornire una grande scalabilità rispetto ai soli tre host fisici. Un tipico scenario sarebbe quello di avere molti server web, un numero inferiore di application server ed uno o due database server. In questo modo, ciascun livello potrebbe avere una scalabilità di poche o molte macchine fisiche, a seconda della richiesta, ed inoltre ciascun livello potrebbe supportare più istanze di servizio di macchine virtuali.

56 CAPITOLO 4. LA VIRTUALIZZAZIONE Obiettivi di progettazione L Open Virtual Machine Format (OVF) descrive un formato aperto, sicuro, portabile, efficiente ed estensibile per la distribuzione ed il raggruppamento di collezioni di macchine virtuali. Diverse sono le proprietà principali del formato. È ottimizzato per la distribuzione e supporta la verifica dei contenuti e il controllo di integrità secondo uno standard, fornendo inoltre uno schema di base per la gestione delle licenze software. Offre, poi, un approccio robusto e naturale per semplificare il processo d installazione della macchina virtuale nella piattaforma di virtualizzazione. I meta-dati nel file OVF pilotano l hypervisor nella creazione della macchina virtuale verificando la compatibilità con l hardware virtuale locale. Il formato inoltre supporta l aggregazione in un singolo package con la descrizione di molteplici macchine virtuali ed è portabile in quanto supporta una piattaforma di virtualizzazione neutrale. Esso, inoltre, è compatibile per l intera gamma di formati di disco rigido virtuale utilizzati per le VMs di oggi, ed è studiato per essere facilmente estensibile a formati che potrebbero sorgere in futuro. Bisogna anche aggiungere che il formato OVF non si basa sull impiego di una piattaforma host specifica, e per questo è indipendente dalla piattaforma di virtualizzazione e dal sistema operativo guest. Da un punto di vista tecnico, OVF è un meccanismo di trasporto di macchine virtuali. Come tale, esso si distingue dai vari formati di dischi virtuali: VMDK, VHD oppure QCOW. Essi, infatti, non risolvono il problema della portabilità e non aiutano nella personalizzazione della macchina virtuale al momento dell installazione. Nell ambito di OVF è insito il concetto di certificazione ed integrità di una Virtual

57 CAPITOLO 4. LA VIRTUALIZZAZIONE 56 Appliance, permettendo così alla piattaforma di virtualizzazione di determinare la provenienza dell applicazione, in maniera tale che l utente sia in grado di fare le scelte appropriate. OVF definisce sia un formato per la distribuzione di software da utilizzare attraverso le macchine virtuali (OVF Package), che un ambiente nel quale esse verranno eseguite (OVF Environment). In particolare, OVF Package contiene un file xml che descrive la Virtual Appliance ed un insieme di contenuti aggiuntivi, tipicamente dei dischi virtuali. Nella versione 1.0, il file è suddiviso in sezioni, ognuna di esse definisce il funzionamento di una porzione dell applicazione, ad esempio: virtual hardware, dischi, la rete, le risorse richieste ed i parametri di personalizzazione. Tale file è estensibile, cosicché alcune risorse possono essere aggiunte in un secondo momento. Inoltre sono supportati tutti i formati di dischi virtuali utilizzati dagli hypervisor moderni. Di seguito è mostrato un esempio di file descrittore. <?xml version="1.0" encoding="utf-8" standalone="yes"?> <ns1:envelope xmlns:ns2="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ CIM_VirtualSystemSettingData"xmlns: ns1="http://schemas.dmtf.org/ovf/envelope/1" xmlns:ns4="http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/ CIM_ResourceAllocationSettingData" xmlns:ns3="http://schemas.dmtf.org/wbem/wscim/1/common"> <ns1:references> <ns1:file ns1:href="file:///srv/quickposta-0.1.qemu" ns1:id="master"/> </ns1:references> <ns1:disksection> <ns1:disk ns1:capacity="2048mb" ns1:diskid="master"/> </ns1:disksection> <ns1:networksection> <Info>Logical networks used in the package</info> <Network ns1:name="vm Network" custom:desiredcapacity="1 Gbit/s"/> </ns1:networksection> <ns1:virtualsystem ns1:id="yavin-prova">

58 CAPITOLO 4. LA VIRTUALIZZAZIONE 57 <ns1:productsection ns1:class="net.emotivecloud.utils.ovf.ovfwrapper"> <ns1:info>some configuration information for the VM </ns1:info> <ns1:property ns1:value="hda" ns1:type="string" ns1:key="master.target"/> <ns1:property ns1:value="ext3" ns1:type="string" ns1:key="master.format"/> <ns1:property ns1:value="hd" ns1:type="string" ns1:key="boot"/> <ns1:property ns1:value="kvm" ns1:type="string" ns1:key="hypervisor"/> </ns1:productsection> <ns1:operatingsystemsection ns1:id="76"> <ns1:info>specifies the operating system installed</ns1:info> <ns1:description>microsoft Windows Server 2008</ns1:Description> </ns1:operatingsystemsection> <ns1:info>vm description</ns1:info> <ns1:virtualhardwaresection> <ns1:info>virtual Hardware requirements</ns1:info> <ns1:item> <ns4:description>number of Virtual CPUs</ns4:Description> <ns4:elementname>1 virtual CPU</ns4:ElementName> <ns4:instanceid>0</ns4:instanceid> <ns4:resourcetype>3</ns4:resourcetype> <ns4:virtualquantity>1</ns4:virtualquantity> </ns1:item> <ns1:item> <ns4:allocationunits>megabytes</ns4:allocationunits> <ns4:description>memory Size</ns4:Description> <ns4:elementname>500 MB of Memory</ns4:ElementName> <ns4:instanceid>1</ns4:instanceid> <ns4:resourcetype>4</ns4:resourcetype> <ns4:virtualquantity>500</ns4:virtualquantity> </ns1:item> <ns1:item> <ns4:automaticallocation>true</ns4:automaticallocation> <ns4:connection>vm Network</ns4:Connection> <ns4:elementname>ethernet adapter on "VM Network "</ns4:elementname> <ns4:instanceid>3</ns4:instanceid> <ns4:resourcetype>10</ns4:resourcetype> <ns1:/item> <ns1:item> <ns4:automaticallocation>true</ns4:automaticallocation> <ns4:elementname>hardisk 1</ns4:ElementName> <ns4:hostresource>ovf://file/master</ns4:hostresource>

59 CAPITOLO 4. LA VIRTUALIZZAZIONE 58 <ns4:hostresource>ovf://disk/master</ns4:hostresource> <ns4:instanceid>6</ns4:instanceid> <ns4:resourcetype>17</ns4:resourcetype> </ns1:item> </ns1:virtualhardwaresection> </ns1:virtualsystem> </ns1:envelope> I file descrittori presentano una serie di sezioni. Come sopra mostrato, le prime sezioni definiscono i riferimenti ad un insieme di file esterni utilizzati dalla Virtual Appliance, l insieme dei dischi virtuali e le reti utilizzate dall applicazione. A ciascun file, disco o rete è dato un identificatore univoco. Il vero contenuto di un file OVF è elencato all interno del tag VirtualSystem. Nell esempio esso contiene cinque sezioni: Product Section, che fornisce informazioni quali il nome del prodotto, il fornitore ed ulteriori proprietà che possono essere utilizzate per la personalizzazione della Virtual Appliance. Queste proprietà possono essere configurate al momento dell installazione, in genere chiedendo all utente. Possono esserci più sezioni di questo tipo. AnnotationSection, che è una libera forma di annotazione. EulaSection, che fornisce i termini di licenza della Virtual Appliance. HardwareSection, che descrive l hardware virtuale. Questa è una sezione necessaria che descrive il tipo di hardware virtuale e l insieme dei dispositivi che la macchina virtuale necessita. Nel caso particolare è specificato: 500 MB di memoria ram, una CPU, una rete virtuale ed un disco virtuale. OperatingSystemSection, che descrive il sistema operativo ospite.

60 CAPITOLO 4. LA VIRTUALIZZAZIONE 59 Creazione È possibile creare un OVF semplicemente esportando da una piattaforma di virtualizzazione la macchina virtuale esistente in un OVF Package ed aggiungendo i dati rilevanti necessari per la corretta installazione ed esecuzione, come ad esempio driver o tools necessari per la gestione della memoria o dei dispositivi di I/O. Durante questo processo, i dischi della macchina virtuale saranno compressi per rendere il package più conveniente per la distribuzione. Deployment In questa fase, le macchine virtuali comprese nell OVF Package vengono trasformate in un formato run-time dipendente dalla piattaforma di virtualizzazione di destinazione, assegnando le risorse adeguate e l hardware virtuale corretto. Durante questo processo, la piattaforma verifica l integrità dell OVF, accertando che lovf Package non sia stato modificato in transito, e controllando che sia compatibile con l hardware virtuale locale. Inoltre, vengono configurate le reti, fisiche o virtuali, alle quali le macchine virtuali devono connettersi e vengono assegnate le risorse di storage, configurate le CPU e personalizzate le proprietà livello di applicazione. La fase di deployment istanzia una o più macchine virtuali con un profilo hardware che sia compatibile con i requisiti posti nel descrittore OVF, e un insieme di dischi virtuali con il contenuto specificato nel Package OVF.

61 CAPITOLO 4. LA VIRTUALIZZAZIONE 60 Portabilità Il raggruppamento di macchine virtuali in OVF Package non garantisce una portabilità universale e non assicura una corretta installazione in tutte le piattaforme di virtualizzazione gestite da diversi hypervisor. Di seguito vi sono alcuni fattori che limitano la portabilità. Le macchine virtuali all interno dei Package OVF possono contenere dischi in formato non conosciuto dall hypervisor che sta tentando l installazione. Il software ospite installato può non supportare l hardware virtuale gestito dall hypervisor. Il software ospite può non supportare l architettura della CPU. La piattaforma di virtualizzazione potrebbe non capire una funzione richiesta nel file OVF. La portabilità di un OVF può essere suddivisa nei tre seguenti livelli: Funziona solo su un particolare prodotto di virtualizzazione e/o architettura di CPU e/o hardware virtuale. Funziona solo per una specifica famiglia di hardware virtuale. Funziona su diverse famiglie di hardware virtuale. Questa distinzione fa sì che, per un uso all interno di un organizzazione, i primi due livelli potrebbero bastare dato che il Package OVF è diffuso all interno di un ambiente

62 CAPITOLO 4. LA VIRTUALIZZAZIONE 61 controllato. Mentre per le Virtual Appliance utilizzate a livello commerciale è necessario il terzo tipo di portabilita. La descrizione dell hardware virtuale all interno del file OVF supporta tutti i tipi di portabilità visti precedentemente, in quanto nella virtualhardwaresection è possibile introdurre qualunque descrizione hardware richiesta ed, addirittura, specificare diverse alternative di configurazione.

63 Capitolo 5 Descrizione dell implementazione Passando adesso alla descrizione specifica dell implementazione, bisogna dire che il lavoro svolto nella presente tesi si è incentrato sul concetto di virtualizzazione in CLEVER, un architettura cloud open-source sviluppata all interno dell Università di Messina e l obiettivo è stato quello di estendere le funzionalità del cloud, al fine di poter permettere a ciascun utente di utilizzare un ambiente virtuale secondo le sue esigenze. In particolare, si è cercato di far sì che qualsiasi fruitore dei servizi del cloud sia in grado di creare un disco immagine con installato il sistema operativo desiderato, a cui sarà possibile accedere solo tramite un account personale. A ciò si aggiunga che esiste un elenco di applicazioni primarie installabili in maniera silenziosa, anche solo eventualmente. Nel capitolo che segue vengono descritte le soluzioni implementative adottate per soddisfare le eventuali esigenze emergenti. Il linguaggio di programmazione utilizzato per la parte implementativa è Java, per 62

64 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 63 restare in linea con l intero processo di progettazione di CLEVER che si basa sul modello della programmazione ad oggetti. Avvalendosi del paradigma a plug-in di CLEVER, si è pensato di integrare all interno del Cluster Manager un agente in grado di occuparsi della creazione e gestione del disco con il sistema operativo installato. Una scelta implementativa riguarda poi l utilizzo dell hypervisor necessario per la gestione delle istanze delle macchine virtuali. A tal fine sarà possibile scegliere senza alcuna differenza particolare la soluzione open-source, VirtualBox, oppure utilizzare gli strumenti per la gestione di piattaforme di virtualizzazione forniti dalle API di Libvirt, che permettono di utilizzare le più importanti tecnologie di virtualizzazione, come ad esempio Qemu e KVM. Inoltre, si è introdotto in CLEVER lo standard OVF, versione 1.0, strumento che descrive le caratteristiche delle macchine virtuali già adoperato in altre infrastrutture cloud, come ad esempio OpenNebula. Per il parsing di questo tipo di file è stato necessario l utilizzo di specifiche librerie. 5.1 Agente CreateImage Per l implementazione del CreateImageAgent sono state seguite le linee guide fornite nella documentazione di CLEVER. Si è utilizzato quindi un approccio a plug-in. Nel dettaglio il CreateImageAgent estende la classe CmAgent, ed eredita da quest ultima il logger e la funzione main che gli permette di essere eseguito come un processo separato.

65 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 64 Il costruttore di default di CreateImageAgent richiama il costruttore di default della classe padre, e in questo modo viene correttamente configurato il ModuleCommunicator che permette la comunicazione intra-modulo in CLEVER attraverso il D-Bus di sistema. Inoltre sempre nel costruttore di default viene settato il nome del logger (ereditato dalla classe padre) attraverso il metodo getlogger implementato nella classe Logger. Essendo la classe CmAgent una classe astratta, è stato necessario implementare nell agente tutti i metodi astratti di tale classe ovvero initialization() e shutdown(). La funzione initialization() provvede a creare un istanza della classe CreateImagePlugin. Nel plugin CreateImage è stato implementato un metodo (setowner) che permette di passare l handle del CreateImageAgent al plugin. Questa funzione viene richiamata nell inizialization() del CreateImageAgent subito dopo la creazione del plugin. In figura 5.1 è raffigurato il diagramma delle classi.

66 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 65 Figura 5.1: Diagramma delle classi CreateImage

67 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE CreateImage La classe CreateImage implementa le funzionalità principali del progetto in modo da raggiungere con successo l obiettivo desiderato. Possiamo descrivere il processo di creazione del disco in tre parti. La prima è relativa alla creazione dell immagine del sistema operativo da installare sul disco, mediante un processo di installazione automatica. I file ISO dei sistemi operativi potranno essere reperibili da una repository dalla quale si effettuerà il download. La seconda parte descrive appunto l installazione attraverso l hypervisor di VirtualBox oppure utilizzando gli strumenti per la gestione di piattaforme di virtualizzazione forniti dall open-source API Libvirt. Grazie ai quali è possibile utilizzare KVM e Qemu. Una volta terminato il processo di installazione, in output vi sarà un file immagine rappresentante il disco con il sistema operativo installato. Esso avrà un formato dipendente dall hypervisor utilizzato. La terza, ed ultima parte implementerà la copia del file appena creato all interno di un nodo del filesystem di CLEVER. Si elencano di seguito i metodi della classe. DownloadFromRepo I file per la configurazione del sistema operativo da installare, se esplicitamente richiesto, saranno scaricati da una repository. Il metodo implementa questa funzionalità. Ad esso è necessario passare come parametro il path logico del nodo del filesystem di CLEVER che funge da repository. Tale metodo, innanzitutto, interroga lo Storage Manager per sapere se effettivamente il nodo esiste. Se sì, verrà effettuato il download dei file di configurazione relativi al

68 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 67 sistema operativo che si vuole installare. Inoltre, sarà scaricato il file contenente gli eseguibili delle applicazioni da installare in modo silenzioso. CreateAnswerFile Il presente metodo si occupa della creazione dei file di risposta di Windows XP (Winnt.sif ), di Windows Vista e Seven (AutoUnattend.xml). A tal fine, sono necessari i seguenti parametri di configurazione: Nome utente; Password; Organizzazione; Nome del computer; Sistema operativo da installare; Lista delle applicazioni da installare. Naturalmente, potrebbero essere considerati anche dei parametri aggiuntivi per ottenere l installazione desiderata, come ad esempio per la creazione di più partizioni del disco, avere una risoluzione del display differente, etc... Nel presente elaborato si è tenuta in considerazione un installazione automatica del sistema operativo, e per questo il file di risposta è creato in modo tale che non vi sia interazione con l utente durante il processo di installazione. Sarà possibile, poi, personalizzare l ambiente virtuale con applicazioni che saranno

69 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 68 installate al primo avvio del sistema in maniera silenziosa. Fra queste vi sono AVG Antivirus, Scilab e LibreOffice. CreateISO La funzione non fa altro che copiare il file di risposta all interno della directory desiderata dell immagine del sistema operativo da installare. In particolare: per Windows XP, nella cartella i386; per Windows Vista o Seven, nella root. Successivamente, sarà necessario creare un nuovo CD avviabile. A tal fine, esistono delle specifiche applicazioni (come nlite) che permettono di creare dei CD di installazione del sistema operativo personalizzati. In questo lavoro di tesi, è stato utilizzato il comando mkisofs: mkisofs -b boot.ima -c Catalog -o filename.iso pathname/ dove: -o filename.iso è il nome del file ISO che sarà creata; pathname/ è la directory entro la quale ci sono i file dai quali si creerà la ISO; -b boot.ima, è specificata l immagine di boot da utilizzare per creare un CD avviabile; -c Catalog, è specificato il file che rappresenta il catalogo da utilizzare.

70 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE Creazione del disco Dopo aver creato l immagine del sistema operativo, si potrà procedere nella creazione del disco. Sono stati così valutati e studiati due hypervisor: VirtualBox e Qemu-KVM. A tal proposito sono state create due classi, di seguito analizzate, per la creazione e la gestione della macchina virtuale e, nello specifico, del disco associato, CallVbox e CallLvirt. CallVbox Questa classe implementa le funzionalità principali di gestione dell hypervisor di VirtualBox. A tal fine, sono state utilizzate delle librerie apposite, scritte in linguaggio Java [18], che permettono l interazione con VirtualBox. Dopo aver creato un istanza di VirtualBox attraverso il costruttore di classe, possono essere richiamati i seguenti metodi. Il metodo createvm riceve come parametri di ingresso: il sistema operativo da installare, il nome della macchina virtuale, la dimensione del disco desiderata, il path della directory locale dove salvare il disco. L obiettivo da raggiungere è creare una macchina virtuale e predisporla all installazione del sistema operativo e delle applicazioni scelte. In particolare, verrà creato

71 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 70 il disco con la dimensione prescelta che sarà, quindi, montato in un IDE Controller precedentemente progettato. Successivamente, tramite il metodo mountiso verranno collegate, ai dispositivi di lettura DVD creati, l immagine del sistema operativo ed il file immagine contenente le applicazioni da installare. Una volta fatto ciò, è tutto pronto per avviare il processo di installazione vero e proprio, mediante il metodo launchvm. Esso avrà il compito di lanciare la virtual machine, all interno della quale partirà l installazione automatica del sistema operativo. CallLvirt Anche questa classe ha come obiettivo la creazione del disco che si realizza tramite un sistema operativo che però in questo caso viene installato utilizzando come hypervisor Qemu oppure KVM. Sono state adoperate le librerie Libvirt Virtualization API [19]. Inizialmente, mediante il costruttore di classe, viene creata una connessione verso l hypervisor locale oppure remoto. Successivamente, è necessario definire un dominio attraverso il metodo createvm che prende come parametri in ingresso: il sistema operativo da installare, il nome della macchina virtuale, la dimensione del disco desiderata, il path della directory locale dove salvare il disco.

72 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 71 Tale metodo richiama ToXML che permette la creazione di un file XML, necessario per la definizione dominio della macchina virtuale, grazie al quale verrà creato un disco in formato raw. Di seguito e possibile vedere un esempio di dominio: <domain type="kvm"> <name>windowsxp</name> <memory>512000</memory> <os> <type arch="i686">hvm</type> <boot dev="cdrom" /> </os> <features> <acpi /> <apic /> </features> <devices> <interface type="network"> <source network="default" /> </interface> <emulator>/usr/bin/kvm</emulator> <disk type="file" device="cdrom"> <source file="/home/peppecal/scrivania/vmachine/windowsvista.iso" /> <target dev="hdb" /> </disk> <disk type="file" device="disk"> <source file="/home/peppecal/scrivania/vmachine/peppexp13.img" /> <target dev="hda" /> </disk> <disk type="file" device="cdrom"> <source file="/home/peppecal/scrivania/vmachine/file.iso" /> <target dev="hdc" /> </disk> <graphics type="vnc" port="5904" /> </devices> </domain>

73 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 72 Si può notare come sia necessario definire il nome della macchina virtuale, la memoria RAM, il tipo di sistema operativo che in questo caso è hvm (hardware virtual machine), attraverso cui si abilita una full virtualization. All interno del tag features si indicano dei parametri che devono essere abilitati oppure no, in questo caso acpi e apic sono inerenti alla configurazione e gestione energetica controllata dal sistema operativo. All interno del tag devices viene definita l interfaccia di rete, l emulatore (in questo caso kvm) ed i dischi immagine utilizzati. Infine nel tag graphics viene inserito il tipo di server da lanciare per visualizzare, ad esempio, una macchina virtuale in stato di running nel desktop remoto. Una volta definito il dominio è possibile andarlo a creare, mediante il metodo start- VM, che in definitiva permetterà la creazione del disco, lanciando la macchina virtuale e quindi il programma di installazione del sistema operativo. Copia del disco Una volta creato il disco, l agente CreateImage prevede di effettuare la copia all interno del path logico di CLEVER. Questo è implementato dal metodo storedisk, che riceve come parametro in ingresso il path di un nodo del filesystem di CLEVER all interno del quale memorizzare il disco creato. Di seguito è mostrato il codice. public void storedisk(string path) throws CleverException, FileSystemException{ ArrayList params = new ArrayList(); params.add(path); params.add(""); MethodInvoker mi=new MethodInvoker("StorageManagerAgent","discoveryNode", true, params); VFSDescription res=(vfsdescription)this.mc.invoke(mi); VirtualFileSystem dest = new VirtualFileSystem();

74 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 73 } dest.seturi(res); FileObject file_d=dest.resolver(res, dest.geturi(),res.getpath1()); FileSystemManager mgr = VFS.getManager(); FileObject file_s = mgr.resolvefile(this.temp_path+this.machine+".img"); dest.cp(file_s, file_d); Rimozione della VM Dopo aver copiato il disco all interno di uno specifico nodo del filesystem di CLEVER, il passo successivo consiste nella rimozione completa della virtual machine creata nel Cluster Manager. Tale operazione è svolta dal metodo destroyvm() implementato nelle classi CallVbox e CallLvirt. 5.2 Shell di amministrazione CLEVER è dotato di una shell di amministrazione, che permette di eseguire le principali operazioni per la gestione e l utilizzo del middleware. Si tratta di una shell testuale, grazie alla quale vengono invocate le funzioni fornite dagli agenti di CLE- VER, passando gli eventuali parametri. La shell di CLEVER, per lo scambio di messaggi con il middleware CLEVER, utilizza lo stesso server XMPP che permette la comunicazione inter-nodo in CLEVER. Il ClusterCoordinator è infatti in ascolto su una stanza del server XMPP riservata alla shell ed è quindi in grado di ricevere le richieste provenienti dalla shell e smistarle verso l agente di destinazione. Con l introduzione in CLEVER del CreateImageAgent è stata necessaria la creazione

75 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 74 di un nuovo comando per la shell, in modo da permettere di creare e gestire il disco col sistema operativo installato. createimage -f /path/local/file -p /path/logic [-r /path/logic/repo] Tale comando prende in ingresso 3 parametri: (-f /path/local/file), il percorso locale del file XML che contiene le informazioni necessarie per la creazione del disco; (-p /path/logic), il percorso logico del nodo del filesystem di CLEVER, all interno del quale verrà memorizzato il disco. -r /path/logic/repo, è parametro opzionale. Se è indicato, fa in modo che il Cluster Manager effettui il download da una repository della ISO del sistema operativo da installare. Se, invece, si omette implica la ricerca dei file all interno di un path locale. (-xml), opzione che permette di mostrare a video le richieste e risposte in formato XML. 5.3 OVF Descriptor Il comando della shell di amministrazione di CLEVER riceve come primo parametro il path del file contenente tutte le informazioni necessarie alla creazione dell immagine del disco. A tal fine si è scelto l utilizzo di un file OVF. Di seguito ne è presente un esempio.

76 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 75 <?xml version="1.0" encoding="utf-8"?> <Envelope xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:vssd="http://schemas.dmtf.org/wbem/wscim/1/ cim-schema/2/cim_virtualsystemsettingdata" xmlns:rasd="http://schemas.dmtf.org/wbem/wscim/1/ cim-schema/2/cim_resourceallocationsettingdata" xmlns:ovf="http://schemas.dmtf.org/ovf/envelope/1" xmlns="http://schemas.dmtf.org/ovf/envelope/1" xsi:schemalocation="http://schemas.dmtf.org/ovf/envelope/1../dsp8023.xsd"> <References> <File ovf:id="file1" ovf:href="/home/peppecal/scrivania/vmachine/windowsxp.iso"/> <File ovf:id="file2" ovf:href="/home/peppecal/scrivania/vmachine/file.iso"/> </References> <VirtualSystem ovf:id="peppexp"> <ProductSection ovf:class="net.emotivecloud.utils.ovf"> <Property ovf:value="virtualbox" ovf:type="string" ovf:key="hypervisor"/> </ProductSection> <ProductSection ovf:class="com.install.account"> <Property ovf:value="peppecal" ovf:type="string" ovf:key="username"/> <Property ovf:value="image" ovf:type="string" ovf:key="password"/> <Property ovf:value="casa" ovf:type="string" ovf:key="org"/> <Property ovf:value="pc_virt" ovf:type="string" ovf:key="pcname"/> <Property ovf:value=" " ovf:type="long" ovf:key="disksize"/> <Property ovf:value="guestadditions" ovf:type="string" ovf:key="app0"/> <Property ovf:value="avg" ovf:type="string" ovf:key="app1"/> <Property ovf:value="scilab" ovf:type="string" ovf:key="app2"/> <Property ovf:value="libreoffice" ovf:type="string" ovf:key="app3"/> </ProductSection> <OperatingSystemSection ovf:id="67"> <Info>Guest Operating System</Info> <Description>WindowsXP</Description> </OperatingSystemSection> <VirtualHardwareSection> <Info>Virtual hardware requirements for a virtual machine</info> <Item> <rasd:caption>1 virtual CPU</rasd:Caption> <rasd:description>number of virtual CPUs</rasd:Description> <rasd:instanceid>1</rasd:instanceid> <rasd:resourcetype>3</rasd:resourcetype> <rasd:virtualquantity>1</rasd:virtualquantity>

77 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 76 </Item> <Item> <rasd:allocationunits>megabytes</rasd:allocationunits> <rasd:caption>512 MB of memory</rasd:caption> <rasd:description>memory Size</rasd:Description> <rasd:instanceid>2</rasd:instanceid> <rasd:resourcetype>4</rasd:resourcetype> <rasd:virtualquantity>512</rasd:virtualquantity> </Item> <Item> <rasd:address>1</rasd:address> <rasd:busnumber>1</rasd:busnumber> <rasd:caption>idecontroller0</rasd:caption> <rasd:description>ide Controller</rasd:Description> <rasd:instanceid>4</rasd:instanceid> <rasd:resourcesubtype>piix4</rasd:resourcesubtype> <rasd:resourcetype>5</rasd:resourcetype> </Item> <Item> <rasd:automaticallocation>true</rasd:automaticallocation> <rasd:caption>ethernet adapter on NAT </rasd:caption> <rasd:connection>nat</rasd:connection> <rasd:instanceid>5</rasd:instanceid> <rasd:resourcesubtype>pcnet32</rasd:resourcesubtype> <rasd:resourcetype>10</rasd:resourcetype> </Item> <Item> <rasd:addressonparent>0</rasd:addressonparent> <rasd:automaticallocation>true</rasd:automaticallocation> <rasd:caption>cdrom1</rasd:caption> <rasd:description>cd-rom Drive</rasd:Description> <rasd:hostresource>ovf://file/file1</rasd:hostresource> <rasd:instanceid>9</rasd:instanceid> <rasd:parent>4</rasd:parent> <rasd:resourcetype>15</rasd:resourcetype> </Item> <Item> <rasd:addressonparent>1</rasd:addressonparent> <rasd:automaticallocation>true</rasd:automaticallocation> <rasd:caption>cdrom2</rasd:caption>

78 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 77 <rasd:description>cd-rom Drive</rasd:Description> <rasd:hostresource>ovf://file/file2</rasd:hostresource> <rasd:instanceid>10</rasd:instanceid> <rasd:parent>4</rasd:parent> <rasd:resourcetype>15</rasd:resourcetype> </Item> </VirtualHardwareSection> </VirtualSystem> </Envelope> Come è possibile notare, si tratta di un file descrittore XML adattato alle esigenze dell Agente CreateImage. In particolare, dopo un intestazione conforme allo standard, sono presenti diverse sezioni. Nella sezione References sono presenti le caratteristiche dei file esterni utilizzati e, nel caso particolare, sono presenti i due file immagine ISO necessari per l installazione del sistema operativo con le applicazioni desiderate. VirtualSystem è la sezione principale. Essa ha id come attributo, contenente come valore il nome della macchina virtuale che si vuole creare. È risultata di grande aiuto la possibilità di poter inserire all interno di questa sezione più istanze di ProductSection, cosicché si potessero descrivere differenti gruppi di informazioni. Nell esempio sono presenti due classi: net.emotivecloud.utils.ovf, che contiene informazioni riguardanti il formato dei file utilizzati ed il tipo di hypervisor (kvm o virtualbox) adoperato per la creazione della macchina virtuale e quindi del disco; com.install.account, contenente tutte le altre informazioni aggiuntive riguardanti l account, come:

79 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 78 username; password; organizzazione; nome del pc; dimensione del disco; lista delle applicazioni. Successivamente, vi è la OperatingSystemSection, che riguarda il sistema operativo da installare, annotato all interno del tag descripion. Infine vi è la VirtualHardwareSection nella quale sono presenti tutte le caratteristiche dell hardware virtuale da utilizzare. La distinzione fra i vari componenti è effettuata attraverso gli item. In questo caso, sussistono informazioni riguardanti il numero di CPU virtuali da utilizzare, la dimensione della memoria RAM, nonché altre informazioni relative ai dischi, alla scheda di rete utilizzata, all controller USB, alla scheda audio ed infine ai lettori CD-ROM utilizzati. Si evidenzia in particolare il riferimento ai file immagine ISO da montare OVF Wrapper Una volta passato come parametro il file OVF, è necessario effettuare un parsing al fine di estrapolare le informazioni in esso contenute. A tal fine, si è utilizzato un parser, le cui librerie sono presenti nel progetto OVF4ONE [20]. Si tratta di un implementazione Java di OCCI (Open Cloud Computing Interface) che utilizza

80 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 79 messaggi OVF ed il toolkit di cloud computing open-source, OpenNebula, come backend. Questa implementazione si basa sulle caratteristiche specifiche di OpenNebula, ma non le impone. In pratica, OVF4ONE è un bridge fra OCCI ed OpenNebula Cloud API (OCA), che traduce le chiamate ai metodi RestFul OCCI in chiamate RestFul OCA, in maniera tale da tradurre i messaggi OVF in template di macchine virtuali di OpenNebula. Nella figura 5.2 di seguito riportata è mostrato il diagramma delle classi utilizzate che permettono di effettuare il parsing del file OVF.

81 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 80 Figura 5.2: Diagramma delle classi OVF La classe principale è OVFWrapperFactory. Essa viene richiamata per creare

82 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 81 un oggetto OVFWrapper contenente tutte le informazioni del file OVF. I metodi implementati sono: parse(xml : String). Esso prende come parametro la stringa rappresentante il file OVF e ne effettua l unmarshalling, che permette la conversione del file (rappresentato sotto forma di serie byte) in una struttura dati, che nel caso particolare è un oggetto della classe EnvelopeType rappresentante l intero documento xml (compreso all interno del tag Envelope). Tale oggetto viene passato al metodo create. create(envelope : EnvelopeType). Esso estrapola tutte le informazioni contenute nell oggetto envelope che a sua volta sarà composto da oggetti sempre più specifici rappresentanti le sezioni interne del file OVF. Ad esempio, si potranno avere oggetti di VirtualSystemType, ProductSectionType, DiscSection- Type, VirtualHardwareSectionType e così via. Di volta in volta saranno prelevate le informazioni contenute in queste sezioni per formare un oggetto OVFWrapper, che sarà il parametro di ritorno del metodo in considerazione. create(...). Tale metodo prende come parametri d ingresso tutti i vari dati già estratti necessari per la composizione di un oggetto OVFWrapper, quindi segue una via alternativa rispetto al precedente metodo per la creazione di tale oggetto. createdisk(...), createimage(...), createnetwork(...). Tali metodi vengono richiamati al momento della scansione della VirtualHardwareSection, cioè della sezione contenente tutti i vari tipi di hardware virtuali contenuti nel

83 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 82 file OVF. Non appena si è in presenza di dischi, immagini ISO oppure reti si richiamano i metodi in considerazione che creano oggetti contenenti le informazioni necessarie per configurare i vari tipi di hardware virtuale. Ad esempio, per quanto riguarda i dischi, sono utili le informazioni sul path locale nel quale sono memorizzati oppure la capacità in MegaByte. Per le reti è possibile andare a prendere le informazioni riguardanti il nome, l indirizzo IP o Mac. La classe OVFAux è di ausilio alla classe OVFWrapperFactory. Essa implementa infatti i metodi utili alla ricerca delle sotto-sezioni contenute nell oggetto envelope. La classe OVFWrapper, invece, contiene tutte le informazioni ottenute dal file OVF. Ad esempio: memorymb, la memoria ram; architecture, architettura; productproperties, tutte le varie informazioni contenute nelle sezioni ProductSection, memorizzate attraverso un HashMap, in cui ciascuna riga presenta una chiave nota ed il valore; disks, i dischi; images, le immagini ISO; networks, le reti virtuali e fisiche; osproperties, il sistema operativo;

84 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE 83 accountproperties, tutte le informazioni riguardanti l account del sistema operativo da installare. Infine le classi OVFDisk, OVFImage, OVFNetwork, come già enunciato in precedenza, rappresentano i vari dischi, le immagini e le reti della macchina virtuale che si vuole istanziare attraverso il file OVF.

85 CAPITOLO 5. DESCRIZIONE DELL IMPLEMENTAZIONE Agente OVFCompute L agente in esame, anch esso facente parte del ClusterManager, è stato creato al fine di effettuare il parsing del file OVF, creando così un oggetto OVFWrapper nel quale saranno memorizzate le informazioni contenute nel file. Figura 5.3: Diagramma delle classi OVFComputeAgent

Virtualizzazione. Orazio Battaglia

Virtualizzazione. Orazio Battaglia Virtualizzazione Orazio Battaglia Definizione di virtualizzazione In informatica il termine virtualizzazione si riferisce alla possibilità di astrarre le componenti hardware, cioè fisiche, degli elaboratori

Dettagli

Protezione del Kernel Tramite Macchine Virtuali

Protezione del Kernel Tramite Macchine Virtuali Protezione del Kernel Tramite Macchine Virtuali Fabio Campisi Daniele Sgandurra Università di Pisa 27 Novembre 2007 1/44 Protezione del Kernel Tramite Macchine Virtuali Università di Pisa Sommario della

Dettagli

2. VIRTUALIZZAZIONE MEDIANTE PARTIZIONAMENTO

2. VIRTUALIZZAZIONE MEDIANTE PARTIZIONAMENTO 2. VIRTUALIZZAZIONE MEDIANTE PARTIZIONAMENTO In questo capitolo verranno prese in considerazione le soluzioni tecnologiche e gli approcci implementativi della virtualizzazione basata su partizionamento

Dettagli

Architetture software. Virtualizzazione

Architetture software. Virtualizzazione Sistemi Distribuiti Architetture software 1 Virtualizzazione 2 1 Virtualizzazione (motivazioni) Sullo stesso elaboratore possono essere eseguiti indipendentemente d t e simultaneamente t sistemi i operativi

Dettagli

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA

UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA UNIVERSITÀ DEGLI STUDI DI FIRENZE FACOLTÀ DI INGEGNERIA Corso di Sistemi Operativi Prof. Stefano Berretti SEMINARIO: VIRTUALIZZAZIONE DI INFRASTRUTTURE INFORMATICHE a cura di: Nicola Fusari A.A. 2012/2013

Dettagli

Manuale Servizi di Virtualizzazione e Porta di Accesso Virtualizzata

Manuale Servizi di Virtualizzazione e Porta di Accesso Virtualizzata Manuale Servizi di Virtualizzazione e Porta di Accesso Virtualizzata COD. PROD. D.6.3 1 Indice Considerazioni sulla virtualizzazione... 3 Vantaggi della virtualizzazione:... 3 Piattaforma di virtualizzazione...

Dettagli

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

Virtualizzazione con KVM. Reggio Emilia - Linux Day 2014 Stefano Strozzi KVM Virtualizzazione con KVM Considerazioni Legge di Gordon Moore (co-fondatore di Intel): «Le prestazioni dei processori, e il numero di transistor ad esso relativo, raddoppiano ogni 18 mesi.» http://it.wikipedia.org/wiki/legge_di_moore

Dettagli

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

Indice generale. Introduzione...xiii. Perché la virtualizzazione...1. Virtualizzazione del desktop: VirtualBox e Player...27 Indice generale Introduzione...xiii A chi è destinato questo libro... xiii Struttura del libro...xiv Capitolo 1 Capitolo 2 Perché la virtualizzazione...1 Il sistema operativo... 1 Caratteristiche generali

Dettagli

Virtualizzazione e Macchine Virtuali

Virtualizzazione e Macchine Virtuali 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

Dettagli

27/03/2013. Contenuti

27/03/2013. Contenuti Corso Sistemi Distribuiti 6 cfu Docente: Prof. Marcello Castellano Contenuti Virtualizzazione - 3 Macchina virtuale - 4 Architetture delle macchine virtuali - 6 Tipi di virtualizzazione - 7 Monitor della

Dettagli

Novell ZENworks Configuration Management in ambiente Microsoft * Windows *

Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Guida GESTIONE SISTEMI www.novell.com Novell ZENworks Configuration Management in ambiente Microsoft * Windows * Novell ZENworks Configuration Management in ambiente Microsoft Windows Indice: 2..... Benvenuti

Dettagli

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008

VIRTUALIZZAZIONE LUG - CREMONA. Linux Day - 25 Ottobre 2008 VIRTUALIZZAZIONE LUG - CREMONA Linux Day - 25 Ottobre 2008 VIRTUALIZZAZIONE In informatica la virtualizzazione consiste nella creazione di una versione virtuale di una risorsa normalmente fornita fisicamente

Dettagli

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it

VIRTUALIZE IT. www.digibyte.it - digibyte@digibyte.it il server? virtualizzalo!! Se ti stai domandando: ma cosa stanno dicendo? ancora non sai che la virtualizzazione è una tecnologia software, oggi ormai consolidata, che sta progressivamente modificando

Dettagli

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

Evoluzione dei sistemi operativi (5) Evoluzione dei sistemi operativi (4) Classificazione dei sistemi operativi Evoluzione dei sistemi operativi (4) Sistemi multiprogrammati! più programmi sono caricati in contemporaneamente, e l elaborazione passa periodicamente dall uno all altro Evoluzione dei sistemi operativi

Dettagli

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

ANALISI DELLE TECNOLOGIE INTEL-VT E AMD-V A SUPPORTO DELLA VIRTUALIZZAZIONE DELL'HARDWARE Tesi di laurea ANALISI DELLE TECNOLOGIE INTEL-VT E AMD-V A SUPPORTO DELLA VIRTUALIZZAZIONE DELL'HARDWARE Anno Accademico 2010/2011 Relatore Ch.mo prof. Marcello Cinque Candidato Guido Borriello Matr. 528/1336

Dettagli

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

Dr. Andrea Niri aka AndydnA ANDYDNA.NET S.r.l. Virtual Machines Virtual BOX, Xen, KVM & C. Dr. Andrea Niri aka AndydnA ANDYDNA.NET S.r.l. 1 Che cosa è la virtualizzazione? In informatica la virtualizzazione x86 consiste nella creazione di una versione

Dettagli

CLOUD COMPUTING. Che cos è il Cloud

CLOUD COMPUTING. Che cos è il Cloud CLOUD COMPUTING Che cos è il Cloud Durante la rivoluzione industriale, le imprese che si affacciavano per la prima volta alla produzione dovevano costruirsi in casa l energia che, generata da grandi macchine

Dettagli

confinamento e virtualizzazione 2006-2009 maurizio pizzonia sicurezza dei sistemi informatici e delle reti

confinamento e virtualizzazione 2006-2009 maurizio pizzonia sicurezza dei sistemi informatici e delle reti confinamento e virtualizzazione 1 oltre i permessi dei file... nei sistemi operativi standard il supporto per il confinamento è abbastanza flessibile per quanto riguarda i files scarso per quanto riguarda

Dettagli

Capitolo 3: Strutture dei sistemi operativi

Capitolo 3: Strutture dei sistemi operativi Capitolo 3: Strutture dei sistemi operativi Componenti del sistema Servizi di un sistema operativo Chiamate del sistema Programmi di sistema Struttura del sistema Macchine virtuali Progettazione e realizzazione

Dettagli

Installazione e caratteristiche generali 1

Installazione e caratteristiche generali 1 Installazione e caratteristiche generali 1 Installazione di SIGLA SIGLA viene fornito su un CDROM contenente la procedura d installazione. La procedura può essere installata eseguendo il programma SIGLASetup.exe

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi

Dettagli

Linux Virtuale Linux Virtuale

Linux Virtuale Linux Virtuale Come si può virtualizzare sotto Linux Micky Del Favero micky@linux.it BLUG - Belluno Linux User Group Linux Day 2007 - Belluno 27 ottobre 2007 p. 1 Virtualizzazione, ovvero? Per virtualizzazione si intende

Dettagli

Virtualizzazione e Network management

Virtualizzazione e Network management Open Source per le infrastrutture IT aziendali Virtualizzazione e Network management Marco Vanino Spin S.r.l. Servizi IT aziendali File/Printer Server ERP CRM EMail Doc Mgmt Servizi IT aziendali File/Printer

Dettagli

C Cloud computing Cloud storage. Prof. Maurizio Naldi

C Cloud computing Cloud storage. Prof. Maurizio Naldi C Cloud computing Cloud storage Prof. Maurizio Naldi Cos è il Cloud Computing? Con cloud computing si indica un insieme di tecnologie che permettono, tipicamente sotto forma di un servizio, di memorizzare/

Dettagli

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche

D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche D3.1 Documento di analisi della visualizzazione 3D in ambiente Cloud e relative problematiche Il Cloud Computing La visualizzazione nella Cloud Problematiche Virtualizzazione della GPU Front end Virtualization

Dettagli

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

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL STRUTTURA DEI SISTEMI OPERATIVI 3.1 Struttura dei Componenti Servizi di un sistema operativo System Call Programmi di sistema Struttura del sistema operativo Macchine virtuali Progettazione e Realizzazione

Dettagli

Ottimizzazione dell infrastruttura per la trasformazione dei data center verso il Cloud Computing

Ottimizzazione dell infrastruttura per la trasformazione dei data center verso il Cloud Computing Ottimizzazione dell infrastruttura per la trasformazione dei data center verso il Cloud Computing Dopo anni di innovazioni nel settore dell Information Technology, è in atto una profonda trasformazione.

Dettagli

Istruzioni di installazione di IBM SPSS Modeler Server 15per Windows

Istruzioni di installazione di IBM SPSS Modeler Server 15per Windows Istruzioni di installazione di IBM SPSS Modeler Server 15per Windows IBM SPSS Modeler Server può essere installato e configurato per l esecuzione in modalità di analisi distribuita insieme ad altre installazioni

Dettagli

Windows Deployment Services. Marco Ivan Palumbo Project & Services Manager Venco Group Services Gruppo Venco S.p.A. 06/03/2014

Windows Deployment Services. Marco Ivan Palumbo Project & Services Manager Venco Group Services Gruppo Venco S.p.A. 06/03/2014 Windows Deployment Services Marco Ivan Palumbo Project & Services Manager Venco Group Services Gruppo Venco S.p.A. 06/03/2014 Scalability Deep Customization Deployment Automation Window Deployment Services

Dettagli

Il Cloud Computing: uno strumento per migliorare il business

Il Cloud Computing: uno strumento per migliorare il business Il Cloud Computing: uno strumento per migliorare il business Luca Zanetta Uniontrasporti I venti dell'innovazione - Imprese a banda larga Varese, 9 luglio 2014 1 / 22 Sommario Cos è il cloud computing

Dettagli

Interstudio L INGEGNERE NELLE NUVOLE. App, WEB App e Cloud. ing. Sauro Agostini. Architectural & Engineering Software. venerdì 11 ottobre 13

Interstudio L INGEGNERE NELLE NUVOLE. App, WEB App e Cloud. ing. Sauro Agostini. Architectural & Engineering Software. venerdì 11 ottobre 13 Architectural & Engineering Software L INGEGNERE NELLE NUVOLE App, WEB App e Cloud ing. Sauro Agostini Mitterand 1981 Reagan Battaglin Alice IBM PC 5150 Alonso C ERA UNA VOLTA IL DOS Non è una rivoluzione,

Dettagli

D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS

D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS D3.2 Documento illustrante l architettura 3D Cloud per la realizzazione di servizi in modalità SaaS Il modello SaaS Architettura 3D Cloud Il protocollo DCV Benefici Il portale Web EnginFrame EnginFrame

Dettagli

06/11/2008. SAN Storage Area Network Virtualizzazione IP Telephony e VOIP Sicurezza Network e Desktop Management Open Source

06/11/2008. SAN Storage Area Network Virtualizzazione IP Telephony e VOIP Sicurezza Network e Desktop Management Open Source Le nuove frontiere dell informatica Perché ha senso virtualizzare? Dott. Giuseppe Mazzoli Presidente 3CiME Technology www.3cime.com Perché ha senso virtualizzare? Giuseppe Mazzoli - 3CiME Technology Citrix

Dettagli

Potenza Elaborativa, Sistemi Operativi e Virtualizzazione

Potenza Elaborativa, Sistemi Operativi e Virtualizzazione Potenza Elaborativa, Sistemi Operativi e Virtualizzazione Roma, Febbraio 2011 Operating Systems & Middleware Operations Potenza Elaborativa e Sistemi Operativi La virtualizzazione Operating Systems & Middleware

Dettagli

L iniziativa Cloud DT

L iniziativa Cloud DT L iniziativa Cloud DT Francesco Castanò Dipartimento del Tesoro Ufficio per il Coordinamento Informatico Dipartimentale (UCID) Roma, Luglio 2011 Il Cloud Computing Alcune definizioni Il Cloud Computing

Dettagli

Gestione del database Gidas

Gestione del database Gidas Gestione del database Gidas Manuale utente Aggiornamento 20/06/2013 Cod. SWUM_00535_it Sommario 1. Introduzione... 3 2. Requisiti e creazione del Database Gidas... 3 2.1.1. SQL Server... 3 2.1.2. Requisiti

Dettagli

CAPITOLO 5 - Sistemi Operativi Moderni

CAPITOLO 5 - Sistemi Operativi Moderni CAPITOLO 5 - Sistemi Operativi Moderni PRESENTAZIONE DI INSIEME Vedremo ora come si è evoluta nel tempo la struttura di un sistema operativo, per passare dalle vecchie strutture di tipo normalmente modulari,

Dettagli

2006-2011 maurizio pizzonia sicurezza dei sistemi informatici e delle reti. confinamento e virtualizzazione

2006-2011 maurizio pizzonia sicurezza dei sistemi informatici e delle reti. confinamento e virtualizzazione confinamento e virtualizzazione 1 oltre i permessi dei file... nei sistemi operativi standard il supporto per il confinamento è abbastanza flessibile per quanto riguarda i files scarso per quanto riguarda

Dettagli

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

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi Il Software Il software impiegato su un computer si distingue in: Software di sistema Sistema Operativo Compilatori per produrre programmi Software applicativo Elaborazione testi Fogli elettronici Basi

Dettagli

Contromisure 3 Alcuni software. Tra i software sicuramente più interessanti e completamente gratuiti troviamo CCLEANER

Contromisure 3 Alcuni software. Tra i software sicuramente più interessanti e completamente gratuiti troviamo CCLEANER Contromisure 3 Alcuni software Tra i software sicuramente più interessanti e completamente gratuiti troviamo CCLEANER CCleaner è un utilità gratuita per eseguire la pulizia del sistema in modo efficiente

Dettagli

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

PROPOSTA DI UN ARCHITETTURA IMS INTEGRATA IN UN AMBIENTE VIRTUALIZZATO: ANALISI DI PRESTAZIONI Daniele Costarella UNIVERSITÀ DEGLI STUDI DI SALERNO FACOLTÀ DI INGEGNERIA Tesi di Laurea in INGEGNERIA ELETTRONICA PROPOSTA DI UN ARCHITETTURA IMS INTEGRATA IN UN AMBIENTE VIRTUALIZZATO: ANALISI DI PRESTAZIONI Daniele Costarella

Dettagli

Macchine Virtuali. Docente: Fabio Tordini Email: tordini@di.unito.it

Macchine Virtuali. Docente: Fabio Tordini Email: tordini@di.unito.it Macchine Virtuali Docente: Fabio Tordini Email: tordini@di.unito.it Macchine Virtuali macchine virtuali e virtualizzazione introduzione architettura utilizzi VirtualBox installazione e panoramica (interattivo)

Dettagli

Il clustering. Sistemi Distribuiti 2002/2003

Il clustering. Sistemi Distribuiti 2002/2003 Il clustering Sistemi Distribuiti 2002/2003 Introduzione In termini generali, un cluster è un gruppo di sistemi indipendenti che funzionano come un sistema unico Un client interagisce con un cluster come

Dettagli

Come Funziona. Virtualizzare con VMware

Come Funziona. Virtualizzare con VMware Virtualize IT Il Server? Virtualizzalo!! Se ti stai domandando: ma cosa stanno dicendo? ancora non sai che la virtualizzazione è una tecnologia software, oggi ormai consolidata, che sta progressivamente

Dettagli

Il Sistema Operativo (1)

Il Sistema Operativo (1) E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale

Dettagli

CAPITOLO 1 I SISTEMI OPERATIVI

CAPITOLO 1 I SISTEMI OPERATIVI CAPITOLO 1 I SISTEMI OPERATIVI Introduzione ai sistemi operativi pag. 3 La shell pag. 3 Tipi di sistemi operativi pag. 4 I servizi del sistema operativo pag. 4 La gestione dei file e il file system Il

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Lezione 6 a.a. 2010/2011 Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono: diversi

Dettagli

di Nicola Ferrini MCT MCSA MCSE MCTS MCITP

di Nicola Ferrini MCT MCSA MCSE MCTS MCITP Creazione di immagini personalizzate con Microsoft Business Desktop Deployment 2007 Introduzione di Nicola Ferrini MCT MCSA MCSE MCTS MCITP Con l uscita di Windows Vista, Microsoft ha messo a disposizione

Dettagli

Introduzione a VMware Fusion

Introduzione a VMware Fusion Introduzione a VMware Fusion VMware Fusion per Mac OS X 2008 2012 IT-000933-01 2 Introduzione a VMware Fusion È possibile consultare la documentazione tecnica più aggiornata sul sito Web di VMware all'indirizzo:

Dettagli

File System Distribuiti

File System Distribuiti File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema 20.1 Introduzione File System Distribuito

Dettagli

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione

Introduzione. File System Distribuiti. Nominazione e Trasparenza. Struttura dei DFS. Strutture di Nominazione File System Distribuiti Introduzione Nominazione e Trasparenza Accesso ai File Remoti Servizio Con/Senza Informazione di Stato Replica dei File Un esempio di sistema Introduzione File System Distribuito

Dettagli

IBM Tivoli Storage Manager for Virtual Environments

IBM Tivoli Storage Manager for Virtual Environments Scheda tecnica IBM Storage Manager for Virtual Environments Backup senza interruzioni e ripristino immediato: un processo più semplice e lineare Caratteristiche principali Semplificare la gestione del

Dettagli

3. PRODOTTI PER LA VIRTUALIZZAZIONE

3. PRODOTTI PER LA VIRTUALIZZAZIONE 3. PRODOTTI PER LA VIRTUALIZZAZIONE In questo capitolo verranno descritti alcuni dei prodotti commerciali e dei progetti opensource più noti; in particolare verrà presa in considerazione la soluzione SUN

Dettagli

Symantec Backup Exec 12.5 for Windows Servers. Guida rapida all'installazione

Symantec Backup Exec 12.5 for Windows Servers. Guida rapida all'installazione Symantec Backup Exec 12.5 for Windows Servers Guida rapida all'installazione 13897290 Installazione di Backup Exec Il documento contiene i seguenti argomenti: Requisiti di sistema Prima dell'installazione

Dettagli

Approfondimenti tecnici su framework v6.3

Approfondimenti tecnici su framework v6.3 Sito http://www.icu.fitb.eu/ pagina 1 I.C.U. "I See You" Sito...1 Cosa è...3 Cosa fa...3 Alcune funzionalità Base:...3 Alcune funzionalità Avanzate:...3 Personalizzazioni...3 Elenco Moduli base...4 Elenco

Dettagli

FAMIGLIA EMC VPLEX. Continuous availability e data mobility all'interno e tra i data center

FAMIGLIA EMC VPLEX. Continuous availability e data mobility all'interno e tra i data center FAMIGLIA EMC VPLEX Continuous availability e data mobility all'interno e tra i data center CONTINUOUS AVAILABILITY E DATA MOBILITY PER APPLICAZIONI MISSION- CRITICAL L'infrastruttura di storage è in evoluzione

Dettagli

Virtualizzazione VirtualBox 4.1.2 su Host Windows

Virtualizzazione VirtualBox 4.1.2 su Host Windows Virtualizzazione VirtualBox 4.1.2 su Host Windows La virtualizzazione, quando riferita all informatica, consiste nella creazione di una versione virtuale di una risorsa normalmente fornita fisicamente.

Dettagli

Architettura di un sistema operativo

Architettura di un sistema operativo Architettura di un sistema operativo Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi basati su kernel Sistemi con microkernel Sistemi con

Dettagli

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

I sistemi virtuali nella PA. Il caso della Biblioteca del Consiglio Regionale della Puglia I sistemi virtuali nella PA Il caso della Biblioteca del Consiglio Regionale della Puglia Indice I sistemi virtuali Definizione di Cloud Computing Le tecnologie che li caratterizzano La virtualizzazione

Dettagli

Cloud Service Factory

Cloud Service Factory Cloud Service Factory Giuseppe Visaggio Dipartimento di Informatica- Università di Bari DAISY-Net visaggio@di.uniba.it DAISY-Net DRIVING ADVANCES OF ICT IN SOUTH ITALY Net S. c. a r. l. 1 Il Cloud Computing

Dettagli

Backup Exec 2012. Guida rapida all'installazione

Backup Exec 2012. Guida rapida all'installazione Backup Exec 2012 Guida rapida all'installazione Installazione Il documento contiene i seguenti argomenti: Requisiti di sistema Elenco di controllo pre-installazione di Backup Exec Esecuzione di un'installazione

Dettagli

Craig E. Johnson IBM ^ i5 Product Marketing Manager per Linux

Craig E. Johnson IBM ^ i5 Product Marketing Manager per Linux Linux per IBM ^ i5 Craig E. Johnson IBM ^ i5 Product Marketing Manager per Linux Pagina 2 Indice 2 IBM ^ 4 Distribuzioni Linux 6 Perché IBM ^ i5 per Linux 8 Linux e il Logical Partitioning 12 Flessibilità

Dettagli

Il protocollo FTP (1/3)

Il protocollo FTP (1/3) FTP Server e Client Il protocollo FTP (1/3) Il File Transfer Protocol (FTP) (protocollo di trasferimento file), è un Protocollo per la trasmissione di dati tra host basato su TCP. Un server FTP offre svariate

Dettagli

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

Virtualization. Strutturare per semplificare la gestione. ICT Information & Communication Technology Virtualization Strutturare per semplificare la gestione Communication Technology Ottimizzare e consolidare Le organizzazioni tipicamente si sviluppano in maniera non strutturata e ciò può comportare la

Dettagli

Valutazione del sistema di storage EMC CLARiiON AX4

Valutazione del sistema di storage EMC CLARiiON AX4 Valutazione del sistema di storage EMC CLARiiON AX4 Relazione preparata sotto contratto con EMC Introduzione EMC Corporation ha incaricato Demartek di eseguire una valutazione pratica del nuovo sistema

Dettagli

Guida all uso. Instant Cloud Platform As A Service

Guida all uso. Instant Cloud Platform As A Service Guida all uso Instant Cloud Platform As A Service Prima edizione maggio 2014 Instant Cloud Platform As A Service Sommario Instant Cloud - Platform As A Service... 4 1 Introduzione... 4 2 Instant Cloud...

Dettagli

hottimo procedura di installazione

hottimo procedura di installazione hottimo procedura di installazione LATO SERVER Per un corretto funzionamento di hottimo è necessario in primis installare all interno del server, Microsoft Sql Server 2008 (Versione minima Express Edition)

Dettagli

PICCOLE E MEDIE IMPRESE, UNA SOLUZIONE AD HOC. Soluzioni per le PMI

PICCOLE E MEDIE IMPRESE, UNA SOLUZIONE AD HOC. Soluzioni per le PMI PICCOLE E MEDIE IMPRESE, UNA SOLUZIONE AD HOC Soluzioni per le PMI Windows Server 2012 e System Center 2012 Informazioni sul copyright 2012 Microsoft Corporation. Tutti i diritti sono riservati. Il presente

Dettagli

Sistema Operativo Compilatore

Sistema Operativo Compilatore MASTER Information Technology Excellence Road (I.T.E.R.) Sistema Operativo Compilatore Maurizio Palesi Salvatore Serrano Master ITER Informatica di Base Maurizio Palesi, Salvatore Serrano 1 Il Sistema

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

Corso di Sistemi di Elaborazione delle informazioni Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella La Complessità del Hardware Il modello di Von Neumann è uno schema di principio. Attualmente in commercio esistono:

Dettagli

Sistemi informatici. Informatica. Il software. Il sw di sistema. Il sw applicativo. Il sw di sistema. Il sistema operativo. Hardware.

Sistemi informatici. Informatica. Il software. Il sw di sistema. Il sw applicativo. Il sw di sistema. Il sistema operativo. Hardware. http://159.149.98.238/lanzavecchia/docum enti/sscta.htm Sistemi informatici Hardware Microprocessore Memoria Periferiche di input e output Software Software di sistema Programmi applicativi 1 2 Il sw applicativo

Dettagli

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

Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria M. Boari, M. Balboni, Tecniche di virtualizzazione: teoria e pratica, Mondo Digitale, Marzo 2007. J. Daniels, Server virtualization architecture

Dettagli

Cloud Computing....una scelta migliore. ICT Information & Communication Technology

Cloud Computing....una scelta migliore. ICT Information & Communication Technology Cloud Computing...una scelta migliore Communication Technology Che cos è il cloud computing Tutti parlano del cloud. Ma cosa si intende con questo termine? Le applicazioni aziendali stanno passando al

Dettagli

I nuovi modelli di delivery dell IT: un quadro di riferimento

I nuovi modelli di delivery dell IT: un quadro di riferimento I nuovi modelli di delivery dell IT: un quadro di riferimento Stefano Mainetti Fondazione Politecnico di Milano stefano.mainetti@polimi.it Milano, 25 Ottobre 2010 Cloud Computing: il punto d arrivo Trend

Dettagli

INTRODUZIONE AI SISTEMI OPERATIVI

INTRODUZIONE AI SISTEMI OPERATIVI INTRODUZIONE AI SISTEMI OPERATIVI Il sistema operativo è il software che permette l esecuzione di programmi applicativi e lo sviluppo di nuovi programmi. CARATTERISTICHE Gestisce le risorse hardware e

Dettagli

CATALOGO CORSI DI FORMAZIONE INFORMATICA

CATALOGO CORSI DI FORMAZIONE INFORMATICA CATALOGO CORSI DI FORMAZIONE INFORMATICA La Dialuma propone a catalogo 22 corsi di Informatica che spaziano tra vari argomenti e livelli. TITOLI E ARGOMENTI I001 - Informatica generale Concetti generali

Dettagli

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in

Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Manuale di riferimento di HP Web Jetadmin Database Connector Plug-in Informazioni sul copyright 2004 Copyright Hewlett-Packard Development Company, L.P. Sono vietati la riproduzione, l'adattamento e la

Dettagli

Strutture dei Sistemi Operativi

Strutture dei Sistemi Operativi Strutture dei Sistemi Operativi Componenti di sistema Servizi del sistema operativo Chiamate di sistema Programmi di sistema Struttura del sistema Macchine virtuali Progetto e implementazione di sistemi

Dettagli

Sistemi operativi I: Windows. Lezione I

Sistemi operativi I: Windows. Lezione I Sistemi operativi I: Windows Lezione I Scopo della lezione Richiamare le principali funzionalità di un sistema operativo Esemplificarle descrivendo la loro implementazione in Windows Introdurre alcuni

Dettagli

SISTEMI OPERATIVI DISTRIBUITI

SISTEMI OPERATIVI DISTRIBUITI SISTEMI OPERATIVI DISTRIBUITI E FILE SYSTEM DISTRIBUITI 12.1 Sistemi Distribuiti Sistemi operativi di rete Sistemi operativi distribuiti Robustezza File system distribuiti Naming e Trasparenza Caching

Dettagli

Soluzioni innovative per la semplificazione dell infrastruttura IT. Virtualizzazione con il sistema operativo IBM i, PowerVM e Power Systems

Soluzioni innovative per la semplificazione dell infrastruttura IT. Virtualizzazione con il sistema operativo IBM i, PowerVM e Power Systems Soluzioni innovative per la semplificazione dell infrastruttura IT Virtualizzazione con il sistema operativo IBM i, PowerVM e Power Systems Caratteristiche principali La flessibilità e la scalabilità della

Dettagli

i5/os per processi di business efficienti e flessibili

i5/os per processi di business efficienti e flessibili L ambiente operativo integrato leader nel settore i5/os per processi di business efficienti e flessibili Caratteristiche principali Middleware integrato per processi di business efficienti. Funzioni integrate

Dettagli

Il Software... A.A. 2013-14 Informatica 96

Il Software... A.A. 2013-14 Informatica 96 Il Software... A.A. 2013-14 Informatica 96 Il software L hardware non è direttamente utilizzabile Sono necessari dei programmi per far svolgere delle funzioni all insieme di circuiti Informatica 97 Il

Dettagli

Calcolo numerico e programmazione. Sistemi operativi

Calcolo numerico e programmazione. Sistemi operativi Calcolo numerico e programmazione Sistemi operativi Tullio Facchinetti 25 maggio 2012 13:47 http://robot.unipv.it/toolleeo Sistemi operativi insieme di programmi che rendono

Dettagli

CA AppLogic Cloud Platform per applicazioni enterprise

CA AppLogic Cloud Platform per applicazioni enterprise SCHEDA PRODOTTO: CA AppLogic CA AppLogic Cloud Platform per applicazioni enterprise agility made possible CA AppLogic è una piattaforma di cloud computing chiavi in mano che consente ai clienti enterprise

Dettagli

LaCie Ethernet Disk mini Domande frequenti (FAQ)

LaCie Ethernet Disk mini Domande frequenti (FAQ) LaCie Ethernet Disk mini Domande frequenti (FAQ) Installazione Che cosa occorre fare per installare l unità LaCie Ethernet Disk mini? A. Collegare il cavo Ethernet alla porta LAN sul retro dell unità LaCie

Dettagli

IBM iseries Soluzioni integrate per xseries

IBM iseries Soluzioni integrate per xseries Soluzioni innovative per l integrazione dei server Intel IBM iseries Soluzioni integrate per xseries La famiglia iseries, il cui modello più recente è l _` i5, offre due soluzioni che forniscono alternative

Dettagli

Introduzione alla Virtualizzazione

Introduzione alla Virtualizzazione Introduzione alla Virtualizzazione Dott. Luca Tasquier E-mail: luca.tasquier@unina2.it Virtualizzazione - 1 La virtualizzazione è una tecnologia software che sta cambiando il metodo d utilizzo delle risorse

Dettagli

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO IL SOFTWARE L HARDWARE da solo non è sufficiente a far funzionare un computer Servono dei PROGRAMMI (SOFTWARE) per: o Far interagire, mettere in comunicazione, le varie componenti hardware tra loro o Sfruttare

Dettagli

Fisciano, 24 ottobre 2008

Fisciano, 24 ottobre 2008 Virtualizzazione applicazioni per la sicurezza Luigi Catuogno Fisciano, 24 ottobre 2008 Sommario Virtualizzazione e para-virtualizzazione Sicurezza Separazione delle applicazioni Virtual data center Trusted

Dettagli

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

Cloud Computing: alcuni punti fermi per non smarrirsi fra le nuvole Cloud Computing: alcuni punti fermi per non smarrirsi fra le nuvole Stefano Mainetti stefano.mainetti@polimi.it L ICT come Commodity L emergere del Cloud Computing e i nuovi modelli di delivery Trend n.

Dettagli

boot loader partizioni boot sector

boot loader partizioni boot sector IL SISTEMA OPERATIVO Il sistema operativo (S.O.) è un software che fa da interfaccia tra l uomo e l hardware, mettendo a disposizione un ambiente per eseguire i programmi applicativi. Grazie al S.O. un

Dettagli

Informatica di Base. Il software

Informatica di Base. Il software di Base 1 Sistemi informatici Hardware Microprocessore Memoria Periferiche di input e output Software Software di sistema Programmi applicativi 2 Il sw applicativo Il sw applicativo è costituito dall insieme

Dettagli

I nostri servizi Dynamic Data Centre Infrastructure-as-a-Service.

I nostri servizi Dynamic Data Centre Infrastructure-as-a-Service. I nostri servizi Infrastructure-as-a-Service. 02 / TelecityGroup Cos è? (DDC) è la proposta di TelecityGroup nell ambito Infrastructure-as-a-Service (IaaS), uno dei cardini del cloud computing. Attraverso

Dettagli

Security by Virtualization

Security by Virtualization Metro Olografix Hacking Party Security by Virtualization 19 Maggio 2007 Pescara Marco Balduzzi Le ragioni della sfida I convenzionali meccanismi di protezione vengono alterati ed evasi

Dettagli

CORSO WEB SERVER, DBMS E SERVER FTP

CORSO WEB SERVER, DBMS E SERVER FTP CORSO WEB SERVER, DBMS E SERVER FTP DISPENSA LEZIONE 1 Autore D. Mondello Transazione di dati in una richiesta di sito web Quando viene effettuata la richiesta di un sito Internet su un browser, tramite

Dettagli

CLOUD COMPUTING REFERENCE ARCHITECTURE: LE INDICAZIONI DEL NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY. Prima parte: Panoramica sugli attori

CLOUD COMPUTING REFERENCE ARCHITECTURE: LE INDICAZIONI DEL NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY. Prima parte: Panoramica sugli attori ANALISI 11 marzo 2012 CLOUD COMPUTING REFERENCE ARCHITECTURE: LE INDICAZIONI DEL NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY Nella newsletter N 4 abbiamo già parlato di Cloud Computing, introducendone

Dettagli

uomo Software (sistema operativo) hardware

uomo Software (sistema operativo) hardware uomo Software (sistema operativo) hardware 1 Sistema operativo Insieme di programmi che svolgono funzioni essenziali per l uso del sistema di elaborazione Questi programmi sono i primi ad essere eseguiti

Dettagli