Source: http://docplayer.it/702753-Analisi-e-progettazione-di-un-sistema-di-monitoraggio-per-infrastrutture-cloud.html
Timestamp: 2017-11-23 19:33:04+00:00

Document:
1 UNIVERSITÀ DEGLI STUDI DI FIRENZE Facoltà di Ingegneria Corso di Laurea Magistrale in Ingegneria Informatica A.A ANALISI E PROGETTAZIONE DI UN SISTEMA DI MONITORAGGIO PER INFRASTRUTTURE CLOUD ANALYSIS AND DESIGN OF A CLOUD INFRASTRUCTURE MONITORING SYSTEM Relatore Prof. Paolo Nesi Prof. Simone Marinai Candidato Giuseppe Murtas Correlatori Dott. Ing. Daniele Cenni Dott. Ing. Ivan Bruno
2 a tutti coloro che hanno creduto in me 1
3 Ringraziamenti Ringraziamenti Giunto alla fine della laurea magistrale vorrei rivolgere alcuni ringraziamenti a coloro che mi hanno sostenuto e aiutato. In particolare ringrazio il Prof. Paolo Nesi, l Ing. Daniele Cenni e l Ing. Ivan Bruno per la guida, l infinita disponibilità e il costante aiuto grazie ai quali ho avuto modo di lavorare e appassionarmi a questo progetto. Vorrei poi ringraziare tutte le persone, che non posso elencare una ad una, ma che mi hanno comunque sostenuto in questo lungo, travagliato e, soprattutto, appassionante percorso. Infine, ringrazio di cuore la mia ragazza, i miei genitori e tutti i parenti e amici che mi sono stati vicini in questi ultimi mesi, e mi hanno dato la forza per superare i momenti più difficili. 2
4 Indice Indice RINGRAZIAMENTI... 2 INDICE... 3 PREFAZIONE... 6 I.1. Abstract... 6 I.2. Struttura della tesi... 7 I. CLOUD COMPUTING E MONITORAGGIO... 8 I.1. Introduzione... 8 I.2. Cloud Computing... 8 I.2.1. Modelli di Erogazione... 9 I.2.2. Modelli di Servizio...10 I.2.3. Vantaggi e svantaggi del Cloud...11 I.3. Cloud basati su VMware vsphere...13 I.3.1. Gestione delle risorse...14 I.3.2. Virtual SMP...14 I.3.3. Virtual Machine File System...15 I.3.4. vcenter...16 I.3.5. vmotion/drs/ha/ft...16 I.4. Il monitoraggio del Cloud...17 I.4.1. VMware vsphere Client/Web Client...18 I.4.2. Veeam ONE...19 I.4.3. VMware vfabric Hyperic...21 I.4.4. Riepilogo delle caratteristiche dei sistemi di monitoraggio...23 II. ANALISI DELL APPLICAZIONE II.1. Introduzione...26 II.2. Analisi dei requisiti...26 II.3. Casi d uso...27 III. PROGETTAZIONE DELL APPLICAZIONE III.1. Introduzione...35 III.2. Architettura della Webapp...35 III.3. La gestione dei thread
5 Indice III.4. Generazione dei grafici III.5. Il database del sistema III.5.1. Descrizione del database III.5.2. Diagramma E-R III.5.3. Le tabelle del database III.5.4. Accesso al database III.6. Le Classi e i Package del sistema (Controller) III.6.1. Package tesi.servlet III.7. Le Classi e i Package del sistema (Model) III.7.2. Package tesi.db.alarm III.7.3. Package tesi.db.ccrperformance III.7.4. Package tesi.db.condition III.7.5. Package tesi.db.dsperformance III.7.6. Package tesi.db.hsperformance III.7.7. Package tesi.db.inventory III.7.8. Package tesi.db.metric III.7.9. Package tesi.db.vmperformance III Package tesi.db.vmsperformance III Package tesi.directory III Package tesi.mail III Package tesi.monitoring III Package tesi.security III Package tesi.vmware III Package tesi.vmware.beans III Package tesi.xml III Package tesi.xml.beans III.8. Le pagine Jsp del sistema (View) III.8.1. Pagina alarm.jsp III.8.2. Pagina alarmpopup.jsp III.8.3. Pagina ccr.jsp III.8.4. Pagina ccrperformance.jsp III.8.5. Pagina ccrproperties.jsp III.8.6. Pagina config.jsp III.8.7. Pagina dc.jsp III.8.8. Pagina dcproperties.jsp III.8.9. Pagina ds.jsp III Pagina dsperformance.jsp III Pagina dsproperties.jsp III Pagina footer.jsp III Pagina generalinfo.jsp III Pagina header.jsp III Pagina home.jsp III Pagina hs.jsp III Pagina hsperformance.jsp III Pagina hsproperties.jsp III Pagina inventariotree.jsp III Pagina login.jsp III Pagina loginerror.jsp III Pagina message.jsp III Pagina vm.jsp III Pagina vmperformance.jsp III Pagina vmproperties.jsp
6 Indice IV. INSTALLAZIONE E CONFIGURAZIONE IV.1. Introduzione IV.2. Installazione e configurazione dell Application Server Tomcat IV.3. Installazione e configurazione di MySQL IV.4. Installazione della Web Application V. USO SPERIMENTALE E VALIDAZIONE V.1. Introduzione V.2. L infrastruttura Cloud V.3. Installazione e configurazione del sistema V.4. Visualizzazione delle proprietà e delle metriche di performance V.4.1. Datacenter V.4.2. Datastore V.4.3. Cluster V.4.4. Host System V.4.5. Virtual Machine V.5. Gestione degli allarmi VI. CONCLUSIONI E SVILUPPI FUTURI APPENDICE A VMWARE VSPHERE API VI.1. Introduzione VI.2. vsphere Management APIs VI.3. Architettura Client-Server di vsphere VI.4. Accesso ai vsphere Server ESX/ESXi e vcenter VI.5. Accesso ai Managed Object VI.6. Datacenter Inventory VI.7. vsphere Performance BIBLIOGRAFIA INDICE DELLE FIGURE INDICE DELLE TABELLE
7 Prefazione Prefazione I.1. Abstract Negli ultimi anni, grazie all esponenziale incremento dell utilizzo dei servizi IT, l esigenza di poter disporre di sistemi scalabili è diventata sempre più radicata. Inizialmente per eseguire dei semplici calcoli o per immagazzinare i dati bisognava dotarsi di schede perforate ed aspettare il proprio turno per poter usufruire delle risorse di enormi e costosissime unità di elaborazione. Successivamente si passò all uso di sistemi mainframe con i quali gli utenti interagivano per mezzo di terminali. Con il boom di Internet iniziò l era del calcolo distribuito che prevede un interazione tra molti computer connessi in rete per raggiungere un comune obiettivo. Viene nascosta l architettura che sta dietro alla rete di computer e all utente viene presentato un unico sistema in grado di adempiere alle sue necessità. Grazie all unione dei concetti di mainframe e di calcolo distribuito nasce il Cloud Computing. Il Cloud Computing, al giorno d oggi, è diventato una moda. Con continui riferimenti e pubblicità a prodotti basati sul Cloud, potrebbe sembrare che il paradigma Cloud sia la soluzione, spuntata improvvisamente dal nulla, a tutti i problemi che possono affliggere il comparto ICT. Può invece essere definito un rebrand di tecnologie mature e già ampliamente utilizzate nel passato infatti proprio la fusione tra le tecnologie di virtualizzazione ed il paradigma SOA ha permesso lo sviluppo di applicativi altamente portabili con architettura distribuita, oltre alla possibilità di interconnettere ed utilizzare facilmente software eterogenei ed eventualmente gestiti da altre aziende. Tra i diversi modelli di Cloud Computing, il modello di erogazione utilizzato maggiormente dalle aziende è il Cloud Privato che garantisce loro un notevole risparmio sui costi IT da sostenere ed un maggiore controllo sui dati. Per le aziende utilizzatrici dei sistemi di Cloud Privato, mantenere i livelli di servizio desiderati per la propria infrastruttura informatica può risultare complesso e costoso, e non tutte le realtà sono in grado di realizzare il servizio con personale e infrastrutture interne. Al tempo stesso il monitoraggio dei sistemi informatici è imprescindibile per un corretto funzionamento dell attività aziendale. Lo stato di salute dei componenti hardware, la saturazione delle risorse di calcolo, l occupazione dei dischi e il controllo sulla crescita di archivi e database, sono solo alcuni esempi di controlli che possono essere effettuati dai sistemi di monitoraggio. Mantenere sotto controllo la situazione di tutta l infrastruttura informatica a livello di server, rete e client (ad esempio server che si bloccano, spazio disco su server insufficiente, criticità della RAM e della CPU, consumo energetico degli apparati, ecc) è prioritario per garantire alle aziende la continuità della funzionalità di tutta l infrastruttura IT. Una volta individuata la criticità è necessario che si attivi un sistema di alerting via o SMS al fine di permettere una maggiore rapidità nell intervento di ripristino e, di conseguenza, una riduzione dei tempi di down dei sistemi. L utilizzo di soglie di pre-alerting oltretutto permette di evitare, o di ridurre al minimo, l impatto economico di un eventuale crash del sistema ed i conseguenti danni economici. Alla luce delle considerazioni esposte, l obiettivo della tesi è la progettazione di un sistema di monitoring, reporting e alarming di una infrastruttura Cloud basata su VMware vsphere 5, sistema leader nel mercato della virtualizzazione di sistemi IT. 6
8 I.2. Struttura della tesi Prefazione La tesi è organizzata nei seguenti capitoli: I Capitolo: Cloud Computing e Monitoraggio Nel primo capitolo verranno esposte le definizioni preliminari relative al Cloud Computing, i diversi modelli di erogazione del servizio ed il problema del monitoraggio delle risorse hardware, anche analizzando alcuni sistemi di monitoraggio disponibili sul mercato. II Capitolo: Analisi dell applicazione Nel secondo capitolo verranno analizzati i requisiti che il sistema di monitoraggio deve soddisfare anche in relazione alle funzionalità erogate dai sistemi di monitoraggio esposte nel capitolo precedente. Verranno poi formalizzate le funzionalità dell applicazione mediante i diagrammi dei casi d uso. III Capitolo: Progettazione dell applicazione Nel terzo capitolo verrà affrontata la progettazione dell applicazione, prima dal punto di vista architetturale e successivamente nelle varie componenti costituenti il sistema, con particolare riguardo al database, ai package e alle classi Java ed alle jsp, anche utilizzando i diversi formalismi UML. IV Capitolo: Installazione e Configurazione Nel quarto capitolo verrà illustrata la procedura di installazione e configurazione dell applicazione soffermandosi in particolare sulla configurazione dell Application Server Tomcat e del DBMS MySQL. V Capitolo: Uso sperimentale e validazione Nel quinto capitolo si valuteranno le funzionalità offerte dall applicazione nel monitoraggio di una infrastruttura Cloud presso l Università di Cagliari. VI Capitolo: Conclusioni e sviluppi futuri Nell ultimo capitolo verranno analizzati gli obiettivi preposti, l eventuale raggiungimento degli stessi ed elencate una serie di ulteriori funzionalità che sarebbe utile aggiungere all applicazione. 7
9 I. Cloud Computing e Monitoraggio I. Cloud Computing e Monitoring I.1. Introduzione In questo capitolo verrà approfondito da un punto di vista tecnico il Cloud Computing ed il problema del monitoraggio, introducendo inizialmente le caratteristiche principali per poi definire quali sono ad oggi i modelli maggiormente riconosciuti e, infine, esporre il problema del monitoraggio delle risorse e le funzionalità di alcuni sistemi di monitoraggio disponibili sul mercato. I.2. Cloud Computing Il Cloud Computing [MG11], conosciuto con l'abbreviazione Cloud, è un modello per condividere un set di risorse computazionali (rete, server, storage, applicazioni ecc.) in maniera conveniente, configurabile, rapida e che necessita di una minima interazione provider-utente finale. Sfrutta in particolare i vantaggi derivanti dall utilizzo dalle reti distribuite, utilizza risorse virtualizzate e i protocolli internet. Affinché si possa parlare di Cloud computing è necessario che: l utente abbia la possibilità, unilaterale, di approvvigionarsi di risorse computazionali automaticamente, senza che ci sia la necessità di una interazione umana con il provider di servizi Cloud. le risorse siano accessibili via rete mediante standard che consentono l utilizzo di piattaforme client eterogenee (smartphone, laptop ecc.). le risorse computazionali del provider siano messe in comune per servire più utenti, utilizzando uno schema multi-cliente, che gestisca risorse fisiche e virtuali, dinamicamente, in accordo con le indicazioni degli utenti. le risorse siano in grado di essere allocate rapidamente ed in modo flessibile, in alcuni casi automaticamente, per adattarsi, velocemente, alle variabili richieste degli utenti. i sistemi controllino automaticamente ed ottimizzino l utilizzo delle risorse mediante strumenti di misura basati su adeguati livelli di astrazione. L utilizzo delle risorse deve poter essere monitorato, controllato ed elaborato, sia dal provider del servizio sia dagli utenti finali. Citando l ENISA (European Network and Information Security Agency) il Cloud Computing [ENI12] è un nuovo modo di erogare servizi IT, non una nuova tecnologia. La flessibilità e l efficienza delle architetture Cloud sono rese possibili da meccanismi ormai consolidati quali: Astrazione: il Cloud Computing astrae i dettagli dell implementazione a utenti e sviluppatori; infatti le applicazioni sono in funzione su un sistema fisico che non è specificato; i dati sono contenuti in luoghi non specificati; l amministrazione del sistema è affidata ad altri e gli utenti vi accedono ovunque. 8
10 I. Cloud Computing e Monitoring Virtualizzazione: il Cloud Computing virtualizza i sistemi attraverso un pooling di risorse condivise. I sistemi possono essere distribuiti da una infrastruttura centralizzata. I costi sono stimati in base ai consumi; è attivo il multi-tenancy e le risorse sono facilmente scalabili. Il questa sezione verranno analizzate le due diverse classi di Cloud: quelli basati sui modelli di erogazione, che si riferiscono alla gestione e locazione dell infrastruttura, e quelli basati sui modelli di servizio, che consistono in particolari tipi di servizi accessibili da una piattaforma Cloud. Questa distinzione è stata introdotta dal NIST (National Institute of Standards and Technology) nel novembre 2009 per poi giungere alla versione definitiva, nell ottobre 2011, dopo 15 revisioni. Originariamente infatti, il modello non richiedeva al Cloud di usare un pool di risorse che supportasse il multi-tenancy, proprietà invece richiesta nella definizione finale. Figura I-1: Modelli di Cloud Computing I.2.1. Modelli di Erogazione Sempre richiamando la definizione proposta dal NIST, i sistemi Cloud, secondo i modelli di erogazione, si dividono in: Cloud Pubblico: disponibile per un uso pubblico o per un grande gruppo industriale; il Cloud pubblico è gestito da un provider che offre servizi Cloud ed è accessibile attraverso internet. I servizi possono essere offerti in maniera gratuita, con set di risorse limitate, oppure a consumo. Tra i vantaggi troviamo: una gestione semplice che non prevede un esborso di denaro in quanto hardware, applicazioni e costi di connessione sono a carico del provider, una scalabilità del sistema senza limiti e una migliore gestione delle risorse derivante dal modello on-demand. Cloud Privato: è chiamato anche Cloud interno o Cloud aziendale. Può essere gestito dall impresa stessa o da una di terze parti ed essere ubicata in sede o fuori sede. Offrendo servizi di hosting ad un numero limitato di utenti protetti da sistemi firewall, viene incontro alle organizzazioni che hanno bisogno di un maggiore controllo sui propri dati rispetto a quello che possono ottenere utilizzando un servizio di terze. Cloud Ibrido: combina Cloud privati e pubblici, dove ognuno mantiene la propria identità nonostante sia unito agli altri. Può offrire un accesso ai dati ed alle applicazioni di tipo 9
11 I. Cloud Computing e Monitoring standardizzato o proprietario e viene generalmente offerto con due soluzioni: un provider dispone di un Cloud privato e costituisce una partnership con un provider che gestisce un Cloud pubblico, o viceversa, un provider che gestisce Cloud pubblici costituisce una partnership con un provider che fornisce piattaforme su Cloud privati. Un Cloud Ibrido è un ambiente di Cloud computing in cui l organizzazione fornisce e gestisce alcune risorse inhouse mentre altre vengono esternalizzate. Idealmente l approccio ibrido consente alle aziende di trarre vantaggio dalla scalabilità e dal rapporto costo-beneficio che un ambiente di Cloud pubblico offre senza esporre applicazioni critiche e dati privati all accesso di terze parti, rendendoli quindi meno vulnerabili. Cloud Comunitario: l infrastruttura è condivisa da più organizzazioni e supporta una comunità specifica che ne condivide alcuni ambiti (ad esempio, la mission, i requisiti di sicurezza, le policy e le considerazioni di conformità). Esso può essere gestito dalle organizzazioni stesse o da una terza parte e può essere on-premise o off-premise. Un Cloud privato quindi differisce da uno pubblico non solo per il fatto che viene usato abitualmente sfruttando reti interne, garantendo quindi un maggior livello di sicurezza, ma anche perché viene utilizzato da centinaia a migliaia di nodi, anziché da decine di migliaia come avviene in quello pubblico. Si contrappone un approccio single-tenancy del Cloud privato a quello multi-tenancy del Cloud pubblico e il modello di pricing si basa sul concetto di capacità utilizzata e non su quello di uso. Il Cloud ibrido invece include caratteristiche di entrambe: un azienda potrebbe decidere di mantenere nel Cloud privato applicazioni del core business e dati sensibili, mentre in quello pubblico i servizi non core meno vulnerabili dal punto di vista della sicurezza. I.2.2. Modelli di Servizio Figura I-2: Modello SPI Nei modelli di servizio le infrastrutture Cloud sono una espressione della tipologia di infrastruttura che viene erogata. Differenti provider offrono Cloud con differenti servizi associati. Tutti i modelli di servizio assumono la forma: Xaas (<Something> as a Service). I tre modelli descritti nel modello NIST, conosciuti come modello SPI sono: Infrastructure as a Service: mette a diposizione virtual machine, storage virtuale, infrastrutture virtuali e altre risorse hardware di cui i clienti possono usufruire. Il provider che fornisce il servizio IaaS gestisce tutta l infrastruttura mentre il cliente si occupa del suo sviluppo che include: 10
12 I. Cloud Computing e Monitoring il sistema operativo, le applicazioni e le interazioni utente-macchina. Le sue caratteristiche includono: un servizio di tipo Utility Computing, gestione automatica delle attività di tipo amministrativo, scalabilità, virtualizzazione dei desktop, connettività internet. Platform as a Service: offre virtual machine, sistemi operativi, applicazioni, servizi, framework di sviluppo e strutture di controllo. Il cliente può sviluppare le sue applicazioni utilizzando l infrastruttura Cloud o le applicazioni programmate per mezzo di linguaggi e strumenti supportati dal provider. Il provider gestisce l infrastruttura Cloud, i sistemi operativi ed il software di accesso. Il cliente invece installa e gestisce le applicazioni che sviluppa. Tra i vantaggi troviamo: la possibilità di aggiornare o cambiare frequentemente le caratteristiche del sistema operativo; diversi team di sviluppo, distribuiti geograficamente, possono lavorare insieme ad un progetto; i servizi possono essere ottenuti da diverse fonti che attraversano i confini nazionali. I costi iniziali e di mantenimento possono essere ridotti grazie all utilizzo dei servizi di un infrastruttura gestita da un solo gestore rispetto all utilizzo di servizi offerti da diversi hardware che spesso soffrono di problemi di compatibilità. Di contro si potrebbe incappare nel rischio di lock-in quando si usano servizi o linguaggi di sviluppo proprietari. Software as a Service: è un ambiente completamente operativo con applicazioni, sistema gestione e interfaccia utente. Le applicazioni sono offerte al cliente attraverso una interfaccia (solitamente un web browser) e la competenza dell utente è limitata all inserimento, alla gestione e all interazione dei dati. Tutto ciò che utilizza a partire dall applicazione per arrivare all infrastruttura è a carico del provider. Tra i benefici di una soluzione di questo genere troviamo: una semplice amministrazione, aggiornamenti automatici, un sistema di patch automatici forniti dal provider del servizio e una totale compatibilità derivante dall utilizzo dalla stessa versione del software per tutti gli utenti del sistema, quindi una facile collaborazione e un accessibilità globale garantita dall utilizzo dei servizi web. Figura I-3: Confronto modelli SPI I.2.3. Vantaggi e svantaggi del Cloud Vantaggi: 11
13 I. Cloud Computing e Monitoring Per quanto riguarda i benefici derivanti dall utilizzo di un modello Cloud, riprendiamo la definizione di Cloud Computing del NIST nella quale sono descritte le cinque principali caratteristiche: Richiesta Self-service: un utente può gestire le risorse computazionali senza la necessità di interagire con il personale del provider. Ampio accesso dalla rete: l accesso al Cloud avviene dalla rete ed è garantito da una moltitudine di piattaforme differenti quali smartphone, laptop, ecc. Pool di risorse: i sistemi fisici e virtuali sono allocati e riallocati dinamicamente quando necessario. Le macchine fisiche vengono nascoste all utente al quale vengono invece presentate come: virtual machine, storage, memoria, capacità computazionale, connettività ecc. Flessibilità: in ogni momento si può richiedere un upgrade o un downgrade del sistema in base alle esigenze del cliente che può acquistare risorse in qualunque momento e in ogni quantità. Servizio Misurato: il provider fornisce dei tagli specifici di ogni servizio offerto in modo che il cliente possa sempre far riferimento ad una metrica conosciuta, di solito definita come: quantità di storage usato, numero di transazioni, banda, capacità computazionale utilizzata, ecc. A queste cinque caratteristiche principali si possono affiancare altre caratteristiche quali: Costi Ridotti: grazie alla maggiore efficienza delle infrastrutture Cloud spesso si ha una forte riduzione dei costi totali. Comodità d uso: in relazione al servizio che viene offerto si potrebbe riuscire a implementare il servizio senza la necessità di utilizzare hardware o software con licenza. Qualità del servizio: La QoS viene offerta per contratto dal provider. Normalmente i maggiori vantaggi nell adozione del Cloud si ritrovano nelle piccole organizzazioni rispetto a quelle più grandi, perché queste ultime possono dotarsi di un personale IT interno all azienda che sviluppa in loco soluzioni software adatte alle proprie necessità. Svantaggi: I benefici del Cloud computing sono innumerevoli, ma presenta anche alcuni svantaggi. Le applicazioni e i servizi offerti in the Cloud spesso non sono personalizzabili secondo le proprie esigenze e sono limitanti rispetto ad un software sviluppato in-house. Un altro problema del Cloud è quello della latenza legato alla connettività: se la propria applicazione richiede il trasferimento di una grande mole di dati, probabilmente il Cloud non è la scelta migliore da adottare poiché i benefici portati verrebbero in gran parte offuscati dai tempi legati al trasferimento dati. Se il Cloud si estende a più nazioni allora potrebbe sorgere il problema delle differenti giurisdizioni. Infine le tematiche sulla privacy e sulla sicurezza non devono essere sottovalutate. 12
14 I. Cloud Computing e Monitoring Figura I-4: Sfruttamento dei vantaggi economici del Cloud I.3. Cloud basati su VMware vsphere VMware vsphere [VMW11] è il nome della suite di programmi e funzionalità fornite da VMware per la virtualizzazione di infrastrutture Cloud. Tra i prodotti e le funzionalità che la compongono troviamo: ESX e ESXi Virtual Simmetric Multi-Processing(vSMP) Virtual Machine File System (VMFS) vcenter vmotion Distributed Resource Scheduler (DRS) High Availability (HA) Fault Tolercance (FT) ESX ed ESXi [VMW09] [VMW08] sono entrambi hypervisor di tipo nativo, condividono lo stesso motore di virtualizzazione e forniscono lo stesso insieme di funzionalità ad esclusione della Service Console. ESXi infatti non dispone di Service Console, una console basata su Linux, che fornisce un insieme di comandi per interagire con il vmkernel. L hypervisor a sua volta è suddiviso in due componenti: Virtual Machine Monitor e vmkernel. Il vmkernel è il cuore del sistema e gestisce le principali funzioni del sistema di virtualizzazione come la pianificazione della CPU (scheduling), la gestione della memoria di elaborazione dati provenienti dai virtual switch. Ogni virtual machine viene gestita da un Virtual Machine Monitor separato, situato all interno dell hypervisor, che ne soddisfa le richieste di CPU, memoria e I/O. 13
15 I. Cloud Computing e Monitoring Figura I-5: Infrastruttura di VMware vsphere I.3.1. Gestione delle risorse ESXi e ESX consentono di gestire e limitare la quantità di risorse da assegnare alle virtual machine ospitate al loro interno attraverso l utilizzo dei seguenti meccanismi: Reservation: consente di riservare un quantitativo minimo di risorse senza le quali una virtual machine non può essere avviata. Nel caso della RAM questa deve essere fisicamente presente e non può essere fornita attraverso swap su disco. Limit: consente di limitare l utilizzo delle risorse quali CPU e RAM. Share: parametro concettualmente posto tra Reservation e Limit; indica una percentuale che rappresenta la priorità di accesso alle risorse assegnata ad una virtual machine. I.3.2. Virtual SMP Attraverso Virtual SMP [VMW08] una virtual machine ha la possibilità di sfruttare più processori fisici per portare a termine task particolarmente pesanti. Dalla versione ESX 2.1 è possibile sfruttare l Hyper-Threading [VMW11c]. L Hyper-Threading è una tecnologia Intel che permette di sfruttare un processore per l esecuzione contemporanea di due thread distinti, duplicando al suo interno alcune unità di elaborazione maggiormente utilizzate, al fine di poter eseguire simultaneamente alcune operazioni grazie a tecniche di multithreading. Un singolo core è in grado di gestire due thread in contemporanea; quando le istruzioni di un thread rimangono bloccate nella pipeline il processore procede ad elaborare un secondo thread al fine di mantenere le unità di elaborazione sempre attive. 14
16 I. Cloud Computing e Monitoring Figura I-6: vsmp esempio di assegnazione dei processori alle macchie virtuali Abilitando l Hyper-Threading vsphere permetterà di vedere un quantitativo di processori logici da assegnare alle macchine virtuali pari al doppio di quelli fisici. I.3.3. Virtual Machine File System Dal punto di vista del file system una virtual machine è costituita da un insieme di file: disco, swap, configurazione ecc. Questi file possono essere allocati localmente sui server ESX oppure in maniera centralizzata utilizzando sistemi SAN (Storage Area Network) e NAS (Network Attached Storage). Quando lo spazio dove risiedono le virtual machine è centralizzato, è necessario un meccanismo di concorrenza. Tale meccanismo è garantito dall utilizzo del file system concorrente VMFS [VMW09c] [VMW08]. Attraverso questo file system, più server ESX possono accedere in maniera concorrente alle risorse presenti all interno di uno stesso spazio di memorizzazione condiviso. Un sistema di locking sui metadati permette ad un solo server ESX di avviare una virtual machine; in caso di guasto di una virtual machine viene gestito in maniera automatica un sistema di rilascio del lock per sbloccare le risorse. VMFS permette la creazione di file fino a una soglia dipendente dalla versione utilizzata. VMFS è la base di partenza per le funzionalità più avanzate quali vmotion e DRS. VMFS fornisce anche funzionalità e meccanismi di consistenza e recovery tipici di un file system distribuito di classe enterprise. Figura I-7: Architettura VMFS 15
17 I.3.4. vcenter I. Cloud Computing e Monitoring Attraverso vcenter [VMW11] [VMW08] è possibile gestire in maniera centralizzata i diversi aspetti relativi all infrastruttura. vcenter è un componente necessario per poter usufruire degli altri componenti che forniscono funzionalità avanzate quali Fault Tolerance, DRS, vmotion Storage ecc. In particolare vcenter consente: La gestione in maniera centralizzata dei componenti dell infrastruttura e di avere un sistema centralizzato di autenticazione. Il monitoraggio delle risorse (CPU, storage, memoria) dei componenti dell infrastruttura quali virtual machine, host, cluster e datastore. La pianificazione di operazioni di management e l inserimento di allarmi. L aggiunta di nuove virtual machine mediante l utilizzo dei template. La creazione di cluster di server nei quali le risorse globali sono la somma delle risorse di ogni host. Ogni virtual machine appartenente ad un cluster potrà utilizzare tutte le risorse del cluster in maniera trasparente. La creazione di insiemi di risorse (resource pool) mediante le quali è possibile specificare un limite massimo di risorse per ogni insieme definito. Le virtual machine all interno di un pool potranno utilizzare esclusivamente tali risorse. Figura I-8: Architettura VMware vcenter I.3.5. vmotion/drs/ha/ft vmotion [VMW11e] consente di spostare una virtual machine da un host ad un altro senza fermare la stessa. vmotion consente di spostare una o più virtual machine da uno storage a un altro senza interruzioni. La caratteristica principale è la possibilità di modificare le caratteristiche delle virtual machine a caldo, cioè a macchina accesa. In sostanza è possibile aggiungere RAM, CPU e hardware, dischi compresi, senza prima spegnere la virtual machine. Questa caratteristica deve essere supportata dal sistema operativo e comunque non è possibile sottrarre risorse ad una virtual machine accesa. Di seguito le caratteristiche principali: 16
18 I. Cloud Computing e Monitoring - Assegnazione di hardware fisico alle virtual machine. - Virtual Switch distribuito, plugin di terze parti come software Cisco. - Vshield zones: Creare delle aree tipo DMZ a cui assegnare regole di firewalling; le virtual machine inserite in queste aree assumeranno in automatico le regole di firewalling. - License server non più necessario. - Thin provisioning (virtual machine con dischi dinamici, senza assegnazione dell intero spazio occupato dal disco). - Modifica delle dimensioni del disco a virtual machine accesa. Incremento della dimensione del datastore a virtual machine accese. HA (High Availability) [VMW11b]: permette il riavvio automatico della virtual machine su un altro host, in caso di crash dell host che la gestiva. Possibilità di monitorare la virtual machine per intercettare eventuali crash del sistema operativo. DRS (Distributed Resource Scheduler) [VMW11c]: Gestione automatica del carico e gestione avanzata del risparmio energetico. vsphere può gestire in automatico il bilanciamento del carico sui vari host, spostando le virtual machine su host meno carichi. E inoltre possibile programmare lo spegnimento di alcuni host e lo spostamento automatico delle virtual machine su altri host, in modo che l infrastruttura consumi meno energia elettrica. FT (Fault Tolerance) [VMW11b]: Mirroring di una virtual machine. Abilitando questa funzione, vsphere duplicherà la virtual machine su un altro host, tenendole accese entrambe. La seconda delle quali non viene chiamata in causa durante l utilizzo normale, ma è una vera e propria copia funzionante della prima. In caso di crash dell host che ospita la prima, i servizi continuano a funzionare regolarmente poiché la seconda è già accesa e funzionante. Difetto di questa caratteristica rispetto all HA è la duplicazione dell intera virtual machine, per cui doppia occupazione di spazio. Se il server che ospita la virtual machine va giù e quindi la seconda lavora al posto della prima, vsphere individua in automatico un altro host su cui copiare la virtual machine per continuare ad avere la fault tolerance. I.4. Il monitoraggio del Cloud Per mantenere i livelli di servizio desiderati il monitoraggio degli elementi del Cloud è un fattore imprescindibile, innanzitutto per un corretto funzionamento dell attività aziendale. Lo stato di salute dei componenti hardware, la saturazione delle risorse di calcolo, l occupazione dei dischi e il controllo sullo spazio disponibile nei datastore, sono solo alcuni esempi di controlli che possono essere effettuati dai servizi di monitoraggio. Mantenere sotto controllo lo stato di tutta l infrastruttura è fondamentale: ad esempio server che saturano le risorse di calcolo, spazio su disco insufficiente, picchi nell utilizzo della RAM sono elementi critici per cui è prioritario garantire il monitoraggio degli stessi al fine di prevenire i blocchi dell intera infrastruttura IT. Una volta individuata la criticità è necessario che si attivi un sistema di alerting via o SMS al fine di permettere una maggiore rapidità nell intervento di ripristino e, di conseguenza, una riduzione dei tempi di down dei sistemi. L utilizzo di soglie di pre-alerting oltretutto permette di evitare, o di ridurre al minimo, l impatto economico di un eventuale crash del sistema. Nei seguenti paragrafi verranno esposte le caratteristiche e le peculiarità dei sistemi di monitoraggio di infrastrutture Cloud presenti sul mercato, con particolare attenzione a quelli orientati ai Cloud basati su VMware vsphere. 17
19 I.4.1. VMware vsphere Client/Web Client I. Cloud Computing e Monitoring VMware vsphere Client [VMW11] è il prodotto lato client fornito da VMware per l accesso alle funzionalità dei server vcenter e degli host ESXi (accesso disponibile solo con la versione Client e non Web client). vsphere Client utilizza le VMware API per accedere al vcenter Server e agli host ESXi. Dopo la fase di autenticazione con il server inizia una sessione e l utente ha visibilità di tutte le risorse disponibili nell infrastruttura. Mediante la versione Web browser l utente non ha la necessità di installare il cliente software specifico potendo utilizzare un browser web con l aggiunta di alcuni plugin quali flash player. Architettura vsphere Client utilizza una architettura client/server essendo il client di default dell infrastruttura, anche nella versione web browser. La gestione degli utenti è quella nativa di vcenter per cui ad ogni utente dell infrastruttura è assegnato un set di risorse sulle quali può operare. Monitoraggio delle risorse Per mezzo del client e del web client è possibile accedere al tab performance contenente tutti i parametri del datacenter anche in forma grafica. I set di parametri osservati differiscono in base al tipo di risorsa e sono automaticamente monitorati durante l arco di funzionamento del software e dal momento in cui un utente aggiunge un componente all infrastruttura. Nessuna operazione è richiesta per avviare il monitoraggio di un singolo parametro. Il software consente il monitoraggio [VMW11d] delle seguenti risorse: Virtual Machine Host ESX(i) Resource Pool Cluster Datastore Datacenter Al fine di evitare che il database del sistema cresca troppo velocemente il sistema prevede che i parametri monitorati vengano memorizzati nel vcenter Server database, andando però a perdere di risoluzione via via che si va indietro nel tempo. Periodicamente quindi un algoritmo di vcenter si occupa di ridurre la quantità di dati di performance memorizzati. Ad esempio i parametri monitorati un anno prima vengono conservati con campionamento giornaliero. Più precisamente la situazione è la seguente: 18
20 I. Cloud Computing e Monitoring Interval Duration Save For 5 Minutes 1 Day 30 Minutes 1 Week 2 Hours 1 Month 1 Day 1 Year Tabella I-1: Campionamento dei dati di performance storici di VMware vsphere Su queste risorse il software è in grado di elaborare alcune statistiche quali ad esempio le virtual machine che in un determinato arco di tempo consumano più risorse. In aggiunta è presente un sistema di Alerting che si occupa di confrontare lo stato dei parametri del sistema con quelli impostati dall amministratore. In caso di allarme, il sistema può essere configurato per l invio di una notifica . Gli allarmi possono essere applicati ai componenti monitorati. E disponibile anche un semplice sistema di Reporting che consente la generazione di report grafici, riferiti a specifici archi temporali, sui alcuni parametri monitorati dal software. I.4.2. Veeam ONE Veeam One [VEE13] è un prodotto software per il monitoraggio delle infrastrutture Cloud basate su VMware vsphere e Microsoft Hyper-V. Il prodotto prevede una versione freeware con limitazioni e una completa a pagamento. Le maggiori limitazioni della versione freeware sono le seguenti: L opzione di installazione distribuita non è disponibile. La console di monitoraggio mostra i dati degli ultimi 7 giorni ed i report sulle prestazioni sono limitati alle 24 ore precedenti. Opzioni di personalizzazione non disponibili, i messaggi inviati non includono tutti i dettagli sull allarme, quali l orario e i componenti oggetti interessati. Resoconto dei dati di performance di CPU, memoria, rete e heartbeat per host, virtual machine e datastore limitato alle 24 ore precedenti. Reportistica sulle virtual machine sottoutilizzate o sovrautilizzate limitato a 3 virtual machine. Architettura Veeam One implementa una architettura client/server ed è supportato da un modulo di gestione degli utenti mediante il quale l amministratore è in grado di autorizzare l accesso alle risorse in modo distinto per ogni utente. 19
21 I. Cloud Computing e Monitoring Figura I-9: Architettura Veeam One Monitoraggio delle risorse Il software consente il monitoraggio di tutti i parametri del datacenter mediante grafici 2d e mediante tabelle. I set di parametri osservati differiscono in base al tipo di risorsa e sono automaticamente monitorati durante l arco di funzionamento del software e dal momento in cui un utente aggiunge un componente all infrastruttura. Nessuna operazione è richiesta per avviare il monitoraggio di un singolo parametro. Il software consente il monitoraggio delle seguenti risorse: Server vcenter Host ESX(i) Resource Pool Virtual Machine Datastore Su queste risorse il software è in grado di elaborare alcune statistiche quali ad esempio le virtual machine che in un determinato arco di tempo consumano più risorse o quali host risultano sotto utilizzati. In aggiunta a queste caratteristiche è presente un sistema di Alerting che si occupa di confrontare lo stato dei parametri del sistema con quelli impostati dall amministratore. In caso di allarme il sistema può essere configurato per l invio di una notifica o per l invio di messaggi SNMP. Gli allarmi possono essere applicati agli stessi componenti monitorati. Un altra caratteristica utile è la possibilità di testare gli allarmi con i dati storici presenti nel database al fine di conoscere orientativamente l efficacia dell allarme. E disponibile anche un sistema di Reporting che consente la generazione di report grafici, riferiti a specifici archi temporali, sui parametri monitorati dal software. Tali report possono essere programmati ed inviati via oppure visualizzati sul client in tempo reale. I report possono essere esportati nel formato html o xls. 20
22 I.4.3. VMware vfabric Hyperic I. Cloud Computing e Monitoring VMware vfabric Hyperic [VMW13] è un componente del prodotto VMware vcenter Operations Management Suite, incluso nelle edizioni Advanced ed Enterprise. Disponibile anche come sistema stand-alone. Consente di monitorare, analizzare e controllare tutti i componenti di un datacenter comprese le applicazioni in funzione all interno delle macchine virtuali. Architettura VMware vfabric Hyperic implementa una architettura client/server mediante la quale più utenti, con credenziali proprie, possono accedere alle funzionalità offerte. I componenti principali del software sono: HQ Agent che si occupano di recuperare ed inviare i valori dei parametri monitorati dalle virtual machine su cui sono installati. Gli Agent vanno installati sia sui server vcenter sia sulle virtual machine. HQ Server che si occupa di ricevere i dati dagli HQ Agent e memorizzarli nel database di HQ. Figura I-10: Architettura Hyperic Server 21
23 I. Cloud Computing e Monitoring Figura I-11: Archietttura Hperic Agent Insieme al software è inoltre distribuito un plugin di sviluppo mediante il quale è possibile sviluppare Agent personalizzati per componenti hardware non ancora supportati o per estendere quelli esistenti. E inoltre possibile estendere l interfaccia grafica e sviluppare script in grado di automatizzare le procedure più frequenti o interfacciare HQ con software terzi. Monitoraggio delle risorse Le caratteristiche principali per quanto riguarda il monitoraggio sono: Analisi prestazionale e di utilizzo delle virtual machine. Analisi delle prestazioni della rete (es. pacchetti trasmessi e ricevuti ecc.). Monitoraggio hardware degli host (es. utilizzo della CPU, della RAM, ecc.). Monitoraggio delle risorse hardware delle virtual machine (es. CPU disponibile e usata, memoria primaria virtuale ecc. ). Monitoraggio dei componenti di storage (es. spazio disponibile e utilizzato ecc. ). Storico dei parametri monitorati e degli allarmi generati. E disponibile un sistema di Alarming mediante il quale, impostando delle opportune regole per un componente o un set di essi, informare gli utenti dei problemi che si stanno verificando nell infrastruttura. Quando un alert è generato, a seconda della configurazione, viene eseguita una o più delle seguenti azioni: Presentazione a video dell alert. Notifica via SMS, , NMs Trap. Esecuzione di uno script personalizzato in grado di inviare una notifica ad altri eventuali software. 22
24 I. Cloud Computing e Monitoring Invio di una serie di notifiche, per un determinato periodo di tempo, ad un gruppo di utenti finché l allarme non viene riconosciuto. E disponibile inoltre la possibilità di creare report grafici sui parametri monitorati dal software. Questi report possono essere programmati per l invio agli utenti via o visualizzati nei client. I.4.4. Riepilogo delle caratteristiche dei sistemi di monitoraggio Per quanto riguarda le caratteristiche generali dei software di monitoraggio esposti abbiamo la situazione rappresentata nella seguente tabella: Software/Caratteristiche vsphere Client/Web Client Veeam ONE VMware vfabric Hyperic Architettura Client/Server si si si Accesso via Web browser Si (nella versione web client) no si Gestione utenti si si si Assegnazione risorse agli utenti si si si Sonde software no no si Autodiscovery dei componenti si si si Plugin development si no si Tabella I-2: Comparazione delle caratteristiche generali dei software Dove le caratteristiche riportate rappresentano rispettivamente: Architettura Client/Server: indica l utilizzo di una architettura di tipo Client/Server in cui il Server si occupa di monitorare i componenti del Cloud ed il client di mostrare agli utenti le funzionalità offerte attraverso una GUI. Accesso via Web browser: indica la possibilità di accedere ai servizi forniti dal server per mezzo di un web browser. Gestione utenti: possibilità di creazione di più utenti per l accesso al software di monitoraggio; Assegnazione risorse agli utenti: nel caso di supporto di più utenti indica la capacità di assegnare il monitoraggio dei componenti in maniera distinta agli utenti. Sonde software: indica la necessità di installare sistemi software, dette sonde o agent, per il monitoraggio dei componenti. 23
25 I. Cloud Computing e Monitoring Autodiscovery dei componenti: indica la capacità di riconoscere la struttura e i componenti dell infrastruttura. Plugin development: Indica la possibilità del software di aggiungere nuove funzionalità per mezzo di plugin. Per quanto riguarda le caratteristiche di monitoraggio, il riepilogo delle funzionalità offerte dai sistemi esposti è riassunto nella seguente tabella: Software/Caratteristiche Monitoraggio risorse hardware per VM Monitoraggio risorse hardware per HS Monitoraggio risorse hardware per CCR Monitoraggio risorse hardware per DS Monitoraggio risorse hardware per DC Statistiche sulle performance (max/min nel periodo) Statistiche sulle performance (valore medio/deviazione standard nel periodo) Visualizzazione proprietà degli elementi vsphere client/vsphere server (ESXi/vCenter) Veeam ONE VMware vfabric Hyperic si si si si si si si si no si si no si si no no si si no no Solo valore medio si si si Sistema di Alerting si si si Notifica /Sms si si si Sistema di Reporting per elemento si si si Reporting con integrazione degli elementi associati parzialmente parzialmente parzialmente Database con storico dati parzialmente si parzialmente Tabella I-3: Comparazione delle caratteristiche di monitoraggio dei software 24
26 dove le caratteristiche riportate rappresentano rispettivamente: I. Cloud Computing e Monitoring Monitoraggio risorse hardware delle VM: indica la capacità di monitorare il consumo delle risorse hardware quali CPU, RAM, Storage ecc., dei componenti di tipo Virtual Machine del Cloud. Monitoraggio risorse hardware degli HS: indica la capacità di monitorare il consumo delle risorse hardware quali CPU, RAM, Storage ecc., dei componenti di tipo Host System del Cloud. Monitoraggio risorse hardware per CCR: indica la capacità di monitorare il consumo delle risorse hardware quali CPU, RAM ecc., dei componenti di tipo Cluster del Cloud. Monitoraggio risorse hardware per DS: indica la capacità di monitorare il consumo delle risorse hardware quali la capacità di storage dei componenti di tipo Datastore del Cloud. Monitoraggio risorse hardware per DC: indica la capacità di monitorare il consumo delle risorse hardware quali CPU, RAM, Storage ecc., dell intero Datacenter. Statistiche sulle performance (max/min nel periodo): indica la capacità del sistema di calcolare i valori massimi e minimi, assunti delle metriche di performance, in un determinato arco temporale. Statistiche sulle performance (valore medio/deviazione standard nel periodo): indica la capacità del sistema di calcolare i valori medi e la deviazione standard, associati alle metriche di performance, in un determinato arco temporale. Visualizzazione proprietà degli elementi: indica la possibilità di visualizzare le proprietà relative ai componenti del Cloud quali nome, identificativo all interno del Cloud, stato del componente ecc. Sistema di Alerting: indica se è offerto all utente un sistema di notifica degli allarmi inseriti sui componenti del Cloud. L utente deve quindi avere la possibilità di inserire dei valori soglia sulle metriche di performance, oltrepassati i quali il sistema deve tenere traccia di tale allarme e dei parametri che lo caratterizzano. Notifica /Sms: indica la funzionalità di invio di un messaggio di notifica di un allarme verificatosi, per mezzo di e/o sms. Sistema di Reporting per elemento: indica la possibilità di visualizzare tutte le metriche di performance, relative ad un determinato elemento, per mezzo di grafici di tipo TimeSeries e Istogrammi/Grafici a Torta. Reporting con integrazione degli elementi associati: indica la possibilità di visualizzare il report definito al punto precedente anche con l integrazione degli elementi associati ad un determinato elemento selezionato dall utente. Database con storico dati: Indica la presenza di un database con lo storico dei dati di performance, acquisiti dal software, senza che vi sia perdita di dati nel tempo. 25
27 II. Analisi dell applicazione II. Analisi dell applicazione II.1. Introduzione In questo capitolo verrà affrontata l analisi dei requisiti dell applicazione da progettare e la formalizzazione degli stessi per mezzo dei diagrammi dei casi d uso. II.2. Analisi dei requisiti Nel capitolo precedente si è affrontato il problema del monitoraggio delle risorse hardware di una infrastruttura Cloud e si sono analizzati alcuni tra i più diffusi sistemi di monitoraggio disponibili sul mercato. Dallo studio delle caratteristiche di tali sistemi derivano i seguenti requisiti che l applicazione dovrà rispettare: Architettura Client/Server: tale architettura permette la centralizzazione del sistema di monitoraggio da parte del server e l accesso da diversi client distribuiti. Accesso via web browser: l accesso al server per mezzo di web browser evita l installazione di software specifico nei client. Autodiscovery degli elementi del Cloud: l applicazione dovrà includere la funzionalità di ricerca degli elementi dell inventario del Cloud e la costruzione della struttura gerarchica dell inventario. Monitoraggio degli elementi del Cloud: l applicazione dovrà provvedere al monitoraggio degli elementi del Cloud delle tipologie Virtual Machine, Host System, Cluster Compute Resource, Datastore. Visualizzazione delle proprietà degli elementi del Cloud: l applicazione dovrà consentire la visualizzazione delle proprietà degli elementi del Cloud. Reporting delle metriche e statistiche di performance degli elementi del Cloud e degli elementi associati: l applicazione dovrà consentire la visualizzazione in forma grafica e tabellare delle metriche di performance degli elementi del Cloud e degli elementi associati. In particolare dovranno essere visualizzati l andamento temporale delle metriche nel periodo selezionato dall utente, ed i valori minimi, massimi, medi e la deviazione standard delle metriche di performance associate ad un determinato elemento. Inoltre dovranno essere visualizzati l andamento temporale delle metriche e i valori medi nel periodo selezionato anche per gli elementi associati. Gli elementi sono associati secondo la seguente gerarchia: - Datacenter -> Cluster -> Host System -> Virtual Machine - Datacenter -> Datastore - Cluster -> Host System -> Virtual Machine - Host System -> Virtual Machine - Datastore -> Virtual Machine 26
28 II. Analisi dell applicazione Dati metriche di performance conservati nel tempo: i dati relativi alle metriche di performance dovranno essere persistenti nel tempo. Sistema di alarming e alerting via l applicazione dovrà consentire l attivazione di allarmi e l invio di di alerting. Configurazione del periodo tra due cicli recupero delle metriche: potrà essere impostato il periodo intercorrente tra due cicli di recupero delle metriche di performance in modo da non creare situazioni di overhead nell utilizzo delle risorse del Cloud. Non utilizzo di sonde software per i componenti monitorati: Il sistema di monitoraggio non dovrà prevedere l installazione di sonde software nei diversi elementi del Cloud. Scalabilità dell applicazione: l applicazione dovrà facilmente consentire l aggiornamento delle funzionalità quali l aggiunta di nuove metriche di performance da monitorare ecc. II.3. Casi d uso Dai requisiti precedentemente elencati segue il seguente diagramma dei casi d uso: Figura II-1: Diagramma dei casi d uso Nella seguente tabella è riportato l indice dei casi d uso: 27
29 Identificatore del caso d uso Nome del caso d uso Stakeholder primario Ambito II. Analisi dell applicazione Complessità Priorità 1 Login Amministratore Accesso bassa 1 2 Logout Amministratore Accesso bassa 1 3 Configura Amministratore Configurazione media 1 4 Start monitoring e alarming 5 Stop monitoring e alarming Amministratore Configurazione media 1 Amministratore Configurazione media 1 6 Aggiorna inventario Amministratore Configurazione media 1 7 Seleziona un elemento dell inventario 8 Scelta parametri per visualizzazione metriche statistiche Amministratore Reporting media 1 Amministratore Reporting media 2 9 Visualizza statistiche Amministratore Reporting alta 2 10 Visualizza proprietà Amministratore Reporting media 2 11 Inserimento allarme Amministratore Alarming media 2 12 Visualizza allarmi per un elemento 13 Visualizza riepilogo allarmi Amministratore Alarming media 2 Amministratore Alarming media 2 14 Elimina allarme Amministratore Alarming Media 2 Figura II-2: Indice dei casi d uso Di seguito le specifiche dettagliate dei singoli casi d uso: Specifiche del caso d uso Login : Elemento del diagramma Numero 1 Applicazione Nome Descrizione Attore primario Pre condizioni Descrizione Sistema di monitoring Login L amministratore accede al sistema dopo aver inserito le credenziali di accesso Amministratore L amministratore è in possesso delle credenziali di accesso pre 28
30 II. Analisi dell applicazione impostate nel sistema Trigger Flusso principale Flusso alternativo Nessuno Se le credenziali sono corrette l amministratore accede al sistema Se le credenziali sono errate verrà notificato l errore e l amministratore potrà inserire nuovamente le credenziali Figura II-3: Use Case Login Specifiche del caso d uso Logout : Elemento del diagramma Descrizione Numero 2 Applicazione Sistema di monitoring Nome Logout Descrizione L amministratore esegue il logout dal sistema Attore primario Amministratore Pre condizioni L amministratore ha eseguito un login al sistema Trigger Time out Flusso principale L amministratore esegue il logout dal sistema Flusso alternativo Nessuno Figura II-4: Use Case Logout Specifiche del caso d uso Configura : Elemento del diagramma Numero 3 Applicazione Nome Descrizione Attore primario Pre condizioni Trigger Flusso principale Flusso alternativo Descrizione Sistema di monitoring Configura L amministratore accede alla pagina di configurazione dell applicazione ed eventualmente ne modifica le impostazioni Amministratore L amministratore ha eseguito un login al sistema Nessuno L amministratore accede alla pagina di configurazione dell applicazione ed eventualmente ne modifica le impostazioni salvandole. L applicazione mostra un messaggio di conferma dell operazione. Nessuno Figura II-5: Use Case Configura 29
31 Specifiche del caso d uso Start monitoring e alarming : Elemento del diagramma Numero 4 Applicazione Nome Descrizione Attore primario Pre condizioni Trigger Flusso principale Flusso alternativo Descrizione Sistema di monitoring Start monitoring e alarming II. Analisi dell applicazione L amministratore avvia il monitoring e alarming del Cloud Amministratore L amministratore ha eseguito un login al sistema Nessuno Figura II-6: Use Case Start monitoring e alarming L amministratore avvia il monitoring e alarming del Cloud. L applicazione mostra un messaggio di conferma. Se il monitoring e alarming è già attivo il sistema mostra un messaggio di notifica Specifiche del caso d uso Stop monitoring e alarming : Elemento del diagramma Numero 5 Applicazione Nome Descrizione Attore primario Pre condizioni Trigger Flusso principale Flusso alternativo Descrizione Sistema di monitoring Stop monitoring e alarming L amministratore arresta il monitoring e alarming del Cloud Amministratore L amministratore ha eseguito un login al sistema Nessuno Figura II-7: Use Case Stop monitoring e alarming L amministratore arresta il monitoring e alarming del Cloud. L applicazione mostra un messaggio di conferma. Se il monitoring e alarming è già arrestato il sistema mostra un messaggio di notifica Specifiche del caso d uso Aggiorna inventario : Elemento del diagramma Descrizione Numero 6 Applicazione Sistema di monitoring Nome Aggiorna inventario 30
32 II. Analisi dell applicazione Descrizione Attore primario Pre condizioni Trigger Flusso principale Flusso alternativo L amministratore chiede l aggiornamento dell inventario Amministratore L amministratore ha eseguito un login al sistema Nessuno L amministratore chiede l aggiornamento dell inventario Nessuno Figura II-8: Use Case Aggiorna inventario Specifiche del caso d uso Seleziona un elemento dell inventario : Elemento del diagramma Numero 7 Applicazione Nome Descrizione Attore primario Pre condizioni Trigger Flusso principale Flusso alternativo Descrizione Sistema di monitoring Seleziona un elemento dell inventario L amministratore seleziona un elemento dell inventario del Cloud Amministratore L amministratore ha eseguito un login al sistema Nessuno L amministratore, navigando nella struttura ad albero dell inventario, seleziona un elemento Nessuno Figura II-9: Use Case Seleziona un elemento dell inventario Specifiche del caso d uso Scelta parametri per visualizzazione metriche statistiche : Elemento del diagramma Numero 8 Applicazione Nome Descrizione Attore primario Pre condizioni Trigger Flusso principale Descrizione Sistema di monitoring Scelta parametri per visualizzazione metriche statistiche L amministratore seleziona i parametri per la visualizzazione delle metriche e statistiche di performance Amministratore L amministratore ha eseguito un login al sistema. L amministratore ha selezionato un elemento dell inventario del Cloud Nessuno L amministratore seleziona l arco temporale (in termini di date o ultimo periodo), le eventuali tipologie di elementi associati all elemento precedentemente selezionato, l ordinamento nei 31
33 II. Analisi dell applicazione grafici, il numero di valori da graficare negli istogrammi e nei pie chart Flusso alternativo Nessuno Figura II-10: Use Case Scelta parametri per visualizzazione metriche statistiche Specifiche del caso d uso Visualizza statistiche : Elemento del diagramma Numero 9 Applicazione Nome Descrizione Attore primario Pre condizioni Trigger Flusso principale Flusso alternativo Descrizione Sistema di monitoring Visualizza statistiche L amministratore visualizza le metriche e statistiche di performance in base ai parametri richiesti Amministratore L amministratore ha eseguito un login al sistema. L amministratore ha impostato i parametri di richiesta su un elemento selezionato Nessuno L amministratore visualizza i grafici relativi all elemento selezionato e agli eventuali elementi correlati in maniera aggregata Nessuno Figura II-11: Use Case Visualizza statistiche Specifiche del caso d uso Visualizza proprietà : Elemento del diagramma Numero 10 Applicazione Nome Descrizione Attore primario Pre condizioni Trigger Flusso principale Flusso alternativo Descrizione Sistema di monitoring Visualizza proprietà L amministratore visualizza le proprietà dell elemento selezionato Amministratore L amministratore ha eseguito un login al sistema. L amministratore ha selezionato un elemento Nessuno L amministratore visualizza le proprietà dell elemento selezionato, in forma tabellare in una finestra di popup Nessuno Figura II-12: Use Case Visualizza proprietà 32
34 Specifiche del caso d uso Inserimento allarme : Elemento del diagramma Numero 11 Applicazione Nome Descrizione Attore primario Pre condizioni Trigger Flusso principale Flusso alternativo Descrizione Sistema di monitoring Inserimento allarme II. Analisi dell applicazione L amministratore inserisce un allarme per un elemento Amministratore L amministratore ha eseguito un login al sistema. L amministratore ha selezionato un elemento Nessuno L amministratore imposta un allarme su un elemento selezionato indicando i paraetri dell allarme quali la soglia di trigger, la condizione, la metrica e la durata temporale si superamento della soglia Nessuno Figura II-13: Use Case Inserimento allarme Specifiche del caso d uso Visualizza allarmi per un elemento : Elemento del diagramma Numero 12 Applicazione Nome Descrizione Attore primario Pre condizioni Trigger Flusso principale Flusso alternativo Descrizione Sistema di monitoring Visualizza allarmi per un elemento L amministratore visualizza gli allarmi relativi ad un elemento Amministratore L amministratore ha eseguito un login al sistema. L amministratore ha selezionato un elemento Nessuno L amministratore visualizza il riepilogo degli allarmi relativi ad un elemento selezionato Nessuno Figura II-14: Use Case Visualizza allarmi per un elemento Specifiche del caso d uso Visualizza riepilogo allarmi : Elemento del diagramma Descrizione Numero 13 Applicazione Sistema di monitoring 33
35 II. Analisi dell applicazione Nome Descrizione Attore primario Pre condizioni Trigger Flusso principale Flusso alternativo Visualizza riepilogo allarmi L amministratore visualizza l elenco di tutti gli allarmi inseriti Amministratore L amministratore ha eseguito un login al sistema Nessuno L amministratore visualizza l elenco di tutti gli allarmi inseriti Nessuno Figura II-15; Use Case Visualizza riepilogo allarmi Specifiche del caso d uso Elimina allarme : Elemento del diagramma Numero 14 Applicazione Nome Descrizione Attore primario Pre condizioni Trigger Flusso principale Flusso alternativo Descrizione Sistema di monitoring Elimina allarme L amministratore elimina un allarme precedentemente inserito Amministratore L amministratore ha eseguito un login al sistema Nessuno Figura II-16: Use Case Elimina allarme L amministratore elimina un allarme dal riepilogo degli allarmi inseriti L amministratore elimina un allarme dal riepilogo degli allarmi inseriti per un elemento selezionato 34
36 III. Progettazione dell applicazione III. Progettazione dell applicazione III.1. Introduzione In questo capitolo verrà affrontata la progettazione della Webapp (Web Application) facendo uso del linguaggio Java EE, utilizzato secondo il pattern MVC, e del database MySQL. III.2. Architettura della Webapp L applicazione verrà realizzata come Webapp, utilizzando la piattaforma Java EE (Enterprise Edition) [JCEGHMS]. Java EE è una piattaforma di programmazione Java, che fornisce API e un ambiente di runtime, per lo sviluppo e l'esecuzione di software per le imprese, compresi i servizi web, e di grandi applicazioni di rete a più livelli, scalabile, affidabile e sicuro. Una Webapp [SR03] [JCEGHMS] [P05] è definita come una collezione di componenti separati, che possono comunicare fra loro, che costituiscono un sistema eseguibile da un Web Container [JCEGHMS], anche in maniera concorrente. Nell ambito dello sviluppo delle Webapp assume un ruolo importante il pattern MVC (Model View Controller) [LR01] [P05] [BCK03]. Questo pattern prevede la separazione dei dati dalla loro presentazione all utente introducendo un architettura a livelli. I tre livelli, Model, View e Controller, hanno funzionalità distinte tra loro e introducono un disaccoppiamento tra gli stessi. Il principale vantaggio è che la modifica di uno dei tre non implica la modifica degli altri, facilitando il riutilizzo del codice. In particolare abbiamo: Model (Modello): Rappresenta il livello che si occupa della gestione dei dati, tipicamente persistenti su database, e del comportamento. E indipendente dalla specifica rappresentazione dei dati. View (Vista): Ha il compito di consentire all utente di inviare le richieste di elaborazione all applicazione e di visualizzare all utente il risultato di tale elaborazione, anche in funzione del dispositivo di accesso utilizzato. Controller (Controllo): E l'elemento che mette in comunicazione il Model e la View. Riceve le richieste di elaborazione dalla View e indirizza le richieste di elaborazione al Model. Al termine dell elaborazione invia i risultati alla View per la presentazione all utente. 35
37 III. Progettazione dell applicazione Figura III-1: Model, View e Controller Nel contesto della Webapp oggetto della tesi, è utilizzato il Model 2 [TB02] [P05] del pattern MVC, detto anche Servlet Centric, in quanto si basa sull utilizzzo delle Servlet [FJ04] [JCEGHMS]. Il Controller è composto da una Servlet che ha il compito di acquisire le richieste in ingresso dalla rete svolgendo il ruolo di dispatcher, e di inoltrare ciascuna richiesta verso il corrispondente handler per consentirne l elaborazione. Al termine dell elaborazione la Servlet determina a quale pagina JSP restituire il controllo, eseguendo il redirecting. Il Model è costituito da classi definite Manager, con il compito di interfacciare le funzionalità offerte verso lo strato Controller, da classi DAO (Data Access Object) di accesso al database, e da classi contenitore denominate JavaBean, la cui funzione è di incapsulare più oggetti in uno, utilizzate per il passaggio degli stessi tra classi e tra metodi. Il livello View consiste in una serie di pagine JSP che hanno lo scopo di permettere all utente di inoltrare le richieste di elaborazione al sistema e di visualizzare i risultati dell elaborazione. Figura III-2: MVC Model 2 (Servlet - Centric Architecture) 36
38 III. Progettazione dell applicazione Il sistema prevede il seguente scenario di interazione: Il browser invia una richiesta (request) di una risorsa al Web Server. La Servlet in funzione nel Web Server, che svolge la fnzione di Web Container, si occupa della creazione dell'istanza e della gestione della Servlet durante il suo ciclo di vita. Il Web Container, acquisisce la richiesta e individua l handler che dovrà gestirla. Vengono istanziati una serie di JavaBean e invocate le classi Manager e DAO che eseguono le elaborazioni richieste, ed eventualmente interagiscono con il back-end del sistema accedendo al database. Al termine della elaborazione il controllo torna alla Servlet che, sulla base del risultato, determina la View e quindi la pagina JSP verso la quale eseguire il redirecting. Quest ultima estrae i risultati e li visualizza all utente. Infine, la pagina HTML prodotta dalla JSP viene inviata al browser come risposta (response). Struttura della Webapp La Webapp è costituita dai seguenti elementi disposti secondo una struttura gerarchica: Servlet Pagine JSP JavaBean Pagine HTML File multimediali (immagini, suoni, video, ) Applet, fogli di stile (CSS) e file JavaScript All'interno della directory radice (root) è presente la directory WEB-INF, nella quale vengono memorizzate le meta-informazioni della Webapp, al cui interno troviamo le seguenti directory: WEB-INF/classes: contiene i package e le relative classi Java che sono utilizzate all interno dell applicazione. WEB-INF/lib : contiene i file JAR (Java Archive), all interno dei quali ci sono ulteriori classi distribuite nell applicazione. L'ambiente Java consente di distribuire un applicazione Web mediante un unico file WAR (Web Archive), nel quale sono incluse tutte le risorse necessarie per il funzionamento. Configurazione della Webapp Il Web Application Deployment Descriptor [JCEGHMS] è un file XML, denominato web.xml, all interno del quale sono presenti le informazioni di configurazione della Webapp utilizzate dal Web Container nella fase di avvio della stessa. Le informazioni principali che costituiscono il file web.xml sono le seguenti: definizione della Servlet che funziona da Controller e mapping delle richieste. dichiarazione dei parametri iniziali passati alla Servlet in fase di avvio. 37
39 III. Progettazione dell applicazione configurazione delle librerie di tag. elenco dei file di benvenuto dell applicazione (Welcome File List). utilizzo di eventuali filtri per le richieste. Per la definizione della Servlet, viene utilizzato il tag <servlet>, mediante il quale vengono specificate le seguenti informazioni: il nome da assegnare alla Servlet, mediante il quale fare riferimento ad essa nel resto del file (<servlet-name>). la classe che definisce la Servlet (<servlet-class>). Il passo successivo è quello di fare in modo che ogni richiesta venga smistata dal Web Container verso la Servlet specificata. Questa operazione è nota come mapping, in quanto viene eseguita una mappatura fra le tipologie di richieste e la Servlet. Per questo scopo, viene utilizzato il tag <servletmapping> all interno del quale sono specificate le seguenti informazioni : il nome della Servlet a cui inoltrare le richieste (<servlet-name>). elenco delle estensioni che devono avere le richieste per essere inoltrate alla Servlet corretta (<url-pattern>). l utilizzo del tag <taglib> è opzionale dalla versione JSP 2.0, in quanto il Web Container cercherà automaticamente tali librerie nelle directory e sottodirectory /WEB-INF, /META-INF così come nel file JAR. Infine, è possibile specificare un elenco di risorse, solitamente pagine, che il Web Container invia a seguito di una richiesta incompleta. Ciascun file viene definito con il tag <welcome-file>, all interno del blocco <welcome-file-list>. Il file web.xml completo della Webapp è il seguente: <?xml version= 1.0 encoding= ISO ?> <!DOCTYPE web-app PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN > <web-app> <display-name>tesi</display-name> <description>tesi di Laurea - Giuseppe Murtas</description> <context-param> <param-name>filesdir</param-name> <param-value>/resources/</param-value> </context-param> <listener> <listener-class>tesi.servlet.systemlistener</listener-class> 38
40 III. Progettazione dell applicazione </listener> <servlet> <servlet-name>systemservlet</servlet-name> <display-name>application Servlet</display-name> <description>application Servlet</description> <servlet-class>tesi.servlet.systemservlet</servlet-class> <load-on-startup>-1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>systemservlet</servlet-name> <url-pattern>/tesi.do</url-pattern> </servlet-mapping> <session-config> <session-timeout>60</session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> III.3. La gestione dei thread I thread Java [JCEGHMS], sono il mezzo mediante il quale Java fa eseguire un applicazione da più Java Virtual Machine (JVM) contemporaneamente, allo scopo di ottimizzare i tempi del runtime. Per multi-threading si intende il processo che porterà un applicazione, a definire più di un thread, assegnando ad ognuno compiti da eseguire parallelamente. L ambiente Java, per mezzo delle Virtual Machine, offre uno strato d astrazione per poter gestire il multi-threading direttamente dal linguaggio. Ogni thread ha un proprio ciclo di vita. Quando viene invocato il metodo start() il thread assume lo stato di Runnable, ovvero è pronto per essere eseguito. In generale possono esserci più thread nello stato Runnable ma soltanto uno è quello che, in un determinato istante, sarà in esecuzione, ovvero si troverà nello stato Running. Un thread in esecuzione continua a rimanere nello stato Running fino a quando esso non cessa di essere Runnable oppure finché non giunge un thread con priorità maggiore, sempre con lo stato Runnable. Quando un thread cessa di essere Runnable, passa allo stato Blocked. Esistono diverse ragioni per le quali un thread potrebbe passare dallo stato Runnable a quello Blocked. Ad esempio, la causa potrebbe essere una chiamata al metodo Thread.sleep(), che impone al thread corrente l interruzione dell esecuzione del task per un periodo di tempo prefissato. Un thread termina la sua esecuzione quando è terminato l insieme delle istruzioni che deve eseguire o quando arriva una eccezione di tipo 39
41 III. Progettazione dell applicazione InterruptedException. Quando un thread termina entra nello stato Dead e non può essere eseguito nuovamente. Figura III-3: Diagramma degli stati per un thread La Webapp deve consentire all utente di accedere al sistema attraverso il login, di visualizzare le proprietà degli elementi del Cloud, di visualizzare e graficare le metriche e statistiche di performance disponibili. Al contempo l applicazione deve recuperare, con frequenza indicata nel file di configurazione, le metriche di performance degli elementi del Cloud nonché verificare con la stessa periodicità lo stato degli allarmi inseriti dall utente. Tali funzionalità possono poi essere sospese dall utente. Si ha quindi la necessità di avere un flusso di esecuzione principale e di creare una serie di flussi secondari per l esecuzione parallela delle funzionalità descritte. La scelta adottata è quindi quella di creare all avvio dell applicazione un thread di gestione delle funzionalità di monitoring e alarming. Tale thread sarà quindi nello stato Running e, con periodicità prefissata, creerà due thread figli che si occuperanno rispettivamente del recupero delle metriche statistiche degli elementi del Cloud e della verifica degli allarmi. Ognuno dei thread figli avrà il compito di eseguire rispettivamente un unico ciclo di monitoring e di alarming dopo i quali entreranno nello stato Dead. L utente, volendo interrompere il monitoring e l alarming del sistema, attraverso un apposito comando dell applicazione, farà si che il thread secondario di gestione, non avendo istruzioni da eseguire, entrerà anch esso nello stato Dead. Al riavvio del sistema di monitoring e alarming verrà creato un nuovo thread di gestione secondario ed il flusso di esecuzione procederà nuovamente come descritto. Il seguente diagramma di sequenza illustra la gestione dei thread della Webapp: 40
42 III. Progettazione dell applicazione Figura III-4: Diagramma di sequenza gestione dei thread dell applicazione Come evidenziato nel diagramma di sequenza, per ogni ciclo di monitoring ed alarming viene creato un thread dedicato. In particolare la classe MonitorDataThread() costituirà il thread responsabile del ciclo di monitoring e la classe AlamThread() costituirà il ciclo di alarming. 41
43 III. Progettazione dell applicazione La classe MonitorDataThread() recupera l inventario del Cloud dal vcenter Server e, per ogni elemento del Cloud, recupera le metriche di performance, sempre dal vcenter Server, inserendole nel database dell applicazione per mezzo delle classi di tipo Manager e DAO. Di seguito il diagramma di sequenza relativo ad un ciclo di monitoring della classe MonitorDataThread(): Figura III-5: Diagramma di sequenza della classe MonitorDataThread() La classe AlarmThread() recupera l insieme degli allarmi attivi dal database e, per ogni allarme, verifica il superamento della soglia impostata e gli altri parametri inseriti dall utente. Qualora l allarme sia verificato viene inviata una contente i parametri dell allarme all indirizzo specificato dall utente in fase di configurazione dell applicazione. 42
44 III. Progettazione dell applicazione Di seguito il diagramma di sequenza relativo ad un ciclo di monitoring della classe AlamThread(): Figura III-6: Diagramma di sequenza della classe AlarmThread() III.4. Generazione dei grafici L applicazione prevede la visualizzazione delle metriche e statistiche di performance degli elementi del Cloud anche in forma grafica. I grafici dell applicazione sono generati mediante la libreria JFreeChart [G07] [G08]. JFreeChart è una libreria Java Open Source che consente la generazione dinamica di grafici a partire da una fonte di dati. Tramite JFreeChart è possibile generare grafici di diversa tipologia quali grafici a torta, istogrammi, line chart, time series chart, scatter plot chart, Gantt, ecc. I grafici generati possono essere esportati in diversi formati tra cui png e jpg. 43
45 III. Progettazione dell applicazione In particolare, per le esigenze dell applicazione, le metriche e statistiche di performance sono visualizzate mediante le seguenti tipologie di grafici. Pie Chart: Grafici a torta utilizzati per confrontare più valori di una grandezza. Sono generati usando la seguente funzione della libreria: JFreeChart chart = ChartFactory.createPieChart(); Bar Chart: Grafici a barre verticali utilizzati per confrontare più valori di una grandezza. Sono generati usando la seguente funzione della libreria: JFreeChart chart = ChartFactory.createBarChart(); Time Series Chart: Grafici serie temporali per la visualizzazione dell andamento nel tempo delle metriche di performance. Sono generati usando la seguente funzione della libreria: JFreeChart chart = ChartFactory.createTimeSeriesChart(); III.5. Il database del sistema La persistenza dei dati della Webapp, aldilà delle informazioni memorizzate nel file di configurazione xml, è garantita dalla presenza del database MySQL [OR13a] del sistema. In particolare il database del sistema sarà costituito da una serie di entità e di relazioni secondo il modello relazionale. III.5.1. Descrizione del database Il Cloud da monitorare è costituito da un insieme di elementi di varia tipologia (VirtualMachine, HostSystem, ClusterComputeResource ecc). Ogni elemento ha un nome, un identificativo e, come già detto, appartiene ad un tipologia. Sono disponibili metriche di performance per gli elementi di tipo VirtualMachine, HostSystem, ClusterComputeResource, Datastore. Le metriche di ognuna delle suddette tipologie sono associate all identificativo dell elemento, al timestamp di recupero delle metriche, e da un insieme di valori riferiti alle metriche disponibili. Sono disponibili anche metriche associate tra elementi di tipo VirtualMachine ed elementi di tipo Datastore. Queste ultime saranno quindi associate agli identificativi degli elementi di tipo VirtualMachine e Datastore. Sono disponibili degli allarmi sulle metriche. Ogni allarme è caratterizzato da uno o due elementi di cui sono state memorizzate le metriche, dalle relative tipologie, dalla metrica da monitorare, da una condizione sul valore attuale (maggiore o minore di una determinata soglia), dalla durata temporale per cui si deve verificare la condizione, dallo stato di attività dell allarme (attivo/non attivo), dallo stato di triggering dell allarme (allarme verificatosi o meno) e dal timestamp di inserimento dell allarme stesso. In caso di verifica positiva dell allarme viene memorizzato anche il timestamp in cui si è verificata la condizione di allarme. Ogni metrica monitorata è caratterizzata dalla tipologia (VirtualMachine. HostSystem ecc..) dall identificativo della metrica e dalla sua descrizione. Si prevedono dunque le seguenti entità: allarme 44
46 III. Progettazione dell applicazione performance ClusterComputeResource condizioni performance Datastore performance HostSystem elementi tipologie degli elementi metriche performance VirtualMachine performance VirtualMachine e Datastore associate Da cui deriva il diagramma E-R del prossimo paragrafo. 45
47 III. Progettazione dell applicazione III.5.2. Diagramma E-R Il diagramma Entity relationship risultante è mostrato in figura: Figura III-7: Diagramma E-R del database 46
48 III. Progettazione dell applicazione III.5.3. Le tabelle del database Il DB è costituito dalle seguenti tabelle alarm ccrperformance condition dsperformance hsperformance item itemtype metric vmperformance vmstorageperformance III Tabella alarm La tabella alarm rappresenta gli allarmi sulle metriche di performance inseriti dall utente. Figura III-8: Tabella alarm 47
49 III Tabella ccrperformance III. Progettazione dell applicazione La tabella ccrperformance rappresenta le metriche associate agli elementi del Cloud del tipo ClusterComputeResource. Figura III-9: Tabella ccrperformance III Tabella condition La tabella condition rappresenta l insieme degli operatori di confronto utilizzati nella verifica dei valori soglia inseriti per gli allarmi. Figura III-10: Tabella condition III Tabella dsperformance La tabella dsperformance rappresenta le metriche di performance associate agli elementi del Cloud del tipo Datastore. 48
50 III. Progettazione dell applicazione Figura III-11: Tabella dsperformance III Tabella hsperformance La tabella hsperformance rappresenta le metriche di performance associate agli elementi del Cloud del tipo HostSystem. 49
51 III. Progettazione dell applicazione Figura III-12: Tabella hsperformance III Tabella item La tabella item rappresenta gli elementi dell inventario del Cloud. 50
52 III. Progettazione dell applicazione Figura III-13: Tabella item III Tabella itemtype La tabella itemtype rappresenta la tipologia associata agli elementi del Cloud. Figura III-14: Tabella itemtype III Tabella metric La tabella metric rappresenta le metriche di performance associate alle diverse tipologie degli elementi del Cloud. Figura III-15: Tabella metric 51
53 III Tabella vmperformance III. Progettazione dell applicazione La tabella vmperformance rappresenta le metriche di performance associate agli elementi del Cloud del tipo VirtualMachine. Figura III-16: Tabella vmperformance III Tabella vmstorageperformance La tabella vmsperformance rappresenta le metriche di performance sullo storage associate agli elementi del Cloud del tipo VirtualMachine e Datastore. 52
54 III. Progettazione dell applicazione Figura III-17: vmstorageperformance III.5.4. Accesso al database L accesso al database avviene per mezzo del driver JDBC (Java DataBase Connectivity) [JCEGHMS] per database MySQL. JDBC è l insieme delle API che definiscono le specifiche per l accesso ai database relazionali. L insieme delle classi che offrono una connettività tra Java e un DBMS, implementano le interfacce dei package java.sql e javax.sql. III.6. Le Classi e i Package del sistema (Controller) Le classi del sistema facenti parte del Controller sono organizzate in Package secondo la seguente struttura: tesi tesi.servlet I package e le classi ad esso associate sono descritte di seguito. III.6.1. Package tesi.servlet Il package contiene le classi di tipo Listener e Servlet che implementano il Controller dell applicazione. Le classi appartenenti al package tesi.servlet sono mostrate nella seguente figura: 53
55 III. Progettazione dell applicazione Figura III-18: Classi del package tesi.servlet Di seguito la descrizione delle classi del package tesi.servlet: III Classe SystemListener Classe incaricata dell inizializzazione del sistema all avvio della Webapp. Crea un istanza del contesto del sistema e la rende disponibile come attributo del ServletContext. Diagramma UML della classe: Figura III-19: Diagramma UML della classe SystemListener III Classe SystemServlet Classe Servlet di controllo, punto di ingresso per le richieste degli utenti. Predispone il contesto di richiesta, invoca la corretta jsp per la visualizzazione della risposta. Diagramma UML della classe: 54
56 III. Progettazione dell applicazione Figura III-20: Diagramma UML della classe SystemServlet III.7. Le Classi e i Package del sistema (Model) Le classi del sistema facenti parte del Model sono organizzate in Package secondo la seguente struttura: tesi tesi.chart tesi.db tesi.db.alarm tesi.db.ccrperformance tesi.db.condition tesi.db.dsperformance tesi.db.hsperformance tesi.db.install tesi.db.inventory tesi.db.metric tesi.db.vmperformance tesi.db.vmsperformance tesi.directory tesi.mail tesi.monitoring tesi.security tesi.vmware 55
57 III. Progettazione dell applicazione tesi.vmware.beans tesi.xml tesi.xml.beans I package e le classi ad esso associate sono descritte di seguito. III Package tesi.chart Il package contiene le classi atte all elaborazione delle metriche e statistiche di performance e alla creazione dei relativi grafici. Le classi appartenenti al package tesi.chart sono mostrate nella seguente figura: Figura III-21: Classi del package tesi.chart Di seguito la descrizione delle classi del package tesi.chart: III Classe Chart La classe consente la creazione di diversi tipi grafici (Bar chart, Pie chart, Time series chart...) utilizzando la libreria java JfreeChart. Diagramma UML della classe: 56
58 III. Progettazione dell applicazione Figura III-22: Diagramma UML della classe Chart III Classe ChartUtil La classe elabora le metriche statistiche di performance fornite dal database per la costruzione dei diversi tipi di grafici previsti dall applicazione. L elaborazione riguarda in particolare l ordinamento e l inserimento degli oggetti di tipo List nei dataset associati ai grafici, ed il calcolo di eventuali valori minimi, massimi, medi e dell indicatore statistico deviazione standard. I grafici vengono poi creati in formato PNG per la visualizzazione nel browser. Diagramma UML della classe: 57
59 III. Progettazione dell applicazione Figura III-23: Diagramma UML della classe ChartUtil III Classe DCDelement Gli oggetti della classe rappresentano un elemento del dataset DefaultCategoryDataset per l ordinamento secondo l ordine crescente/decrescente dei grafici a barre creati nella classe ChartUtil. Diagramma UML della classe: 58
60 III. Progettazione dell applicazione Figura III-24: Diagramma UML della classe DCDelement III Classe DPDelement Gli oggetti della classe rappresentano un elemento del dataset DefaultPieDataset per l ordinamento secondo l ordine crescente/decrescente dei grafici a torta creati nella classe ChartUtil. Diagramma UML della classe: Figura III-25: Diagramma UML della classe DPDelement III Classe TimestampSplit La classe, di tipo JavaBean, consente la separazione in anno, mese, giorno, ora e secondo di una marcatura temporale timestamp per l inserimento nei dataset necessari per la costruzione dei grafici serie temporali (Timeseries chart). Diagramma UML della classe: 59
61 III. Progettazione dell applicazione Figura III-26: Diagramma UML della classe TimestampSplit III.7.2. Package tesi.db.alarm Il package contiene le classi, facenti parte del Model, per la gestione degli allarmi del sistema. Le classi appartenenti al package tesi.db.alarm sono mostrate nella seguente figura: Figura III-27: Classi del package tesi.alarm Di seguito la descrizione delle classi del package tesi.db.alarm: III Classe Alarm Classe JavaBean degli allarmi del sistema. Diagramma UML della classe: 60
62 III. Progettazione dell applicazione Figura III-28: Diagramma UML della classe Alarm III Classe AlarmDbDAO Classe di tipo Data Access Object, consente l elaborazione degli oggetti Alarm accedendo al database del sistema. Diagramma UML della classe: 61
63 III. Progettazione dell applicazione Figura III-29: Diagramma UML della classe AlarmDbDAO III Classe AlarmDbManager Classe di tipo Manager, per la gestione degli allarmi del sistema. Diagramma UML della classe: Figura III-30: Diagramma UML della classe AlarmDbManager III.7.3. Package tesi.db.ccrperformance Il package contiene le classi, facenti parte del Model, per la gestione delle metriche di performance degli elementi del tipo ClusterComputeResource del Cloud. 62
64 III. Progettazione dell applicazione Le classi appartenenti al package tesi.db.ccrperformance sono mostrate nella seguente figura: Figura III-31: Classi del package tesi. db.ccrperformance Di seguito la descrizione delle classi del package tesi.db.ccrperformance: III Classe CcrPerformance Classe JavaBean di un set di metriche e statistiche di performance di un elemento del tipo ClusterComputeResource del Cloud. Diagramma UML della classe: Figura III-32: Diagramma UML della classe CcrPerformance III Classe CcrPerformanceDAO Classe di tipo Data Access Object, consente l elaborazione degli oggetti CcrPerformance accedendo al database del sistema. Diagramma UML della classe: 63
65 III. Progettazione dell applicazione Figura III-33: Diagramma UML della classe CcrPerformanceDAO III Classe CcrPerformanceManager Classe di tipo Manager, per la gestione degli oggetti CcrPerformance del sistema. Diagramma UML della classe: Figura III-34: Diagramma UML della classe CcrPerformanceManager III.7.4. Package tesi.db.condition Il package contiene le classi, facenti parte del Model, per la gestione delle condizioni disponibili sugli allarmi del sistema. 64
66 III. Progettazione dell applicazione Le classi appartenenti al package tesi.db.condition sono mostrate nella seguente figura: Figura III-35: Classi del package tesi.db.condition Di seguito la descrizione delle classi del package tesi.db.condition: III Classe Condition Classe JavaBean degli operatori condizionali attivabili sugli allarmi del sistema. Diagramma UML della classe: Figura III-36: Diagramma UML della classe Condition III Classe ConditionDAO Classe di tipo Data Access Object, consente l elaborazione degli oggetti Condition accedendo al database del sistema. Diagramma UML della classe: 65
67 III. Progettazione dell applicazione Figura III-37: Diagramma UML della classe ConditionDAO III Classe ConditionManager Classe di tipo Manager, per la gestione degli oggetti Condition del sistema. Diagramma UML della classe: Figura III-38: Diagramma UML della classe ConditionManager III.7.5. Package tesi.db.dsperformance Il package contiene le classi, facenti parte del Model, per la gestione delle metriche di performance degli elementi del Cloud del tipo Datastore. Le classi appartenenti al package tesi.db.dsperformance sono mostrate nella seguente figura: 66
68 III. Progettazione dell applicazione Figura III-39: Classi del package tesi.db.dsperformance Di seguito la descrizione delle classi del package tesi.db.dsperformance: III Classe DsPerformance Classe JavaBean di un set di metriche di performance di un elemento del Cloud del tipo Datastore. Diagramma UML della classe: Figura III-40: Diagramma UML della classe DsPerformance 67
69 III Classe DsPerformanceDAO III. Progettazione dell applicazione Classe di tipo Data Access Object, consente l elaborazione degli oggetti DsPerformance accedendo al database del sistema. Diagramma UML della classe: Figura III-41: Diagramma UML della classe DsPerformanceDAO III Classe DsPerformanceManager Classe di tipo Manager, per la gestione degli oggetti DsPerformance del sistema. Diagramma UML della classe: Figura III-42: Diagramma UML della classe DsPerformanceManager 68
70 III.7.6. Package tesi.db.hsperformance III. Progettazione dell applicazione Il package contiene le classi, facenti parte del Model, per la gestione delle metriche di performance degli elementi del Cloud del tipo HostSystem. Le classi appartenenti al package tesi.db.hsperformance sono mostrate nella seguente figura: Figura III-43: Classi del package tesi.db.hsperformance Di seguito la descrizione delle classi del package tesi.db.hsperformance: III Classe HsPerformance Classe JavaBean di un set di metriche di performance di un elemento del Cloud del tipo HostSystem. Diagramma UML della classe: 69
71 III. Progettazione dell applicazione Figura III-44: Diagramma UML della classe HsPerformance 70
72 III Classe HsPerformanceDAO III. Progettazione dell applicazione Classe di tipo Data Access Object, consente l elaborazione degli oggetti HsPerformance accedendo al database del sistema. Diagramma UML della classe: Figura III-45: Diagramma UML della classe HsPerformanceDAO III Classe HsPerformanceManager Classe di tipo Manager, per la gestione degli oggetti HsPerformance del sistema. Diagramma UML della classe: Figura III-46: Diagramma UML della classe HsPerformanceManager 71
73 III.7.7. Package tesi.db.inventory III. Progettazione dell applicazione Il package contiene le classi, facenti parte del Model, per la gestione degli elementi dell inventario del Cloud. Le classi appartenenti al package tesi.db.inventory sono mostrate nella seguente figura: Figura III-47: Classi del package tesi.db.inventory Di seguito la descrizione delle classi del package tesi.db.inventory: III Classe InventoryDbDAO Classe di tipo Data Access Object, consente l elaborazione degli oggetti Item accedendo al database del sistema. Diagramma UML della classe: Figura III-48: Diagramma UML della classe InventoryDbDAO 72
74 III Classe InventoryDbManager III. Progettazione dell applicazione Classe di tipo Manager, per la gestione degli oggetti Item del sistema. Diagramma UML della classe: Figura III-49: Diagramma UML della classe InventoryDbManager III Classe Item Gli oggetti della classe, di tipo JavaBean, rappresentano gli elementi dell inventario del Cloud. Diagramma UML della classe: Figura III-50: Diagramma UML della classe Item 73
75 III.7.8. Package tesi.db.metric III. Progettazione dell applicazione Il package contiene le classi, facenti parte del Model, per la gestione delle metriche di performance associate ai diversi elementi del Cloud. Le classi appartenenti al package tesi.db.metric sono mostrate nella seguente figura: Figura III-51: Classi del package tesi.db.metric Di seguito la descrizione delle classi del package tesi.db.metric: III Classe Metric Gli oggetti della classe, di tipo JavaBean, rappresentano le metriche di performance monitorate dal sistema. Diagramma UML della classe: Figura III-52: Diagramma UML della classe Metric III Classe MetricDAO Classe di tipo Data Access Object, consente l elaborazione degli oggetti Metric accedendo al database del sistema. Diagramma UML della classe: 74
76 III. Progettazione dell applicazione Figura III-53: Diagramma UML della classe MetricDAO III Classe MetricManager Classe di tipo Manager, per la gestione degli oggetti Metric del sistema. Diagramma UML della classe: Figura III-54: Diagramma UML della classe MetricManager III.7.9. Package tesi.db.vmperformance Il package contiene le classi, facenti parte del Model, per la gestione delle metriche di performance degli elementi del Cloud del tipo VirtualMachine. Le classi appartenenti al package tesi.db.vmperformance sono mostrate nella seguente figura: 75
77 III. Progettazione dell applicazione Figura III-55: Classi del package tesi.db.vmperformance Di seguito la descrizione delle classi del package tesi.db.vmperformance: III Classe VmPerformance Classe JavaBean di un set di metriche di performance di un elemento VirtualMachine del Cloud. Diagramma UML della classe: Figura III-56: Diagramma UML della classe VmPerformance 76
78 III Classe VmPerformanceDAO III. Progettazione dell applicazione Classe di tipo Data Access Object, consente l elaborazione degli oggetti VmPerformance accedendo al database del sistema. Diagramma UML della classe: Figura III-57: Diagramma UML della classe VmPerformanceDAO III Classe VmPerformanceManager Classe di tipo Manager, per la gestione degli oggetti VmPerformance del sistema.diagramma UML della classe: Figura III-58: Diagramma UML della classe VmPerformanceManager 77
79 III Package tesi.db.vmsperformance III. Progettazione dell applicazione Il package contiene le classi, facenti parte del Model, per la gestione delle metriche di performance degli elementi, associati, del tipo Datastore e VirtualMachine del Cloud. Le classi appartenenti al package tesi.db.vmsperformancesono mostrate nella seguente figura: Figura III-59: Classi del package tesi.db.vmsperformance Di seguito la descrizione delle classi del package tesi.db.vmsperformance: III Classe VmsPerformance Classe JavaBean di un set di metriche di performance degli elementi Datastore e VirtualMachine del Cloud. Diagramma UML della classe: Figura III-60: Diagramma UML della classe VmsPerformance 78
80 III Classe VmsPerformanceDAO III. Progettazione dell applicazione Classe di tipo Data Access Object, consente l elaborazione degli oggetti VmsPerformance accedendo al database del sistema.diagramma UML della classe: Figura III-61: Diagramma UML della classe VmsPerformanceDAO III Classe VmsPerformanceManager Classe di tipo Manager, per la gestione degli oggetti VmsPerformance del sistema. Diagramma UML della classe: Figura III-62: Diagramma UML della classe VmsPerformanceManager 79
81 III Package tesi.directory III. Progettazione dell applicazione La classe del package consente la gestione delle directory temporanee create dall applicazione per la visualizzazione dei grafici delle metriche e delle statistiche di performance. Le classi appartenenti al package tesi.directory sono mostrate nella seguente figura: Figura III-63: Classi del package tesi.directory Di seguito la descrizione delle classi del package tesi.directory: III Classe DirUtil Classe di gestione delle directory temporanee create dall applicazione per la visualizzazione dei grafici delle metriche e statistiche di performance.diagramma UML della classe: Figura III-64: Diagramma UML della classe DirUtil III Package tesi.mail Il package contiene le classi che permettono l invio degli alert degli allarmi impostati dall utente. Le classi appartenenti al package tesi.mail sono mostrate nella seguente figura: Figura III-65: Classi del package tesi.mail 80
82 III. Progettazione dell applicazione Di seguito la descrizione delle classi del package tesi.mail: III Classe AlarmMail La classe, di tipo Manager, consente la creazione e l invio delle di alert degli allarmi del sistema. Diagramma UML della classe: Figura III-66: Diagramma UML della classe AlarmMail III Classe MailSender La classe permette l invio di . Diagramma UML della classe: Figura III-67: Diagramma UML della classe MailSender III Package tesi.monitoring Il package contiene le classi atte alla gestione dei thread per il monitoring e l alarming del sistema. Le classi appartenenti al package tesi.monitoring sono mostrate nella seguente figura: 81
83 III. Progettazione dell applicazione Figura III-68: Classi del package tesi.monitoring Di seguito la descrizione delle classi del package tesi.monitoring: III Classe AlarmThread La classe consente di verificare se gli allarmi attivi nel sistema sono verificati e, in caso affermativo, l invio di una di alert all indirizzo configurato nel file di configurazione del sistema. Diagramma UML della classe: Figura III-69: Diagramma UML della classe AlarmThread 82
84 III Classe MonitorDataThread III. Progettazione dell applicazione La classe consente il recupero di tutte le metriche di performance disponibili per tutti gli elementi attivi del Cloud. Diagramma UML della classe: Figura III-70: Diagramma UML della classe MonitorDataThread III Classe MonitorManager La classe consente l avvio e lo stop dei cicli di monitoring e alarming del sistema. Diagramma UML della classe: 83
85 III. Progettazione dell applicazione Figura III-71: Diagramma UML della classe MonitorManager III Classe MonitorThreadManager La classe consente la creazione dei singoli thread per il monitoring e l alarming del sistema con frequenza impostata nel file di configurazione del sistema. Diagramma UML della classe: Figura III-72: Diagramma UML della classe MonitorThreadManager 84
86 III Package tesi.security III. Progettazione dell applicazione Il package contiene le classi utili per la crittografia delle password presenti nel file di configurazione del sistema. Le classi appartenenti al package tesi.security sono mostrate nella seguente figura: Figura III-73: Classi del package tesi.security Di seguito la descrizione delle classi del package tesi.security: III Classe DesEncrypter La classe consente la codifica e la decodifica DES (Data Encryption Standard) di una stringa. Diagramma UML della classe: Figura III-74: Diagramma UML della classe DesEncrypter III Classe TDesEncrypter La classe consente la codifica e la decodifica Triple DES (Data Encryption Standard) di una stringa. Diagramma UML della classe: 85
87 III. Progettazione dell applicazione Figura III-75: Diagramma UML della classe TDesEncrypter III Package tesi.vmware Il package contiene le classi per l accesso al server vsphere vcenter, il recupero e l elaborazione dell inventario del Cloud, il recupero delle proprietà degli elementi dell inventario ed il recupero delle metriche di performance degli stessi elementi. Le classi appartenenti al package tesi.vmware sono mostrate nella seguente figura: Figura III-76: Classi del package tesi.vmware Di seguito la descrizione delle classi del package tesi.vmware: 86
88 III Classe PropertyManager III. Progettazione dell applicazione La classe consente il recupero delle proprietà relative ai diversi elementi dell inventario del Cloud. Diagramma UML della classe: Figura III-77: Diagramma UML della classe PropertyManager III Classe TrustAllTrustManager La classe consente l autenticazione del sistema nel vsphere vcenter server.diagramma UML della classe: Figura III-78: Diagramma UML della classe TrustAllTrustManager III Classe VsphereAccess La classe consente l accesso al server vsphere vcenter, il recupero dell inventario del Cloud, il recupero delle proprietà degli elementi dell inventario ed il recupero delle metriche di performance degli stessi elementi. Diagramma UML della classe: 87
89 III. Progettazione dell applicazione Figura III-79: Diagramma UML della classe VsphereAccess III Classe VsphereManager Classe, di tipo manager, per la gestione delle funzionalità di recupero dell inventario del Cloud, di recupero delle proprietà degli elementi dell inventario e di recupero delle metriche di performance degli stessi elementi.diagramma UML della classe: 88
90 III. Progettazione dell applicazione Figura III-80: Diagramma UML della classe VsphereManager III Classe VsphereUtil La classe contiene le funzionalità di elaborazione delle strutture dati che rappresentano l inventario del Cloud, recuperato dal vsphere vcenter server. Diagramma UML della classe: Figura III-81: Diagramma UML della classe VsphereUtil 89
91 III Package tesi.vmware.beans III. Progettazione dell applicazione Il package contiene le classi JavaBean contenenti le proprietà per le diverse tipologie degli elementi dell inventario del Cloud. Le classi appartenenti al package tesi.vmware.beans sono mostrate nella seguente figura: Figura III-82: Classi del package tesi.vmware.beans Di seguito la descrizione delle classi del package tesi.vmware.beans: III Classe CcrProperty Classe JavaBean, rappresenta le proprietà degli elementi ClusterComputeResource del Cloud. Diagramma UML della classe: 90
92 III. Progettazione dell applicazione Figura III-83: Diagramma UML della classe CcrProperty 91
93 III Classe DcProperty III. Progettazione dell applicazione Classe JavaBean, rappresenta le proprietà degli elementi Datacenter del Cloud. Diagramma UML della classe: Figura III-84: Diagramma UML della classe DcProperty 92
94 III Classe DsProperty III. Progettazione dell applicazione Classe JavaBean, rappresenta le proprietà degli elementi Datastore del Cloud. Diagramma UML della classe: Figura III-85: Diagramma UML della classe DsProperty 93
95 III Classe GeneralInfo III. Progettazione dell applicazione Classe JavaBean, rappresenta le proprietà generali del vsphere vcenter server del Cloud.Diagramma UML della classe: Figura III-86: Diagramma UML della classe GeneralInfo 94
96 III Classe HsProperty III. Progettazione dell applicazione Classe JavaBean, rappresenta le proprietà degli elementi HostSystem del Cloud. Diagramma UML della classe: Figura III-87: Diagramma UML della classe HsProperty 95
97 III Classe InventoryItem III. Progettazione dell applicazione Classe JavaBean, rappresenta le proprietà degli elementi dell inventario del Cloud per la costruzione della struttura ad albero dell inventario stesso. Diagramma UML della classe: Figura III-88: Diagramma UML della classe InventoryItem III Classe ItemType Classe JavaBean, rappresenta la tipologia degli elementi dell inventario del Cloud. Diagramma UML della classe: Figura III-89: Diagramma UML della classe ItemType 96
98 III Classe VmProperty III. Progettazione dell applicazione Classe JavaBean, rappresenta le proprietà degli elementi VirtualMachine del Cloud. Diagramma UML della classe: Figura III-90: Diagramma UML della classe VmProperty 97
99 III. Progettazione dell applicazione III Package tesi.xml Il package contiene le classi per la gestione del file di configurazione xml appconfig.xml del sistema. Le classi appartenenti al package tesi.xml sono mostrate nella seguente figura: Figura III-91: Classi del package tesi.xml Di seguito la descrizione delle classi del package tesi.xml: III Classe IsInstalled Classe Manager, permette la gestione del campo <isinstalled> del file di configurazione della Webapp, utilizzato per la codifica iniziale DES delle password del file di configurazione stesso. Diagramma UML della classe: Figura III-92: Diagramma UML della classe IsInstalled 98
100 III Classe MailConfigManager III. Progettazione dell applicazione Classe Manager, permette la gestione delle impostazioni relative alle spedite dal sistema di alarming. In particolare l oggetto e l indirizzo del destinatario della inviata in caso di allarme. Diagramma UML della classe: Figura III-93: Diagramma UML della classe MailConfigManager III Classe MonitoringConfigManager Classe Manager, rappresenta permette la gestione delle impostazioni dell applicazione memorizzate nel file xml appcongif.xml. In particolare il parametro monitoringdelay che rappresenta il periodo tra due cicli di monitoring del sistema. Diagramma UML della classe: Figura III-94: Diagramma UML della classe MonitoringConfigManager III Classe MySqlConfigManager Classe Manager, permette la gestione delle credenziali di accesso al DBMS MySQL del sistema. Diagramma UML della classe: 99
101 III. Progettazione dell applicazione Figura III-95: Diagramma UML della classe MySqlConfigManager III Classe SmtpConfigManager Classe Manager, permette la gestione delle credenziali di accesso al Server SMTP per l invio delle di allarme. Diagramma UML della classe: Figura III-96: Diagramma UML della classe SmtpConfigManager III Classe VcenterConfigManager Classe Manager, permette la gestione delle credenziali di accesso al vsphere vcenter Server. Diagramma UML della classe: Figura III-97: Diagramma UML della classe VcenterConfigManager 100
102 III Classe WebappAccountManager III. Progettazione dell applicazione Classe Manager, permette la gestione delle credenziali di accesso alla Webapp. Diagramma UML della classe: Figura III-98: Diagramma UML della classe WebappAccountManager III Classe XmlUtil Classe di gestione delle operazioni di lettura e scrittura del file xml di configurazione della Webapp appconfig.xml. Diagramma UML della classe: 101
103 III. Progettazione dell applicazione Figura III-99: Diagramma UML della classe XmlUtil III Package tesi.xml.beans Il package contiene le classi di tipo JavaBean contenenti i parametri del sistema memorizzati in maniera persistente all interno del file di configurazione appconfig.xml 102
104 III. Progettazione dell applicazione Le classi appartenenti al package tesi.xml.beans sono mostrate nella seguente figura: Figura III-100: Classi del package tesi.xml.beans Di seguito la descrizione delle classi del package tesi.xml.beans: III Classe MailConfig Classe JavaBean, rappresenta le impostazioni relative alle spedite dal sistema di alarming. In particolare contiene l oggetto e l indirizzo del destinatario della . Diagramma UML della classe: Figura III-101: Diagramma UML della classe MailConfig III Classe MonitoringConfig Classe JavaBean, rappresenta le impostazioni dell applicazione memorizzate nel file xml appcongif.xml. In particolare contiene il parametro monitoringdelay che rappresenta il periodo tra due cicli di monitoring del sistema. Diagramma UML della classe: 103
105 III. Progettazione dell applicazione Figura III-102: Diagramma UML della classe MonitoringConfig III Classe MySqlConfig Classe JavaBean, rappresenta le credenziali di accesso al DBMS MySQL. Diagramma UML della classe: Figura III-103: Diagramma UML della classe MySqlConfig III Classe SmtpConfig Classe JavaBean, rappresenta le credenziali di accesso al Server SMTP. Diagramma UML della classe: 104
106 III. Progettazione dell applicazione Figura III-104: Diagramma UML della classe SmtpConfig III Classe VcenterConfig Classe JavaBean, rappresenta le credenziali di accesso al vcenter Server. Diagramma UML della classe: Figura III-105: Diagramma UML della classe VcenterConfig III Classe WebappAccount Classe JavaBean, rappresenta le credenziali di accesso alla Webapp. Diagramma UML della classe: 105
107 III. Progettazione dell applicazione Figura III-106: Diagramma UML della classe WebappAccount III.8. Le pagine Jsp del sistema (View) Come detto in precedenza, la sezione View del pattern utilizzato è costituito da una serie di pagine jsp, contenenti sia codice HTML che Java. La struttura delle pagine della Webapp è realizzata mediante la pagina home.jsp. In particolare l area di visualizzazione è suddivisa in quattro porzioni: header, footer, inventory, content. header: porzione superiore dell area di visualizzazione. Contiene l intestazione della Webapp. footer: porzione inferiore dell area di visualizzazione. Contiene gli eventuali riferimenti personalizzabili della Webapp. inventory: porzione sinistra dell area di visualizzazione. Permette la visualizzazione della struttura ad albero dell inventario del Cloud e la barra dei comandi dell applicazione. content: porzione destra dell area di visualizzazione. Permette la visualizzazione delle pagine richieste dall utente. Mediante le pagine di popup è possibile la visualizzazione di informazioni in forma tabellare in finestre di popup esterne alla pagina principale. L accesso al sistema è consentito dalla presenza di una pagina di login che consente l invio delle credenziali di accesso alla Webapp per l autenticazione. Nei prossimi paragrafi il dettaglio delle pagine jsp. III.8.1. Pagina alarm.jsp Pagina di visualizzazione degli allarmi inseriti con il relativo stato. E possibile attivare/disattivare un determinato allarme e l eliminazione dello stesso. 106
108 III. Progettazione dell applicazione Figura III-107: Esempio di visualizzazione della pagina alarm.jsp III.8.2. Pagina alarmpopup.jsp La pagina ha le medesime funzionalità della pagina alarm.jsp ma relativa ad un determinato elemento del Cloud. E visualizzata in una finestra di popup. Figura III-108: Esempio di visualizzazione della pagina alarmpopup.jsp III.8.3. Pagina ccr.jsp Pagina di scelta e di visualizzazione delle metriche e statistiche di performance degli elementi ClusterComputeResource e degli elementi HostSystem e VirtualMachine associati. I parametri delle metriche da visualizzare vengono inseriti attraverso un form, per mezzo del quale è anche possibile inserire un allarme relativo all elemento selezionato. Sono anche presenti i button per la visualizzazione, in finestra di popup, dei valori tabellari delle metriche e statistiche di performance visualizzate, delle proprietà dell elemento selezionato e degli allarmi associati. 107
109 III. Progettazione dell applicazione Figura III-109: Esempio di visualizzazione della pagina ccr.jsp 108
110 III.8.4. Pagina ccrperformance.jsp III. Progettazione dell applicazione Pagina di visualizzazione in forma tabellare delle metriche di performance visualizzate nella pagina ccr.jsp. Figura III-110: Esempio di visualizzazione della pagina ccrperformance.jsp 109
111 III.8.5. Pagina ccrproperties.jsp III. Progettazione dell applicazione Pagina di visualizzazione in forma tabellare delle proprietà dell elemento selezionato nella pagina ccr.jsp. Figura III-111: Esempio di visualizzazione della pagina ccrproperties.jsp III.8.6. Pagina config.jsp Pagina di Visualizzazione e di modifica del file di configurazione appconfig.xml dell applicazione. 110
112 III. Progettazione dell applicazione Figura III-112: Esempio di visualizzazione della pagina config.jsp III.8.7. Pagina dc.jsp Pagina di scelta e di visualizzazione delle metriche e statistiche di performance degli elementi HostSystem, Cluster, VirtualMachine e Datastore associati al datacenter selezionato. I parametri delle metriche e statistiche di performance visualizzate vengono inseriti attraverso un form. E presente il button per la visualizzazione, in finestra di popup, delle proprietà dell elemento. 111
113 III. Progettazione dell applicazione Figura III-113: Esempio di visualizzazione della pagina dc.jsp III.8.8. Pagina dcproperties.jsp Pagina di visualizzazione in forma tabellare delle proprietà dell elemento selezionato nella pagina dc.jsp. 112
114 III. Progettazione dell applicazione Figura III-114: Esempio di visualizzazione della pagina dcproperties.jsp III.8.9. Pagina ds.jsp Pagina di scelta e di visualizzazione delle metriche e statistiche di performance degli elementi Datastore e degli elementi VirtualMachine associati. I parametri delle metriche e statistiche di performance vengono inseriti attraverso un form, per mezzo del quale è anche possibile inserire un allarme relativo all elemento selezionato. Sono anche presenti i button per la visualizzazione, in finestra di popup, dei valori tabellari delle metriche visualizzate, delle proprietà dell elemento selezionato e degli allarmi associati. 113
115 III. Progettazione dell applicazione Figura III-115: Esempio di visualizzazione della pagina ds.jsp III Pagina dsperformance.jsp Pagina di visualizzazione in forma tabellare delle metriche di performance visualizzate nella pagina ds.jsp. 114
116 III. Progettazione dell applicazione Figura III-116: Esempio di visualizzazione della pagina dsperformance.jsp III Pagina dsproperties.jsp Pagina di visualizzazione in forma tabellare delle proprietà dell elemento selezionato nella pagina ds.jsp. 115
117 III. Progettazione dell applicazione Figura III-117: Esempio di visualizzazione della pagina dsproperties.jsp III Pagina footer.jsp Pagina di visualizzazione della sezione footer all interno di tutte le pagine integrate nella pagina home.jsp. Figura III-118: Esempio di visualizzazione della pagina footer.jsp 116
118 III Pagina generalinfo.jsp III. Progettazione dell applicazione Pagina di visualizzazione delle informazioni relative al server vcenter vsphere del Cloud monitorato. In particolare visualizza la versione del vcenter Server ed il sistema operativo su cui è installato. Figura III-119: Esempio di visualizzazione della pagina generalinfo.jsp III Pagina header.jsp Pagina di visualizzazione della sezione header all interno di tutte le pagine integrate nella pagina home.jsp. Figura III-120: Esempio di visualizzazione della pagina header.jsp III Pagina home.jsp La pagina consente la divisione dell area di visualizzazione del browser in quattro aree: footer: visualizza il contenuto della pagina footer.jsp nell area inferiore. header: visualizza il contenuto della pagina header.jsp nell area superiore. inventario: visualizza il contenuto della pagina inventariotree.jsp nell area sinistra. content: visualizza le altre pagine jsp nell area destra. 117
119 III. Progettazione dell applicazione Figura III-121: Esempio di visualizzazione della pagina home.jsp III Pagina hs.jsp Pagina di scelta e di visualizzazione delle metriche e statistiche di performance degli elementi HostSystem e degli elementi VirtualMachine associati. I parametri delle metriche e statistiche di performance vengono inseriti attraverso un form, per mezzo del quale è anche possibile inserire un allarme relativo all elemento dell inventario selezionato. Sono anche presenti i button per la visualizzazione in finestra di popup dei valori tabellari delle metriche visualizzate, delle proprietà dell elemento selezionato e degli allarmi associati. 118
120 III. Progettazione dell applicazione Figura III-122: Esempio di visualizzazione della pagina hs.jsp 119
121 III Pagina hsperformance.jsp III. Progettazione dell applicazione Pagina di visualizzazione in forma tabellare delle metriche di performance visualizzate nella pagina hs.jsp. Figura III-123: Esempio di visualizzazione della pagina hsperformance.jsp III Pagina hsproperties.jsp Pagina di visualizzazione in forma tabellare delle proprietà dell elemento selezionato nella pagina hs.jsp. 120
122 III. Progettazione dell applicazione Figura III-124: Esempio di visualizzazione della pagina hsproperties.jsp III Pagina inventariotree.jsp Pagina di visualizzazione dell inventario del sistema Cloud monitorato e dei controlli dell applicazione. Figura III-125: Visualizzazione della sezione comandi della pagina inventariotree.jsp 121
123 III. Progettazione dell applicazione Figura III-126: Esempio di visualizzazione della pagina inventariotree.jsp III Pagina login.jsp Pagina di login al sistema. Figura III-127: Esempio di visualizzazione della pagina login.jsp 122
124 III. Progettazione dell applicazione III Pagina loginerror.jsp Pagina di visualizzazione dell avviso di login errato. Figura III-128: Esempio di visualizzazione della pagina loginerror.jsp III Pagina message.jsp Pagina di visualizzazione dei messaggi di conferma e di errore dell applicazione. Figura III-129: Esempio di visualizzazione della pagina message.jsp III Pagina vm.jsp Pagina di scelta e di visualizzazione delle metriche e statistiche di performance degli elementi VirtualMachine. I parametri delle metriche e statistiche di performance vengono inseriti attraverso un form, per mezzo del quale è anche possibile inserire un allarme relativo all elemento dell inventario selezionato. Sono anche presenti i button per la visualizzazione, in finestra di popup, dei valori tabellari delle metriche visualizzate, delle proprietà dell elemento selezionato e degli allarmi associati. 123
125 III. Progettazione dell applicazione Figura III-130: Esempio di visualizzazione della pagina vm.jsp 124
126 III Pagina vmperformance.jsp III. Progettazione dell applicazione Pagina di visualizzazione in forma tabellare delle metriche di performance visualizzate nella pagina vm.jsp. Figura III-131: Esempio di visualizzazione della pagina vmperformance.jsp III Pagina vmproperties.jsp Pagina di visualizzazione in forma tabellare delle proprietà dell elemento selezionato nella pagina vm.jsp. 125
127 III. Progettazione dell applicazione Figura III-132: Esempio di visualizzazione della pagina vmproperties.jsp 126
128 IV. Installazione e configurazione IV. Installazione e configurazione dell applicazione IV.1. Introduzione In questo capitolo verrà illustrata la procedura di installazione e configurazione del sistema di monitoring, alarming, reporting. IV.2. Installazione e configurazione dell Application Server Tomcat 7 Apache Tomcat 7 [TASF13a] è un prodotto gratuito e open source sviluppato in Java all interno della fondazione Apache. Tomcat realizza le seguenti funzioni: Web server. Container per Webapp conforme alle specifiche Java 2 Enteprise Edition (J2EE). Il che significa che Tomcat funzione da motore per Servlet e Java Server Pages (JSP). Prima di installare l application server è necessario avere installato il pacchetto JDK (Java Development Kit). JDK viene fornito insieme alla JVM (Java Virtual Machine) e alle varie librerie di java (API Java), contenendo dunque anche il JRE (Java Runtime Environment). Ecco i passi da seguire per installare e configurare correttamente l ambiente Tomcat 7 [TASF13b] in ambiente Windows: 1. Il primo passo è scaricare la versione ufficiale dell application server dal sito Sono disponibili sia le versioni a 32 bit e a 64 bit. Scegliere l ultima versione disponibile zip (apache-tomcat windows-x86.zip) ed estrarre il file nella cartella di installazione scelta, per esempio c:\programmi\apache\tomcat7. 2. E ora necessario configurare alcune proprietà per consentire a Tomcat di conoscere dove JDK è installato. Creare un file di testo nominato setenv.bat con il seguente contenuto: set JRE_HOME=%ProgramFiles(x86)%\Java\jre6 exit /b 0 La stringa %ProgramFiles(x86)%\Java\jre6 rappresenta il percorso in cui è stato installato il JRE. Salvare quindi il file nella seguente cartella: c:\programmi\apache\tomcat7\bin in modo che sia eseguito all avvio di Tomcat. 3. E necessario impostare Tomcat come servizio di Windows eseguendo, con diritti da amministratore, le seguenti istruzioni da prompt dei comandi: cd C:\apps\apache-tomcat \bin 127
129 IV. Installazione e configurazione dell applicazione Eseguire quindi setenv.bat creato in precedenza ed eseguire lo script service.bat secondo la seguente sintassi: service.bat install/remove [service_name] [/user username] nel nostro caso avremo: service.bat install Tomcat7 4. La JVM gestisce due aree di memoria denominate rispettivamente Heap e Permanent Generation [TASF13a]. Figura IV-1: Tipologie di memoria di una JVM Permanent Generation (PermGen) è usata dalla JVM per memorizzare i metadati relativi agli oggetti creati. La dimensione della PermGen può essere variata attraverso i parametri: -XX:PermSize -XX:MaxPermSize che permettono di inizializzare la dimensione minima e massima. Per evitare il costo, in termini di tempo di esecuzione, del ridimensionamento della memoria allocata è possibile configurare lo stesso valore per la dimensione minima e masima. La memoria Heap rappresenta l area di memoria principale dove vengono memorizzati gli oggetti creati dall utente. A sua volta è suddivisa in Old Generation (OG) e Young Generation (YG). Quest ultima è ulteriormente suddivisa in Eden e Survivor. La memoria Heap è controllata dai parametri -Xms -Xmx rispettivamente per il minimo e per il massimo. Esistono anche altri parametri per controllare ciascuna delle aree che compongono la memoria Heap. Tra qusti, il parametro 128
130 -XX:NewRatio=value IV. Installazione e configurazione dell applicazione definisce la dimensione dello YG. Quando si crea un oggetto, attraverso l operatore new, questo viene inserito in Eden. Se l area è satura, la JVM esegue il Garbage Collector (GC), in modo da individuare e rimuovere eventuali oggetti ancora presenti in memoria ma non più necessari. Gli oggetti che risultano essere ancora validi alle prime raccolte di oggetti inutili vengono spostati in Survivor. La dimensione del Survivor viene specificata attraverso il parametro -XX:SurvivorRatio=value. Le applicazioni con un alta percentuale di oggetti creati ed una bassa percentuale di conservazione dovrebbero aumentare questo parametro. Gli oggetti vecchi presenti in Survivor ma ancora validi, vengono infine spostati in OG. Per ottimizzare il funzionamento della Webapp è quindi necessario configurare l utilizzo dei diversi tipi di memoria mediante l inserimento della seguente stringa all interno del file catalina.bat presente nella cartella bin: set JAVA_OPTS=-Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m - Dlog4j.debug=true 5. Il prossimo passo consiste nell impostare le credenziali di accesso al Tomcat Manager App, utility per la gestione delle applicazioni. Aprire quindi il file tomcat-users.xml presente nella cartella conf con un editor di testo ed aggiungere le seguenti righe nella sezione tomcat-users. <tomcat-users> <role rolename= manager-gui /> <role rolename= admin-gui /> <user username= root password= yourpassword roles= manager-gui,admin-gui /> </tomcat-users> 6. Il servizio risulta attivo con configurazione di avvio Manual che noi setteremo come Automatic in modo che all avvio della macchina verrà avviato anche l application server Tomcat. Per fare questo è necessario avviare l utility tomcat7w.exe, situato nella cartella bin, ed impostare il parametro Startup type nel tab General. 129
131 IV. Installazione e configurazione dell applicazione Figura IV-2: Finestra Apache Tomcat Properties 7. Dato che tutte le altre impostazioni di default sono corrette possiamo riavviare la macchina. A questo punto è possibile verificare la correttezza dell installazione accedendo via web browser al seguente indirizzo ricordando che la porta TCP 8080 è la porta usata di default. Tomcat mostrerà la pagina di avvio con l accesso alle pagine Server Status, Manager App e Host Manager. L accesso alla sezione Manager App consentirà l installazione della Webapp. IV.3. Installazione e configurazione di MySQL 5.6 MySQL [OR13a] è un RDBMS (sistema di gestione di basi di dati relazionali) cioè permette di gestire database basati sul modello relazionale. La versione che utilizzeremo è denominata Community Edition e si differenzia da quella destinata al mondo aziendale, denominatai Enterprise Edition, per i termini di licenza e per le funzionalità. L url dove scaricare la versione free è la seguente: tramite il menù a tendina scegliamo il Sistema Operativo Windows e scarichiamo la versione di MySQL denominata Installer for Windows che include in un solo pacchetto le seguenti componenti: - MySQL Server 5.5 GA - MySQL Workbench 5.2 GA - MySQL Connectors (.Net / ODBC / Java / C / C++) GA - MySQL Samples and Examples MySQL Documentation 5.5 Avviamo l installer e clicchiamo su Install MySQL Products e poi su Next. Scegliamo come tipo di Setup quello Custom (personalizzato) in modo da poter scegliere singolarmente i prodotti da 130
132 IV. Installazione e configurazione dell applicazione installare. Assicuriamoci quindi che alla voce Applications sia selezionato il prodotto MySQL Workbench [OR13b]. Figura IV-3: Screenshot MySQL Installer (1) Se tutto procede correttamente dovremmo avere la conferma da parte dell installer come in figura: Figura IV-4: Screenshot MySQL Installer (2) 131
133 IV. Installazione e configurazione dell applicazione Iniziamo ora la configurazione del MySQL Server selezionando l opzione Config Type come Server Machine e lasciando inalterati gli altri parametri proposti dall installer come mostrato in nella seguente figura Figura IV-5: Screenshot MySQL Installer (3) Inseriamo ora la password dell account utente amministratore root: Figura IV-6: Screenshot MySQL Installer (4) 132
134 IV. Installazione e configurazione dell applicazione E lasciamo le impostazioni di default per quanto riguarda l aggiunta tra i servizi di windows: Figura IV-7: Screenshot MySQL Installer (5) Completata l installazione e la configurazione di base, andiamo ora a configurare un parametro fondamentale per un efficiente funzionamento della Webapp ovvero il parametro relativo al buffer dei database InnoDB. innodb_buffer_pool_size Questa proprietà è molto importante utilizzando tabelle di tipo InnoDB. Utilizzando database di tipo InnoDB infatti, dati ed indici vengono memorizzati dal pool, quindi si può pensare di portare al 50% della memoria disponibile nella macchina considerando che il valore minimo di questo parametro è da considerarsi 256M in quanto al di sotto di tale valore la continua scrittura e lettura del disco rallenterebbe notevolmente il sistema. Per configurare il parametro innodb_buffer_pool_size avviamo MySQL Workbench installato, clicchiamo su Server Administration e dopo essersi loggati con le credenziali di amministratore ci portiamo nella sezione Option File e settiamo il parametro di interesse come in figura: 133
135 IV. Installazione e configurazione dell applicazione Figura IV-8: Screenshot MySQL Installer (6) Il valore di 1GB dovrebbe essere sufficiente per la gestione da parte del sistema della maggioranza dei sistemi Cloud privati. Ora che abbiamo installato e configurato il database server procediamo con l installazione del database della Webapp. Per fare ciò andiamo nella pagina iniziale di MySQL Workbench [OR13b] e selezioniamo questa volta SQL Development. Dopo esserci loggati nuovamente eseguiamo lo script SQL contenuto nel file db.sql. Il codice SQL eseguito consente la creazione del database, delle tabelle, delle relazioni e del popolamento del database con i dati iniziali per un corretto avvio della Webapp. Il risultato dell operazione dovrebbe essere quello mostrato in figura: 134
136 IV. Installazione e configurazione dell applicazione Figura IV-9: Screenshot MySQL Installer (7) Il database cloudmonitor è stato creato con le relative tabelle. E ovviamente possibile cambiare il nome del database variando lo stesso nelle prime tre righe dello script. IV.4. Installazione della Web Application Innanzitutto scompattiamo il file con estensione war per accedere al file xml di configurazione appconfig.xml disponibile al seguente percorso \resources\xml e con un editor di testo settiamo i seguenti parametri all interno dei rispettivi tag: Sezione MySQL: DBHostName: indirizzo del DBMS MySQL DBUser: username DBPassword: password DBName: nome del DB Sezione SMTP smtphostname: indirizzo del server di posta in uscita smtpport: porta TCP del server di posta in uscita smtpusername: username smtppassword: password Sezione mailalarm mailobject: oggetto della di allarme mailsendto: indirizzo al quale inviare le di allarme 135
137 IV. Installazione e configurazione dell applicazione Sezione vcenter vcenterhostname: indirizzo del vcenter server vcenterusername: username di accesso a vcenter server vcenterpassword: password di accesso a vcenter server Sezione Webapp webappusername: username di accesso alla Webapp webapppassword: password di accesso alla Webapp Sezione Monitoring monitoringdelay: tempo, in secondi, tra due cicli di monitoring Salviamo e ricompattiamo il file prestando attenzione all estensione dello stesso che dovrà essere.war per poter esser correttamente installato da Tomcat. A questo punto accediamo con un web browser all Application server Tomcat installato in precedenza e clicchiamo su Manager App. Nella sezione WAR file to deploy selezioniamo il file war e clicchiamo su Deploy. Se tutto è andato correttamente la Webapp risulta ora installata Figura IV-10: Tomcat Manager App e raggiungibile via web browser all indirizzo: 136
138 V. Uso sperimentale e validazione V. Uso sperimentale - validazione V.1. Introduzione In questo capitolo verrà illustrato il funzionamento del sistema di monitoring, alarming, reporting per l infrastruttura Cloud della Facoltà di Scienze Economiche, Giuridiche e Politiche dell Università degli Studi di Cagliari V.2. L infrastruttura Cloud Il Cloud su cui verrà implementato il sistema di monitoraggio, consente la virtualizzazione dei sistemi server e client nella suddetta Facoltà. Dal punto di vista hardware l infrastruttura è composta da 2 host IBM xseries dotati di processore Intel Xeon, da un apparato di rete switch 100/1000 (Gigabit). L infrastruttura Cloud è implementata mediante il prodotto VMware vspehere 5.0 Essential Kit che consente la creazione di Cloud su infrastrutture fino ad un massimo di 3 host fisici con massimo 2 processori l uno. La versione del prodotto comprende sia l hypervisor per gli host sia il sistema di gestione centralizzata vcenter, per mezzo del quale è possibile gestire l intera infrastruttura. Sull infrastruttura creata sono in funzione 40 virtual machine dotate di sistema operativo sia server che client (Windows e Linux). In particolare la struttura dell inventario è la seguente: Economia Datacenter Economia Cluster Server applicazioni1 Server applicazioni2 Server applicazioni3 Server backup Win2k Win2k3 SE Win2k8 x32 Win2k8 x64 VCenter CentOS Client 1 Client Linux1 Client Linux10 Client Linux11 Client Linux12 Client Linux13 Client Linux14 Client Linux15 Client Linux16 137
139 V. Uso sperimentale - validazione Client Linux17 Client Linux18 Client Linux19 Client Linux2 Client Linux20 Client Linux3 Client Linux4 Client Linux5 Client Linux6 Client Linux7 Client Linux8 Client Linux9 Client10 Client2 Client3 Client4 Client5 Client6 Client7 Client8 Client9 New Virtual Machine New Virtual Machine 2 Win2k8 64b - LISS Win2k8 x64 thin ex-spol datastorex Server applicazioni1 Server applicazioni2 Server applicazioni3 Server backup Win2k Win2k3 SE Win2k8 x32 Win2k8 x64 VCenter datastorex CentOS Client 1 Client Linux1 Client Linux10 Client Linux11 Client Linux12 Client Linux13 Client Linux14 Client Linux15 Client Linux16 Client Linux17 Client Linux18 Client Linux19 138
140 V. Uso sperimentale - validazione Client Linux2 Client Linux20 Client Linux3 Client Linux4 Client Linux5 Client Linux6 Client Linux7 Client Linux8 Client Linux9 Client10 Client2 Client3 Client4 Client5 Client6 Client7 Client8 Client9 New Virtual Machine New Virtual Machine 2 Win2k8 64b - LISS Win2k8 x64 thin ex-spol V.3. Installazione e configurazione del sistema Il sistema di monitoraggio è stato installato su una virtual machine dotata di sistema operativo Windows 2008 Server all interno della stessa infrastruttura, nello stesso host fisico che ospita la virtual machine relativa al sistema di gestione vcenter, in tal modo si minimizzano i tempi di accesso al sistema di gestione del Cloud mediante le API a disposizione. Come indicato nel capitolo relativo all installazione e alla configurazione, il sistema è stato installato in un ambiente dotato di DBMS MySQL 5, e di application container Apache Tomcat 7. Sia il DBMS che l application container sono stati configurati in modo da ottimizzare l utilizzo della memoria RAM sia per la gestione delle tabelle del database del sistema sia per le diverse tipologie di memoria della Java Virtual Machine. L analisi sperimentale dei tempi di recupero delle metriche di performance per ogni ciclo sono riportate nella seguente tabella: VM Attive Tempo di recupero performance VM (Secondi) Tempo totale di recupero performance (Secondi) 139
141 V. Uso sperimentale - validazione Tabella V-1:Tempo di recupero metriche di performance in funzione del numero di Virtual Machine attive Il tempo di recupero delle metriche di performance mostra quindi un andamento lineare in funzione del numero di VM attive come mostrato nel seguente grafico: Figura V-1: Tempo di recupero delle metriche di performance in funzione del numero di Virtual Machine attive V.4. Visualizzazione delle proprietà e delle metriche di performance Dal punto di vista logico l infrastruttura è costituita da un Datacenter. Il Datacenter è costituito a sua volta da un Cluster composto da due Host System. Il Cluster ospita quaranta Virtual Machine. Sono presenti due Datastore associati agli Host System. Nei prossimi sottoparagrafi è riportato l utilizzo del sistema per il recupero delle proprietà e delle metriche di performance per alcuni elementi dell infrastruttura. V.4.1. Datacenter Nell infrastruttura è presente un unico Datacenter, sul quale sono rilevabili proprietà e metriche e statistiche di performance per gli elementi ad esso associati. 140
142 V Proprietà V. Uso sperimentale - validazione Per gli elementi di tipo Datacenter sono rilevabili 6 proprietà. Un esempio di proprietà rilevate per un elemento di tipo datacenter sono mostrate nella seguente tabella: Datacenter - Economia Datacenter GENERAL INFO Name Economia Datacenter Alarm Actions Enabled true Config Status GRAY Overall Alarm Status GRAY Datasores Number 2 Networks Number 2 Tabella V-2: Proprietà rilevate per un elemento Datacenter del Cloud V Metriche di performance Per gli elementi di tipo Datacenter non sono disponibili metriche di performance, sono invece disponibili le metriche aggregate degli elementi associati quali Cluster, Host System, Virtual Machine e Datastore. Di seguito un esempio di statistiche visualizzate dal sistema di monitoraggio per un elemento Datacenter del Cloud con i seguenti parametri: Datacenter: Economia Datacenter Search parameter Minute: one day Sorting type: descendant Chart value limit: 20 Cluster 141
143 V. Uso sperimentale - validazione Host System 142
144 V. Uso sperimentale - validazione 143
145 V. Uso sperimentale - validazione 144
146 V. Uso sperimentale - validazione 145
147 V. Uso sperimentale - validazione 146
148 V. Uso sperimentale - validazione 147
149 V. Uso sperimentale - validazione 148
150 V. Uso sperimentale - validazione Virtual Machine 149
151 V. Uso sperimentale - validazione 150
152 V. Uso sperimentale - validazione 151
153 V. Uso sperimentale - validazione Datastore 152
154 V. Uso sperimentale - validazione 153
155 V. Uso sperimentale - validazione 154
156 V. Uso sperimentale - validazione 155
157 V. Uso sperimentale - validazione V.4.2. Datastore Nell infrastruttura sono presenti due Datastore, sui quali sono rilevabili proprietà e metriche e statistiche di performance anche per gli elementi Virtual Machine ad essi associati. V Proprietà Per gli elementi di tipo Datastore sono rilevabili 19 proprietà. Un esempio di proprietà rilevate per un elemento di tipo datastore sono mostrate nella seguente tabella: Datastore - datastorex3250 GENERAL INFO Name Alarm Actions Enabled Config Status Overall Alarm Status Accesible Capacity (bytes) Free Space (bytes) Maintainance Mode Type of File System Volume Uncommitted (bytes) datastorex3250 true GRAY GREEN true 4,94727E+11 2,68978E+11 normal VMFS 1,0318E
158 V. Uso sperimentale - validazione Url ds:///vmfs/volumes/4ffb2fc5-d0418c93-fab e67bfd0/ Max File Size (bytes) 2,19902E+12 Timestamp T06:53: Z Directory Hierarchy Supported true Per File Thin Provisioning Supported true Raw Disk Mappings Supported true Storage IORM Supported true Hosts Number 1 VMs Number 8 Tabella V-3: Proprietà rilevate per un elemento Datastore del Cloud V Metriche di performance Per gli elementi di tipo Datastore sono disponibili metriche di performance e metriche aggregate degli elementi Virtual Machine associati. Di seguito un esempio di statistiche visualizzate dal sistema per un elemento Datastore del Cloud con i seguenti parametri: Datastore: datastorex3250 Search parameter Minute: one day Sorting type: descendant Chart value limit: 20 This Datastore 157
159 V. Uso sperimentale - validazione 158
160 V. Uso sperimentale - validazione 159
161 V. Uso sperimentale - validazione 160
162 V. Uso sperimentale - validazione Datastore Storage by Virtual Machine 161
163 V. Uso sperimentale - validazione Disk usage by Virtual Machine 162
164 V. Uso sperimentale - validazione V.4.3. Cluster Nell infrastruttura è presente un Cluster, sul quale sono rilevabili proprietà e metriche e statistiche di performance, anche per gli elementi Host system e Virtual Machine ad esso associati. V Proprietà Per gli elementi di tipo Cluster sono rilevabili 17 proprietà. Un esempio di proprietà rilevate per un elemento di tipo cluster sono mostrate nella seguente tabella: Cluster - Economia Cluster GENERAL INFO Name Economia Cluster Alarm Actions Enabled true Config Status GREEN Overall Alarm Status GREEN Effective Cpu Resources (MHz) 0 Effective Memory (MB) Cpu Cores Number 8 Cpu Threads Number 16 Effective Hosts Number 2 Hosts Number 2 Total Cpu Resources (MHz) Total Memory Resources (bytes)
165 SPBM Enabled VM Swap Placement vmdirectory Datastores Number 2 Networks Number 2 Hosts Number 2 Tabella V-4: Proprietà rilevate per un elemento Cluster del Cloud V. Uso sperimentale - validazione V Metriche di performance Per gli elementi di tipo Cluster sono disponibili metriche di performance e metriche aggregate degli elementi associati quali Host System e Virtual. Di seguito un esempio di statistiche visualizzate dal sistema per un elemento Cluster del Cloud con i seguenti parametri: Cluster: Economia Cluster Search parameter Minute: one hour Sorting type: descendant Chart value limit: 20 This Cluster 164
166 V. Uso sperimentale - validazione Host System 165
167 V. Uso sperimentale - validazione 166
168 V. Uso sperimentale - validazione 167
169 V. Uso sperimentale - validazione 168
170 V. Uso sperimentale - validazione 169
171 V. Uso sperimentale - validazione 170
172 V. Uso sperimentale - validazione Virtual Machine 171
173 V. Uso sperimentale - validazione 172
174 V. Uso sperimentale - validazione 173
175 V. Uso sperimentale - validazione 174
176 V. Uso sperimentale - validazione V.4.4. Host System Nell infrastruttura sono presenti due Host System, sui quali sono rilevabili proprietà e metriche e statistiche di performance anche per gli elementi Virtual Machine ad essi associati. V Proprietà Per gli elementi di tipo Host System sono rilevabili 163 proprietà. Un esempio di proprietà rilevate per un elemento di tipo host system sono mostrate nella seguente tabella: Host System GENERAL INFO Name Alarm Actions Enabled Config Status Overall Status CAPABILITY INFO Background Snapshots Supported Clone From Snapshot Supported Clone From Snapshot Supported Cpu Memory Resource Configuration Supported Datastore Principal Supported Delta Disk Backings Supported Firewall Ip Rules Supported Ft Compatibility Issues true GREEN GREEN false true true true true true true [ftnotlicensed, haagentissue, missingftloggingnic, missingvmotionnic, vmotionnotlicensed] Ft Supported High Guest Memory Supported IPMI Supported iscsi Supported Local Swap Datastore Supported Login By SSL Thumbprint Supported Maintenance Mode Supported false true true true true true true 175
177 V. Uso sperimentale - validazione Max Host Running VMs 99 Max Host Supported VCPUs 100 Max Running VMs 0 Max Supported VCPUs 8 Max Supported VMs 1200 NFS Supported NIC Teaming Supported Per VM Network Traffic Shaping Supported Per VM Swap Files Pre Assigned PCI Unit Numbers Supported Reboot Supported Record Replay Supported Recursive Resource Pools Supported Replay Compatibility Issues [] Replay Unsupported Reason Restricted Snapshot Relocate Supported San Supported Scaled Screenshot Supported Screenshot Supported Service Package Info Supported Shutdown Supported Snapshot Relayout Supported Standby Supported Storage IORM Supported Storage VMotion Supported true true false true true true true true true true true true true true true true false true Supported VMFS Major Version [3, 5] Suspended Relocate Supported TPM Supported Unshared Swap VMotion Supported Virtual Exec Usage Supported VLAN Tagging Supported VM Direct Path Gen 2 Supported VM Direct Path Gen 2 Unsupported Reason [] VM Direct Path Gen 2 Unsupported Reason Extended VMFS Datastore Mount Capable Vmotion Supported Vmotion With Storage VMotion Supported true false true true true true true false false VStorage Capable CONFIG INFO Active Diagnostic Partition Diagnostic Type Active Diagnostic Partition Disk Name true singlehost naa e a19c5345e3f50202 Active Diagnostic Partition Partition 7 Active Diagnostic Partition Slots 1 Active Diagnostic Partition Storage Type directattached 176
178 Admin Disabled Authentication Manager Info Auth Config Auto Start Defaults Enabled false Auto Start Defaults Start Delay (s) 120 Auto Start Defaults Stop Delay (s) 120 Auto Start Defaults Stop Action Auto Start Defaults Wait For Heartbeat Console Reservation Service Console Reserved (MB) Console Reservation Service Console Reserved Cfg (MB) Console Reservation Unreserved (MB) 0 Datastore Capabilities Local Datastore Supported V. Uso sperimentale - validazione 17d3d64, 3e0] PowerOff false 0 0 false Datastor Capabilities NFS Mount Creation Required Datastore Capabilities NFS Mount Creation Supported Datastore Capabilities VMFS Extent Expansion Supported true true true Datastore Principal Date Time Info Time Zone Name Date Time Info Time Zone Key Date Time Info Time Zone GMT Offset 0 Date Time Info NTP Config Server Firewall Default Policy Incoming Blocked Firewall Default Policy Outgoing Blocked Hyper Thread Active Hyper Thread Available Hyper Thread Config IPMI Bmc Ip Address IPMI Bmc Mac Address IPMI Login IPMI Password Multipath State Path Power System Info Current Policy Description Power System Info Current Policy Key 0 Power System Info Current Policy Name Power System Info Current Policy Short Name Product Api Type root UTC UTC [ntp1.inrim.it, ntp2.inrim.it] true true true true true Product Api Version 5.0 8b6832, 65deb3] PowerPolicy.off.description PowerPolicy.off.name off HostAgent Product Build
179 Product Full Name Product Instance Uuid Product License Product Name Product License Product Version 5.0 Product Locale Build 0 Product Locale Version Product Name Product O.S Type Product Line Id Product Vendor VMware ESXi build VMware ESX Server INTL Product Version System File Virtual Machine Reservation Allocation Policy Virtual Machine Reservation Virtual Machine Max (bytes) VMware ESXi vmnix-x86 embeddedesx VMware, Inc. 0 V. Uso sperimentale - validazione Virtual Machine Reservation Virtual Machine Min (bytes) Virtual Machine Reservation Virtual Machine Reserved (bytes) 0 0 Wake On Lan Capable HARDWARE INFO Bios Version -[GYE120CUS-1.00]- Bios Release Date T00:00:00Z Cpu Speed Per Core (Hz) Cpu Num Cores 4 Cpu Num Packages 1 Cpu Num Threads 8 Cpu Power Management Current Policy Not supported Cpu Power Management Hardware Support Not available Memory Size (bytes) Smc Present false System Model System x3250 M3 -[4252EBG]- System Uuid e-f5a7-11de-ac e67bfcf System Vendor IBM RUNTIME INFO Boot Time T19:46: Z Connection State CONNECTED Das Host State Maintenance Mode false Power State POWERED_ON Standby Mode none SUMMARY CONFIG INFO Config Fault Tolerance Enabled false Config Port
180 V. Uso sperimentale - validazione Config SSL Thumbprint 69:50:2C:33:D7:30:20:0D:B4:5F:64:CE:2D:CD:8E: 5E:8C:1D:CF:90 Config Vmotion Enabled false Current EVC Mode Key SUMMARY HARDWARE INFO Cpu Cores Speed (Mhz) 2526 CPU Model Intel(R) Xeon(R) CPU 2.53GHz Memory Size (bytes) System Model System x3250 M3 -[4252EBG]- Num Cpu Cores 4 Num Cpu Pkgs 1 Num Cpu Threads 8 Num HBAs 5 Num Nics 3 Uuid e-f5a7-11de-ac e67bfcf Vendor IBM Management Server Ip Max EVC Mode Key intel-nehalem Overall Status intel-nehalem SUMMARY QUICK STAT INFO Distributed Cpu Fairness (unit) -1 Distributed Memory Fairness (unit) -1 Overall Cpu Usage (MHz) 1528 Overall Memory Usage (MB) Uptime (s) Reboot Required false OTHER INFO Datastores Number 1 Networks Number 2 VMs Number 8 Tabella V-5: Proprietà rilevate per un elemento Host System del Cloud V Metriche di performance Per gli elementi di tipo Host System sono disponibili metriche di performance e metriche aggregate degli elementi associati di tipo Virtual Machine. Di seguito un esempio di statistiche visualizzate dal sistema per un elemento Host System del Cloud con i seguenti parametri: Host System: Search parameter Minute: one day Sorting type: descendant Chart value limit:
181 V. Uso sperimentale - validazione This Host System 180
182 V. Uso sperimentale - validazione 181
183 V. Uso sperimentale - validazione 182
184 V. Uso sperimentale - validazione 183
185 V. Uso sperimentale - validazione 184
186 V. Uso sperimentale - validazione 185
187 V. Uso sperimentale - validazione Virtual Machine 186
188 V. Uso sperimentale - validazione 187
189 V. Uso sperimentale - validazione 188
190 V. Uso sperimentale - validazione V.4.5. Virtual Machine Nell infrastruttura sono presenti 40 Virtual Machine, sulle quali sono rilevabili proprietà e metriche e statistiche di performance. 189
191 V Proprietà V. Uso sperimentale - validazione Per gli elementi di tipo Virtual Machine sono rilevabili 79 proprietà. Un esempio di proprietà rilevate per un elemento di tipo virtual machine sono mostrate nella seguente tabella: Virtual Machine Properties - Win2k3 SE GENERAL INFO Name Win2k3 SE Alarm Actions Enabled true Config Status GREEN Overall Alarm Status GREEN Guest Heartbeat Status GREEN GENERAL CONFIG INFO Alternate Guest Name Annotation Change Version Firmware Guest Full Name Guest Id Instance UUID Modified Version T12:15: Z bios Microsoft Windows Server 2003 Standard (32-bit) winnetstandardguest 522f69d4-f51a-fd01-6b79-aa65e8825d T00:00:00Z vmx-08 GUEST SYSTEM INFO App Heartbeat Status Guest Family Guest Full Name appstatusgray windowsguest Microsoft Windows Server 2003 Standard (32-bit) Guest Id winnetstandardguest Guest Operations Ready true Guest State running Host Name utente-1gjv7yp3 Ip Address Screen 1440 x 900 Tools Running Status guesttoolsrunning Tools Version 8389 Tools Version Status2 guesttoolscurrent RESOURCE CONFIG INFO Change Version Last Modified Cpu Allocation Limit (MHz) -1 Cpu Allocation Reservation (MHz) 3000 Memory Allocation Limit (MB) -1 Memory Allocation Reservation (MB) 0 Resource Pool RUNTIME INFO Boot Time resgroup T12:15: Z 190
192 V. Uso sperimentale - validazione Clean Power Off Connection State Consolidation Needed Vm Protection State Fault Tolerance State Host CONNECTED false Max Cpu Usage (MHz) 8516 Max Memory Usage (MB) 4096 Need Secondary Reason MKS Connections Number 0 Power State Suspend Interval (ms) 0 Suspend Time SNAPSHOT INFO Current Snapshot STORAGE INFO NOT_CONFIGURED POWERED_ON Storage Committed (bytes) Storage Timestamp Storage Uncommitted (bytes) Storage Unshared (bytes) GUEST SYSTEM CONFIG INFO Cpu Reservation (MHz) 3000 Memory Reservation (MB) 0 Memory Size (MB) 4096 Cpu Number 8 Ethernet Cards Number 2 Virtual Disks Number 1 Template Vm Path Name QUICK STATS INFO Ballooned Memory (MB) 0 Compressed Memory (KB) 0 Consumed Overhead Memory (MB) 93 Distributed Cpu Entitlement (MHz) 0 Distributed Memory Entitlement (MB) T06:51: Z false Guest Memory Usage (MB) 163 Host Memory Usage (MB) 4189 Overall Cpu Demand (MHz) 75 Overall Cpu Usage (MHz) 75 Private Memory (MB) 4096 Shared Memory (MB) 0 Ssd Swapped Memory (KB) 0 Static Cpu Entitlement (MHz) 0 Static Memory Entitlement (MB) 0 Swapped Memory (MB) 0 [datastorex3250] Windows Server 2003 SE thin/windows Server 2003 SE thin.vmx 191
193 Uptime Seconds (s) OTHER INFO Datastores Number 1 Networks Number 1 Tabella V-6: Proprietà rilevate per un elemento Virtual Machine del Cloud V. Uso sperimentale - validazione V Metriche di performance Per gli elementi di tipo Virtual Machine sono disponibili metriche di performance e metriche aggregate degli elementi di tipo Datastore associati. Di seguito un esempio di statistiche visualizzate dal sistema per un elemento Datacenter del Cloud con i seguenti parametri: Virtual Machine: Win2K3 SE Search parameter Minute: one day Sorting type: descendant Chart value limit: 20 This Virtual Machine 192
194 V. Uso sperimentale - validazione 193
195 V. Uso sperimentale - validazione 194
196 V. Uso sperimentale - validazione 195
197 V. Uso sperimentale - validazione Virtual Machine Storage by Datastore V.5. Gestione degli allarmi L impostazione di un allarme consente di ricevere una di notifica al verificarsi dello stesso. Un esempio di allarme è il seguente: Timestamp inserimento: :56:34.0 Tipologia elemento: VirtualMachine Nome : Win2k8 x32 Metrica: Cpu Usage Average 196

References: in fine
in fine
in fine
in fine
in fine
in fine