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

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

Boot Camp Guida all installazione e alla configurazione

Boot Camp Guida all installazione e alla configurazione Boot Camp Guida all installazione e alla configurazione Indice 4 Introduzione 5 Cosa ti occorre 6 Panoramica dell installazione 6 Passo 1: verifica la presenza di aggiornamenti. 6 Passo 2: apri Assistente

Dettagli

FileMaker Server 12. Guida introduttiva

FileMaker Server 12. Guida introduttiva FileMaker Server 12 Guida introduttiva 2007 2012 FileMaker, Inc. Tutti i diritti riservati. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker e Bento sono marchi di FileMaker,

Dettagli

Rational Asset Manager, versione 7.1

Rational Asset Manager, versione 7.1 Rational Asset Manager, versione 7.1 Versione 7.1 Guida all installazione Rational Asset Manager, versione 7.1 Versione 7.1 Guida all installazione Note Prima di utilizzare queste informazioni e il prodotto

Dettagli

Virtualizzazione e installazione Linux

Virtualizzazione e installazione Linux Virtualizzazione e installazione Linux Federico De Meo, Davide Quaglia, Simone Bronuzzi Lo scopo di questa esercitazione è quello di introdurre il concetto di virtualizzazione, di creare un ambiente virtuale

Dettagli

Sizing di un infrastruttura server con VMware

Sizing di un infrastruttura server con VMware Sizing di un infrastruttura server con VMware v1.1 Matteo Cappelli Vediamo una serie di best practices per progettare e dimensionare un infrastruttura di server virtuali con VMware vsphere 5.0. Innanzitutto

Dettagli

Per questa ragione il nostro sforzo si è concentrato sugli aspetti elencati qui di seguito:

Per questa ragione il nostro sforzo si è concentrato sugli aspetti elencati qui di seguito: Autore : Giulio Martino IT Security, Network and Voice Manager Technical Writer e Supporter di ISAServer.it www.isaserver.it www.ocsserver.it www.voipexperts.it - blogs.dotnethell.it/isacab giulio.martino@isaserver.it

Dettagli

HORIZON SQL CONFIGURAZIONE DI RETE

HORIZON SQL CONFIGURAZIONE DI RETE 1-1/9 HORIZON SQL CONFIGURAZIONE DI RETE 1 CARATTERISTICHE DI UN DATABASE SQL...1-2 Considerazioni generali... 1-2 Concetto di Server... 1-2 Concetto di Client... 1-2 Concetto di database SQL... 1-2 Vantaggi...

Dettagli

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guida introduttiva

Acronis Backup & Recovery 10 Advanced Server Virtual Edition. Guida introduttiva Acronis Backup & Recovery 10 Advanced Server Virtual Edition Guida introduttiva Questo documento descrive come installare e iniziare a utilizzare Acronis Backup & Recovery 10 Advanced Server Virtual Edition.

Dettagli

Progetto VirtualCED Clustered

Progetto VirtualCED Clustered Progetto VirtualCED Clustered Un passo indietro Il progetto VirtualCED, descritto in un precedente articolo 1, è ormai stato implementato con successo. Riassumendo brevemente, si tratta di un progetto

Dettagli

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it

FIRESHOP.NET. Gestione Utility & Configurazioni. Rev. 2014.3.1 www.firesoft.it FIRESHOP.NET Gestione Utility & Configurazioni Rev. 2014.3.1 www.firesoft.it Sommario SOMMARIO Introduzione... 4 Impostare i dati della propria azienda... 5 Aggiornare il programma... 6 Controllare l integrità

Dettagli

progettiamo e realizziamo architetture informatiche Company Profile

progettiamo e realizziamo architetture informatiche Company Profile Company Profile Chi siamo Kammatech Consulting S.r.l. nasce nel 2000 con l'obiettivo di operare nel settore I.C.T., fornendo servizi di progettazione, realizzazione e manutenzione di reti aziendali. Nel

Dettagli

Plesk Automation. Parallels. Domande tecniche più frequenti

Plesk Automation. Parallels. Domande tecniche più frequenti Parallels Plesk Automation Primo trimestre, 2013 Domande tecniche più frequenti Questo documento ha come scopo quello di rispondere alle domande tecniche che possono sorgere quando si installa e si utilizza

Dettagli

CORPORATE OVERVIEW. www.akhela.com

