• Non ci sono risultati.

9. ELASTICDAEMON, AUTOSCALING SU EUCALYPTUS

9.2 Monitoring delle istanze

Figura 29 Architettura utilizzata per lo sviluppo di ElasticDaemon

Anche gli altri componenti di ElasticDaemon sono stati installati sulla macchina del Cluster Controller, in questo modo è possibile interagire direttamente con il load balancer ma anche con tutti gli altri componenti di Eucalyptus: una scelta plausibile potrebbe anche essere quella di installare il demone di controllo sulla macchina su cui viene eseguito il frontend di Eucalyptus, ma in questo caso è necessario utilizzare un sistema più complesso per poter effettuare operazioni sui componenti installati sul cluster controller, quale il load balancer, e per monitorare lo stato delle istanze, operazione che risulta invece diretta se eseguita dal cluster controller (il Cluster controller è dotato di un’interfaccia di rete virtuale collegata con la rete privata delle istanze).

9.2 Monitoring delle istanze

Uno dei componenti fondamentali per lo sviluppo di un sistema di autoscaling è il servizio che si occupa di verificare lo stato e l’utilizzo di risorse delle istanze in esecuzione. Il monitor deve innanzitutto verificare che ogni istanza sia attiva e successivamente recuperare le informazioni necessarie per valutarne l’utilizzo di risorse. Come per il servizio CloudWatch di Amazon, anche il monitor implementato è in grado di conoscere i valori associati allo stato di utilizzo di diverse risorse, in particolare la percentuale di utilizzo della CPU, la quantità di dati trasmessa in ingresso e in uscita dalla rete e il numero di accessi su disco in lettura e scrittura. Il monitor viene impostato per interrogare le istanze con un certo periodo definito dall’utente, che può essere modificato a runtime.

È necessario definire anche una serie di metodi statistici per poter valutare se il cluster di istanze sia sovraccarico o meno, basandosi sui valori medi, massimi, minimi o totali di utilizzo, a seconda di come

l’utente preferisce monitorare le proprie macchine virtuali. Nell’implementazione di ElasticDaemon non è stato inserito il supporto al parametro BreachDuration di Amazon CloudWatch, che potrà essere sviluppato come funzionalità aggiuntiva.

Accesso alle informazioni sull’utilizzo di risorse

Per poter conoscere i parametri necessari a valutare lo stato di utilizzo di determinate risorse è necessario avere accesso diretto alla macchina virtuale oppure poter interrogare l’hypervisor che si occupa della virtualizzazione di questa. Se l’hypervisor utilizzato è KVM, purtroppo non è semplice ottenere informazioni sull’utilizzo di risorse, dato che non è ancora stato sviluppato un sistema in grado di fornire tali dati, in particolare per monitorare la percentuale di utilizzo della CPU. Se si utilizzano tool per il monitoring di virtual machine guest KVM si vede che il valore ritornato non rappresenta l’utilizzo effettivo della CPU virtuale, ma viene rilevata la percentuale di utilizzo della CPU della macchina host, che non costituisce un valore di interesse per il sistema di autoscaling. Per ovviare a questo problema si è deciso di interagire direttamente con la macchina virtuale, recuperando tutti i dati necessari sfruttando le funzionalità offerte dal programma sysstat, interrogato mediante un accesso sicuro via ssh. È stato necessario quindi modificare l’immagine da utilizzare su Eucalyptus installando i pacchetti necessari per l’esecuzione di questa applicazione.

Sysstat

Sysstat [62] è un insieme di strumenti di monitoring per sistemi operativi Linux, consente di visualizzare molte informazioni riguardo l’utilizzo attuale delle risorse del sistema; si possono monitorare:

• la percentuale di utilizzo delle CPU

• la quantità di dati trasmessa dalle interfacce di rete • lo stato della memoria

• la quantità di dati scritti e letti su disco

• dati statistici sulle trasmissioni di tali a livello di rete o di trasporto