CORPORATE OVERVIEW. www.akhela.com CORPORATE OVERVIEW www.akhela.com BRIDGE THE GAP CORPORATE OVERVIEW Bridge the gap Akhela è un azienda IT innovativa che offre al mercato servizi e soluzioni Cloud Based che aiutano le aziende a colmare

Dettagli

***** Il software IBM e semplice *****

***** Il software IBM e semplice ***** Il IBM e semplice ***** ***** Tutto quello che hai sempre voluto sapere sui prodotti IBM per qualificare i potenziali clienti, sensibilizzarli sulle nostre offerte e riuscire a convincerli. WebSphere IL

Dettagli

Esiste la versione per Linux di GeCo? Allo stato attuale non è prevista la distribuzione di una versione di GeCo per Linux.

Esiste la versione per Linux di GeCo? Allo stato attuale non è prevista la distribuzione di una versione di GeCo per Linux. FAQ su GeCo Qual è la differenza tra la versione di GeCo con installer e quella portabile?... 2 Esiste la versione per Linux di GeCo?... 2 Quali sono le credenziali di accesso a GeCo?... 2 Ho smarrito

Dettagli

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO

MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO MATRICE DELLE FUNZIONI DI DRAGON NATURALLYSPEAKING 12 CONFRONTO TRA EDIZIONI DEL PRODOTTO Precisione del riconoscimento Velocità di riconoscimento Configurazione del sistema Correzione Regolazione della

Dettagli

Acronis Backup & Recovery 11. Affidabilità dei dati un requisito essenziale

Acronis Backup & Recovery 11. Affidabilità dei dati un requisito essenziale Protezio Protezione Protezione Protezione di tutti i dati in ogni momento Acronis Backup & Recovery 11 Affidabilità dei dati un requisito essenziale I dati sono molto più che una serie di uno e zero. Sono

Dettagli

DigitPA egovernment e Cloud computing

DigitPA egovernment e Cloud computing DigitPA egovernment e Cloud computing Esigenze ed esperienze dal punto di vista della domanda RELATORE: Francesco GERBINO 5 ottobre 2010 Agenda Presentazione della Società Le infrastrutture elaborative

Dettagli

Guida ai Servizi Internet per il Referente Aziendale

Guida ai Servizi Internet per il Referente Aziendale Guida ai Servizi Internet per il Referente Aziendale Indice Indice Introduzione...3 Guida al primo accesso...3 Accessi successivi...5 Amministrazione dei servizi avanzati (VAS)...6 Attivazione dei VAS...7

Dettagli

PASSIONE PER L IT PROLAN. network solutions

PASSIONE PER L IT PROLAN. network solutions PASSIONE PER L IT PROLAN network solutions CHI SIAMO Aree di intervento PROFILO AZIENDALE Prolan Network Solutions nasce a Roma nel 2004 dall incontro di professionisti uniti da un valore comune: la passione

Dettagli

Boot Camp Guida di installazione e configurazione

Boot Camp Guida di installazione e configurazione Boot Camp Guida di installazione e configurazione Indice 3 Introduzione 4 Panoramica dell'installazione 4 Passo 1: Verificare la presenza di aggiornamenti 4 Passo 2: Per preparare il Mac per Windows 4

Dettagli

Corso di Amministrazione di Sistema Parte I ITIL 3

Corso di Amministrazione di Sistema Parte I ITIL 3 Corso di Amministrazione di Sistema Parte I ITIL 3 Francesco Clabot Responsabile erogazione servizi tecnici 1 francesco.clabot@netcom-srl.it Fondamenti di ITIL per la Gestione dei Servizi Informatici Il

Dettagli

Installazione LINUX 10.0

Installazione LINUX 10.0 Installazione LINUX 10.0 1 Principali passi Prima di iniziare con l'installazione è necessario entrare nel menu di configurazione del PC (F2 durante lo start-up) e selezionare nel menu di set-up il boot

Dettagli

SISTEMI DI VIRTUALIZZAZIONE: STATO DELL ARTE, VALUTAZIONI, PROSPETTIVE

SISTEMI DI VIRTUALIZZAZIONE: STATO DELL ARTE, VALUTAZIONI, PROSPETTIVE UNIVERSITÀ DEGLI STUDI DI UDINE Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea Triennale in Informatica Tesi di Laurea SISTEMI DI VIRTUALIZZAZIONE: STATO DELL ARTE, VALUTAZIONI, PROSPETTIVE

Dettagli

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

Configuration Managment Configurare EC2 su AWS. Tutorial. Configuration Managment. Configurare il servizio EC2 su AWS. Pagina 1 Tutorial Configuration Managment Configurare il servizio EC2 su AWS Pagina 1 Sommario 1. INTRODUZIONE... 3 2. PROGRAMMI NECESSARI... 4 3. PANNELLO DI CONTROLLO... 5 4. CONFIGURARE E LANCIARE UN ISTANZA...

Dettagli

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali

DynDevice ECM. La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali DynDevice ECM La Suite di applicazioni web per velocizzare, standardizzare e ottimizzare il flusso delle informazioni aziendali Presentazione DynDevice ECM Cos è DynDevice ICMS Le soluzioni di DynDevice

Dettagli

Ottimizzazione della gestione del data center con Microsoft System Center

Ottimizzazione della gestione del data center con Microsoft System Center Ottimizzazione della gestione del data center con Microsoft System Center Declinazione di responsabilità e informazioni sul copyright Le informazioni contenute nel presente documento rappresentano le conoscenze

Dettagli

GESTIRE LA BIBLIOGRAFIA

GESTIRE LA BIBLIOGRAFIA GESTIRE LA BIBLIOGRAFIA STRUMENTI DI GESTIONE BIBLIOGRAFICA I software di gestione bibliografica permettono di raccogliere, catalogare e organizzare diverse tipologie di materiali, prendere appunti, formattare

Dettagli

TeamViewer 7 Manuale Controllo remoto

TeamViewer 7 Manuale Controllo remoto TeamViewer 7 Manuale Controllo remoto TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen teamviewer.com Indice 1 Informazioni su TeamViewer... 5 1.1 Informazioni sul software... 5 1.2 Informazioni sul

Dettagli

La suite Dental Trey che semplifica il tuo mondo.

La suite Dental Trey che semplifica il tuo mondo. La suite Dental Trey che semplifica il tuo mondo. impostazioni di sistema postazione clinica studio privato sterilizzazione magazzino segreteria amministrazione sala di attesa caratteristiche UNO tiene

Dettagli

TeamViewer 8 Manuale Controllo remoto

TeamViewer 8 Manuale Controllo remoto TeamViewer 8 Manuale Controllo remoto Rev 8.0-12/2012 TeamViewer GmbH Kuhnbergstraße 16 D-73037 Göppingen www.teamviewer.com Indice 1 Informazioni su TeamViewer... 6 1.1 Informazioni sul software... 6

Dettagli

CLOUD SURVEY 2012: LO STATO DEL CLOUD COMPUTING IN ITALIA

CLOUD SURVEY 2012: LO STATO DEL CLOUD COMPUTING IN ITALIA CLOUD SURVEY 2012: LO STATO DEL CLOUD COMPUTING IN ITALIA 2ª PARTE NEL CAPITOLO PRECEDENTE NOTA METODOLOGICA LA PAROLA AI CIO I MIGLIORI HYPERVISOR AFFIDARSI AI VENDOR INVESTIRE PER IL CLOUD APPLICAZIONI

Dettagli

Analisi dei requisiti e casi d uso

Analisi dei requisiti e casi d uso Analisi dei requisiti e casi d uso Indice 1 Introduzione 2 1.1 Terminologia........................... 2 2 Modello della Web Application 5 3 Struttura della web Application 6 4 Casi di utilizzo della Web

Dettagli

Per Iniziare con Parallels Desktop 10

Per Iniziare con Parallels Desktop 10 Per Iniziare con Parallels Desktop 10 Copyright 1999-2014 Parallels IP Holdings GmbH e i suoi affiliati. Tutti i diritti riservati. Parallels IP Holdings GmbH Vordergasse 59 8200 Schaffhausen Svizzera

Dettagli

MANUALE DI INSTALLAZIONE GESTIONE FLOTTE /REMIND

MANUALE DI INSTALLAZIONE GESTIONE FLOTTE /REMIND Progettisti dentro e oltre l impresa MANUALE DI INSTALLAZIONE GESTIONE FLOTTE /REMIND Pag 1 di 31 INTRODUZIONE Questo documento ha lo scopo di illustrare le modalità di installazione e configurazione dell

Dettagli

È nata una nuova specie di avvocati. Liberi.

È nata una nuova specie di avvocati. Liberi. È nata una nuova specie di avvocati. Liberi. LIBERI DI NON PENSARCI Basta preoccupazioni per il back-up e la sicurezza dei tuoi dati. Con la tecnologia Cloud Computing l archiviazione e la protezione dei