La quantità di informazioni che questa suite di strumenti è in grado di fornire è molto grande, basti pensare che solo per il monitoring di una interfaccia di rete si possono consultare più di cento valori. Sfruttando le potenzialità di sysstat è stato possibile sviluppare un sistema di monitoring efficiente, che può elaborare una quantità di informazioni molto vasta e precisa. Adeguandosi ai parametri utilizzati da Amazon, il monitor di ElasticDaemon è in grado di monitorare 5 metriche: utilizzo in percentuale di CPU, trasferimenti di dati su disco in scrittura e lettura, quantità di dati trasmessa sull’interfaccia di rete in ingresso e in uscita. Nel caso servisse si possono aggiungere nuove funzionalità per poter monitorare l’utilizzo di risorse mediante metriche diverse, in modo da poter fornire all’utente una gamma più ampia di parametri tra cui scegliere.

Sysstat può essere impostato perché monitori periodicamente i parametri del sis

desidera, con un intervallo di tempo personalizzabile, questi parametri però devono essere manualmente in un file di configurazione, diventa quindi impratica

un ambiente dinamico. La suite di monitoring fornisce una serie di comandi

quali può essere opportunamente parametrizzato dall’utente, a seconda del tipo di informazioni che desidera ottenere. Uno degli strumenti che si possono utilizzare per monitorare l’utilizzo delle risorse utilizzate da un’istanza è sar, che viene invocato con una si

sar <resource type> <interval> <count>

Utilizzando questo strumento è possibile

intervallo specificato in secondi e per un numero preciso di volte. L’output del programma conterrà i dati relativi alle misurazioni effettuate, seguiti da una riga contenente i valori medi misurati. Per il monitoring delle istanze dell’Autoscaling Cluster una scelta valida può essere di impostare l’intervallo di tempo a 1s e il numero di misurazio

mostrato in output. Il tempo richiesto per effettuare una misurazione è sufficientemente breve (circa 3 secondi) e si evita di ottenere valori non corretti se una delle misure riscontrasse dei valori ch discostano troppo dagli altri, dato

Figura

Sysstat può monitorare una grande quantità di risorse e di mostrare valori molto precisi di tutt misurazioni effettuate. Si possono scegliere diversi tipi di misurazioni:

Utilizzo di CPU (opzione

distinti l’uno dall’altro o considerati nel loro insieme. I dati visualizzati mos in cui ogni tipo di processo (utente, system, ecc) ha occupato il processore. • Utilizzo dei dispositivi di I/O (opzione

dispositivi di I/O e il numero

trasferimenti al secondo, da e verso i dischi, oltre alla quantità di dati letti e scritti. • Statistiche sul traffico delle interfacce di rete (opzione

traffico in ingresso e in uscita da

sono la quantità di dati inviata e trasmessa al secondo, il numero di pacchetti inviati e ricevuti, insieme al numero di pacchetti compressi (inviati e ricevuti)

ricevuti. Per l’analisi del traffico è possibile utilizzare altre opzioni di sar, per ottenere dati a livello IP, come il numero di datagrammi ricevuti, quanti di essi erano frammentati ecc, oppure

9.2. Monitoring delle istanze

può essere impostato perché monitori periodicamente i parametri del sis

intervallo di tempo personalizzabile, questi parametri però devono essere manualmente in un file di configurazione, diventa quindi impraticabile utilizzare tale

La suite di monitoring fornisce una serie di comandi invocabili

essere opportunamente parametrizzato dall’utente, a seconda del tipo di informazioni che desidera ottenere. Uno degli strumenti che si possono utilizzare per monitorare l’utilizzo delle risorse

che viene invocato con una sintassi del tipo:

source type> <interval> <count>

possibile monitorare una determinata risorsa periodicamente intervallo specificato in secondi e per un numero preciso di volte. L’output del programma conterrà i dati relativi alle misurazioni effettuate, seguiti da una riga contenente i valori medi misurati. Per il monitoring delle istanze dell’Autoscaling Cluster una scelta valida può essere di impostare l’intervallo di tempo a 1s e il numero di misurazioni compreso tra 2 e 3 e di utilizzare il val

l tempo richiesto per effettuare una misurazione è sufficientemente breve (circa 3 secondi) e si evita di ottenere valori non corretti se una delle misure riscontrasse dei valori ch discostano troppo dagli altri, dato che si considera il valor medio dei risultati.

Figura 30 Esempio di output del tool sysstat

Sysstat può monitorare una grande quantità di risorse e di mostrare valori molto precisi di tutt misurazioni effettuate. Si possono scegliere diversi tipi di misurazioni:

(opzione –u) in cui vengono misurate le percentuali di utilizzo dei processori, distinti l’uno dall’altro o considerati nel loro insieme. I dati visualizzati mos

di processo (utente, system, ecc) ha occupato il processore.

Utilizzo dei dispositivi di I/O (opzione –b) in cui si misurano la quantità di dati trasferiti sui dispositivi di I/O e il numero di accessi effettuati. Si possono visualizzare il numero di trasferimenti al secondo, da e verso i dischi, oltre alla quantità di dati letti e scritti.

Statistiche sul traffico delle interfacce di rete (opzione –n DEV), in cui viene analizzato il traffico in ingresso e in uscita dalla interfacce di rete della macchina. I risultati che si ottengono sono la quantità di dati inviata e trasmessa al secondo, il numero di pacchetti inviati e ricevuti, insieme al numero di pacchetti compressi (inviati e ricevuti) e al numero di pacchetti m

Per l’analisi del traffico è possibile utilizzare altre opzioni di sar, per ottenere dati a il numero di datagrammi ricevuti, quanti di essi erano frammentati ecc, oppure 121 può essere impostato perché monitori periodicamente i parametri del sistema che l’utente intervallo di tempo personalizzabile, questi parametri però devono essere definiti tale tipo di servizio in invocabili, ognuno dei essere opportunamente parametrizzato dall’utente, a seconda del tipo di informazioni che desidera ottenere. Uno degli strumenti che si possono utilizzare per monitorare l’utilizzo delle risorse

periodicamente, con un intervallo specificato in secondi e per un numero preciso di volte. L’output del programma conterrà tutti i dati relativi alle misurazioni effettuate, seguiti da una riga contenente i valori medi misurati. Per il monitoring delle istanze dell’Autoscaling Cluster una scelta valida può essere di impostare ni compreso tra 2 e 3 e di utilizzare il valore medio l tempo richiesto per effettuare una misurazione è sufficientemente breve (circa 3 secondi) e si evita di ottenere valori non corretti se una delle misure riscontrasse dei valori che si

Sysstat può monitorare una grande quantità di risorse e di mostrare valori molto precisi di tutte le

in cui vengono misurate le percentuali di utilizzo dei processori, distinti l’uno dall’altro o considerati nel loro insieme. I dati visualizzati mostrano le percentuali

di processo (utente, system, ecc) ha occupato il processore.

si misurano la quantità di dati trasferiti sui possono visualizzare il numero di trasferimenti al secondo, da e verso i dischi, oltre alla quantità di dati letti e scritti.

, in cui viene analizzato il lla interfacce di rete della macchina. I risultati che si ottengono sono la quantità di dati inviata e trasmessa al secondo, il numero di pacchetti inviati e ricevuti, e al numero di pacchetti multi cast Per l’analisi del traffico è possibile utilizzare altre opzioni di sar, per ottenere dati a il numero di datagrammi ricevuti, quanti di essi erano frammentati ecc, oppure

sul traffico a livello di trasporto, come il numero di connessioni attivate e terminate al secondo o il numero di pacchetti TCP ricevuti al secondo.

Utilizzo di memoria (opzione –r) in cui sar monitora lo stato della memoria della macchina, mostrando la quantità di memoria allocata rispetto a quella libera, insieme ai dati di utilizzo di questa da parte del kernel. È possibile anche visualizzare (utilizzando l’opzione –R) le statistiche relative alla memoria, come il numero di pagine liberate al secondo e il numero di pagine utilizzate per la cache di sistema.

Immagini EMI modificate

Bisogna sottolineare però che per utilizzare gli strumenti sysstat nelle operazioni di monitoring è necessario disporre di immagini modificate, in grado di eseguire gli strumenti di monitoring. Tali immagini devono essere accessibili via ssh dal monitor, perché questi possa raccogliere i dati di cui necessita. Questa complicazione non risulta però così vincolante, infatti basta che il provider fornisca una serie di immagini “ready-to-use” che contengano già gli applicativi richiesti. Anche l’accesso ssh non crea particolari problemi, per mantenere alti i livelli di sicurezza è sufficiente definire un utente che possa eseguire solamente i comandi eseguibili del pacchetto sysstat, come sar, che sarà collegato all’accesso ssh utilizzato dal monitor.