Dettagli

CHIAVETTA INTERNET ONDA MT503HSA

CHIAVETTA INTERNET ONDA MT503HSA CHIAVETTA INTERNET ONDA MT503HSA Manuale Utente Linux Debian, Fedora, Ubuntu www.ondacommunication.com Chiavet ta Internet MT503HSA Guida rapida sistema operativo LINUX V 1.1 33080, Roveredo in Piano (PN)

Dettagli

La gestione integrata della sicurezza in Agenzia ANSA: dal firewalling all'utm Michelangelo Uberti, Sales Engineer Babel S.r.l.

La gestione integrata della sicurezza in Agenzia ANSA: dal firewalling all'utm Michelangelo Uberti, Sales Engineer Babel S.r.l. La gestione integrata della sicurezza in Agenzia ANSA: dal firewalling all'utm Michelangelo Uberti, Sales Engineer Babel S.r.l. Babel S.r.l. - P.zza S. Benedetto da Norcia 33, 00040 Pomezia (RM) www.babel.it

Dettagli

IT-BOOK. Domini Hosting Web marketing E-mail e PEC

IT-BOOK. Domini Hosting Web marketing E-mail e PEC 5 giugno 09 IT-BOOK Configurazioni e cartatteristiche tecniche possono essere soggette a variazioni senza preavviso. Tutti i marchi citati sono registrati dai rispettivi proprietari. Non gettare per terra:

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

Porta di Accesso versione 5.0.12

Porta di Accesso versione 5.0.12 Pag. 1 di 22 Controlli da effettuare in seguito al verificarsi di ERRORE 10 nell utilizzo di XML SAIA Porta di Accesso versione 5.0.12 Pag. 2 di 22 INDICE 1. INTRODUZIONE... 3 2. VERIFICHE DA ESEGUIRE...3

Dettagli

SICUREZZA SENZA COMPROMESSI PER TUTTI GLI AMBIENTI VIRTUALI. Security for Virtual and Cloud Environments

SICUREZZA SENZA COMPROMESSI PER TUTTI GLI AMBIENTI VIRTUALI. Security for Virtual and Cloud Environments SICUREZZA SENZA COMPROMESSI PER TUTTI GLI AMBIENTI VIRTUALI Security for Virtual and Cloud Environments PROTEZIONE O PRESTAZIONI? Già nel 2009, il numero di macchine virtuali aveva superato quello dei

Dettagli

Agilent OpenLAB Chromatography Data System (CDS)

Agilent OpenLAB Chromatography Data System (CDS) Agilent OpenLAB Chromatography Data System (CDS) EZChrom Edition e ChemStation Edition Requisiti hardware e software Agilent Technologies Informazioni legali Agilent Technologies, Inc. 2013 Nessuna parte

Dettagli

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a:

Talento LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) L'UTILIZZO DI ALTRI SERVIZI INTERNET. In questa lezione imparerete a: Lab 4.1 Utilizzare FTP (File Tranfer Protocol) LAB 4.1 - UTILIZZARE FTP (FILE TRANSFER PROTOCOL) In questa lezione imparerete a: Utilizzare altri servizi Internet, Collegarsi al servizio Telnet, Accedere

Dettagli

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore)

Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Manuale d uso Apache OpenMeetings (Manuale Utente + Manuale Amministratore) Autore: Matteo Veroni Email: matver87@gmail.com Sito web: matteoveroni@altervista.org Fonti consultate: http://openmeetings.apache.org/

Dettagli

Manuale di installazione. Data Protector Express. Hewlett-Packard Company

Manuale di installazione. Data Protector Express. Hewlett-Packard Company Manuale di installazione Data Protector Express Hewlett-Packard Company ii Manuale di installazione di Data Protector Express. Copyright Marchi Copyright 2005 Hewlett-Packard Limited. Ottobre 2005 Numero

Dettagli

DEFT Zero Guida Rapida

DEFT Zero Guida Rapida DEFT Zero Guida Rapida Indice Indice... 1 Premessa... 1 Modalità di avvio... 1 1) GUI mode, RAM preload... 2 2) GUI mode... 2 3) Text mode... 2 Modalità di mount dei dispositivi... 3 Mount di dispositivi

Dettagli

Schema Tipologia a Stella

Schema Tipologia a Stella Cos'e' esattamente una rete! Una LAN (Local Area Network) è un insieme di dispositivi informatici collegati fra loro, che utilizzano un linguaggio che consente a ciascuno di essi di scambiare informazioni.

Dettagli

Creare e ripristinare immagine di sistema con Windows 8

Creare e ripristinare immagine di sistema con Windows 8 Creare e ripristinare immagine di con Windows 8 La versione Pro di Windows 8 offre un interessante strumento per il backup del computer: la possibilità di creare un immagine completa del, ovvero la copia

Dettagli

IBM Cloud Computing - un opportunità? - una moda? Andrea Reggio Myserverfarm. 2011 IBM Corporation

IBM Cloud Computing - un opportunità? - una moda? Andrea Reggio Myserverfarm. 2011 IBM Corporation IBM Cloud Computing - un opportunità? - una moda? Andrea Reggio Myserverfarm 2011 IBM Corporation Cosa si intende per Cloud Computing Cloud è un nuovo modo di utilizzare e di distribuire i servizi IT,

Dettagli

Active Solution & Systems illustra La virtualizzazione dei Server secondo il produttore di Storage Qsan

Active Solution & Systems illustra La virtualizzazione dei Server secondo il produttore di Storage Qsan Active Solution & Systems illustra La virtualizzazione dei secondo il produttore di Storage Qsan Milano, 9 Febbraio 2012 -Active Solution & Systems, società attiva sul mercato dal 1993, e da sempre alla

Dettagli

Guida Dell di base all'acquisto dei server

Guida Dell di base all'acquisto dei server Guida Dell di base all'acquisto dei server Per le piccole aziende che dispongono di più computer è opportuno investire in un server che aiuti a garantire la sicurezza e l'organizzazione dei dati, consentendo

Dettagli

Come installare e configurare il software FileZilla

Come installare e configurare il software FileZilla Come utilizzare FileZilla per accedere ad un server FTP Con questo tutorial verrà mostrato come installare, configurare il software e accedere ad un server FTP, come ad esempio quello dedicato ai siti

Dettagli

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software.

Firewall. Generalità. Un firewall può essere sia un apparato hardware sia un programma software. Generalità Definizione Un firewall è un sistema che protegge i computer connessi in rete da attacchi intenzionali mirati a compromettere il funzionamento del sistema, alterare i dati ivi memorizzati, accedere

Dettagli

Guida all Uso. L a t u a i m p r e s a, c h i av e i n m a n o. Guida_BusinessKey.indd 1 18-05-2007 10:53:34

Guida all Uso. L a t u a i m p r e s a, c h i av e i n m a n o. Guida_BusinessKey.indd 1 18-05-2007 10:53:34 Guida all Uso L a t u a i m p r e s a, c h i av e i n m a n o. Guida_BusinessKey.indd 1 18-05-2007 10:53:34 Cos è la Business Key La Business Key è una chiavetta USB portatile, facile da usare, inseribile

Dettagli

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO

SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO CLSMS SOFTWARE GESTIONE SMS DA INTERFACCE CL MANUALE D INSTALLAZIONE ED USO Sommario e introduzione CLSMS SOMMARIO INSTALLAZIONE E CONFIGURAZIONE... 3 Parametri di configurazione... 4 Attivazione Software...

Dettagli

ALFABETIZZAZIONE DI BASE Programma del Corso livello base

ALFABETIZZAZIONE DI BASE Programma del Corso livello base Un po di Storia ISP & Web Engineering ALFABETIZZAZIONE DI BASE Programma del Corso livello base Breve cenno sulla storia dell informatica: dagli albori ai giorni nostri; L evoluzione di Windows: dalla

Dettagli

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE

ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE ORACLE BUSINESS INTELLIGENCE STANDARD EDITION ONE A WORLD CLASS PERFORMANCE Oracle Business Intelligence Standard Edition One è una soluzione BI completa, integrata destinata alle piccole e medie imprese.oracle

Dettagli

SERVER VIDEO 1-PORTA H.264

SERVER VIDEO 1-PORTA H.264 SERVER VIDEO 1-PORTA H.264 MANUALE UTENTE DN-16100 SALVAGUARDIA IMPORTANTE Tutti i prodotti senza piombo offerti dall'azienda sono a norma con i requisiti della legge Europea sulla restrizione per l'uso

Dettagli

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci

Manuale di Remote Desktop Connection. Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci Manuale di Remote Desktop Connection Brad Hards Urs Wolfer Traduzione: Luciano Montanaro Traduzione: Daniele Micci 2 Indice 1 Introduzione 5 2 Il protocollo Remote Frame Buffer 6 3 Uso di Remote Desktop

Dettagli

A vele spiegate verso il futuro

A vele spiegate verso il futuro A vele spiegate verso il futuro Passione e Innovazione per il proprio lavoro La crescita di Atlantica, in oltre 25 anni di attività, è sempre stata guidata da due elementi: la passione per il proprio lavoro

Dettagli

Installazione di GFI Network Server Monitor

Installazione di GFI Network Server Monitor Installazione di GFI Network Server Monitor Requisiti di sistema I computer che eseguono GFI Network Server Monitor richiedono: i sistemi operativi Windows 2000 (SP4 o superiore), 2003 o XP Pro Windows

Dettagli

Cinque best practice per amministratori VMware: Microsoft Exchange su VMware

Cinque best practice per amministratori VMware: Microsoft Exchange su VMware Cinque best practice per amministratori VMware: Microsoft Exchange su VMware Scott Lowe Founder and Managing Consultant del 1610 Group Modern Data Protection Built for Virtualization Introduzione C è stato

Dettagli

Guida alle offerte di finanziamento per le medie imprese

Guida alle offerte di finanziamento per le medie imprese IBM Global Financing Guida alle offerte di finanziamento per le medie imprese Realizzata da IBM Global Financing ibm.com/financing/it Guida alle offerte di finanziamento per le medie imprese La gestione

Dettagli

Corso di Alfabetizzazione Informatica

Corso di Alfabetizzazione Informatica Corso di Alfabetizzazione Informatica Scopo di questo corso, vuole essere quello di fornire ad ognuno dei partecipanti, indipendentemente dalle loro precedenti conoscenze informatiche, l apprendimento

Dettagli

L evoluzione del software per l azienda moderna. Gestirsi / Capirsi / Migliorarsi

L evoluzione del software per l azienda moderna. Gestirsi / Capirsi / Migliorarsi IL GESTIONALE DEL FUTURO L evoluzione del software per l azienda moderna Gestirsi / Capirsi / Migliorarsi IL MERCATO ITALIANO L Italia è rappresentata da un numero elevato di piccole e medie aziende che

Dettagli

Gestire le comunicazione aziendali con software Open Source

Gestire le comunicazione aziendali con software Open Source Gestire le comunicazione aziendali con software Open Source Data: Ottobre 2012 Firewall pfsense Mail Server Zimbra Centralino Telefonico Asterisk e FreePBX Fax Server centralizzato Hylafax ed Avantfax

Dettagli

Le Reti Informatiche

Le Reti Informatiche Le Reti Informatiche modulo 10 Prof. Salvatore Rosta www.byteman.it s.rosta@byteman.it 1 Nomenclatura: 1 La rappresentazione di uno schema richiede una serie di abbreviazioni per i vari componenti. Seguiremo

Dettagli

Energy Studio Manager Manuale Utente USO DEL SOFTWARE

Energy Studio Manager Manuale Utente USO DEL SOFTWARE Energy Studio Manager Manuale Utente USO DEL SOFTWARE 1 ANALYSIS.EXE IL PROGRAMMA: Una volta aperto il programma e visualizzato uno strumento il programma apparirà come nell esempio seguente: Il programma

Dettagli

più del mercato applicazioni dei processi modificato. Reply www.reply.eu

più del mercato applicazioni dei processi modificato. Reply www.reply.eu SOA IN AMBITO TELCO Al fine di ottimizzare i costi e di migliorare la gestione dell'it, le aziende guardano, sempre più con maggiore interesse, alle problematiche di gestionee ed ottimizzazione dei processi

Dettagli

Suggerimenti forniti da MetaQuotes per l utilizzo di MetaTrader 4 con Mac OS

Suggerimenti forniti da MetaQuotes per l utilizzo di MetaTrader 4 con Mac OS Suggerimenti forniti da MetaQuotes per l utilizzo di MetaTrader 4 con Mac OS Nonostante esistano già in rete diversi metodi di vendita, MetaQuotes il programmatore di MetaTrader 4, ha deciso di affidare

Dettagli

MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A

MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A MANUALE UTENTE DEL SOFTWARE DI GESTIONE DEGLI ART. SDVR040A/SDVR080A/SDVR160A Leggere attentamente questo manuale prima dell utilizzo e conservarlo per consultazioni future Via Don Arrigoni, 5 24020 Rovetta

Dettagli

Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci a settimana

Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci a settimana Storie di successo Microsoft per le Imprese Scenario: Software e Development Settore: Servizi In collaborazione con Neomobile incentra l infrastruttura IT su Microsoft ALM, arrivando a 40 nuovi rilasci

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Virtualizzazione con Microsoft Tecnologie e Licensing

Virtualizzazione con Microsoft Tecnologie e Licensing Microsoft Virtualizzazione con Microsoft Tecnologie e Licensing Profile Redirezione dei documenti Offline files Server Presentation Management Desktop Windows Vista Enterprise Centralized Desktop Application

Dettagli

Per iniziare con Parallels Desktop 9

Per iniziare con Parallels Desktop 9 Per iniziare con Parallels Desktop 9 Copyright 1999-2013 Parallels Holdings, Ltd. and its affiliates. All rights reserved. Parallels IP Holdings GmbH. Vordergasse 59 CH8200 Schaffhausen Switzerland Tel:

Dettagli

ATLAS 2.X IL MANAGER NON SI AVVIA

ATLAS 2.X IL MANAGER NON SI AVVIA ATLAS 2.X IL MANAGER NON SI AVVIA Avvio di Atlas 2.x sul server CONTESTO La macchina deve rispecchiare le seguenti caratteristiche MINIME di sistema: Valori MINIMI per Server di TC con 10 postazioni d'esame

Dettagli

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale

MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale MINI GUIDA SINTETICA per l uso della lavagna interattiva multimediale InterWrite SchoolBoard è un software per lavagna elettronica di facile utilizzo. Può essere adoperata anche da studenti diversamente

Dettagli

Ambienti supportati. Configurazione della stampante di rete. Stampa. Gestione della carta. Manutenzione. Risoluzione dei problemi.

Ambienti supportati. Configurazione della stampante di rete. Stampa. Gestione della carta. Manutenzione. Risoluzione dei problemi. I server di stampa vengono utilizzati per collegare le stampanti alle reti. In tal modo, più utenti possono accedere alle stampanti dalle proprie workstation, condividendo sofisticate e costose risorse.

Dettagli

GESTIONE ATTREZZATURE

GESTIONE ATTREZZATURE SOLUZIONE COMPLETA PER LA GESTIONE DELLE ATTREZZATURE AZIENDALI SWSQ - Solution Web Safety Quality srl Via Mons. Giulio Ratti, 2-26100 Cremona (CR) P. Iva/C.F. 06777700961 - Cap. Soc. 10.000,00 I.V. -

Dettagli

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone

Mod. 4: L architettura TCP/ IP Classe 5 I ITIS G. Ferraris a.s. 2011 / 2012 Marcianise (CE) Prof. M. Simone Paragrafo 1 Prerequisiti Definizione di applicazione server Essa è un servizio che è in esecuzione su un server 1 al fine di essere disponibile per tutti gli host che lo richiedono. Esempi sono: il servizio

Dettagli

Setup e installazione

Setup e installazione Setup e installazione 2 Prima di muovere i primi passi con Blender e avventurarci nel vasto mondo della computer grafica, dobbiamo assicurarci di disporre di due cose: un computer e Blender. 6 Capitolo

Dettagli

Manuale installazione KNOS

Manuale installazione KNOS Manuale installazione KNOS 1. PREREQUISITI... 3 1.1 PIATTAFORME CLIENT... 3 1.2 PIATTAFORME SERVER... 3 1.3 PIATTAFORME DATABASE... 3 1.4 ALTRE APPLICAZIONI LATO SERVER... 3 1.5 ALTRE APPLICAZIONI LATO

Dettagli

Lezione su Informatica di Base

Lezione su Informatica di Base Lezione su Informatica di Base Esplora Risorse, Gestione Cartelle, Alcuni tasti di scelta Rapida Domenico Capano D.C. Viterbo: Lunedì 21 Novembre 2005 Indice Una nota su questa lezione...4 Introduzione:

Dettagli

Software 2. Classificazione del software. Software di sistema

Software 2. Classificazione del software. Software di sistema Software 2 Insieme di istruzioni e programmi che consentono il funzionamento del computer Il software indica all hardware quali sono le operazioni da eseguire per svolgere determinati compiti Valore spesso

Dettagli

MANUALE DOS INTRODUZIONE

MANUALE DOS INTRODUZIONE MANUALE DOS INTRODUZIONE Il DOS è il vecchio sistema operativo, che fino a qualche anno fa era il più diffuso sui PC, prima dell avvento di Windows 95 e successori. Le caratteristiche principali di questo

Dettagli

MailStore Proxy è disponibile gratuitamente per tutti i clienti di MailStore Server all indirizzo http://www.mailstore.com/en/downloads.

MailStore Proxy è disponibile gratuitamente per tutti i clienti di MailStore Server all indirizzo http://www.mailstore.com/en/downloads. MailStore Proxy Con MailStore Proxy, il server proxy di MailStore, è possibile archiviare i messaggi in modo automatico al momento dell invio/ricezione. I pro e i contro di questa procedura vengono esaminati

Dettagli

Introduzione a Puppy Linux: installazione su una chiavetta USB

Introduzione a Puppy Linux: installazione su una chiavetta USB Introduzione a Puppy Linux: installazione su una chiavetta USB Alex Gotev 1 Contenuti Che cos'è Puppy Linux? Come posso averlo? Come si avvia? Che programmi include? Installazione su Chiavetta USB Domande

Dettagli

B.P.S. Business Process Server ALLEGATO C10

B.P.S. Business Process Server ALLEGATO C10 B.P.S. Business Process Server ALLEGATO C10 REGIONE BASILICATA DIPARTIMENTO PRESIDENZA DELLA GIUNTA REGIONALE UFFICIO SISTEMA INFORMATIVO REGIONALE E STATISTICA Via V. Verrastro, n. 4 85100 Potenza tel

Dettagli

DAT@GON. Gestione Gare e Offerte

DAT@GON. Gestione Gare e Offerte DAT@GON Gestione Gare e Offerte DAT@GON partecipare e vincere nel settore pubblico La soluzione sviluppata da Revorg per il settore farmaceutico, diagnostico e di strumentazione medicale, copre l intero

Dettagli

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. "Generate debugging information"

FASE DEBUGGING: Compiler Linker. controllando che la voce Genera le informazioni per il debug cioè. Generate debugging information FASE DEBUGGING: Prima della compilazione, si devono inserire 1 nel progetto informazioni per il debug cioè si devono visualizzare le opzioni di progetto seguendo il percorso: controllando che la voce Genera

Dettagli

Configurazioni Mobile Connect

Configurazioni Mobile Connect Mailconnect Mail.2 L EVOLUZIONE DELLA POSTA ELETTRONICA Configurazioni Mobile Connect iphone MOBILE CONNECT CONFIGURAZIONE MOBILE CONNECT PER IPHONE CONFIGURAZIONE IMAP PER IPHONE RUBRICA CONTATTI E IPHONE

Dettagli

Istruzioni per l uso Guida software

Istruzioni per l uso Guida software Istruzioni per l uso Guida software Leggere subito Manuali per questa stampante...8 Preparazione per la stampa Installazione rapida...9 Conferma del metodo di connessione...11 Connessione di rete...11

Dettagli

Sistemi Web-Based - Terminologia. Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011

Sistemi Web-Based - Terminologia. Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011 Sistemi Web-Based - Terminologia Progetto di Sistemi Web-Based Prof. Luigi Laura, Univ. Tor Vergata, a.a. 2010/2011 CLIENT: il client è il programma che richiede un servizio a un computer collegato in

Dettagli

minilector/usb Risoluzione dei problemi più comuni di malfunzionamento

minilector/usb Risoluzione dei problemi più comuni di malfunzionamento minilector/usb minilector/usb...1 Risoluzione dei problemi più comuni di malfunzionamento...1 1. La segnalazione luminosa (led) su minilector lampeggia?... 1 2. Inserendo una smartcard il led si accende

Dettagli

2014 Electronics For Imaging. Per questo prodotto, il trattamento delle informazioni contenute nella presente pubblicazione è regolato da quanto

2014 Electronics For Imaging. Per questo prodotto, il trattamento delle informazioni contenute nella presente pubblicazione è regolato da quanto 2014 Electronics For Imaging. Per questo prodotto, il trattamento delle informazioni contenute nella presente pubblicazione è regolato da quanto previsto in Avvisi legali. 23 giugno 2014 Indice 3 Indice...5

Dettagli

Informatica per la comunicazione" - lezione 9 -

Informatica per la comunicazione - lezione 9 - Informatica per la comunicazione" - lezione 9 - Protocolli di livello intermedio:" TCP/IP" IP: Internet Protocol" E il protocollo che viene seguito per trasmettere un pacchetto da un host a un altro, in

Dettagli