Strategie di Analisi dei dati di malfunzionamenti per reti Bluetooth

annuncio pubblicitario
Università degli studi di Napoli “Federico II”
Facoltà di Ingegneria
Corso di laurea specialistica in Ingegneria delle
Telecomunicazioni
Tesi di Laurea
Strategie di Analisi dei dati di
malfunzionamenti per reti Bluetooth
Relatori
Candidato
Ch. mi Prof.
Giulio Virnicchi
Stefano Russo
Matricola 887/17
Domenico Cotroneo
ANNO ACCADEMICO 2004 – 2005
Ai miei Cari
Ringraziamenti
E’ strano accorgersi di quanto un’esperienza che si è già vissuta
possa ancora rivelarsi tanto sorprendente. A pochi giorni dalla conclusione
di questo secondo capitolo della mia carriera universitaria, sono contento di
essere riuscito a ritagliare un piccolo spazio per dare ascolto ai miei
pensieri, riconsiderare la mia vita e quanto il sostegno delle persone care
sia stato sempre presente in ogni sua fase.
E’ a loro che dedico questo lavoro, nessuna parola potrà mai rendere la
riconoscenza e l’affetto che provo per voi.
In particolare un ringraziamento speciale va alla mia famiglia, i miei
genitori, mio fratello Giorgio ed i miei adorabili nonni per avere sempre
dimostrato la fiducia che provano per me e per avermi regalato una vita
sempre serena e felice. Alla mia dolce Laura, con la quale ho condiviso le
difficoltà ed i momenti più belli di questi anni. I loro sorrisi, il loro affetto,
il loro sostegno sono stati per me una continua fonte di energia.
Ringrazio il Professore Stefano Russo per avermi offerto la possibilità di
esser parte del suo gruppo, un ambiente piacevole e stimolante, in una sola
parola ideale. Domenico per avere sempre creduto in me ed aver reso
questo lavoro possibile. In lui ho scoperto un vero amico oltre che una
guida ed un modello di ispirazione.
I miei amici del dipartimento,
Ringraziamenti
5
____________________________________________________________
Marcello, Gabriella, Generoso e Salvatore, con loro accanto il lavoro non è
mai sembrato tale.
Ringrazio infine gli amici più cari, per essermi sempre stati vicini,
comprendendo le mie continue assenze ed il poco tempo che ho potuto
dedicare loro negli ultimi mesi.
Indice
Ringraziamenti________________________________________________4
Indice ______________________________________________________6
Introduzione _________________________________________________8
Dependability di un sistema distribuito di prossima generazione _____________ 12
1.2
1.2.2
1.2.3
1.2.4
1.2.5
1.2.6
1.2.7
1.3
1.3.2
1.3.3
1.3.4
1.3.5
Concetti di dependability ___________________________________________ 15
Availability __________________________________________________________
Reliability____________________________________________________________
Safety _______________________________________________________________
Performability ________________________________________________________
Maintainability _______________________________________________________
Misure di Dependability ________________________________________________
16
17
19
19
21
21
Minacce per la Dependability _______________________________________ 22
Guasti _______________________________________________________________
Errori _______________________________________________________________
Fallimenti____________________________________________________________
Relazioni tra guasti, errori, fallimenti_____________________________________
23
27
27
31
1.4
Migliorare la dependability di un sistema _____________________________ 34
1.5
Valutazione della dependability di un sistema _________________________ 36
Misure ed Analisi dirette ________________________________________ 40
2.2
Collezione dei dati_________________________________________________ 41
2.3
Filtraggio dei dati _________________________________________________ 43
2.4
Estrazione e Coalescenza dei dati ____________________________________ 44
2.5
Analisi preliminare di errori e fallimenti ______________________________ 49
2.6
Analisi del comportamento del sistema _______________________________ 49
Introduzione a Bluetooth________________________________________ 51
3.2
3.2.2
3.2.3
3.2.4
3.2.5
3.3
Bluetooth ________________________________________________________ 54
Livello Radio _________________________________________________________
Livello Baseband ______________________________________________________
Logical Link Control and Adaptation Layer Protocol _______________________
Bluetooth Networking Encapsulation Protocol BNEP________________________
56
57
59
62
Il profilo PAN ____________________________________________________ 62
Infrastruttura per la raccolta dati __________________________________ 65
4.2
4.2.2
4.2.3
4.2.4
La generazione e la raccolta dei dati__________________________________ 66
Architettura per la raccolta dati _________________________________________ 68
Struttura e persistenza dei dati __________________________________________ 70
Emulazione del traffico_________________________________________________ 72
7
Indice
____________________________________________________________
4.2.5
4.3
4.3.2
4.3.3
Il LogAnalyzer________________________________________________________ 76
Il testbed ________________________________________________________ 80
Linux e Bluetooth : lo stack BlueZ _______________________________________ 81
Windows XP e Bluetooth _______________________________________________ 84
Selezione ed Analisi dei dati ______________________________________ 86
5.2
5.2.2
5.2.3
5.2.4
5.2.5
5.3
5.3.2
5.3.3
5.3.4
5.3.5
5.3.6
5.3
Approccio metodologico per l’analisi di un nuovo set di dati______________ 88
Identificare l’insieme di dati ____________________________________________
Valutare la qualità dell’insieme di dati ____________________________________
Ottenere una comprensione basilare dei dati _______________________________
Analisi dei dati________________________________________________________
90
90
91
92
Applicazione delle metodologie di analisi ______________________________ 93
Identificazione e valutazione dell’insieme di dati____________________________ 94
Filtraggio, estrazione e coalescenza dei dati _______________________________ 101
Analisi preliminare dei comportamenti di sistema _________________________ 114
Correlazione tra le dinamiche di fallimento nei diversi Host _________________ 129
Legame tra errori di livello sistema e fallimenti, fenomeni di propagazione _____ 136
Conclusione e sviluppi futuri _______________________________________ 141
Bibliografia ________________________________________________ 143
Introduzione
Il mercato dei dispositivi mobili di ultima generazione sta assumendo
oggi dimensioni decisamente significative ed evolve rapidamente sotto la
spinta dei continui progressi nel campo della wireless communication e
dell’elettronica low-power.
La disponibilità di dispositivi sempre più
potenti in termini di capacità di elaborazione, memoria e connettività ha
radicalmente modificato le abitudini e le esigenze di una larga parte
dell’utenza, rendendo il mobile computing la realtà dominante nel mondo
della comunicazione sia professionale sia di intrattenimento.
La combinazione di mobile computing e la disponibilità di moderne
infrastrutture di accesso wireless a banda larga (UMTS, Wi-Fi, Bluetooth)
hanno portato al proliferare di nuove proposte per diversi scenari
applicativi in contesti quali la diagnosi e la manutenzione di impianti
[2][3], la teleimmersione [4], il mobile learning [5], la domotica [6],
sistemi di telemedicina ed healthcare [7][8].
I moderni sistemi distribuiti forniranno quindi una vasta gamma di servizi,
che potranno ricoprire anche primaria importanza nella vita di ogni giorno:
occorre quindi siano in grado di garantire la fornitura del servizio, seppure
in forma limitata, anche in presenza di guasti in componenti e sottosistemi.
Introduzione
9
____________________________________________________________
A dispetto della crescente fiducia dell’utenza verso tali sistemi, diversi
sono però i fattori tecnologici ed economici che stanno accentuando il
problema dei fallimenti nell’erogazione del servizio.
L’integrazione di componenti, siano essi di nuovo sviluppo, COTS
(Commercial Off The Shelf) o ereditati ha consentito la realizzazione di
sistemi di maggiore complessità in tempi sempre più ristretti, così come
dettati da esigenze di mercato. Tale complessità, affiancata spesso ad una
scarsa conoscenza di alcune loro parti, rende i sistemi odierni
maggiormente predisposti a problemi software ed hardware che possono
portare a degradazione delle prestazioni o persino delle funzionalità.
I nuovi scenari di mobile computing comportano la necessità ad affiancare
alle infrastrutture di rete classiche, nuove infrastrutture di rete ibride (wired
e wireless) e totalmente wireless (senza alcun core di rete fisso) per
supportare la mobilità dei dispositivi. Simili scenari introducono nuove
problematiche legate a limitazioni ambientali o tecnologiche proprie del
mobile environment quali la limitata autonomia energetica dei dispositivi,
le limitate risorse di banda e l’intermittenza dei canali wireless, la necessità
di operare su piattaforme eterogenee.
Questi fattori suggeriscono un aumento dell’occorrenza di fallimenti e la
necessità di un cambio di prospettiva: piuttosto che considerare e trattare i
fallimenti come situazioni eccezionali nel funzionamento di un sistema,
bisogna riconoscerne la presenza, comprenderne il comportamento e gestire
efficacemente le risorse per nasconderne l’impatto all’utenza finale.
10
Introduzione
____________________________________________________________
La strada migliore per comprendere le caratteristiche di affidabilità di un
sistema è attraverso misure ed analisi dirette. Realizzare misure comporta
monitorare e registrare eventi che si verificano all’interno del sistema
stesso, mentre lavora sotto l’effetto del normale carico d’utente.
Attraverso l’analisi dei dati acquisiti possono essere estratte informazioni di
valore relativamente al manifestarsi di errori e fallimenti e sul
comportamento del sistema in tali situazioni di crisi.
I metodi di analisi possono variare significativamente in funzione degli
obiettivi che la ricerca vuole perseguire. Non esistono linee guida ma
occorre sottolineare che il grado di successo in attività di questo tipo è in
larga parte dipendente dalla qualità e dalla consapevolezza con cui viene
condotta l’analisi stessa.
Il presente lavoro di tesi ricerca metodologie e strategie di analisi
applicabili durante le diverse fasi, dalla collezione dei dati alla loro
interpretazione.
Particolare attenzione viene dedicata allo sviluppo di
soluzioni per l’esplorazione dei legami esistenti all’interno dei dati. Tale
aspetto ricopre un ruolo essenziale nell’analisi, consentendo di ricostruire il
processo di fallimento partendo dalla sola osservazione delle sue molteplici
manifestazioni.
Metodologie e soluzioni trovate sono state applicate come caso di studio
all’analisi dei dati di malfunzionamenti per reti Bluetooth raccolti da una
infrastruttura distribuita ed automatica per il monitoraggio e la collezione
di fallimenti spontanei in piconet BT. Tale lavoro di analisi in particolare
11
Introduzione
____________________________________________________________
affronta l’esplorazione dei legami esistenti all’interno dei dati in relazione a
tre problematiche:
• Rimozione della ridondanza introdotta nei dati dal meccanismo di
registrazione degli eventi.
• Relazioni esistenti tra le dinamiche di fallimento dei diversi Hosts.
• Legame tra errori di livello sistema e fallimenti, analisi dei fenomeni
di propagazione.
Il lavoro di tesi è organizzato come segue:
Il capitolo primo è dedicato alla presentazione delle tematiche di
dependability ed alle possibilità di applicazione al contesto in esame.
Nel capitolo secondo si descrive il processo di analisi dei dati di fallimento
e le diverse fasi che lo compongono.
Nel capitolo terzo viene introdotta la tecnologia bluetooth oggetto del
lavoro di analisi eletto a caso di studio.
Nel capitolo quarto viene descritto il processo di collezione dei dati di
fallimento in una piconet Bluetooth..
Il capitolo quinto propone una metodologia di analisi e ne descrive
l’applicazione al caso di studio.
Vengono infine presentati i risultati
dell’analisi condotta sull’insieme di dati di fallimento.
Capitolo I
Dependability di un sistema distribuito di
prossima generazione
Il mercato dei dispositivi mobili di ultima generazione sta assumendo
oggi dimensioni decisamente significative ed evolve rapidamente sotto la
spinta dei continui progressi nel campo della wireless communication e
dell’elettronica low-power.
La disponibilità di dispositivi sempre più
potenti in termini di capacità di elaborazione, memoria e connettività ha
radicalmente modificato le abitudini e le esigenze di una larga parte
dell’utenza, rendendo il mobile computing la realtà dominante nel mondo
della comunicazione sia professionale sia di intrattenimento. In particolare,
si riconosce, giorno dopo giorno, la necessità di accedere a risorse e servizi
anche quando si è in movimento o in un contesto differente, ovvero, come
riportato in [1], una esigenza di anytime, anywhere access.
La combinazione di mobile computing e la disponibilità di moderne
infrastrutture di accesso wireless a banda larga (UMTS, Wi-Fi, Bluetooth)
hanno portato al proliferare di nuove proposte per diversi scenari
applicativi in contesti quali la diagnosi e la manutenzione di impianti
[2][3], la teleimmersione [4], il mobile learning [5], la domotica [6],
sistemi di telemedicina ed healthcare [7][8].
13
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
I moderni sistemi distribuiti forniranno quindi una vasta gamma di servizi,
che potranno ricoprire anche primaria importanza nella vita di ogni giorno :
occorre quindi siano in grado di garantire la fornitura del servizio, seppure
in forma limitata, anche in presenza di guasti in componenti e sottosistemi.
Per queste ragioni studi sulla dependability, fino a pochi anni fa specifici
per
sistemi
critici
ed
altamente
affidabili
quali
sistemi
di
telecomunicazioni, di controllo del traffico aereo, ferroviario o di centrali
per la produzione di energia, trovano nuove necessità di applicazione in
questo contesto.
A dispetto della crescente fiducia dell’utenza verso tali sistemi,
diversi sono però i fattori tecnologici ed economici che stanno accentuando
il problema dei fallimenti nell’erogazione del servizio.
Gli ultimi anni sono stati infatti testimoni della diffusione su larga scala di
sistemi distribuiti basati su hardware e software di tipo commerciale
(COTS - Commercial Off The Shelf).
Il continuo aumento delle
prestazioni, delle capacità di memorizzazione e della velocità di
comunicazione dei personal computer abbinato al costo contenuto hanno
decretato il successo di tale soluzione.
D’altro canto, però, la natura low cost di tali sistemi e la relativa instabilità
dei componenti hardware e software che li costituiscono comportano
maggiori difficoltà nel garantire stringenti requisiti di affidabilità,
specialmente per applicazioni che richiedono lunghi tempi di esecuzione.
In particolare componenti COTS possono essere rilasciati con problemi
noti e, tipicamente, parzialmente documentati o contenere problematiche
Capitolo I :
14
Dependability di un sistema distribuito di prossima generazione ______________
ancora non evidenziate quali presenza di bachi, vulnerabilità o errori. Tale
problema diventa particolarmente serio quando vi è esigenza di integrare in
un nuovo sistema anche parti ereditate, i cosiddetti componenti Legacy;
questi ultimi sono sovente privi del tutto di documentazione o affiancati da
documentazione incompleta e talvolta non allineata.
Parallelamente l’integrazione di componenti, siano essi di nuovo sviluppo,
COTS o ereditati, ha consentito la realizzazione di sistemi di maggiore
complessità in tempi sempre più ristretti, così come dettati da esigenze di
mercato. Tale complessità, affiancata spesso ad una scarsa conoscenza di
alcune loro parti, rende i sistemi odierni maggiormente predisposti a
problemi software ed hardware quali la presenza di bachi, di condizioni
non testate che possono costituire vulnerabilità o exploits, fenomeni di
invecchiamento che nel tempo possono portare a degradazione delle
prestazioni o persino delle funzionalità.
Nella interazione tra componenti, i sistemi distribuiti tradizionali possono
contare su infrastrutture di rete fisse che garantiscono, grazie alle
consolidate capacità elaborative dei nodi di rete ed alle elevate prestazioni
dei link fisici, un comportamento affidabile e, soprattutto, in larga parte
predicibile. D’altra parte, i nuovi scenari di mobile computing comportano
la necessità ad affiancare alle infrastrutture di rete classiche, nuove
infrastrutture di rete ibride (wired e wireless) e totalmente wireless (senza
alcun core di rete fisso) per supportare la mobilità dei dispositivi. Simili
scenari introducono nuove problematiche legate a limitazioni ambientali o
tecnologiche proprie del mobile environment quali la limitata autonomia
15
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
energetica dei dispositivi, le limitate risorse di banda e l’intermittenza dei
canali wireless, la necessità di operare su piattaforme eterogenee.
Questi fattori suggeriscono un aumento dell’occorrenza di fallimenti
e la necessità di un cambio di prospettiva : piuttosto che considerare e
trattare i fallimenti come situazioni eccezionali nel funzionamento di un
sistema, bisogna riconoscerne la presenza, comprenderne il comportamento
e gestire efficacemente le risorse per nasconderne l’impatto all’utenza
finale.
1.2
Concetti di dependability
L’affidabilità di un sistema o dependability è la sua capacità di
fornire un servizio conformemente alle specifiche di progetto.
Se il
servizio offerto da un sistema non risponde a quanto atteso si dice che il
sistema è in presenza di un service failure. Indicati anche semplicemente
come fallimenti (failures), i service failures rappresentano una condizione
anomala nel funzionamento del sistema che devia in qualche misura dal
comportamento corretto.
Lo spostamento dal servizio corretto può
assumere diverse forme, note in letteratura come service failure modes e la
gravità viene valutata in accordo ad una failure severities.
Non è semplice considerare una definizione formale di dependability,
quest’ultima difatti è più propriamente un insieme di attributi di qualità che
16
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
assumono, singolarmente, una rilevanza più o meno sensibile a seconda del
contesto applicativo. Tali attributi sono descritti nei paragrafi seguenti.
1.2.2
Availability
L’Availability rappresenta la disponibilità del sistema in un dato
istante; è sinteticamente definita come la probabilità che un sistema sia
pronto in un certo istante t, in formule:
A = P (! Failure at t )
(1.1)
Più esplicitamente, un sistema è available in un dato istante t se è in grado
di fornire un servizio corretto (proper service). Matematicamente quindi la
funzione A(t) è del tipo:
⎧1
A(t ) = ⎨
⎩0
if proper service at t
otherwise
(1.2)
e dunque la 1.1 si riferisce al suo valore atteso, E(A(t)).
Una serie di interessanti critiche sono state mosse a tale interpretazione:
1. un sistema potrebbe non essere totalmente disponibile ma comunque
continuare ad essere operativo: l’availability potrebbe dunque essere
interpretata come uno spettro di valori e non in chiave binaria (up or
down);
17
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
2. la disponibilità di un sistema dovrebbe essere intesa quale funzione
della qualità del servizio offerta dal sistema nel tempo e non come un
valore medio: secondo la (1.1) un sistema indisponibile per due
secondi al minuto ed uno indisponibile per un intero giorno ogni
anno sono caratterizzati dal medesimo valore di availability pur
avendo un comportamento sensibilmente diverso.
1.2.3
Reliability
La reliability R(t) è una misura della continuità di un servizio ovvero
dell’intervallo di tempo in cui viene fornito un servizio corretto:
R ( t ) = P (! Failure in ( 0, t ) )
(1.3)
Più in generale, la distribuzione di affidabilità di un sistema R ( t ,τ ) è la
probabilità condizionale che il sistema funzioni correttamente (proper
service) nell’intervallo [t , t + τ ] , ammesso che fosse correttamente operativo
al tempo t:
R ( t ,τ ) = P (! failure in [t ,τ ]
corretto funzionamento in t )
(1.4)
Detta F(t) la funzione di distribuzione cumulativa del tempo di fallimento,
unreliability, la funzione R(t) può essere riscritta come:
R (t ) = 1 − F (t )
(1.5)
18
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
Il numero di fallimenti di un sistema per unità di tempo è definito come
tasso di fallimento, è generalmente indicato con λ ( t ) e misurato in numero
di fallimenti per ora. L’andamento tipico del tasso dai fallimento per un
componente è riportato in Figura 1.1.
Figura 1.1 Andamento del failure rate di un componente
E’possibile dimostrare che la relazione esistente tra la funzione di
distribuzione dell’affidabilità ed il tempo è del tipo:
R ( t ) = e − λt
(1.6)
La 1.6 è nota come legge di fallimento esponenziale ed afferma che in un
sistema a tasso di fallimento costante l’affidabilità decresce in maniera
esponenziale nel tempo.
19
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
1.2.4
Safety
Per safety si intende generalmente l’assenza di condizioni di
funzionamento che possono portare il sistema a danneggiare gli utenti e/o
l’ambiente in cui opera; secondo Laprie safety è “the absence of
catastrophic consequences on the users(s) and the environment..” [9].
Matematicamente la funzione safety S(t) è la probabilità che non vi siano
guasti catastrofici in [0, t].
S ( t ) = P (!Catastrophic failure in [ 0, t ])
(1.7)
Sebbene una simile definizione sia universalmente accettata in quanto ben
evidenzia gli effetti che potrebbero risultare dall’utilizzo di un sistema
unsafe, nel tempo il concetto di safety ha assunto sempre più i tratti di un
concetto relativo in quanto legato alla soggettiva valutazione dei rischi e
dell’entità dei danni provocati dal sistema.
1.2.5
Performability
Le definizioni di availability e reliability appena discusse, partono
dall’assunzione che durante il suo ciclo di vita un sistema possa permanere
esclusivamente in due stati: il sistema può essere non disponibile (DOWN)
oppure può essere disponibile e correttamente funzionante (UP &
PROPERLY RUNNING) (cfr. Figura 1.2).
20
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
Questa visione semplicistica dei fatti perde di validità qualora si
considerino sistemi tolleranti ai guasti (fault-tolerant systems): sistemi di
questo tipo, infatti, seppure in condizioni di prestazioni degradate, riescono
ad operare anche in presenza di fallimenti. Il diagramma degli stati per un
sistema fault-tolerant dovrà allora essere caratterizzato da un numero di
stati superiore a due, nello specifico almeno pari al numero dei failure che
il sistema è in grado di mascherare.
Figura 1.2 Binary state model
La metrica introdotta per valutare le performance del sistema anche a valle
dell’occorrenza di un fallimento prende il nome di performability a
sottolineare il suo legame con aspetti sia di performance evaluation sia di
dependability.
21
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
1.2.6
Maintainability
La maintainability, M(t), è generalmente definita come la capacità di
un sistema di poter essere sottoposto a modifiche e riparazioni [9]: un
sistema manutenibile è, infatti, un sistema che deve poter esser facilmente
ripristinato in seguito al verificarsi di un guasto.
1.2.7
Misure di Dependability
Una stima quantitativa del grado di dependability di un sistema può
essere ottenuta procedendo al calcolo di parametri sintetici alcuni dei quali
sono riportati e descritti in Tabella 1.1.
Parametro
Acronimo
Descrizione
Mean Time To Crash
MTTC
Tempo medio per avere un crash del sistema
Mean Time Between Crashes
MTBC
Tempo medio tra due crash successivi del sistema
Mean Time to Failure
MTTF
Tempo medio per il verificarsi di un failure
Mean Time Between Failures
MTBF
Tempo medio tra due failures successivi
Mean Number of Instruction to Restart
MNIR
Numero medio di istruzioni per il ripristino del sistema
Mean Time to Repair
MTTR
Tempo medio necessario a riparare il sistema
Mean Down Time
MDT
Tempo medio per cui il sistema non `e funzionante
Mean Time Between Errors
MTBE
Tempo medio tra due errori successivi
Tabella 1.1 Parametri sintetici di dependability
MTTF ed MTTR, graficamente rappresentati in Figura 1.3, risultano utili,
ad esempio, per il calcolo dell’availability:
A(t ) =
MTTF
MTTF + MTTR
(1.8)
22
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
Figura 1.3 MTTF, MTBF, MTTR
Con riferimento agli attributi discussi nei paragrafi precedenti è possibile
anche fornire un’ulteriore interpretazione del tempo di fallimento e del
tempo di ripristino in termini rispettivamente di reliability e maintainability
media:
MTTF = R ( t )
(1.9)
MTTR = M ( t )
1.3
Minacce per la Dependability
Molteplici sono le cause che possono portare un sistema in uno stato
incoerente, e dunque al fallimento; possono manifestarsi in ogni fase del
suo ciclo di vita: guasti hardware, errori in fase di progettazione hardware
e/o software ed errati interventi di manutenzione sono soltanto alcune tra le
possibili sources of failure.
23
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
1.3.2
Guasti
Un guasto, fault, è uno stato improprio dell’hardware e/o del
software del sistema derivante dal guasto di un componente, da fenomeni
di interferenza o da errori di progettazione. E’possibile formulare diverse
classificazioni dei faults basandosi sulla loro causa (1), persistenza (2),
intenzionalità (3) ed origine (4).
1. A seconda della causa che li ha generati i guasti possono essere
classificati in:
• Physical faults ovvero guasti del sistema derivanti da problemi
all’hardware, dunque interni, oppure da cambiamenti nelle
condizioni ambientali (interferenze, temperatura..), dunque
esterni.
• Human faults, ovvero guasti derivanti da errori umani commessi
sia in fase di progettazione (design faults) sia in fase di utilizzo
del sistema (interaction faults).
2. A seconda della loro persistenza i faults possono essere classificati in:
• Permanent (hard) faults, ovvero guasti stabili e continui nel
tempo. Detto t0 l’istante di occorrenza del guasto e tr l’istante di
ripristino, l’intervallo di permanenza in stato failed del
componente affetto dal guasto è [t0 , tr ] .
24
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
•
Transient (soft) faults, ovvero guasti legati a momentanee
condizioni ambientali e che scompaiono definitivamente senza la
necessità di alcuna operazione di ripristino. Detto t0 l’istante di
occorrenza del guasto, l’intervallo di permanenza del componente
corrotto in stato failed è [t0 , x ] con x non prevedibile.
• Intermittent
faults,
ovvero
guasti
che
si
verificano
in
corrispondenza di particolari condizioni ambientali (ad esempio
per un certo valore del carico). Scompaiono senza alcuna azione
di riparazione per poi ricomparire. Detto t0 l’istante di occorrenza
del guasto, l’intervallo di permanenza del componente corrotto in
stato failed è [t0 , x ] con x distribuito secondo una determinata
variabile aleatoria strettamente legata al tipo di guasto.
La linea di confine tra guasti intermittenti e guasti transienti sta nella
possibilità di applicare eventuali azioni di recupero: alla base di guasti
intermittenti vi sono solitamente anomalie hardware che possono essere
eliminate grazie ad azioni di riparazione o riprogettazione del
componente, mentre alla base di guasti transienti vi sono situazioni non
recuperabili in tal senso in quanto generalmente l’hardware non risulta
danneggiato. Guasti non permanenti si sono rivelati spesso la maggiore
fonte di fallimento per numerosi sistemi; sebbene diversi siano stati i
tentativi di formularne un modello, ad oggi non esiste una soluzione
universalmente accettata.
Siewiorek [10] riporta i risultati di studi
basati sulla data collection e sui conseguenti goodness-of-fit test al fine
di valutare la conformità dell’andamento dei guasti ad una determinata
25
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
distribuzione statistica: per guasti intermittenti si ottengono buoni
risultati per una distribuzione esponenziale mentre i guasti transienti
sembrano meglio seguire la distribuzione di Weibull.
3. A seconda della loro intenzionalità i faults possono essere classificati in:
• Malicious faults, ovvero guasti introdotti deliberatamente nel
sistema con la volontà di alterarne lo stato provocando una
sospensione del servizio o anche di accedere ad informazioni
riservate.
• Non malicious faults, guasti introdotti inconsapevolmente
all’interno del sistema.
4. A seconda della loro origine i faults possono essere classificati in:
• Internal faults, ovvero guasti riconducibili a cause interne al
sistema (ad esempio l’usura di un componente).
• External faults, ovvero guasti riconducibili a particolari
condizioni esterne che si ripercuotono sul sistema (ad esempio
interferenze o radiazioni).
Laprie et al. in [9] propongono una classificazione dei faults che racchiude
tutte le precedenti e basata sull’individuazione di tre macroclassi
parzialmente sovrapposte (cfr. Figura 1.4)
26
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
• Development faults class: include tutte le classi di guasto che
possono verificarsi in fase di sviluppo;
• Physical faults class: include tutte le classi di guasto legate a
guasti fisici dell’hardware;
• Interaction faults class: include tutte le classi di guasto
derivanti dall’interazione del sistema con l’abiente esterno.
Figura 1.4 Tassonomia dei faults (Laprie, 2004)
27
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
1.3.3
Errori
Un errore è la parte dello stato di un sistema che può indurre lo
stesso al fallimento ovvero a fornire un servizio non conforme alle
specifiche (unproper service). Errori sono manifestazioni di guasti.
Se l’errore `e opportunamente rilevato esso si dice detected, viceversa se
l’errore esiste ma non è rilevato si parla di latent error.
Laprie et al. [9] propongono una classificazione degli errori basata sulle
categorie di fallimenti che essi sono in grado di provocare: errori di tempo
e di valore, errori catastrofici e non catastrofici, errori consistenti ed
inconsistenti. E’ possibile infine che un fault all’interno di uno specifico
componente generi errori in più di un componente del sistema: in tal caso si
parla di multiple related errors.
1.3.4
Fallimenti
Un fallimento, failure, è definito come l’evento in corrispondenza
del quale il sistema cessa di fornire un servizio corretto. Generalmente un
sistema non fallisce sempre alla stessa maniera: le modalità in cui esso può
fallire sono definite failure modes ed implicano la non correttezza del
servizio secondo diversi punti di vista [9]: dominio (1), rilevabilità (2),
percezione (3) e severità del fallimento (4).
28
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
1. Un servizio s si ritiene conforme alle specifiche se, detto V l’insieme
dei valori ammissibili e T l’intervallo di tempo in cui esso deve essere
fornito (deadline), si ha:
s = s ( v, t )
: v ∈V e t ∈ T
(1.10)
Dal punto di vista del dominio del fallimento è possibile distinguere:
• Timing Failures, fallimenti per cui un servizio non è conforme
alle specifiche in termini di tempo, ovvero se
s = s ( v, t )
: v ∈V e t ∉ T
(1.11)
Fallimenti di questo tipo possono essere poi specializzati in
early timing failures se il servizio è fornito in anticipo, late
timing failures se in ritardo.
• Content Failures, fallimenti in seguito ai quali il contenuto
informativo del servizio perviene all’interfaccia in maniera
non conforme alle specifica:
s = s ( v, t )
: v ∉V e t ∈ T
(1.12)
Qualora un sistema fallisca sia nel tempo sia nel valore esso può fornire
non correttamente il servizio in diverse modalità, tra cui:
29
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
• halted, il sistema risulta bloccato e dunque il servizio non
perviene all’interfaccia; lo stato esterno del sistema è costante,
pari ad esempio all’ultimo valore coerente. Un particolare
fallimento di questo tipo è il fallimento per omissione del
servizio, omission failure, per cui il servizio è a valore nullo e
ritardo infinito.
Un omission failure permanente prende il
nome di crash failure.
• erratic, il servizio perviene all’interfaccia (delivered service)
ma fornisce informazioni incoerenti.
2. Dal punto di vista della rilevabilità del fallimento (failure detectability)
si distinguono:
• Signaled Failures, fallimenti segnalati a livello utente da un
opportuno messaggio di errore;
• Unsignaled Failures, fallimenti non segnalati a livello utente.
3. Dal punto di vista della percezione del fallimento (failure consistency)
si distinguono:
• Consistent Failures, tutti gli utenti del sistema hanno la stessa
percezione del fallimento;
Capitolo I :
30
Dependability di un sistema distribuito di prossima generazione ______________
• Unconsistent Failures, fallimenti che possono essere percepiti in
maniera diversa dagli utenti del sistema. Fallimenti di questo tipo
sono generalmente indicati come fallimenti bizantini, byzantine
failures.
4. Dal punto di vista della gravità del fallimento (failure consequences) si
distinguono:
• Catastrophic Failures, fallimenti le cui conseguenze sono
incommensurabilmente più grandi del beneficio prodotto dal
servizio fornito in assenza di fallimento;
• Minor Failures, fallimenti le cui conseguenze sono dello stesso
ordine di grandezza (valutato generalmente in termini di costo)
del beneficio prodotto dal servizio fornito correttamente.
Una stima quantitativa delle conseguenze dei fallimenti induce alla
definizione di una failure severity, strettamente legata al costo
necessario per il ripristino, dipendente dal contesto e generalmente
espressa in termini della massima probabilità di occorrenza del
fallimento stesso che il sistema è in grado di sopportare.
Una schematizzazione di quanto esposto è riportata in Figura 1.5.
31
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
Figura 1.5 Tassonomia dei fallimenti
1.3.5
Relazioni tra guasti, errori, fallimenti
Guasti, errori e fallimenti sono legati da una precisa relazione, il
meccanismo di generazione e manifestazione è noto in letteratura come
patologia del guasto (cfr Figura 1.6).
Un guasto può degenerare in un errore mediante attivazione (fault
activation, ACT): in tal caso il guasto si dice attivo (active), altrimenti `e
dormiente (dormant , DF). Un guasto attivo può essere un guasto interno
oppure un guasto esterno. L’attivazione di un guasto provoca la transizione
del sistema da uno stato di corretto funzionamento (correct behavior) ad
uno stato improprio (error); la rilevazione di un errore e le opportune
operazioni di ripristino (EDP) riportano il sistema ad operare in maniera
corretta. Un errore può degenerare in un fallimento mediante propagazione
32
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
all’interfaccia utente (EPR); un errore che non porta il sistema nello stato di
fallimento è un errore latente (LE).
Figura 1.6 Patologia del guasto
Un fallimento si ha dunque per propagazione di un errore e si verifica
allorquando l’errore si manifesta all’interfaccia del sistema alterando la
correttezza del servizio: per un qualsiasi altro sistema o componente che
usufruisca del servizio corrotto, il fallimento così generato si configura
quale guasto esterno (external fault), ci si riferisce a tale situazione come
propagazione esterna (external propagation).
Per propagazione interna, (internal propagation), si intende invece la
generazione di errori a cascata all’interno di uno stesso componente.
Nell’economia generale dello studio della dependability di sistemi
distribuiti, i fenomeni di propagazione esterna assumono un peso rilevante
in quanto rendono spesso difficile l’individuazione del sistema remoto
responsabile del fallimento.
33
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
Figura 1.7 Propagazione dei guasti
In Figura 1.7 è illustrato il meccanismo di propagazione con riferimento al
caso particolare di sistemi in cascata: l’attivazione di un fault dormiente nel
componente A risveglia un errore, prima latente; il processo elaborativo
produce una propagazione dell’errore all’interno del componente (internal
propagation).
A causa della propagazione interna l’errore raggiunge
necessariamente le interfacce esposte dal componente comportando così un
fallimento nei servizi offerti. Una tale situazione si configura come un
guasto esterno per il componente B che utilizza tali servizi e che risulterà a
sua volta affetto da errore (external propagation).
In assenza di strategie in grado di trattare l’errore, questo raggiunge infine
le interfacce esposte del sistema provocando un system failure.
Idealmente sarebbe auspicabile riuscire a preservare le funzionalità e le
prestazioni del sistema anche in presenza di fallimenti nelle sue parti.
Benché tale obiettivo sia praticamente non raggiungibile è bene comunque
34
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
evitare una interruzione completa del servizio, preservandone le
funzionalità essenziali, anche con prestazioni ridotte (service degradation).
1.4
Migliorare la dependability di un sistema
Esistono strategie finalizzate ad incrementare la dependability di un
sistema e che possono essere adottate per raggiungere tale obiettivo. In
letteratura vengono tipicamente suddivise in due filoni principali :
Fault Prevention - tale strategia si affida alla elevata qualità dei singoli
componenti utilizzati nella realizzazione del sistema, cercando così in fase
di progetto di ridurre al minimo l’eventuale insorgenza dei guasti.
Fault Tolerance - a differenza della precedente, tale strategia si fonda sul
presupposto dell’inevitabilità del presentarsi di fallimenti.
Solitamente
sistemi basati su tale approccio prevedono la presenza di uno più
componenti capaci di rivelare i fallimenti e di diagnosticare i guasti.
Nell’ambito del fault tolerance è possibile realizzare progetti che già in
fase di rilascio riconoscano l’occorrenza di failures e prevedano quindi la
ridondanza necessaria a mascherare il problema in presenza di un guasto.
Sebbene non costituisca la soluzione ideale dal punto di vista
dell’utilizzazione efficace delle risorse, che per esempio potrebbero essere
allocate per migliorare le prestazioni, il costo attuale dell’hardware e del
software commerciale è tale da giustificarne l’adozione in alcuni ambienti.
Capitolo I :
35
Dependability di un sistema distribuito di prossima generazione ______________
Una diversa possibilità consiste nello sviluppare sistemi in grado di
prevedere ed anticipare il verificarsi di fallimenti realizzando quindi, in
tempo utile, misure correttive di tipo proattivo. Per citare alcuni esempi :
effettuare rejuvenation programmati dei componenti per prevenire
catastrofiche conseguenze legate a fenomeni di invecchiamento del
software, oppure effettuare load balancing, individuando server e percorsi
alternativi per ridurre il carico di componenti prossimi alla saturazione
delle risorse.
Invece di anticipare i fallimenti predisponendo misure proattive, una
ulteriore opzione consiste nel gestire i fallimenti nel momento in cui si
manifestano, sostituendo o riconfigurando le parti coinvolte. Operazioni di
questo tipo possono essere realizzate in automatico, sebbene sia sovente
richiesto l’intervento di un operatore.
Ciascuna delle tecniche citate possiede aspetti positivi e negativi e
può essere necessario valutare attentamente i loro trade-off per scegliere la
soluzione più adatta al sistema da realizzare. In questa sede è importante
non tanto favorire una soluzione rispetto ad un’altra, quanto piuttosto
osservare che, attraverso le diverse tecniche, esiste l’esigenza comune di
comprendere in maniera dettagliata le dinamiche di errori e fallimenti, così
come le proprietà sottostanti. Per esempio la scelta di adottare o meno
ridondanza al momento del rilascio può dipendere in larga parte dalla
frequenza di occorrenza dei fallimenti : una elevata frequenza favorisce tale
soluzione; l’efficacia di tecniche proattive dipende in maniera significativa
dalla capacità di predire in tempo utile l’evenienza di un problema; anche
se si è scelto di intervenire unicamente in caso di manifestazione di un
36
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
fallimento, la conoscenza delle caratteristiche e delle dinamiche dei
fallimenti possono costituire un valido ausilio per ridurre i tempi necessari
ad identificare la radice del problema, ad isolare il guasto, per scegliere una
soluzione adeguata e intraprendere misure correttive. Maggiore è il tempo
impiegato, più vasto sarà l’impatto sulla disponibilità o, in generale, sulla
qualità del servizio.
1.5
Valutazione della dependability di un sistema
L’efficacia delle tecniche di dependability enhancement descritte
presuppone un’adeguata conoscenza del comportamento del sistema: la
caratterizzazione statistica dei failure modes, accanto alla formulazione di
modelli realistici, incrementa la predicibilità del sistema stesso facilitando
l’applicazione di mirate azioni preventive e/o correttive. La failure data
analysis, attraverso l’esame di dati relativi ai fallimenti, si configura quale
strumento per la valutazione della dependability di un sistema fornendo
informazioni utili sia alla costruzione di un modello di riferimento sia alla
progettazione di nuovi sistemi. R.Iyer et al. in [11] evidenziano come ai
fini dell’analisi della dependability di un sistema assuma rilevante
importanza il binomio costituito dalla fase del ciclo di vita in cui si `e
scelto di operare e dal particolare strumento di valutazione utilizzato.
Durante la fase di design una prima valutazione del progetto può essere
condotta grazie all’uso di ambienti di computer aided design (CAD); tali
ambienti consentono di realizzare simulazioni di funzionamento del
37
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
sistema che possono includere anche l’introduzione di situazioni di errore
(simulated fault injection). Tali esami mirano a verificare l’efficacia dei
meccanismi di fault tolerance impiegati ed a valutare la dependability del
sistema;
in questo modo il progettista può disporre di un feedback
immediato per valutare eventuali revisioni del progetto.
Le simulazioni richiedono però l’accurata determinazione dei parametri,
nonché la necessità di poter validare i risultati.
Benché la stima dei
parametri possa essere estratta sulla base di misure ed esperienze maturate
su sistemi passati, tale operazione è però resa complessa, se non
inapplicabile, a causa di innovazioni e cambiamenti nelle tecnologie come
nei progetti.
A progettazione ultimata, viene generalmente rilasciata una versione
prototipale del sistema affinché esso possa essere sottoposto alle dovute
attività di testing. In questa fase il sistema viene sollecitato con profili di
carico controllato (controlled workloads) per poterne studiare le reazioni a
faults reali (physical fault injection), le sue capacità di recupero in seguito a
situazioni di errore (recovery capabilities) e l’efficacia delle tecniche di
detection (detection coverage).
Uno studio di questo tipo fornisce
informazioni circa il failure process del sistema (cioè la sequenza di stati
che esso attraversa dal momento in cui si verifica l’errore fino all’eventuale
recovery) ma non consente di valutare misure di dependability quali MTTF,
MTTR dal momento che saranno stati considerati esclusivamente faults
artificiali: in uno scenario di integrazione di componenti commerciali, dei
quali si dispone tipicamente solo una conoscenza superficiale, è plausibile
che tali analisi lascino scoperte numerose tipologie di fallimento perché
38
Capitolo I :
Dependability di un sistema distribuito di prossima generazione ______________
non ancora note e del tutto imprevedibili. E’importante infine sottolineare
che, a differenza di quanto accade in fase di progettazione, in fase
prototipale è possibile iniettare guasti anche a livello software. Dettagli
relativi alle metodologie di fault injection sono reperibili in [12].
In fase di normale utilizzo del sistema, e dunque quando esso è ormai
completamente operativo, è possibile valutarne la dependability mediante
un’analisi sul campo ovvero analizzandone il comportamento sotto
condizione di carico reale.
I dati possono essere raccolti in maniera
automatica dal sistema stesso e contengono una grande quantità di
informazione su errori e fallimenti che si sono verificati durante l’esercizio.
Una analisi accurata può aiutare a comprendere le caratteristiche di errori e
fallimenti, valutare sul campo la copertura dei meccanismi di detection e
recovery, l’efficacia degli schemi di riconfigurazione, eventuali margini di
miglioramento, quantificare la perdita di prestazioni ed identificare colli di
bottiglia presenti nel sistema.
Come affermato in [11] : “there is no better way to understand
dependability characteristics of a computer systems than by direct
measurements and analysis” (non esiste modo migliore per comprendere le
caratteristiche di dependability di un sistema, che attraverso misure ed
analisi dirette). Tuttavia è importante tenere presente che tale approccio
consente di ottenere informazioni relative esclusivamente agli errori rilevati
durante
il
periodo
di
osservazione
e
raramente
di
immediata
interpretazione: occorre quindi concentrare l’attenzione su problematiche
Capitolo I :
39
Dependability di un sistema distribuito di prossima generazione ______________
relative alla effettiva possibilità di monitorare errori e fallimenti nonché
sulle modalità di analisi.
Capitolo II
Misure ed Analisi dirette
Come discusso nel capitolo precedente, la strada migliore per
comprendere le caratteristiche di dependability di un sistema è attraverso
misure ed analisi dirette.
Realizzare misure comporta monitorare e
registrare eventi che si verificano all’interno del sistema stesso, mentre
lavora sotto l’effetto del normale carico d’utente.
Dai dati acquisiti possono essere estratte informazioni di valore
relativamente al manifestarsi di errori e fallimenti e sul comportamento del
sistema in tali situazioni di crisi. In tal senso si possono :
• estrarre misure di dependability relative al sistema reale, in
particolare su aspetti quali availability e reliability : tempo medio
tra fallimenti successivi (MTBF mean time between failure), tempo
medio necessario per la ripristino del normale funzionamento (MTTR
mean time to repair), durata dei fuori servizio (service outgage);
• condurre analisi “off-line” per cercare di individuarne cause e
dinamiche, per valutare la copertura offerta dai meccanismi di
detection e recovery, per valutare l’efficacia degli schemi di
riconfigurazione e l’esistenza di margini di miglioramento, per
41
Capitolo II :
Misure ed Analisi dirette _________________________________________
quantificare la perdita di prestazioni, per identificare eventuali colli
di bottiglia presenti nel sistema;
• eseguire diagnostica “on-line” per predire e gestire fallimenti prima
che compromettano il servizio offerto dal sistema;
• realizzare trend analysis di lungo termine per identificare
cambiamenti nel carico o nel comportamento del sistema al fine di
considerare, in tempo utile, la necessità di innovazione o di
potenziamento del sistema.
Uno studio basato su misure passa attraverso diverse fasi : collezione dei
dati (2.1), filtraggio dei dati (2.2), estrazione e coalescenza (2.3), analisi
preliminare di errori e fallimenti (2.4), analisi del comportamento del
sistema (2.5).
2.2
Collezione dei dati
Da un punto di vista statistico perché un’analisi sia valida occorre
utilizzare una considerevole quantità di dati. Nei moderni sistemi i failures
sono eventi relativamente infrequenti, di conseguenza il processo di
raccolta deve essere sistematico ed esteso a periodi di osservazione lunghi.
Inoltre, perché i risultati dell’analisi possano essere significativi, il sistema
deve essere esposto ad un ampio ventaglio di possibili casi d’uso. Infine
occorre sempre tenere presente che i risultati, che potranno essere estratti
Capitolo II :
42
Misure ed Analisi dirette _________________________________________
dai dati, sono relativi ad i soli eventi identificati e raccolti; particolare cura,
quindi, deve essere posta nella scelta delle informazioni da monitorare e di
strumenti adeguati per l’acquisizione di tali informazioni.
Nella maggior parte dei sistemi commerciali, informazioni relative ad
errori e fallimenti possono essere ottenute attraverso meccanismi di logging
automatico forniti dai sistemi operativi sottostanti, oppure attraverso logs
gestiti dagli amministratori del sistema, che possono inserire manualmente
informazioni relative a fallimenti o eventi anomali sperimentati durante
l’uso o il testing del sistema.
Logs manuali sono soggettivi e solitamente non disponibili. Tipicamente
non presentano costanza nella raccolta dei dati così come nel livello di
dettaglio, inoltre difficilmente si prestano ad una analisi automatica.
D’altra parte la stragrande maggioranza dei sistemi operativi offrono
strumenti automatici per la gestione di logs di eventi. I reports generati
presentano un formato predefinito, generalmente includono informazioni
contestuali in caso di fallimento (ad esempio il sottosistema in cui si è
verificato, una traccia degli eventi significativi che lo hanno preceduto,
informazioni su eventuali operazioni di recupero intraprese quali waiting,
retrying,…), sono acquisiti in maniera sistematica e memorizzati in maniera
persistente.
Strumenti di logging automatici rappresentano senza dubbio la soluzione
più adottata, in primo luogo perché è l’unica a poter offrire una
43
Capitolo II :
Misure ed Analisi dirette _________________________________________
acquisizione regolare e prolungata di grandi volumi di dati, difficilmente
pensabile con tecniche manuali; risultano, inoltre, particolarmente adatti
per una analisi automatica e possiedono la capacità di registrare una
enorme quantità di informazione relativa ad errori transienti e dettagli sulle
operazioni di recupero automatiche eseguite.
Presentano, però, anche
alcuni svantaggi, legati principalmente al fatto che solitamente non
forniscono informazioni relative a cause o propagazione degli errori,
informazioni che dovranno quindi essere ricostruite ed interpretate sulla
base dell’esperienza di chi esegue l’analisi.
Questo problema è
maggiormente sentito in ambienti distribuiti dove errori e fallimenti,
attraverso meccanismi di condivisione delle risorse o di cooperazione,
possono propagarsi da una macchina all’altra coinvolgendo più nodi di
elaborazione : dipendenze lasche o, spesso, non immediate rendono
particolarmente complessa l’identificazione di dipendenze tra errori o
fallimenti in un ambiente distribuito.
Infine, in alcuni scenari, il sistema potrebbe diventare instabile a seguito di
un fallimento, tanto da non consentirne la registrazione.
2.3
Filtraggio dei dati
Solitamente i logs di sistema contengono una grande quantità di
informazione irrilevante o ridondante: per esempio accanto ad informazioni
essenziali come relative a problemi nel sottosistema di I/O o della memoria
possono essere presenti informazioni banali quali notifiche dell’avvenuto
mount o unmount di una periferica. Per evitare che i dati risultino confusi o
44
Capitolo II :
Misure ed Analisi dirette _________________________________________
polarizzati dalla presenza di informazioni inessenziali, una prima
rielaborazione consiste nel classificare gli eventi in base al sottosistema, al
componente o al processo in cui sono originati, per isolare i soli
significativi ai fini del servizio offerto dal sistema. Un’altra possibilità di
classificazione consiste nello sfruttare l’informazione relativa alla severity
dell’evento, tipicamente valutata dal sistema operativo stesso.
Naturalmente non esiste una classificazione uniforme o migliore, questo
perché differenti sistemi possono avere differenti architetture hardware o
software, inoltre le categorie dovrebbero essere scelte in accordo a criteri
dipendenti dal particolare contesto applicativo.
Una volta classificati gli eventi in categorie il filtraggio avviene attraverso
meccanismi di whitelisting o blacklisting; nel primo caso vengono
conservate le sole entries relative ad eventi di interesse, dualmente, nel
secondo caso, vengono eliminate le entries appartenenti a categorie di non
interesse, tale strategia risulta utile nel caso in cui non si abbia ancora
acquisito maturità sul problema sufficiente da determinare quali eventi
possano essere effettivamente correlati al dominio applicativo.
2.4
Estrazione e Coalescenza dei dati
L’elaborazione che segue il processo di filtraggio consiste di due fasi
non necessariamente separate : l’estrazione e la coalescenza dei dati.
45
Capitolo II :
Misure ed Analisi dirette _________________________________________
L’estrazione consiste nel recuperare ciascuna entry dai logs del sistema e
riorganizzarla in una struttura dati standard che, ad esempio, conserva i soli
campi di interesse.
La coalescenza è sostanzialmente una forma di riorganizzazione di entries
tra loro correlate in meta strutture.
Si tratta di una euristica basata sull’osservazione che nei log di sistema
vengono spesso riportati eventi multipli, che sono manifestazione di un
singolo guasto. Per evitare che tale ridondanza possa essere confusa con
informazione e che l’analisi successiva venga quindi polarizzata o distorta
da osservazioni ripetute di un medesimo problema, occorre che tali reports
vengano compattati in un singolo record.
Figura 2.1 Meccanismo di Event logging
In Figura 2.1 è illustrato il processo che porta alla notifica di eventi
multipli.
Sulla sinistra vi è un insieme di processi aleatori di guasti.
L’attivazione di un guasto genera uno o più errori che si propagano
attraverso il sistema.
Meccanismi hardware e software riveleranno la
presenza di errori mentre gli effetti del guasto si propagano attraverso le
46
Capitolo II :
Misure ed Analisi dirette _________________________________________
parti che costituiscono il sistema.
Alcuni di questi riporteranno l’evento
sul log di sistema. Diverse sono le situazioni che possono impedire la
corretta registrazione dell’evento : alcuni errori possono non essere stati
identificati, possono essere stati identificati da più di un sensore, pur
essendo stati identificati la loro registrazione può non avere luogo a causa
della perdita di stabilità del sistema. Segue che gli errori riportati nel log
degli eventi sono funzione dello stato del sistema oltre che del guasto
che li ha generati.
In conclusione il comportamento è in generale non prevedibile : gruppi di
errori possono essere identificati come singoli, passare inosservati, singoli
errori possono essere registrati più volte, l’ordine di registrazione può
risultare differente rispetto a quello di occorrenza.
Un approccio comune per cercare di ricostruire il fault process dagli
eventi osservati è il tupling [11-12]. Una tupla è una collezione di eventi
raggruppati secondo un definito meccanismo di clustering. L’osservazione
degli event logs indica che gli eventi tendono a verificarsi durante un breve
periodo di elevata attività. Questo suggerisce la possibilità di adottare
meccanismi di clustering basati sul tempo. Una strategia consolidata [12]
consiste nel considerare tutti gli eventi, che non presentino una distanza
temporale reciproca superiore ad una soglia fissata, come manifestazione di
uno stesso guasto.
47
Capitolo II :
Misure ed Analisi dirette _________________________________________
Per essere più precisi indicato con X i l’i-esimo evento nel log e con t ( X i )
l’istante in cui questo è riportato, l’algoritmo di clustering rispetta la regola
seguente :
if (t ( X i ) − t ( X i −1 ) < W )
then aggiungi X i alla tupla
else crea una nuova tupla
dove W è la dimensione della soglia fissata e va sotto il nome di clustering
time.
La scelta di una soglia adatta al sistema è un aspetto fondamentale del
tupling. Trattandosi di una euristica, esistono infatti situazioni in cui gli
eventi vengono raggruppati in modo errato.
Due sono le principali
tipologie di errore nel processo di clustering : collisioni e troncamenti.
Una collisione si verifica quando due o più guasti si succedono in tempi
tanto brevi (inferiori al clustering time) da far si che le loro manifestazioni
vengano raggruppate in una singola tupla.
Un troncamento, viceversa, si verifica quando l’intervallo temporale tra
eventi generati da un singolo guasto è superiore al clustering time : in
questo caso gli eventi vengono artificialmente divisi su più tuple.
La probabilità che si verifichi una collisione può essere ben rappresentata
da un’esponenziale di parametro pari al tuple rate [11], sotto l’ipotesi che
siano presenti infiniti processi di guasto. Segue che un clustering time
minore riduce la probabilità di collisione mentre parallelamente aumenta la
probabilità di troncamenti. Come discusso in [12] si dovrà accettare un
48
Capitolo II :
Misure ed Analisi dirette _________________________________________
trade-off tra la corruzione delle tuple legata a collisioni e quella legata a
troncamenti.
Una scelta attenta può essere guidata da uno studio di sensibilità rispetto al
clustering time : si osserva tipicamente l’andamento del numero di tuple o
della loro dimensione rispetto al clustering time. E’ atteso che il numero di
tuple sia una funzione monotona decrescente del clustering time: per un
clustering time pari a zero, il numero delle tuple coincide con la
dimensione del log; per un clustering time infinito sarà invece presente
un’unica tupla, ossia l’intero log.
Figura 2.2 Andamento del numero di Tuple in funzione del Clustering Time
Osservando il grafico in figura, è interessante notare come la curva presenti
una caratteristica forma ad “L”. La tupla, verosimilmente, rappresenta il
risultato diretto di un guasto nel sistema; tale guasto genera, in condizioni
normali, un pattern di errori che sono raggruppati in un lasso di tempo
breve rispetto all’intero log. E’ quindi intuitivo attendere piccoli tempi di
interarrivo tra eventi correlati, grandi interarrivi tra tuple relative a fault
differenti. Per tale ragione è presente una elevata sensibilità al clustering
49
Capitolo II :
Misure ed Analisi dirette _________________________________________
time per valori prossimi al tempo tipico di interarrivo tra eventi correlati, ed
una modesta sensibilità per valori maggiori.
Questo spiega la forma
caratteristica e suggerisce un metodo per la scelta del clustering time: il
vertice della “L” rappresenta il clustering time proprio del sistema, W deve
essere scelto maggiore di questo valore.
2.5
Analisi preliminare di errori e fallimenti
In questa fase si conduce una analisi statistica preliminare dei dati.
Misure comunemente usate nell’analisi includono frequenze di errori e
fallimenti, mean time between error (MTBE) e mean time between failure
(MTBF), availability di sistema, durata media dei fuori servizio o
equivalentemente mean time to repair (MTTR). Queste misure forniscono
una immagine di insieme del sistema e possono essere utilizzate per
verificare se le caratteristiche di dependability richieste siano state o meno
raggiunte.
2.6
Analisi del comportamento del sistema
In questa fase si cerca di approfondire la conoscenza delle dinamiche
di errore e fallimento. Gli obiettivi possono essere diversi : comprendere il
legame tra errori e fallimenti nel servizio, identificare eventuali problemi di
progetto, difetti di implementazione, colli di bottiglia per la dependability,
estrarre trends per realizzare misure di recupero proattive, collezionare
50
Capitolo II :
Misure ed Analisi dirette _________________________________________
prove statistiche che consentano una rapida identificazione dei componenti
guasti.
Non esistono linee guida, i metodi di analisi possono variare
significativamente tra studi differenti, in dipendenza degli obiettivi che la
ricerca vuole perseguire. Diversi modelli sono stati proposti e validati
usando dati reali provenienti da sistemi tra loro anche molto differenti.
Per ulteriori approfondimenti si suggerisce di fare riferimento alla seguente
tabella:
Categoria
Coalescenza dei dati
Caratterizzazione degli errori
Analisi delle dipendenze
Modeling and Evaluation
Tecniche di Diagnosi
Riferimenti
[11] [13] [14] [15]
Problematica Affrontata
Introduzione alla coalescenza
[12]
Analisi comparativa di tecniche per la coalescenza
[16]
Guasti ed errori transienti
[16] [17]
Raffiche di errori e fallimenti
[18] [19]
Distribuzioni TTE/TTF
[20]
Dipendenze tra Hardware failure e workload
[20] [21]
Dipendenze tra Software failure e workload
[13] [22]
Fenomeni di propagazione di fallimenti
[23] [24] [25] [26]
[27] [28] [29]
[30] [31]
Euristiche per la Trend Analysis
Capitolo III
Presentazione di un caso studio :
Introduzione a Bluetooth
L’obiettivo di una rete wireless WLAN (Wireless Local Area
Network) è di fornire benefici e caratteristiche di una rete LAN tradizionale
senza la necessità di cavi.
Le WLAN superano i limiti del cablaggio assicurando la connettività, con
l’adozione di tecnologie ad infrarossi (IR) o a radiofrequenza (RF). Poiché
l’infrarosso richiede la presenza di una “line of sigth”, il ricevitore deve
essere cioè visibile al trasmettitore per aprire il canale di comunicazione, la
tecnologia a radiofrequenza ha ottenuto maggiori consensi e crescente
popolarità.
Diversi sono i vantaggi nel sostituire i cavi con il mezzo radio. I più
significativi riguardano mobilità, ovvero capacità di assicurare connettività
anche ad utenza in movimento; flessibilità, con la possibilità di realizzare
reti scalabili nelle quali l’aggiunta di un nuovo utente non comporta spese
ne difficoltà aggiuntive; economie di scala, con il risparmio dei costi di
cablaggio, la possibilità di installazione in ambienti non adatti quali edifici
storici ed in tempi ridotti.
52
Capitolo III :
Presentazione di un caso studio: Introduzione a Bluetooth
_________________
I problemi principalmente sono legati all’inaffidabilità del mezzo wireless,
risultato di riflessioni elettromagnetiche, di fading da cammini multipli e,
soprattutto, della presenza di altri sistemi che lavorano nelle stesse bande.
Molti governi hanno mantenuto libere alcune bande di frequenze, note
come bande ISM (Industriale, Scientifica, Medica). Queste possono essere
usate liberamente, senza necessità di richiedere licenze, a patto di rispettare
precisi limiti di potenza e di utilizzare tecniche a spettro diffuso atte a
limitare le interferenze fra i diversi dispositivi.
Molti apparecchi quali telefoni cordless, forni a microonde, radiocomandi
per cancelli automatici, sistemi di allarme, giocattoli, apparati radar
lavorano nelle bande ISM andando ad interferire con il normale
funzionamento delle LAN wireless.
Una ulteriore problematica è relativa alla sicurezza delle comunicazioni: i
dati trasmessi via radio sono facilmente intercettabili e vanno quindi
crittografati, occorre inoltre fornire sistemi di autenticazione dei punti di
accesso.
Per i costi contenuti, la sua semplicità
e la larga diffusione sul mercato, Bluetooth
sembra
essere
la
tecnologia
wireless
destinata a dominare il mobile computing
del prossimo futuro.
Ad incoraggiare l’introduzione di tale
tecnologia è stata l’esigenza sostituire i cavi
nella connessione tra dispositivi elettronici
sia portatili che fissi, quali notebook, stampanti, telefoni, PDA. Periferiche
53
Capitolo III :
Presentazione di un caso studio: Introduzione a Bluetooth
_________________
“bluetooth enabled” possono costituire autonomamente delle reti ad hoc
per scambiarsi informazioni e servizi. Tale tecnologia consentirà in futuro
la sostituzione di gran parte dei cavi proprietari con un unico collegamento
radio universale.
L’estrema semplicità sia architetturale che di utilizzo rappresenta la chiave
di un successo tale da prevedere che nel 2007 il 65% dei telefoni cellulari,
il 44% dei PDA e il 36% dei notebook sarà prodotto con l’interfaccia
Bluetooth integrata [32]. Previsioni tanto ambiziose trovano giustificazione
anche in una serie di fondamentali vantaggi offerti dalla tecnologia di casa
Ericsson:
1. richiede una quantità ridotta di risorse energetiche (less power
consumptive technology);
2. lavora nella banda ISM (Industrial, Scientific, Medical);
3. prevede bassi costi di produzione e di vendita dei dispositivi;
4. è particolarmente adatta per il last meter access [33].
Infine una gestione deterministica nell’assegnazione del canale (TDD Time Division Duplex) la rende validamente utilizzabile a supporto di
applicazioni real-time.
54
Capitolo III :
Presentazione di un caso studio: Introduzione a Bluetooth
_________________
Sulla scorta di una tale popolarità e di previsioni di mercato tanto
incoraggianti, il presente lavoro di tesi propone come caso studio un’analisi
dei comportamenti di infrastrutture basate su tecnologia Bluetooth in
un’ottica dependability oriented come illustrata nei capitoli precedenti.
3.2
Bluetooth
Bluetooth è un termine che identifica l’aderenza di un prodotto ad
uno standard industriale sviluppato da Ericsson e in seguito formalizzato
dal Bluetooth Special Interest Group (SIG) costituito inizialmente da Sony,
Ericsson, IBM, Intel, Toshiba, Nokia e a cui si sono poi aggiunti negli anni
altri grossi nomi del settore.
Figura 3.2 Bluetooth Stack
Al fine di garantire la connettività tra dispositivi di produttori differenti, lo
standard definisce non solo i dettami della comunicazione radio, ma anche
55
Capitolo III :
Presentazione di un caso studio: Introduzione a Bluetooth
_________________
del protocollo di comunicazione che rispecchia una struttura stratificata in
cui i servizi offerti dal livello i-simo sono resi disponibili al livello i+1 e la
comunicazione “logica” avviene tra livelli omologhi (cfr. Figura 3.2).
Ancora per favorire l’interoperabilità tra devices di produttori diversi il SIG
ha introdotto il concetto di Bluetooth Profile: come si legge dalle specifiche
[34] l’interoperabilità è garantita per un determinato servizio se i dispositivi
sono conformi alle specifiche del relativo Bluetooth Profile.
I diversi profili sono organizzati in maniera gerarchica come rappresentato
in Figura 3.3.
Figura 3.3 Bluetooth Profiles Organization
Ad oggi Bluetooth è supportata da quasi tutti i sistemi operativi tra cui
Linux in tutte le sue distribuzioni, le versioni mobile dei sistemi di casa
Microsoft ed infine l’ultimo arrivato Windows Xp Service Pack 2.
56
Capitolo III :
Presentazione di un caso studio: Introduzione a Bluetooth
_________________
Nei paragrafi successivi si andranno ad illustrare le caratteristiche peculiari
dei livelli che offrono supporto ai servizi di rete Ip.
3.2.2
Livello Radio
Il livello Radio di Bluetooth lavora nella banda ISM a 2.4GHz,
riduce l’interferenza prodotta da segnali estranei scegliendo, in maniera
pseudoaleatoria, una diversa frequenza dopo ogni singola trasmissione.
Comparato con altri sistemi FHSS (Frequency Hopping Spread Spectrum)
che lavorano nella stessa banda di frequenze, il Bluetooth Radio salta in
frequenza più frequentemente ed utilizza pacchetti di dimensioni minori,
garantendo così una adeguata resilienza all’interferenza pur adottando
livelli di potenza contenuti.
Per quanto riguarda le potenze, difatti, Bluetooth è disegnato con
particolare attenzione al risparmio delle risorse energetiche dei dispositivi,
sono previste tre classi di potenza :
• Power Class 1:
dispositivi che lavorano con distanze maggiori
(~100m), con una potenza massima di 20dBm,
• Power Class 2: per coprire distanze ordinarie (~10m), con una
potenza massima di 4dBm,
• Power Class 3: dispositivi a corto raggio (~10cm), con una potenza
massima di 0dBm.
57
Capitolo III :
Presentazione di un caso studio: Introduzione a Bluetooth
_________________
L’interfaccia radio di Bluetooth lavora con una potenza nominale di 0dBm,
opzionalmente i dispositivi possono alterare la potenza in trasmissione per
estendere la copertura o lavorare in ambienti particolarmente ostili. Sistemi
di power control realizzati dal LMP (Link Manager Protocol) ottimizzano
la potenza misurando l’RSSI (Receiver Signal Strength Indicator) e
cercando di posizionarsi nella golden receive power range, che costituisce
il migliore trade-off tra risparmio energetico e bit error rate.
3.2.3
Livello Baseband
Baseband è il livello fisico di Bluetooth. Si occupa della gestione del
canale oltre a fornire servizi quali correzione degli errori, identificazione
della sequenza di hop e sicurezza Bluetooth.
Il canale è costituito dalla sequenza pseudorandom di hop attraverso le
frequenze disponibili all’interno della gamma assegnata (2,402Ghz2,480Ghz, con salti di 1Mhz, complessivamente un set di 79hops).
Due o più dispositivi Bluetooth che utilizzano lo stesso canale costituiscono
una piconet. In una piconet è sempre presente un dispositivo che ricopre il
ruolo di master e uno o più dispositivi slave fino ad un massimo di 7.
Il dispositivo master organizza e gestisce il canale di comunicazione. La
sequenza di hop, caratteristica della piconet, e la fase all’interno della
sequenza, sono determinate a partire dall’indirizzo Bluetooth e dal clock del
master.
58
Capitolo III :
Presentazione di un caso studio: Introduzione a Bluetooth
_________________
La comunicazione all’interno di una piconet viene gestita dal dispositivo
Master secondo una politica TDMA (Time Division Multiple Access): il
canale viene suddiviso in slot temporali di 625μ sec (625bit per slot), time
slot pari sono riservati al master, dispari per terminali slave, realizzando
dunque anche un duplexing temporale.
In una piconet sono contemplate sia trasmissioni punto-punto che
trasmissioni
multipunto,
occorre
però
considerare
che
tutte
le
comunicazioni passano attraverso il master della piconet, anche nel caso in
cui questi non sia il destinatario ultimo.
Più piconet possono coprire la stessa area : giacché ogni piconet ha
un proprio master, ciascuna segue una diversa sequenza di hop in linea di
principio non interferendo con le altre. All’aumentare delle piconet però la
probabilità di collisione cresce, comportando un leggero calo delle
prestazioni.
Un gruppo di piconets che condividono una o più unità
formano una struttura interconnessa più ampia denominata scatternet,
l’interconnessione avviene grazie ad un dispositivo che funge da brigde e
che, evidentemente, non potrà essere master per più di una piconet.
Figura 3.4 Bluetooth Scatternet
59
Capitolo III :
Presentazione di un caso studio: Introduzione a Bluetooth
_________________
In un’ottica di risparmio energetico, è consentito ai dispositivi slaves
di configurarsi quali entità passive della rete: oltre allo stato active, infatti,
sono contemplate condizioni di sniff, park, hold in cui un dispositivo può
permanere se non coinvolto in connessioni attive. Affinché due o più
devices possano connettersi è necessaria una procedura di mutua
autenticazione. Un dispositivo che voglia diventare master di una piconet
contatta altri devices eventualmente presenti ed in stato discoverable,
inviando il proprio indirizzo fisico e dando il via ad una procedura che
prende il nome di inquiry. La procedura attraverso la quale il master
instaura la connessione vera e propria con uno slave prende invece il nome
di pairing ed è seguita da una fase per la definizione di una chiave
crittografica detta link key.
3.2.4
Logical Link Control and Adaptation Layer Protocol
Il Logical Link Control and Adaptation Layer Protocol (L2CAP)
fornisce servizi orientati e servizi non orientati alla connessione ai livelli
superiori,
con
capacità
di
multiplazione,
di
segmentazione
e
riassemblaggio.
L2CAP consente ai protocolli di livello superiore e di applicazione di
trasmettere e ricevere pacchetti fino alle dimensioni massime di 64Kbytes.
Il pacchetto dati Bluetooth è difatti limitato a livello baseband ad un
massimo di 341bytes.
L’utilizzo di tale dimensione come MTU
comporterebbe un inutile aumento di overhead per i livelli superiori e
60
Capitolo III :
Presentazione di un caso studio: Introduzione a Bluetooth
_________________
conseguenti inefficienze in protocolli studiati per lavorare con pacchetti di
maggiori dimensioni.
La funzionalità di SAR (Segmentation and
Reassembly) si occupa di risolvere questo problema al livello datalink di
Bluetooth, lasciando trasparente il servizio ai livelli superiori.
Sono supportate due tipologie di comunicazione : sincrone orientate alla
connessione (SCO Synchronous Connection Oriented) ed asincrone prive
di connessione (ACL Asynchronous Connection Less).
Il canale SCO
supporta traffico vocale real-time utilizzando strategie di allocazione fissa
degli slot temporali. I canali ACL supportano invece traffico di tipo best
effort : gli slot asincroni hanno difatti priorità inferiore rispetto a quelli
sincroni e l’assegnazione avviene attraverso meccanismi di polling ad
opera del dispositivo master.
Il funzionamento è chiarito nelle immagini seguenti :
Figura 3.5 Un’unità slave può trasmettere solo se contattata dal master, nello
slot immediatamente precedente. In presenza di un unico slave la dimensione
della frame è pari ad un’unica coppia di slot.
61
Capitolo III :
Presentazione di un caso studio: Introduzione a Bluetooth
_________________
Figura 3.6 In presenza di un numero maggiore di slaves le dimensioni della frame
si allungano. Ogni slave dovrà attendere dunque un tempo maggiore prima che il
master lo ricontatti per consentire la trasmissione.
Figura 3.7 Per incrementare la larghezza di banda, è possibile aggregare più slot in
un’unica trasmissione in una o entrambe le direzioni. Ciò consente anche la
riduzione dell’overhead.
Bluetooth supporta framing 1/1, 3/1, 5/1 corrispondenti rispettivamente a pacchetti
del tipo DH1, DH3, DH5
62
Capitolo III :
Presentazione di un caso studio: Introduzione a Bluetooth
3.2.5
_________________
Bluetooth Networking Encapsulation Protocol BNEP
BNEP consente di incapsulare pacchetti di protocolli quali IPv4 ed
IPv6 per fornire capacità di Networking a periferiche Bluetooth.
I servizi offerti ai livelli superiori sono del tutto analoghi a quelli offerti
dalle reti IEEE 802.3, in tale senso BNEP rappresenta una vera e propria
interfaccia di rete, seppure virtuale.
Figura 3.8 BNEP Bluetooth
Networking Encapsulation Protocol
Come è possibile osservare in figura 3.8, BNEP semplicemente sostituisce
la testata 802.3 con una intestazione BNEP per l’indirizzamento di livello
rete ed affida la PDU (Packet Data Unit) al livello L2CAP per il
trasferimento via Bluetooth. Maggiori dettagli sul formato dei pacchetti e
sulle modalità di incapsulamento sono reperibili in [35].
3.3
Il profilo PAN
Un profilo Bluetooth è l’insieme delle regole che disciplinano
l’utilizzo del Bluetooth stack in ogni dispositivo, in particolare definisce:
63
Capitolo III :
Presentazione di un caso studio: Introduzione a Bluetooth
_________________
• quali caratteristiche sono richieste allo stack per la fruizione e/o la
pubblicazione del servizio cui il profilo stesso si riferisce;
• il modo in cui uno sviluppatore deve utilizzare le apposite API per
interfacciarsi al protocollo Bluetooth sottostante;
• le regole comportamentali che un generico utilizzatore è tenuto a
seguire per abilitare le funzionalità a livello utente.
Il profilo PAN (Personal Area Networking Profile) formalizza le regole
che consentono a dispositivi Bluetooth di formare una rete ad hoc o di
accedere alla rete Internet attraverso un punto di accesso (NAP, Network
Access Point). Il profilo PAN definisce anche le modalità per il trasporto
di traffico IP su connessioni Bluetooth.
Come discusso nel paragrafo
precedente BNEP è il protocollo che realizza la conversione di traffico IP
in traffico Bluetooth.
Per il profilo PAN sono definiti due possibili scenari di utilizzo:
• Network Access Point (NAP): un network access point è un
dispositivo che funge da brigde tra la rete IP ed una piconet
Bluetooth consentendo ai dispositivi che ne fanno parte di accedere
alla rete e a tutte le sue risorse; la topologia caratteristica di uno
scenario NAP è rappresentata in Figura 3.9.
64
Capitolo III :
Presentazione di un caso studio: Introduzione a Bluetooth
_________________
Figura 3.9 PAN: Scenario di utilizzo NAP
• Group Ad-Hoc Networks (GN): più dispositivi, coordinati da un
master, si connettono tra loro a formare una rete self-contained
ovvero senza l’utilizzo di hardware o infrastrutture di rete
aggiuntive. La topologia di una rete ad hoc è descritta in Figura 3.10.
Figura 3.10 PAN: Scenario di
Group ad hoc Networking
Un PAN User (PANU) è un dispositivo che usufruisce del servizio NAP e/o
del servizio GN rivestendo dunque il ruolo client in entrambi gli scenari.
Ulteriori dettagli sul profilo PAN e sulla modalità di instaurazione delle
connessioni sono disponibili in [36].
Capitolo IV
Presentazione di un caso studio :
Infrastruttura per la raccolta dati
Sebbene Bluetooth si stia avviando a divenire la tecnologia
maggiormente utilizzata nell’ambito delle comunicazioni wireless a corto
raggio, ancora poco si conosce delle sue prestazioni in termini di
affidabilità e di utilizzo del canale.
Parallelamente il progetto e la
validazione di una infrastruttura di comunicazione wireless affidabile ed
altamente disponibile richiede la conoscenza della natura e della
distribuzione dei fallimenti che possono presentarsi durante il normale
utilizzo del sistema. Tale esigenza ha dato vita ad una intensa attività di
ricerca, che ha portato alla realizzazione di una infrastruttura distribuita per
la raccolta di dati di fallimento Bluetooth [37] presso il laboratorio ITEM
del Consorzio Interuniversitario Nazionale per l’Informatica (CINI).
Tale infrastruttura costituisce per il presente lavoro di tesi una importante
risorsa per esplorare metodologie e strategie applicabili alle diverse fasi del
processo di analisi, dalla collezione dei dati alla loro interpretazione.
Nei paragrafi che seguono viene descritta l’infrastruttura di raccolta ed il
processo di generazione e collezione dei dati.
66
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
4.2
La generazione e la raccolta dei dati
Come discusso nei precedenti capitoli, per poter condurre una analisi
quanto possibile esaustiva del comportamento di un sistema è necessario
disporre di una ingente quantità di dati che facciano riferimento ad un
utilizzo continuativo dei servizi offerti. Al fine di comprendere a fondo le
modalità di fallimento del sistema si rende inoltre necessario disporre
informazioni relative i legami che queste hanno con l’architettura hardware
e software sottostante. Sulla scorta di tali esigenze, l’insieme dei dati
necessari all’analisi è un insieme eterogeneo che si è scelto di generare
attingendo a tre diverse fonti di informazione:
• System level data: dati raccolti attraverso meccanismi di logging
forniti dal sistema operativo e relativi a protocolli coinvolti nello
stack Bluetooth (L2CAP, LMP, BNEP,…).
Dati di questo tipo
vengono archiviati, in maniera automatica, dal sistema operativo in
un file di log, d’ora in avanti SystemLog. A partire da quest’ultimo
sono poi generati due ulteriori files:
o InfoLog, contenente tutte i messaggi relativi agli eventi
intercettati dal logger di sistema;
o ErrorLog, contente messaggi relativi esclusivamente ad
situazioni di errore e warnings.
67
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
Dati di questo tipo risultano essenziali per comprendere i legami
esistenti tra fallimenti del sistema e l’architettura di supporto.
Occorre considerare infine che le modalità di generazione dei
suddetti files così come il formato delle informazioni risultano
strettamente dipendenti dal sistema operativo.
• User level data: informazioni relative a fallimenti che utenti
Bluetooth sperimentano durante l’uso dei servizi e che scelgono di
condividere mediante l’inserimento di una propria descrizione del
problema nel form disponibile online sul sito del Mobilab Group
all’indirizzo: http://www.mobilab.unina.it/BTDEPEND.htm.
Data la poca sistematicità e la scarsa formalità delle descrizioni
ottenibili, le informazioni dedotte potranno essere utilizzate
esclusivamente come verifiche a supporto dei risultati ottenuti
mediante meccanismi di logging automatico.
• Emulation: la necessità di disporre di ingenti quantità di dati per
conferire rilevanza statistica ai risultati dell’analisi ha suggerito lo
sviluppo di software in grado di emulare il comportamento di un
potenziale utente Bluetooth.
Dati appartenenti a questa classe,
perchè generati in maniera sistematica e continua, risultano
estremamente significativi nell’economia generale del lavoro di
analisi.
68
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
4.2.2
Architettura per la raccolta dati
Per la raccolta dei dati di utente (user level data) e dei dati generati
tramite emulazione, è stata utilizzata un’architettura ad hoc, rappresentata
in Figura 4.1.
Figura 4.1 Diagramma di alto livello del
sistema di raccolta dati
Un Bluetooth Node (BN) rappresenta un qualsiasi dispositivo in possesso di
un’interfaccia Bluetooth sul quale l’utente abbia scelto di installare un Log
69
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
Analyzer. Quest’ultimo si occupa di prelevare e filtrare i dati relativi ad
errori di sistema inerenti Bluetooth per poi inviarli al Log Server Node
attraverso un’interfaccia di rete (wireless o wired) disponibile sul
dispositivo. Attraverso uno User Workstation Node UWN, un qualsiasi
terminale dotato di accesso ad Internet, l’utente può inoltre arricchire le
informazioni raccolte dal Log Analyzer fornendo una descrizione spontanea
di fallimenti riscontrati durante l’uso di servizi o applicazioni legate a
Bluetooth. La combinazione delle informazioni raccolte dall’utente circa la
natura del fallimento, affiancate dalle informazioni di sistema raccolte in
maniera automatica dal BN, arricchiscono una casistica di fallimento
essenziale per le analisi successive.
Un Client Simulation Node (CSN) è un dispositivo dotato di un’interfaccia
di rete Bluetooth e di un Log Analyzer su cui sia installato il software di
emulazione : BlueTest.
BlueTest simula le interazioni tipiche di una
sessione applicativa che richieda l’accesso alla rete pubblica.
Il CSN
comunica con un Server Simulation Node (SSN) che attraverso
l’applicazione BlueTest Server emula un Access Point Bluetooth, offrendo
quindi il servizio NAP, (paragrafo 3.3). Informazioni relative ad eventuali
fallimenti identificati sono registrati dal CSN in un proprio file di log:
TestLog.
Infine il Log Server Node (LSN) è la central repository per i dati raccolti.
L’accesso ai dati è disciplinato da tre differenti servizi: un Web Server per
la raccolta dei dati di utente; un Log Server per la raccolta dei dati prodotti
70
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
dai Log Anayzer; un Database Server per la gestione e la persistenza dei
dati raccolti;
4.2.3
Struttura e persistenza dei dati
Figura 4.2 Schema logico del database
In figura 4.2 è rappresentato lo schema logico del database che conserva i
dati raccolti. Dal paragrafo precedente emerge che due sono le tipologie di
dati conservati all’interno del Log Server:
• US - User and System data, raccolti da UWNs e BNs grazie alla
collaborazione spontanea di utenti Bluetooth.
• EMU Emulation data, raccolti in maniera automatica da CSNs e
SSNs durante l’esecuzione dell’applicazione emulativa BlueTest.
Capitolo IV :
71
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
A causa della differente natura dei dati: inaffidabili ed incostanti i primi,
dettagliati e sistematici i secondi si è resa necessaria la presenza di un
campo flag (data source) per distinguere in fase di analisi i dati raccolti in
funzione della loro tipologia.
La tabella system level data contiene le tipiche informazioni prodotte dal
log di sistema; a queste viene poi aggiunto un campo che identifica l’Host
sul quale i dati sono stati generati, il campo datasource ed un campo Tuple
ID per implementare tecniche di raggruppamento di entries correlate in una
singola entità logica. Per quanto riguarda le entries presenti nella system
level data, formato e livello di dettaglio sono i medesimi sia per i dati
prodotti dai BNs che dai CSNs: entrambe le tipologie sono quindi ritenute
affidabili dal punto di vista delle informazioni contenute, occorre però
considerare che le prime non dovrebbero essere utilizzate per estrarre
misure di dependability poiché non è garantita la continuità nell’uso del
Log Analyzer, durante il periodo di osservazione, da parte dell’utente.
La tabella user level data contiene invece le tipiche informazioni che
possono essere raccolte da un utente in presenza di un fallimento : data e
ora in cui si verifica il fallimento (Time of failure), problema riscontrato
(Error message), durante quale attività dell’utente (During), il tipo di
azione di recovery intrapresa (Recovery) e l’istante in cui è stata ripristinata
una condizione di normale funzionamento (Time of recovery), la
responsibility del fallimento (S.O., software di sistema, software
applicativo, software di terze parti, stack Bluetooth) ed infine il tipo di
72
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
connessione Bluetooth (Bluetooth connection type) sulla quale si è
verificato il problema (L2CAP ACL, L2CAP SCO, PAN, RFCOM).
A queste informazioni vengono inoltre aggiunte, in maniera automatica a
valle di una operazione di autenticazione, l’identificativo dell’utente
(User), dell’Host ed il campo data source.
In questo caso la
differenziazione tra le due tipologie di fonti di informazione è un aspetto
cruciale per l’analisi successiva: data la poca sistematicità e la scarsa
affidabilità delle descrizioni sottomesse dagli utenti in funzione del loro
grado di competenza, le informazioni dedotte dovranno essere utilizzate
esclusivamente come verifiche a supporto dei risultati ottenuti mediante
meccanismi di logging automatico nei CSNs; questi ultimi risultano
estremamente significativi nell’economia generale del lavoro di analisi
perché generati da applicazioni emulative che registrano esattamente ed in
maniera sistematica la dinamica di un fallimento.
4.2.4
Emulazione del traffico
L’adozione di un approccio basato sull’emulazione di un
comportamento, presuppone un’approfondita conoscenza del problema
reale al fine di poterne fornire una adeguata caratterizzazione, in termini
preferibilmente statistici, o, qualora non possibile, attraverso euristiche in
grado di riprodurlo. BlueTest realizza l’emulazione dei profili di carico
maggiormente rappresentativi per l’utilizzo di una rete Bluetooth,
attingendo, ove possibile, alla letteratura più recente per quanto concerne le
distribuzioni statistiche delle attività da riprodurre. Un diagramma degli
73
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
stati di alto livello, relativo al comportamento di un client Bluetooth è
riportato in Figura 4.3a.
Figura 4.3 BlueTest
(a) Diagramma degli stati
(b) Flusso di esecuzione in assenza di errori
Ogni CSN parte dallo stato SCANNING per ritornarvi periodicamente, in
condizioni normali, dopo un periodo di attesa (WAIT). Se si presentano
errori, invece, il CSN entra nello stato RECOVERY per cercare di
ripristinare il suo normale funzionamento: una variabile, WL (warning
level), viene incrementata ogni qualvolta il normale ciclo esecuzione (cfr.
Figura 4.3b) viene interrotto. Tale variabile offre una indicazione della
gravità del problema: al crescere del valore di WL, cresce la severità
dell’azione che si rende necessario intraprendere; il successo di una
74
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
determinata azione di recovery consente inoltre di dedurre l’entità
responsabile del fallimento.
Tabella 4.1 Azioni di Recovery
Durante lo stato di SCANNING un CSN è impegnato in operazioni di
discovery di dispositivi vicini (inquiry) e/o di servizi (sdp search).
Verosimilmente, infatti, ogni utente intenzionato ad utilizzare Bluetooth ha
necessità di sondare la presenza di altri dispositivi nel suo raggio d’azione
per verificare la possibilità di usufruire un certo tipo di servizio. La
frequenza di occorrenza di dette operazioni (inquiry e/o sdp search) è stata
stabilita grazie ad euristiche derivanti da osservazioni sull’usuale utilizzo di
Bluetooth ed è riportata in Tabella 4.2.
Tabella 4.2 Probabilità di occorrenza delle
operazioni di scan/sdp search
A valle della fase di scoperta e della successiva fase di pairing (stato
CONNECTION), durante la quale è anche scelto in maniera casuale il tipo
75
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
di pacchetto da utilizzare, un CSN perviene allo stato USE in cui viene
emulata l’effettiva attività svolta dal client.
Poiché, negli scenari di interesse, Bluetooth viene prevalentemente adottato
quale tecnologia per il last meter access [33] si è scelto di emulare profili
di traffico legati all’utilizzo della rete globale. In Tabella 4.3 sono riportate
le percentuali di utilizzo dei diversi protocolli applicativi [38].
Tabella 4.3 Percentuale di utilizzo delle applicazioni
in Internet
L’emulazione prevede, a valle della scelta di un protocollo applicativo, la
riproduzione di una tipica sessione di scambio dati fissando dunque
parametri caratterizzanti quali dimensione dei pacchetti inviati ( Ls ),
dimensione dei pacchetti ricevuti ( Lr ), numero di pacchetti di cui si
compone il trasferimento (N), ritardo nella generazione del traffico (D).
Al termine della sessione ogni CSN si porta nello stato DISCONNECTION
in cui si provvede a chiudere la connessione ed a liberare le risorse
utilizzate per poi pervenire nello stato di WAIT: il tempo di permanenza in
questo stato è rappresentativo del tempo che intercorre tra l’esecuzione di
attività successive.
76
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
Sintetizzando, è possibile schematizzare il comportamento di BlueTest
nella gestione di workload profiles attraverso un vettore di parametri
caratteristici :
• S: Scan flag, che indica se sarà effettuata o meno l’operazione di
inquiry;
• B: Baseband Packet type, ovvero il particolare tipo di pacchetto
Bluetooth da utilizzare per la trasmissione;
• WL: WorkLoad profile, ovvero la particolare attività da riprodurre
(WEB,FTP...);
• Lr , Ls , N, D: come definiti.
4.2.5
Il LogAnalyzer
In un processo di valutazione measurement-based la fase di raccolta
dei dati è generalmente seguita da una serie di operazioni di manipolazione
degli stessi per far fronte a due situazioni tipiche che renderebbero
altrimenti complesso il lavoro di analisi:
77
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
• Volume dei dati : le informazioni raccolte dai logger di ogni sistema
operativo sono generalmente ridondanti e non tutte significative ai
fini dell’analisi che si intende condurre. Come discusso nel capitolo
secondo, la riduzione della mole di informazioni da gestire, senza
alterarne
il
contenuto
informativo,
agevola
i
processi
di
interrogazione dei dati oltre che eventuali operazioni di invio ad una
central repository remota.
• Formato dei dati : il formato con cui le informazioni sono registrate
sui files di log varia non soltanto al variare del S.O. ma anche della
sorgente da cui esse provengono e dalla loro tipologia (informazioni
di errore, warning, alert,….)
pertanto tipicamente si cerca di
renderle conformi ad un formato predefinito.
Nell’architettura di Figura 4.1 la responsabilità di dette operazioni è
demandata al LogAnalyzer il cui diagramma degli stati di alto livello è
riportato in Figura 4.4.
Figura 4.4 Log Analyzer: Diagramma di alto livello
L’applicazione è progettata per processare le tre differenti tipologie di log
files generati dai nodi dell’architettura; lavora in quattro fasi che si ripetono
ciclicamente: (1) estrazione dei dati dal file di log, (2) filtraggio delle
78
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
informazioni indesiderate, (3) applicazione degli algoritmi di coalescenza,
(4) invio al sistema centrale remoto.
1. Allo scattare di un timer, tipicamente ogni ora, il LogAnalyzer esce
dallo stato Asleep ed effettua una copia di lavoro dei files di log
attraverso una particolare funzionalità di logrotate;
2. Il filtraggio dei dati avviene facendo ricorso a due liste in cui sono
stati preventivamente inseriti i tag relativi agli eventi interessanti e
dunque da salvare (whitelist) ed i tag identificativi di eventi non
interessanti e dunque da filtrare (blacklist). La manipolazione dei
dati contenuti nelle liste avviene modificando un file di
configurazione in modo tale da consentire all’applicazione di
adattarsi alla particolare strategia di filtering senza la necessità di
apportare modifiche strutturali al codice.
3. Il LogAnalyzer mette in opera sia strategie di coalescenza temporale
sia di coalescenza basata sul contenuto. La prima, a differenza di
quanto illustrato nel Paragrafo (2.3), non è utilizzata per la data
reduction, piuttosto è volta a raggruppare entries relative al
medesimo evento e registrate a breve distanza assegnando loro uno
stesso Tuple ID; La coalescenza basata sul contenuto, invece, è volta
alla riduzione del volume dei dati e punta a raggruppare più entries
relative ad un medesimo
evento noto in un’unica entry
rappresentativa dell’evento stesso e contenente esclusivamente le
informazioni necessarie.
In particolare il LogAnlayzer riduce le
79
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
informazioni relative al boot ed allo shutdown di un host mediante
l’individuazione di un pattern di start/stop.
4. Una volta completate le operazioni di filtraggio e coalescenza, il
LogAnalyzer invia i dati al Collection Log Server, cui è demandata la
responsabilità di trasferirli sul database per le successive
elaborazioni. Due tipologie di dato possono essere inviate: system
level data ovvero le entries prodotte dall’estrazione, il filtraggio e la
coalescenza di InfoLog e ErrorLog; user level data, dati raccolti
dalle applicazioni emulative, estratti e filtrati dal TestLog.
L’onere del trasferimento dei dati trattati al Collection Log Server
può essere o meno a carico del LogAnalyzer stesso. Nel secondo
caso tale responsabilità è demandata ad una applicazione specifica:
l’Entry Sender. Tale soluzione, rappresentata in figura 4.5, comporta
diversi vantaggi: libera il LogAnalyzer da problemi che possono
verificarsi durante il trasferimento dei dati, quale ad esempio
l’assenza di accesso ad Internet; consente all’utente di scegliere il
momento opportuno per il trasferimento dei dati.
Figura 4.5 Suddivisione delle responsabilità del LogAnalyzer
80
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
4.3
Il testbed
L’architettura del testbed utilizzato per la raccolta dei dati emulati, è
illustrata in Figura 4.6 e riproduce una piconet Bluetooth costituita da sette
dispositivi nel raggio di una decina di metri.
Figura 4.6 Architettura del testbed
Il testbed è strutturato in maniera eterogenea con riferimento alle
caratteristiche hardware e software dei nodi come riportato in tabella:
PC
S.O.
Distribuzione
Kernel
CPU
Mem
Giallo
Linux
Mandrake
2.4.21-0.13mdk
P4 1.60GHz
128Mb
Verde
Linux
Mandrake
2.4.21-0.13mdk
P3 350Mhz
256Mb
Misero
Linux
Debian
2.6.5-1-386
Celeron 700Mhz
128Mb
Capatamarano
Linux
Fedora
2.6.9-1.667
P4 1.70GHz
512Mb
Ipaq H3800
Linux
Familiar 0.8.1
2.4.19-rmk6-pxa1-hh37
Zaurus SL-5600
Linux
OpenZaurus 3.5.2
2.4.18-rmk7-pxa3-embedix
Win
Windows
P4 1.80Ghz
512Mb
XP Professional Service Pack 2
81
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
La particolare attenzione ai sistemi operativi installati sui diversi hosts è
giustificata dal fatto che il Bluetooth Stack è generalmente un componente
di livello kernel e dunque a stretto contatto con i meccanismi di gestione
delle interfacce messi in opera dal software di base. Alla luce di questa
considerazione è ragionevole supporre che l’impatto di fallimenti Bluetooth
sul sistema possa variare a seconda del sistema operativo e dunque del
software di gestione di basso livello.
Ad oggi gran parte dei sistemi operativi di largo consumo dispone di un
supporto per Bluetooth partendo dal consolidato Bluez in ambiente Linux,
passando per i moduli Bluetooth di Symbian e Windows CE, fino al
giovanissimo supporto di Windows XP. Le sezioni che seguono descrivono
i supporti offerti dai S.O. coinvolti nel testbed concentrando l’attenzione
sulle problematiche legate al loro utilizzo per il profilo PAN.
4.3.2
Linux e Bluetooth : lo stack BlueZ
BlueZ è lo stack Bluetooth ufficiale in ambiente Linux. Sviluppato
inizialmente dalla Qualcomm Incorporated è ora distribuito in maniera
open-source sotto licenza GNU GPL (General Public License).
Ufficialmente parte del kernel di Linux a partire dalla versione 2.4.6, BlueZ
consiste di una serie di moduli tra cui:
• Bluetooth kernel subsystem core ;
Capitolo IV :
82
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
• livello kernel di L2CAP e SCO audio ;
• implementazione del livello kernel di RFCOMM e BNEP ;
• HCI UART, USB, PCMCIA e driver di device virtuali;
• Librerie e demoni per General Bluetooth ed SDP;
• Utilities di test e configurazione;
• Strumenti di monitoring ed analisi (ad esempio hcidump per il
monitoring delle connessioni a livello HCI);
Diverse sono le caratteristiche che hanno consolidato il successo di BlueZ
rendendolo ad oggi lo stack più utilizzato, tra le altre:
• l’implementazione completamente modulare;
• il supporto per diversi dispositivi Bluetooth;
• l’utilizzo di un’interfaccia socket standard per tutti i livelli
Bluetooth;
• il supporto per la sicurezza di servizi e dispositivi;
83
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
• la compatibilità con le più diffuse piattaforme hardware (Intel e
AMD X86, AMD64 (x86-64), SUN SPARC 32/64bit, PowerPC
32/64bit, Intel StrongARM and XScale, Motorola DragonBall ).
La realizzazione di applicazioni che utilizzino il profilo PAN è resa
possibile dal supporto che BlueZ offre per BNEP ed L2CAP. La struttura
completamente modulare di BlueZ richiede il precaricamento di moduli
relativi ai livelli sottostanti prima di poter stabilire una connessione PAN:
deputato ad abilitare il profilo e a stabilire le connessioni è un particolare
demone, pand, che va invocato previo il caricamento dei moduli relativi ad
HCI, L2CAP e BNEP.
Per ottenere maggiori informazioni in relazione alla causa di
fallimenti, lo stack Bluetooth delle macchine coinvolte nel testbed è stato
modificato in modo da essere maggiormente espressivo nella descrizione di
errori. Nessuna modifica ha coinvolto le funzionalità dello stack, è stato
unicamente aggiunto codice necessario per garantire una migliore capacità
di registrazione degli eventi nel log di sistema.
Un esempio di tali
modifiche è mostrato in Figura 4.7.
Figura 4.7 Esempio di modifica del codice sorgente di BlueZ
84
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
4.3.3
Windows XP e Bluetooth
Il supporto Bluetooth è disponibile nei sistemi Windows XP a partire
dalla release SP1 (Service Pack 1), nei sistemi XP Embedded a partire dal
SP2 ed in tutti i sistemi Windows CE.
Per il corretto funzionamento di applicazioni Bluetooth in ambiente XP è
necessaria l’installazione di un apposito package, Windows XP Embeddedbased run-time, per la risoluzione delle opportune dipendenze. Il supporto
Bluetooth di casa Microsoft fornisce servizi di base molto simili a quelli già
disponibili per altri protocolli di trasporto: analogamente a quanto accade
per altri protocolli di networking l’interfaccia fornita per l’implementazione
delle connessioni Bluetooth è di tipo socket-based.
Più precisamente,
Microsoft fornisce due diversi approcci per la programmazione Bluetooth:
1. Managing devices directly by using nonsocket Bluetooth interfaces;
2. using the Windows Sockets interface.
Il primo approccio prevede la manipolazione e l’accesso a dispositivi
Bluetooth mediante l’utilizzo di numerose funzioni e strutture dati spesso
legate da fitte relazioni di dipendenza che ne rendono poco intuitivo
l’utilizzo.
Il secondo approccio, invece, prevede ovviamente l’utilizzo
dell’interfaccia socket standard opportunamente estesa per rendere
possibile l’implementazione di operazioni prettamente legate a Bluetooth
quali la scoperta dei dispositivi e/o dei servizi disponibili.
85
Capitolo IV :
Presentazione di un caso studio: Infrastruttura per la raccolta dati ____________
Con particolare riferimento ai sistemi XP, sebbene le API fornite
nell’ambito del Microsoft Platform SDK consentano l’implementazione di
tutte le operazioni Bluetooth, l’interfaccia messa a disposizione da
Microsoft consente esclusivamente l’accesso ai protocolli basati su
RFCOMM e non ai livelli inferiori inibendo pertanto lo sviluppo di
applicazioni che utilizzino protocolli di comunicazione diversi da quello
seriale. Una siffatta struttura dello stack (cfr. Figura 4.8) e la conseguente
carenza, in termini di API, di strumenti per l’accesso ai livelli L2CAP e
BNEP rendono impossibile lo sviluppo di applicazioni basate sul profilo
PAN.
Figura 4.8
Per tale ragione l’implementazione di un client BlueTest in ambiente
Windows è stata realizzata grazie all’adozione di uno stack commerciale.
Capitolo V
Presentazione di un caso studio :
Selezione ed Analisi dei dati
Disponibilità ed affidabilità sono elementi chiave della dependability
dei computer systems. Dal momento che si fa sempre più consistente
l’utilizzo di sistemi mobili in scenari applicativi critici sia in termini
economici (business-critical scenarios) che in termini di affidabilità e
sicurezza (mission-critical scenarios), è atteso che nel prossimo futuro tali
aspetti possano risultare persino più importanti del sistema stesso.
Nei sistemi transazionali, ad esempio, o in applicazioni di teleimmersione o
telemedicina, il costo di un singolo fallimento potrebbe essere paragonabile
al costo dell’intero sistema o comportare danni a beni o persone.
I log di eventi costituiscono una importante risorsa per incrementare la
availability e la reliability di un sistema. Possono essere usati per diversi
scopi che vanno dalla trend analysis di lungo termine per identificare
cambiamenti; alla diagnostica on-line per predire failure e gestire i fault;
parallelamente è anche interessante una analisi off-line per diagnosticare
fuori servizio del sistema e produrre stime o monitorare la affidabilità del
sistema sul campo. Occorre però sottolineare che il grado di successo in
attività di questo tipo è in larga parte dipendente dalla qualità e dalla
completezza dei log di sistema. Se l’informazione è carente, incompleta o
Capitolo V :
87
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
di difficile interpretazione allora tali attività diventano maggiormente
complesse e talora non possibili.
L’assunzione implicita o l’ipotesi di lavoro su cui si basa ogni
attività di analisi attraverso l’uso dei log è che questi siano sufficientemente
completi da supportare l’analisi e validare le conclusioni.
In larga parte della letteratura la qualità dei log è data per garantita e non
viene attentamente valutata, sicché le statistiche e le interpretazioni
prodotte sono considerate realmente rappresentative del comportamento del
sistema. In [22] viene mostrato che sebbene sia sempre possibile trarre
delle conclusioni, maggiore sforzo ed attenzione vanno poste nel processo
di analisi. Ciò non vuol dire che i log di eventi siano non utilizzabili, ma
che una cura estrema deve essere adottata per derivare conclusioni
significative.
Nel presente capitolo vengono descritte le metodologie di analisi
applicate all’insieme di dati raccolti attraverso l’infrastruttura per il
monitoraggio e la collezione di fallimenti spontanei in piconet bluetooth
descritta nel capitolo precedente. Particolare attenzione viene dedicata allo
sviluppo di soluzioni per l’esplorazione dei legami esistenti all’interno dei
dati. Tale aspetto ricopre un ruolo essenziale nell’analisi, consentendo di
ricostruire il processo di fallimento partendo dalla sola osservazione delle
sue molteplici manifestazioni.
Nello specifico il lavoro di analisi proposto affronta tre problematiche:
88
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
• Rimozione della ridondanza introdotta nei dati dal meccanismo di
registrazione degli eventi: classificazione degli eventi, filtraggio,
estrazione e coalescenza.
• Relazioni esistenti tra le dinamiche di fallimento dei diversi Hosts.
• Legame tra errori di livello sistema e fallimenti, analisi dei fenomeni
di propagazione.
5.2
Approccio metodologico per l’analisi di un nuovo
set di dati
Nell’affrontare l’analisi di un nuovo insieme di dati è importante
adottare un approccio metodico e rigoroso. Tale esigenza diventa una
necessità nel caso di event logs prodotti dal sistema operativo e quindi
verosimilmente non privi di difetti nel processo di raccolta dati (cfr.
paragrafo 2.4).
Le fasi di cui si compone il presente lavoro di analisi sono descritte
in figura 5.1.
Il primo passo fondamentale consiste nell’identificare
l’insieme di dati che può rispondere alle esigenze di analisi. Deve poi
essere valutato per verificare che contenga dati corretti e di qualità
sufficientemente elevata.
Una volta completata tale esplorazione
preliminare dei dati, ha senso procedere con il processo di analisi e di
interpretazione dei risultati.
89
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Figura 5.1 Processo di selezione ed analisi dei dati
90
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
5.2.2
Identificare l’insieme di dati
Per portare a termine con successo questa importante fase occorre
innanzitutto definire con chiarezza gli obiettivi dell’analisi, in particolare il
problema da risolvere o le conclusioni che si spera di poter trarre.
Maggiore dettaglio nelle definizioni migliora sensibilmente l’intero
processo.
Una volta chiariti gli obiettivi il passo successivo consiste
nell’identificare un insieme di dati che possa essere adatto agli scopi.
Occorre, in particolare, valutare il potenziale data set per determinare se
l’informazione che contiene può considerarsi sufficiente per trarre e
validare conclusioni; dettagli da contemplare sono il tipo ed il volume dei
dati, il formato degli stessi, se il processo di collezione dei dati sia
documentato o meno, l’integrità generale dei dati. Due sono le possibili
conclusioni che si possono trarre in questa fase: un insieme di dati adeguato
per le analisi successive è stato identificato; occorre sviluppare un sistema
per acquisire nuove informazioni.
5.2.3
Valutare la qualità dell’insieme di dati
In questa fase bisogna analizzare in dettaglio il data set ed il
processo di collezione. Maggiori sforzi sono posti in questa fase, maggiore
velocità si avrà nelle analisi successive nonché una diminuzione delle
probabilità di incorrere in errore con la conseguente necessità di rivedere
l’analisi.
91
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Eventuali deficienze e limitazioni dei dati devono essere individuate e
comprese. Alcuni difetti tipici sono la presenza di TimeStamp errati, di
periodi di inattività non documentati, di entries non correttamente
formattate. E’ bene preparare una lista dei difetti, quantificarne la presenza
e condurre uno studio di sensibilità per valutarne l’impatto eventuale.
Questo conduce a migliori assunzioni e ad una maggiore consapevolezza di
ciò che si potrà ottenere dall’analisi, nonché nell’individuazione di possibili
stratagemmi da adottare durante l’analisi per aggirare tali difetti.
Un aspetto di particolare importanza consiste nel comprendere quali
informazioni non sono effettivamente presenti nei dati. Talvolta trascurare
tale aspetto può portare a trarre conclusioni errate sulla base dell’assenza,
nei dati, di alcune caratteristiche attese; al contrario se si ha coscienza del
fatto che tali misure sono state omesse, si conclude che l’assenza non ha
alcun significato.
Naturalmente se gli event logs sono di elevata qualità e ben
documentati presumibilmente tale fase richiederà la spesa di un tempo
molto minore.
5.2.4
Ottenere una comprensione basilare dei dati
Il passo successivo consiste nell’ottenere una comprensione basilare
dei dati. Si tratta di una importante fase preliminare per l’analisi che aiuta
a definire problematiche e obiettivi. A tale scopo può essere interessante
92
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
condurre analisi statistiche per ciascuna delle variabili: per variabili
numeriche sono sicuramente di interesse valori medi, deviazione standard,
range e valori estremi, mentre per variabili descrittive la scelta migliore è
rappresentata da analisi di frequenza e tabelle di contingenza. Esistono
inoltre
svariate
“illuminanti”.
rappresentazioni
grafiche
che
possono
risultare
Particolarmente efficaci e di facile utilizzo sono plots,
istogrammi e cross plots. Interessante è anche analizzare i valori estremi di
ciascuna variabile: l’analisi degli outliers può infatti aiutare ad identificare
eventuali errori nella metodologia di acquisizione e può fornire una prima
comprensione del comportamento del sistema.
5.2.5
Analisi dei dati
Il primo compito nella fase di analisi consiste nel produrre un piano
di analisi. Non deve assolutamente essere definitivo e strada facendo è
possibile eliminare o aggiungere analisi sulla base dei risultati ottenuti e
della maggiore comprensione del problema che ne segue.
Resta però
fondamentale la presenza di un piano per fornire all’analisi una direzione.
Un piano di analisi dovrebbe includere :
• una dichiarazione degli Obiettivi;
• l’identificazione delle variabili in ingresso;
93
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
• l’identificazione delle variabili d’uscita;
• strumenti di analisi che saranno adottati (ad esempio software di
analisi, test statistici);
• ipotesi e risultati attesi, qualora possibile.
5.3
Applicazione delle metodologie di analisi
Dopo aver delineato una possibile metodologia da seguire
nell’analisi di un nuovo insieme di dati, se ne illustra un esempio di
applicazione ai dati raccolti attraverso l’infrastruttura per il monitoraggio e
la collezione di fallimenti spontanei in piconet bluetooth descritta nel
capitolo precedente.
Lo studio che si descrive in particolare cerca di
mettere in luce alcune problematiche comuni che possono presentarsi
durante il processo d’analisi.
Come accennato nell’introduzione, l’interesse principale di questo lavoro di
analisi consiste nell’esplorazione dei legami esistenti all’interno dei dati in
relazione a tre problematiche:
• Rimozione della ridondanza introdotta nei dati dal meccanismo di
registrazione degli eventi.
• Relazioni esistenti tra le dinamiche di fallimento dei diversi Hosts.
94
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
• Legame tra errori di livello sistema e fallimenti, analisi dei fenomeni
di propagazione.
5.3.2
Identificazione e valutazione dell’insieme di dati
In relazione agli obiettivi esposti si è individuato un sottoinsieme dei
dati ritenuto adatto per le analisi successive. In particolare della struttura
originaria del database, come descritto nel paragrafo 4.2.3, sono stati
conservati i soli campi contenenti le sole informazioni relative gli
argomenti trattati.
Per quanto riguarda i dati di livello utente, le informazioni contenute nei
campi TimeOfFailure, ErrorMessage, Host, Recovery action, Data source,
sono state considerate un insieme essenziale e sufficiente per gli obiettivi
dell’analisi. I restanti campi sono stati invece considerati inessenziali ed
omessi per non complicare inutilmente il processo di analisi.
I campi Time, Message, Host, Data source, sono invece essenziali per
quanto riguarda i dati di livello sistema.
Il campo Process Name è
essenzialmente ridondante in quanto evincibile dal campo Message una
volta terminata la classificazione degli errori; si è però rivelato
estremamente utile in fase di classificazione e filtraggio degli errori in
quanto consente una migliore contestualizzazione dei messaggi.
I dati contenuti nel database sono stati acquisiti durante l’arco di circa un
anno, occorre però sottolineare che i dati raccolti in tale periodo non sono
95
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
tra loro omogenei. In particolare si distinguono 3-4 epoche, differenti sia
dal punto di vista dell’architettura del testbed che del comportamento degli
utenti simulati (cfr. Tabella 5.1).
Epoch
From
To
Clients
Workload type
Server
fixed parameters, no
Leox
scan, no SDP
fixed parameters,
Leox
scan, no SDP
fixed parameters,
Leox
scan, no SDP
1
07/06/2004 29/09/2004
Verde
2
29/11/2004 17/12/2004
Verde, Miseno, Giallo
3
17/12/2004 04/02/2005
Verde, Miseno, Giallo, Ipaq
4
04/02/2005 08/03/2005
Verde, Miseno, Leox, Ipaq
totally random
parameters, scan
SDP
Giallo
5
23/03/2005 03/05/2005
Verde, Miseno, Ipaq, Zaurus,
Azzurro
totally random
parameters, scan
SDP
Giallo
6
03/05/2005 05/07/2005
Verde, Miseno, Ipaq, Zaurus,
Azzurro
Coherent workload,
scan SDP
Giallo
7
05/07/2005
Verde, Miseno, Ipaq, Zaurus,
Capatamarano, Windows
today
Shaped parameters,
Giallo
scan SDP / Bond WL
Tabella 5.1 Processo di selezione ed analisi dei dati
Diversi studi hanno investigato il legame esistente tra carico cui è
sottoposto il sistema e le caratteristiche statistiche degli errori transienti.
Meyer [41] in particolare ha mostrato come la distribuzione degli errori sia
pesantemente dipendente dal tipo di utilizzazione del sistema oltre che dal
volume. Segue che una corretta analisi non può essere condotta sull’intero
campione in maniera indiscriminata perché il processo sottostante potrebbe
essere fortemente non stazionario, sebbene è comunque atteso contenere
lunghi intervalli di stazionarietà.
Inoltre, perché i risultati dell’analisi
possano essere significativi, il sistema deve essere esposto ad un ampio
96
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
ventaglio di possibili casi d’uso.
Le epoche che rispondono a tale
caratteristica sono le più recenti, inoltre sono equiparabili sia da un punto di
vista strutturale che dal punto di vista delle modalità di utilizzo; per
mantenere un volume di dati comunque significativo si è scelto dunque di
usare come finestra di osservazione un periodo di sei mesi che va dai primi
di maggio fino a circa metà del mese di ottobre 2005.
Nel periodo di interesse, come nell’intero data set, sono stati evidenziati
alcuni difetti e limitazioni nel sistema di raccolta dati; in parte sono stati
prontamente risolti, parte invece ha richiesto particolare attenzione durante
la fase di analisi per evitare di comprometterne i risultati. Di seguito si
riportano brevemente alcuni aspetti:
1. Errori nella registrazione dei timestamp.
E’ il caso di records nei quali il campo date/time è palesemente errato.
L’occorrenza di timestamps errati si verifica qualora vengano riportati
eventi nei log prima che l’orologio di sistema sia stato correttamente
inizializzato. Tipica causa del problema è l’utilizzo del Network Time
Protocol: l’indisponibilità del servizio o una cattiva configurazione può
impedire una corretta regolazione dell’ora corrente che si traduce spesso
in un reset dell’orologio di sistema al cosiddetto anno 0 (January 1,
1970, 00:00:00 GMT). Una differente possibilità consiste in un errore
dell’amministratore nella configurazione manuale dell’orologio di
sistema.
La presenza di timestamps errati, se non gestita correttamente, può
compromettere il calcolo di misure basate su intervalli temporali tra
Capitolo V :
97
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
eventi, quale per esempio il TBF. Sono comunque difetti di facile
identificazione poiché tipicamente gli spostamenti prodotti nelle misure
sono di diversi ordini di grandezza maggiori dei valori attesi. Semplici
tecniche di outliers detection come del resto una ispezione manuale del
database opportunamente ordinato portano ad una rapida identificazione
del problema che può essere risolto in maniera semplice eliminando le
entries corrispondenti oppure assegnando loro un offset corretto.
Nel caso in esame era presente un modesto numero di entries riportanti
datazioni antecedenti il 1980, che sono state prontamente eliminate, ed
una intera epoca, ottobre-dicembre 2004, riportata erroneamente come
registrata nel 2005; in questo caso si è resa sufficiente la correzione
sistematica di tali records prima che si verificasse sovrapposizione con i
dati più attuali.
2. Entries riportanti campi mancanti.
Riguardano eventi rari localizzati principalmente nelle prime epoche. Il
problema è stato risolto nelle versioni successive del Log Analyzer; non
ha comunque interessato il periodo d’osservazione oggetto di questo
lavoro di analisi.
3. Filtraggio migliorabile.
Malgrado il duplice approccio whitelisting\blacklisting adoperato nel
Log Analyzer, sono presenti nel database originale diverse entries non
collegabili ai servizi offerti dal sistema ed oggetto di analisi.
Significativo è il caso dell’errore “Connection script failed” che da solo
costituisce il 92% circa delle entries presenti nella System Level Data.
Capitolo V :
98
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Una tale presenza rendeva a prima vista poco significative le altre
tipologie di errore, alcune delle quali non riuscivano neppure a
raggiungere la soglia dell’uno percento. Ad una analisi più attenta tale
problema si è poi rivelato essere non collegato all’utilizzo di servizi
Bluetooth; le entries corrispondenti, così come per altri errori, sono state
rimosse grazie a regole di filtraggio più severe.
Si vuole infine
sottolineare come l’esplorazione manuale delle tabelle di contingenza
relative alle variabili di interesse costituisca un momento irrinunciabile
di verifica della correttezza degli algoritmi di estrazione e filtraggio dei
dati.
4. Formato dei messaggi migliorabile.
Principalmente nei dati di sistema, esistono migliaia di possibili
messaggi di errore. Una tale numerosità può complicare o persino
pregiudicare l’analisi se non gestita opportunamente. Con l’ausilio di
tabelle di contingenza e della consulenza di esperti del problema si è
osservato che a dispetto dell’enorme numero di messaggi di errori questi
potevano essere classificati in meno di una decina di categorie. Gran
parte dei messaggi differiscono semplicemente per pochi caratteri,
tipicamente un dettaglio di tipo numerico di grana eccessivamente fine
per gli scopi dell’analisi; altri invece riferiscono ad eventi simili in
maniera differente poiché generati su Host differenti, quindi da
meccanismi di logging di sistemi operativi differenti per kernel e
distribuzione (cfr. esempio in figura 5.2).
99
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Figura 5.2 Differenze nel formato dei messaggi
5. Periodi di inattività del testbed non documentati.
Per diverse esigenze quali manutenzione, assenza di alimentazione e
principalmente spegnimento volontario per altre attività, il testbed è
stato più volte inattivo per alcuni giorni, nell’arco del periodo di
osservazione. L’assenza di documentazione di tali eventi richiede una
maggiore attenzione in fase di analisi, fondamentale nell’affrontare il
calcolo di misure di dependability. La valutazione del MTBF, per citare
un esempio, può essere resa eccessivamente ottimistica per la presenza
di lunghi intervalli tra fallimenti in corrispondenza dei periodi di
inattività del testbed.
Chiaramente occorre gestire questo problema
durante il processo di analisi per trarre misure di dependability che siano
effettivamente rappresentative del comportamento del sistema.
6. Meccanismo di logging dei dati di sistema non affidabile.
Per ragioni non ancora sufficientemente esplorate, i dati di livello
sistema di alcune macchine mostrano alcuni periodi di assenza di
attività, non giustificabili attraverso normali comportamenti. Diverse
sono le possibili teorie che spaziano dalla presenza di guasti transienti
100
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
che provocano fallimenti di omissione ad un problema software nel
meccanismo di logging che porta ad una sovrascrittura o persino ad una
sostituzione dei files di log.
Un caso interessante, per certi versi
patologico, è quello dell’Host Azzurro che nell’ultimo periodo di
attività, prima della definitiva sostituzione, non ha prodotto alcuna
informazione di livello sistema.
Occorre osservare che si tratta di un problema piuttosto serio,
soprattutto ai fini del raggiungimento dell’ultimo obiettivo di analisi.
7. Coalescenza dei dati.
Come ampiamente discusso nel capitolo secondo, nei logs di sistema
vengono spesso riportati eventi multipli, che sono manifestazione di un
singolo guasto. Per evitare che tale ridondanza possa essere confusa
con informazione e che l’analisi successiva venga quindi polarizzata o
distorta da osservazioni ripetute di un medesimo problema, occorre che
tali reports vengano assimilati in un’unica entità logica, la tupla.
Benché tale operazione sia già eseguita dal Log Analyzer si ritiene
opportuno condurre un nuovo studio sulla coalescenza basato sulla
disponibilità dei dati e dunque su una maggiore consapevolezza del
problema.
Tale approccio consente inoltre di valutare in maniera
adeguata il trade-off tra l’efficacia del meccanismo di tupling e la
probabilità di collisione tra eventi non correlati.
8. Assenza di dati di livello sistema in macchine Windows
Allo stato attuale non si dispone di dati sufficienti per fornirne una
caratterizzazione.
101
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
5.3.3
Filtraggio, estrazione e coalescenza dei dati
Per far fronte ad alcuni dei difetti evidenziati nel precedente
paragrafo si è resa necessaria una ulteriore fase di filtraggio ed estrazione
dei dati.
Come risultato è stato prodotto un nuovo dataset ritagliato
secondo le esigenze di analisi. Contestualmente a tale operazione è stata
anche eseguita una riorganizzazione delle entries in tuple con il duplice
obiettivo di migliorare l’accuratezza delle analisi successive e, nel
contempo, ridurre il volume dei dati considerati.
Per realizzare il filtraggio dei dati è stata propedeuticamente condotta una
ispezione manuale dei messaggi di evento con l’obiettivo di realizzarne una
classificazione completa. Sono stati presi in considerazioni sia i dati di
livello utente, che i dati di livello sistema. Conclusa la classificazione degli
eventi è stato condotto un filtraggio basato su una whitelist che comprende
le sole categorie individuate, contestualmente sono stati anche uniformati i
messaggi di evento. In riferimento ai dati di livello utente, sono state
individuate le seguenti classi di fallimento:
• Bind failure, fallimenti generici verificatisi durante l’assegnazione
dell’indirizzo di livello rete all’interfaccia virtuale bnep.
• SDP Search failure, comprende fallimenti relativi la ricerca del
servizio NAP, quali servizio non disponibile sull’Access Point,
scadenza del timeout della richiesta, impossibilità di eseguire la
richiesta.
102
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
• Inquiry Search failure, fallimenti generici durante la ricerca di
dispositivi presenti all’interno della piconet.
Nel periodo di
osservazione tale problematica si è verificata un’unica volta ed è
stata pertanto esclusa dall’analisi.
• RSSI read failure, anche in questo caso si tratta di eventi rari e
quindi esclusi dall’analisi.
Rappresentano errori nell’esecuzione
delle API per interrogare il firmware circa lo stato qualitativo del
canale.
• Connection failure, si manifesta durante l’instaurazione di una
connessione Ip su Bluetooth: impossibilità di creare una connessione
oppure assenza dell’interfaccia di rete bnep.
• PAN disconnection failure, assimilabile al precedente, si verifica
esclusivamente su Host Windows quando al momento di chiusura
della connessione questa non viene trovata attiva.
• Receive failure, è prodotto dallo scadere del timeout del protocollo
applicativo; rappresentano la classe di errore più diffusa.
• Role failure, principalmente si verificano nei PDA, rappresentano
problematiche relative l’assegnazione dei ruoli all’interno di una
piconet.
Capitolo V :
103
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Per quanto riguarda invece i dati di livello sistema sono state identificate le
classi di errore riportate di seguito. Non è ugualmente immediato fornirne
una spiegazione in quanto tali eventi sono generati dal sistema operativo e
dallo Stack BlueZ piuttosto che dall’applicazione emulativa come nel caso
di fallimenti di livello utente. In generale si tratta di problemi verificatisi
durante l’uso dei protocolli coinvolti nel profilo PAN e descritti nel
capitolo terzo. Data la diversa natura dei ruoli, è utile infine distinguere tra
errori che possono verificarsi nel server dell’architettura, fornitore del
servizio di Network Access Point ed errori interni ai client che utilizzano
tale servizio.
Nel primo caso si distinguono le seguenti tipologie di errore:
• Packet Mismatch, non viene passato il controllo di errore al livello
applicativo, malgrado la frame fosse stata ritenuta corretta ai livelli
inferiori. E’ indice della forte presenza di burst di errori sul canale.
• PAN Connection.
• L2CAP ACL data receive, problemi durante la ricezione di pacchetti
ACL quali inizio frame inatteso, continuazione di frame non attesa.
• HCI ACL data packet, problemi durante la ricezione e la
trasmissione di pacchetti ACL: impossibilità di riconoscere l’handle
di connessione; scadere del timeout in trasmissione, distruzione di
una connessione in stallo.
Capitolo V :
104
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
• USB Device, problemi nella gestione del collegamento con il
dispositivo via USB.
Negli Host client sono invece state individuate le seguenti:
• SDP Search, errori durante l’esplorazione dei servizi sul AP:
connessione rifiutata, in timeout, AP non disponibile o che non
implementa il servizio richiesto.
• BNEP, problemi nell’accesso all’interfaccia di rete virtuale.
• L2CAP ACL data receive, problemi durante la ricezione di pacchetti
ACL quali inizio frame inatteso, continuazione di frame non attesa.
• HCI ACL data packet, problemi durante la ricezione e la
trasmissione di pacchetti ACL: impossibilità di riconoscere l’handle
di connessione; scadere del timeout in trasmissione, distruzione di
una connessione in stallo.
• BCSP, BlueCore Serial Protocol, presente nei dispositivi che usano
chipset Bluetooth non USB inclusi chipset built-in, PCMCIA e CF
cards; Si occupa del trasporto di pacchetti HCI tra il chipset ed il
sistema. Supporta anche controllo si errori e ritrasmissioni. Errori
riscontrati sono relativi alla ricezione di pacchetti fuori ordine,
troncati o in timeout.
105
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
• Jedec_probe, messaggi di errore relativi all’inizializzazione del
driver Linux di gestione delle memorie flash in sistemi Embedded.
Presenti nel solo Host Ipaq, non è chiaro se siano di interesse per
l’analisi.
• TO waiting hotplug event, errori manifestatisi nel solo Host
Capatamarano. Notificati dal demone HAL (Hardware Abstraction
Layer) che fornisce API per l’identificazione di hardware collegato
al sistema e per la raccolta di informazioni di stato dei dispositivi.
Non è chiaro se di interesse per l’analisi.
• audit(.) inizialized, anche in questo caso si tratta di messaggi di
errore che coinvolgono il solo Host Capatamarano. Prodotti dal
kernel di Linux non è chiaro se di interesse per l’analisi.
A valle di estrazione e filtraggio è stata infine realizzata la coalescenza dei
dati utilizzando le regole di tupling descritte nel paragrafo 2.4.
Per la scelta dei parametri di clustering è stato condotto uno studio
preliminare di sensibilità.
Data la differente natura dei dati di livello
sistema ed utente, rispettivamente eventi di errore e fallimento, i due casi
sono stati affrontati separatamente.
In figura 5.3 è mostrato l’andamento del numero di tuple di livello sistema
in funzione del clustering time.
106
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Figura 5.3 Numero di tuple di sistema in funzione del clustering time
Osservando il grafico, è interessante notare come la curva presenti la
caratteristica forma ad “L” descritta nel capitolo secondo.
La tupla,
verosimilmente, rappresenta il risultato diretto di un guasto nel sistema;
tale guasto genera, in condizioni normali, un pattern di errori che sono
raggruppati in un lasso di tempo breve rispetto all’intero log. Per tale
ragione è presente una elevata sensibilità al clustering time per valori
inferiori ai 7 secondi mentre l’andamento diventa praticamente piatto per
valori superiori. Un simile andamento motiva la scelta di un clustering
time superiore ai 7 secondi; in particolare tale scelta è ricaduta su una
finestra di 10 secondi, anche se va sottolineato che un qualsiasi valore
superiore, purché non eccessivo, avrebbe prodotto risultati equivalenti. Per
107
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
lo stesso motivo è ragionevole assumere trascurabile la probabilità di
collisione.
Con tale scelta si è ottenuta una compressione del numero di entries di un
fattore superiore al 95% per l’intero dataset e superiore al 75%
relativamente al periodo di interesse.
Un discorso differente riguarda invece la scelta di un tempo di clustering
adatto alle tuple di livello utente, una prima osservazione dell’andamento
del numero di tuple con il clustering time riportato in figura 5.4 evidenzia
una dipendenza più complessa.
Figura 5.4 Numero di tuple d’utente in funzione del clustering time
108
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
In questo caso l’andamento del numero di tuple con il clustering time non è
netto come nel caso precedente: occorre maggiore cautela nella scelta di
una finestra temporale appropriata; in casi come questo può essere d’aiuto
guardare l’andamento della derivata mostrato in figura 5.5.
Figura 5.5 Derivata del numero di tuple d’utente in funzione del clustering time
Dalla caratteristica appare evidente che esiste un picco nella sensibilità al
clustering time intorno ai 330 secondi dopo di che questa crolla
rapidamente.
E’ ragionevole ritenere che una elevata sensibilità al
clustering time si abbia per valori prossimi al tempo tipico di interarrivo tra
eventi correlati, tale valore, verosimilmente, costituisce quindi la migliore
rappresentazione del tempo di clustering per i dati di sistema. Per evitare
di commettere errori nella scelta del clustering time, rischiando quindi di
pregiudicare l’analisi, si procede alla valutazione della corrispondente
probabilità di collisione.
109
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
La probabilità che una tupla sia affetta da collisione può essere calcolata
assumendo che nel sistema siano presenti un gran numero di processi
indipendenti di guasto.
Il log di sistema è dunque l’effetto di una
sovrapposizione di eventi generati da tali processi.
Sotto l’ipotesi di infiniti processi componenti, il processo ottenuto come
sovrapposizione dei singoli processi è Poisson. Segue che il Time Between
Event (BTE) possiede una distribuzione esponenziale di parametro pari al
tasso di fault del sistema λF .
Poiché tale parametro non può essere
direttamente misurato, si ricorre al tuple rate λT in qualità di stima.
Sebbene il tuple rate sia dipendente dal tempo di clustering va comunque
considerato che tale dipendenza è poco marcata in corrispondenza di valori
del clustering time superiori al valore critico individuato [11]. Per tale
ragione nel calcolo della probabilità di collisione si assume che il fault rate
λF sia ben rappresentato dal tuple rate λT .
λF
λT
(5.1)
Sia allora X ∼ Exp ( λF ) la variabile aleatoria per il tempo di interarrivo del
fault process. Una prima approssimazione della probabilità di collisione si
ottiene semplicemente calcolando la probabilità che l’interarrivo tra due
guasti sia minore del clustering time ε :
Pc
Pr [ X < ε ] = 1 − e
λf ε
(5.2)
110
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Questo modello può produrre però una stima eccessivamente ottimistica,
perché, contemplando unicamente tuple di lunghezza nulla, considera una
finestra di collisione minore della realtà.
Figura 5.6
Per un modello più realistico si considera l’introduzione di una seconda
variabile aleatoria L che rappresenta la lunghezza della tupla. In questo
caso una collisione si verifica qualora il tempo trascorso tra la fine di una
tupla e l’inizio della successiva è minore del clustering time. Si definisce a
tale scopo la variabile aleatoria Z = X − L (cfr. figura 5.6) che rappresenta
tale intervallo.
Pc = Pr [ Z < ε ] = Fz ( ε ) = ∫
ε
−∞
f z ( t ) dt
(5.3)
Dove la probability density function (pdf) di Z è data dalla relazione:
fz (t ) = ∫
∞
−∞
f X ( t + τ ) f L (τ ) dτ
(5.4)
Resta da chiarire quale distribuzione usare per la lunghezza delle tuple. La
scelta migliore consiste nell’utilizzare la distribuzione campionaria
111
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
stimabile dal prodotto della coalescenza stessa. In figura 5.7 è mostrata la
distribuzione campionaria relativa alle tuple di livello utente.
Come atteso è elevata la probabilità di avere tuple di lunghezza zero, ossia
costituite da un unico elemento, mentre la probabilità diventa trascurabile
( < 3 ⋅10−3 ) per valori superiori ai 300 secondi.
Figura 5.7 Distribuzione campionaria della lunghezza delle tuple
Concludendo dunque:
f L (τ )
∑ p δ (τ − l )
j
j
Sostituendo nella 1.4 :
j
(5.5)
112
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
f Z (τ ) = ∫
∞
−∞
= ∑ p j λF e
∑ p δ (τ − l ) ⋅ λ
j
j
F
e − λF ( t +τ )u ( t + τ ) dt =
j
(
− λF τ + l j
)
j
(5.6)
u (τ + l j )
Integrando :
FZ ( t ) = ∫
t
−∞
= ∑ pj ⋅ ∫
j
f Z (τ ) dτ
=
∑ p j ⋅∫ λ F e
t
−∞
j
t +l j
−∞
λF e − λ i u ( i ) di
∑ p ⋅∫
=
F
j
j
= ∑ p j ⋅ ⎡⎣ −e − λF i ⎤⎦
j
t +l j
0
= 1 − e − λF t ⋅ ∑ p j e
=
(
− λF τ + l j
∑p
j
t +l j
0
⋅(1 − e − λF t e
)
i =τ + l j
u (τ + l j ) dτ =
λF e− λ i di =
F
(5.7)
− λF l j
)=
j
− λF l j
j
Concludendo l’equazione 1.3 diventa:
⎛
−λ l ⎞
Pc = Pr [ Z < ε ] = 1 − e − λF ε ⎜ ∑ p j e F j ⎟
⎝ j
⎠
(5.8)
Dal confronto tra le espressioni (5.2) e (5.8) si osserva che differiscono
unicamente per la presenza del termine di sommatoria che rappresenta la
distribuzione della lunghezza delle tuple.
Risolvendo la (5.8) sostituendo il fault rate ideale con il tuple rate stimato
dai dati, si ottengono, per un clustering time di 330 secondi, le probabilità
di collisione riportate in tabella 5.2. Le probabilità di collisione osservate
sono piuttosto modeste, confermando la validità di tale scelta. In figura 5.8
113
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
è infine tracciato l’andamento della probabilità di collisione in funzione del
clustering time.
Host
Misero
Azzurro
Verde
Capatamarano
Ipaq
Zaurus
Windows
λF
10.9 / day
31.62 / day
9.8 / day
14.42 / day
26.98 / day
7.40 / day
3.60 / day
Pc
0.0318
0.0893
0.0286
0.0418
0.0768
0.0217
0.0106
Tabella 5.2 Probabilità di collisione delle tuple d’utente
Figura 5.8 Andamento della probabilità di collisione con il tempo di clustering
114
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Adoperando per i dati di livello sistema un clustering time di 330 secondi si
è ottenuta una compressione del numero di entries del 35% circa per
l’intero dataset e del 10% relativamente al periodo di interesse.
Senza
Coalescenza
Con
Coalescenza
Rapporto di
compressione
intero dataset
a valle del filtraggio
867694 tuple
258748 tuple
24005 tuple
64156 tuple
95%
75%
intero dataset
a valle del filtraggio
25698 tuple
6026 tuple
16737 tuple
5481 tuple
65%
35%
Dati di livello Sistema:
Dati di livello utente:
Tabella 5.3 Probabilità di collisione delle tuple d’utente
5.3.4
Analisi preliminare dei comportamenti di sistema
Come discusso nel paragrafo 5.2, è importante condurre un’analisi
preliminare che fornisca un primo livello di comprensione dei
comportamenti del sistema.
In questa fase si vogliono esplorare le dinamiche di fallimento sui singoli
Host descrivendone il comportamento statistico.
Obiettivo dell’analisi: descrivere le dinamiche di fallimento.
Dati in ingresso: tuple e vettori di time between tuple.
Prodotti: statistiche univariate, distribuzioni, tabelle di contingenza.
Strumenti: supporto del tool analyst fornito da SAS, probability plots, test
statistici di goodness of fit.
115
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
La distribuzione dei fallimenti nel sistema costituisce una prima
interessante informazione.
Figura 5.9 Distribuzione dei fallimenti nel sistema
Dall’osservazione di figura 5.9 si evidenzia una maggiore occorrenza di
fallimenti relativi alla comunicazione sul canale (Receive Time Out,
Connection Faiulure) e nella determinazione dei ruoli all’interno della
piconet (Switch Role Failure), mentre appaiono di minore rilevanza
fallimenti relativi alla scoperta dei servizi (SDP Search Failure).
La
rilevanza di una tipologia di fallimento rispetto alle altre varia però
sensibilmente all’interno di ciascun Host:
Distribuzione dei fallimenti : Azzurro
116
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Distribuzione dei fallimenti : Capatamarano
Distribuzione dei fallimenti : Verde
Distribuzione dei fallimenti : Miseno
117
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Distribuzione dei fallimenti : Ipaq
Distribuzione dei fallimenti : Zaurus
Distribuzione dei fallimenti : Windows
E’ interessante osservare come una maggiore incidenza di fallimenti
relativi alla determinazione dei ruoli caratterizzi il comportamento dei
118
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
dispositivi mobili (Ipaq, Zaurus) rispetto agli Hosts fissi. L’Host Windows
sembra infine non soffrire di tale problematica, anche se va considerato che
il volume di dati non è adeguato a trarre conclusioni significative.
Naturalmente è interessante anche caratterizzare la distribuzione temporale
dei fallimenti. In tabella 5.4 sono riportate le statistiche sintetiche dei time
between failure; l’assunzione che si è fatta è che questo sia rappresentato in
maniera adeguata dal time between tuple;
Media
σ
N
Min
Max
Mediana
Azzurro
2732
4634
1005
202
82058
1278
Capatamarano
5992
11441
519
215
130422
2210
Verde
8779
15176
723
206
115082
2837
Miseno
7902
16110
1008
202
151855
2417
Ipaq
3202
8928
1573
201
146977
1267
Zaurus
11669
21779
498
208
144315
3056
Win
23985
30000
107
308
153537
9032
Grouped
1826
4209
5474
314
80580
645
Tabella 5.4 Statistiche sintetiche dei time between failure
Con l’ausilio di probability plots si è inoltre ipotizzato che la distribuzione
dei time between failure segua una legge lognormale.
119
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Una variabile X è distribuita secondo legge lognormale se Y = ln ( X ) segue
una distribuzione normale (gaussiana). La formula generale per la densità
di probabilità (pdf) di una distribuzione lognormale è la seguente:
−
( ln ( x −θ ) / m )2
2
2σ
e
f ( x) =
( x − θ ) σ 2π
x ≥ 0 ; m, σ > 0
(5.9)
dove σ è il fattore di forma, θ è il parametro di localizzazione ed m è il
parametro di scala. Per la stima dei parametri SAS adotta un approccio a
massima verosimiglianza, per i parametri di scala e forma si ha
rispettivamente:
mˆ = exp μˆ
(5.10)
e
∑ ( ln ( X ) − μˆ )
N
σˆ =
i
i =1
N
2
(5.11)
dove
∑
μˆ =
N
i =1
ln X i
N
(5.12)
Il parametro di locazione si estrae direttamente dai dati e può essere
sottratto dai data points originali prima della stima a massima
verosimiglianza dei parametri di forma e scala.
A supporto di tale ipotesi sono stati eseguiti anche dei tests di goodness of
fit. L’intento è di determinare se esistono prove sufficienti per scartare tale
ipotesi.
120
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
SAS applica tre diversi test statistici:
• Kolmogorov-Smirnov Goodness of fit Test, basato sul calcolo della
funzione cumulativa di distribuzione empirica (ECDF).
Il test
calcola la massima distanza di questa curva rispetto la CDF canonica
della distribuzione. L’ipotesi è rigettata se tale distanza supera un
valore critico ottenibile attraverso opportune tabelle.
• Anderson-Darling Test, è una versione modificata del test di
Kolmogorov-Smirnov che assegna un peso maggiore alle code della
distribuzione. Il test K-S è un test distribution free nel senso che i
valori critici sono indipendenti dalla specifica distribuzione che
viene testata.
A-D utilizza valori critici specifici per ciascuna
distribuzione. Questo rappresenta un vantaggio in quanto fornisce al
test una maggiore sensibilità, uno svantaggio perché lo rende meno
robusto rispetto all’ipotesi.
• Cramer-von Mises Test, è anch’esso basato sulla ECDF ma il
calcolo della distanza è differente rispetto ai casi precedenti.
Tali tests forniscono inoltre una misura quantitativa del grado di fiducia
associato al risultato, sono difatti progettati in modo da garantire che il
rischio di rigettare l’ipotesi, nel caso sia vera, sia trascurabile.
In
particolare SAS indica la probabilità che la distanza calcolata dal test superi
il valore critico.
121
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Nelle figure che seguono sono rappresentati per ciascun Host: una stima dei
parametri della distribuzione, la distribuzione campionaria dei quantili
rispetto ad una distribuzione lognormale, gli indici di goodness of fit.
Distribuzione dei fallimenti : Azzurro
122
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Distribuzione dei fallimenti : Capatamarano
123
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Distribuzione dei fallimenti : Verde
124
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Distribuzione dei fallimenti : Miseno
125
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Distribuzione dei fallimenti : Windows
In tutti i casi si evidenzia una perdita una perdita di aderenza al modello al
crescere dei valori del TBF . Non si tratta di una condizione preoccupante,
come del resto suggeriscono i risultati dei test; verosimilmente è legata ad
una non corretta individuazione dei periodi di inattività del testbed o di
Capitolo V :
126
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
gestione degli outliers. Si osserva che l’ipotesi di distribuzione lognormale
è realistica per gli Host Azzurro, Capatamarano, Verde, Miseno. Non del
tutto soddisfacente per Windows: a discapito dei risultati positivi del test, è
evidente, comunque, che l’assenza di un numero statisticamente sufficiente
di campioni non consente una caratterizzazione credibile.
Diverso è il caso dei dispositivi mobili. Per Ipaq il modello statistico più
adeguato a rappresentare il time between failure è un modello esponenziale,
fra l’altro confortato dagli ottimi risultati dei test. Identificare il modello di
TBF in Zaurus invece è stato complesso. Se da una parte i test di goodness
of fit sconfessano la possibilità di un modello lognormale, il modello
esponenziale, benché maggiormente probabile, non appare del tutto
soddisfacente.
127
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Distribuzione dei fallimenti : Ipaq
128
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Distribuzione dei fallimenti : Zaurus
129
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
5.3.5
Correlazione tra le dinamiche di fallimento nei diversi
Host
Durante lo studio di sensibilità per la coalescenza dei dati si sono
osservate alcune interessanti relazioni tra le dinamiche di fallimento dei
differenti Hosts: sembra plausibile infatti che i fallimenti tendano a
verificarsi in maniera più o meno contemporanea sui diversi Hosts. In
questa fase del processo di analisi si cerca di approfondire tale aspetto,
cercando di fornire anche una interpretazione del fenomeno.
Obiettivo dell’analisi: esplorare le relazioni esistenti tra le dinamiche di
fallimento dei vari Hosts.
Dati in ingresso: tuple multihost di livello utente. Dati di livello sistema
del NAP.
Prodotti: tabelle di contingenza, cross tabulazioni.
Strumenti: correspondence analysis, cluster analysis realizzate attraverso
il linguaggio di scripting disponibile in SAS.
Per condurre questa analisi si realizzata una nuova coalescenza dei dati che
non prevedesse tuple specifiche per i singoli Host, in questo modo
fallimenti che si verificano si macchine differenti possono essere associati
se verosimilmente manifestazione del medesimo problema.
130
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Le curve mostrate in figura 5.10 sono state realizzate graficando
l’andamento del numero di tuple in funzione del clustering time, accettando
o meno la possibilità che le tuple possano contenere eventi di Host
differenti.
Figura 5.10 Andamento del numero di tuple come funzione del clustering time
Risulta una evidente differenza tra la curva ottenuta tuplando unicamente
entries relative ai singoli Hosts e quella ottenuta prescindendo dalla
localizzazione dell’evento.
Tale differenza, rappresentata in figura 5.11,
indica chiaramente l’esistenza di un elevata capacità di raggruppamento nei
primi 200 secondi di clustering time, oltre le due curve tendono invece ad
avvicinarsi. Un simile comportamento non è statisticamente credibile
131
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
sotto l’ipotesi che fallimenti nelle singole macchine siano indipendenti: se
tale ipotesi fosse verificata, sarebbe infatti atteso una andamento della
differenza tra le curve che cresce indefinitamente al crescere della
probabilità di collisione e dunque con il tempo di clustering.
Figura 5.11
Tale comportamento sembra invece avvalorare l’ipotesi dell’esistenza di
una forte correlazione tra fallimenti nei diversi Host.
Come tempo di clustering si è scelta una finestra di 200 secondi in accordo
alle considerazioni derivanti dal grafico di figura 5.11. In figura 5.12 si
osserva che la percentuale di fallimenti che si verificano in concomitanza
su più Host non è assolutamente trascurabile.
Figura 5.12
132
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Le percentuali osservate sono chiaramente indicative del fatto che una
buona parte dei fallimenti tendono a manifestarsi in maniera concomitante
in più di un Host.
Questo suggerisce la possibilità che alla base sia
presente un guasto in una risorsa comune.
Due sono quindi le cause
possibili:
1. Presenza di un fuori servizio nel Network Access Point.
2. Presenza di un guasto sul canale.
Incrociando le tuple di fallimenti multihost con le tuple riportanti errori di
livello sistema sul NAP (Giallo), si osserva che circa in un caso su quattro
tali fallimenti sono ricollegabili ad un disservizio del NAP.
Figura 5.13
Vale la pena di approfondire alcuni aspetti di tale fenomeno ed in
particolare:
1. presenza del fenomeno nei singoli Host;
2. numero di Hosts mediamente coinvolti;
3. legame tra errori di sistema sul NAP e fallimenti multipli.
133
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
1. In tabella 5.4 sono riportate le caratteristiche dei fallimenti per i singoli
host.
Fallimento
Host
Singolo
Multihost dei quali responsabilità
di un disservizio nel NAP
Responsabilità
complessiva di un
disservizio nel NAP
Azzurro
48%
52%
15%
9%
Capatamarano
76%
24%
14%
4%
Verde
55%
45%
19%
9%
Miseno
46%
53%
16%
10%
Ipaq
67%
31%
15%
7%
Zaurus
35%
63%
20%
15%
Windows
72%
28%
13%
4%
Tabella 5.4
2. In figura 5.14 sono riportate le percentuali di fallimenti multihost in
relazione al numero di macchine coinvolte.
E’ bene ricordare che Capatamarano ha sostituito Azzurro nel testbed,
dunque le due macchine non sono state contemporaneamente presenti e
che Windows è stato aggiunto al testbed solo in un secondo momento.
Figura 5.14
134
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
3. In accordo alla classificazione realizzata nel paragrafo 5.4.2 si
osservano le dipendenze mostrate in tabella 5.5. Sono indicati il tipo di
errore di sistema, la percentuale di occorrenza sul NAP, il numero di
host coinvolti nella propagazione dell’errore.
Errore
Occorrenza
0 Host
1 Host
2 Host
3 Host
4 Host
Packet Mismatch
30%
71%
16%
8%
1%
4%
Pan Connection
5%
43%
29%
7%
7%
14%
L2CAP ACL
33%
9%
37%
13%
13%
25%
4%
HCI ACL
14%
5%
23%
23%
38%
13%
USB Device
18%
16%
22%
20%
28%
6%
8%
5 Host
Tabella 5.5
E’ particolarmente interessante osservare come alcune tipologie di errore
tendano a provocare sistematicamente fallimenti multipli sugli Host client.
Come discusso nel paragrafo 5.4.2, L2CAP ACL e HCI ACL si riscontrano
sul NAP in presenza di errori nella ricezione dei pacchetti: in una tale
situazione il NAP verosimilmente ha perso il sincronismo di trama e non è
più in grado di ricostruire la corretta sequenza dei pacchetti o la loro
provenienza, segue che fino al ristabilimento di una condizione di
normalità non può rispondere correttamente alle richieste di servizio degli
Host provocandone il fallimento. Similmente se si verificano problemi con
il driver USB o con il dispositivo Bluetooth stesso il NAP non solo è in una
condizione di fuori servizio, ma probabilmente non riesce neppure ad
adempiere al ruolo di master della piconet.
Diverso è il caso dei Packet Mismatch, in questo caso il NAP prende
semplicemente atto della ricezione di un pacchetto corrotto verosimilmente
135
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
a causa di una elevata interferenza sul canale; per come è simulata
l’interazione il server risponde comunque al client che quindi potrebbe o
meno risentire del problema in relazione al tipo di interferenza: se a banda
stretta allora il pacchetto di risposta ne è immune per via del frequency
hopping, analogamente se legata ad una collisione casuale con le
trasmissioni di un altro sistema overlay, se a banda larga invece
verosimilmente anche il pacchetto di risposta ne è affetto provocando un
fallimento sull’Host client.
Infine PAN Connection sembra essere un errore o una instabilità interna al
NAP di natura non ancora sufficientemente esplorata, provoca un
fallimento multiplo nel 60% dei casi circa.
Concludendo resta comunque un 34% di fallimenti multipli che non
trovano una spiegazione nel comportamento del NAP.
Si pensa siano
problemi legati a livelli di interferenza sulla rete tali che è il livello
baseband dello stack Bluetooth a scartare le trasmissioni non intelligibili.
Trattandosi di funzionalità implementate dall’hardware dei dispositivi
Bluetooth tali problematiche non sono riportate nei log di sistema.
136
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
5.3.6
Legame tra errori di livello sistema e fallimenti, analisi dei
fenomeni di propagazione
L’ultimo obiettivo di analisi riguarda l’esplorazione dei legami
esistenti tra errori verificatisi a livello di sistema e fallimenti di livello
applicativo. In particolare è di interesse stabilire se esistono fenomeni di
propagazione e cercare di ricostruire la dinamica che porta al fallimento.
Un ulteriore aspetto da approfondire è l’impatto dell’uso di servizi
Bluetooth sulla stabilità del software di sistema.
Obiettivo dell’analisi: Esplorare legami tra i dati di sistema e d’utente:
identificare eventuali fenomeni di propagazione, valutare l’impatto dei
fallimenti sulla stabilità dell’architettura.
Dati in ingresso: tuple multilivello.
Prodotti: tabelle di contingenza, cross tabulazioni.
Strumenti: correspondence analysis, cluster analysis realizzate attraverso
il linguaggio di scripting disponibile in SAS.
137
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Come punto di partenza dell’analisi si è realizzata una prima introspezione
dei dati attraverso l’osservazione di informazioni di contingenza.
Figura 5.15
La distribuzione degli errori nel sistema, rappresentata in figura 5.15,
mostra una elevata concentrazione di bcsp errors, che come discusso nel
paragrafo 5.3.3 sono tipici unicamente dei dispositivi palmari.
Ciò
suggerisce che tale rappresentazione possa essere fortemente polarizzata e
non sufficientemente significativa. La rilevanza di una tipologia di errore
rispetto alle altre difatti varia sensibilmente all’interno di ciascun Host:
Errori di livello sistema : Capatamarano
138
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Errori di livello sistema : Verde
Errori di livello sistema : Miseno
Errori di livello sistema : Ipaq
139
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Errori di livello sistema : Zaurus
E’ utile osservare che la problematica maggiormente ricorrente è relativa ai
servizi offerti dalla host controller interface (HCI), punto di contatto tra il
livello baseband (implementato dal firmware dei dispositivi) ed il sistema.
Un problema del tutto assimilabile si verifica nei dispositivi palmari, dove
il trasporto dei pacchetti HCI avviene attraverso la mediazione del
BlueCore serial protocol (BCSP). Anche timeout waiting hotplug event,
legato ad un problema di comunicazione tra sistema e dispositivo,
sembrerebbe affine a tale problematica, anche se in questo caso è richiesta
una maggiore cautela nel trarre conclusioni. Naturalmente esistono delle
eccezioni, nel caso di Miseno la problematica maggiormente sentita sembra
essere relativa alla instaurazione di un canale PAN, si riscontra infatti una
elevata occorrenza di errori nella ricerca del servizio e durante l’uso, con
tentativi di accesso all’interfaccia di rete virtuale falliti.
Per quanto riguarda l’analisi delle relazioni tra errori di livello sistema e
dinamica di fallimento si è prodotto un nuovo insieme di dati ottenuto
incrociando le tuple di livello utente con le tuple di livello sistema per
ciascun Host. In questo modo errori e fallimenti sono messi in diretta
corrispondenza rendendo possibile investigare eventuali relazioni esistenti.
140
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Risultati dell’analisi hanno mostrato che solo nel 32% dei casi si può
pensare di assegnare al sistema la responsabilità del fallimento.
In
particolare queste sono distribuite come da figura 5.16.
Figura 5.16
bcsp
hci
SDP
bnep
hotplug
Jedec
l2cap
Sul totale dei
fallimenti
21%
50%
7%
8%
12%
1%
<1%
ROLE
53%
12%
9%
21%
2%
3%
<1%
RECV
35%
24%
1%
17%
19%
1%
3%
CONNECT
5%
81%
13%
<1%
61%
BIND
SDP
22%
22%
1%
39%
56%
Tabella 5.6
In tabella 5.6 sono rappresentati i legami verosimilmente esistenti tra
fallimenti ed errori di sistema. Legami abbastanza forti sembrano esistere
invece tra fallimenti riscontrati durante le fasi di binding dell’interfaccia di
rete virtuale ed errori nel livello di interfacciamento del sistema con il
firmware del dispositivo Bluetooth.
141
Capitolo V :
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
Un ulteriore aspetto interessante è relativo a fallimenti verificatisi durante
l’instaurazione della connessione: nel 72% dei casi la responsabilità è
chiaramente imputabile ad un errore nel sistema, nello specifico nell’ 86%
dei casi si tratta di un problema di comunicazione con il dispositivo mentre
nel 13% il problema è legato all’impossibilità di individuare il servizio.
Discorso analogo per fallimenti durante le fasi di scoperta del servizio, in
questo caso la responsabilità del sistema è legata nel 44% dei casi ad un
problema di comunicazione con il dispositivo, mentre nel 56% il problema
risiede nell’uso del SDP stesso.
5.3
Conclusione e sviluppi futuri
L’applicazione al caso di studio della metodologia sviluppata ha
effettivamente evidenziato la presenza di numerose problematiche che se
non affrontate in maniera consapevole avrebbero potuto compromettere i
risultati dell’analisi. Aspetti cruciali sono relativi la scelta, la valutazione
ed il trattamento dell’insieme di dati. Particolare cura deve essere spesa
nell’individuare difetti o limitazioni presenti nel processo di collezione e
nel formato dei dati: si tratta di un aspetto irrinunciabile per acquisire una
maggiore coscienza di ciò che si potrà ottenere dalle analisi, chiarirne gli
obiettivi e naturalmente evitare di pregiudicarne i risultati.
Lo studio ha inoltre portato alla luce alcune potenzialità precedentemente
inesplorate del meccanismo di tupling quale la possibilità di applicazione a
scenari di analisi diversi dalla semplice riduzione e coalescenza dei dati. In
Capitolo V :
142
Presentazione di un caso studio: Selezione ed Analisi dei dati ________________
particolare tale meccanismo è stato applicato con successo nell’analisi delle
dipendenze esistenti tra gruppi di dati: il legame tra i fallimenti degli hosts
della rete o tra dati di livello sistema e livello utente.
Futuri sviluppi vedono il perfezionamento della metodologia e degli
strumenti di analisi realizzati grazie all’applicazione a nuovi insiemi di dati
diversi per tipologia e contesto applicativo quali i dati di fallimento della
Java Virtual Machine o delle Wireless Sensor Network.
Bibliografia
[1]
Surviving in a fast, nomadic world [mobile computing and communication]
Kleinrock, L.;
Information Theory, 1998. Proceedings. 1998 IEEE International Symposium on
16-21 Aug. 1998 Page(s):4
[2]
A ubiquitous computing environment for aircraft maintenance
Lampe M.; Strassner M.; Fleisch E.
2004 ACM Symposium on Applied Computing Proceedings,
14-17 March 2004 Page(s): 1586–1592,
[3]
Adtranz: a mobile computing system for maintenance and collaboration
Siewiorek, D.; Smailagic, A.; Bass, L.; Siegel, J.; Martin, R.; Bennington, B.;
Wearable Computers, 1998. Digest of Papers. Second International Symposium on
19-20 Oct. 1998 Page(s):25 – 32
[4]
Developing next-generation distributed applications with QoS enabled DPE
middleware
Schmidt, D.C.; Kachroo, V.; Krishnamurthy, Y.; Kuhns, F.;
Communications Magazine, IEEE
Volume 38, Issue 10, Oct. 2000 Page(s):112 – 123
[5]
Spatial and context awareness for mobile learning in a museum
Beale R.; Sharples M.; Baber C.; Lonsdale P.; Byrne W.;
KAL CSCL Workshop on ’Spatial Awareness and Collaboration’, Proceedings.
Bibilografia
144
____________________________________________________________
[6]
Architectures for ubiquitous environments
Salvador, Z.; Jimeno, T.; Lafuente, A.; Larrea, M.; Abascal, J.;
Wireless And Mobile Computing, Networking And Communications, 2005.
(WiMob'2005), IEEE International Conference on
Volume 4, Aug. 22-24, 2005 Page(s):90 – 97
[7]
Applications of context aware computing in hospital work : examples and
design principles
Bardram J.E.;
2004 ACM Symposium on Applied Computing Proceedings
14-17 March 2004 Page(s) 1574–1579
[8]
Application of mobile phone in medical image transmission
Abdul Aziz A.; Besar R.;
4’ National Conference on Telecommunication Technology Proceedings, Shah
Alam, Malaysia, 2003, pages 80–83
[9]
Basic concepts and taxonomy of dependable and secure computing
Avizienis, A.; Laprie, J.-C.; Randell, B.; Landwehr, C.;
Dependable and Secure Computing, IEEE Transactions on
Volume 1, Issue 1, Jan 2004 Page(s):11 – 33
[10]
Measurement-based Analysis of Networked System Availability
Iyer, R. K.; Kalbarczyk Z.; Kalyanakrishnan M.;
Lecture Notes In Computer Science; Vol. 1769 archive Performance Evaluation
Publisher Springer-Verlag London, UK 2000
Page(s): 161 – 199
[11]
Models for time coalescence in event logs
Hansen, J.P.; Siewiorek, D.P.;
Fault-Tolerant Computing, 1992. FTCS-22. Digest of Papers., Twenty-Second
International Symposium on
8-10 July 1992 Page(s):221 – 227
Bibilografia
145
____________________________________________________________
[12]
A comparative analysis of event tupling schemes
Buckley, M.F.; Siewiorek, D.P.;
Fault Tolerant Computing, 1996., Proceedings of Annual Symposium on
25-27 June 1996 Page(s):294 – 303
[13]
Analysis and modeling of correlated failures in multicomputer systems
Tang, D.; Iyer, R.K.;
Computers, IEEE Transactions on
Volume 41, Issue 5, May 1992 Page(s):567 - 577
[14]
Error/failure analysis using event logs from fault tolerant systems
Lee, I.; Iyer, R.K.; Tang, D.;
Fault-Tolerant Computing, 1991. FTCS-21. Digest of Papers., Twenty-First
International Symposium
25-27 June 1991 Page(s):10 – 17
[15]
Coalescent theory
Nordborg, M.;
In Handbook of Statistical Genetics, John Wiley & Sons, Chichester, England 2001
Chapter 7.
[16]
Measurement and modeling of computer reliability as affected by system
activity
Iyer R. K.; Rossetti D. J.; Hsueh M. C.;
August 1986 ACM Transactions on Computer Systems (TOCS), Volume 4 Issue 3
[17]
Dependability measurement and modeling of a multicomputer system
Tang, D.; Iyer, R.K.;
Computers, IEEE Transactions on
Volume 42, Issue 1, Jan. 1993 Page(s):62 – 75
[18]
A weighted distribution of residual failure data using Weibull model
Soo-Jong Lee; Kyeong-Ho Lee;
Information Networking, 2001. Proceedings. 15th International Conference on
31 Jan.-2 Feb. 2001 Page(s):265 - 270
Bibilografia
146
____________________________________________________________
[19]
Failure data analysis by models involving 3 Weibull distributions
Tieling Zhang; Ren, Y.;
Reliability and Maintainability Symposium, 2002. Proceedings. Annual
28-31 Jan. 2002 Page(s):44 - 50
[20]
Workload, performance, and reliability of digital computing systems
Castillo, X.; Siewiorek, D.P.;
Fault-Tolerant Computing, 1995, ' Highlights from Twenty-Five Years'.,
Twenty-Fifth International Symposium on
June 27-30 1995 Page(s):367
[21]
Effect of System Workload on Operating System Reliability
Iyer, R.K.; Rossetti, D.J.;
Software Engineering, IEEE Trans.
1985 Page(s):1438 - 1448
[22]
VAX/VMS event monitoring and analysis
Buckley, M.F.; Siewiorek, D.P.;
Fault-Tolerant Computing, 1995. FTCS-25. Digest of Papers., Twenty-Fifth
International Symposium on
27-30 June 1995 Page(s):414 - 423
[23]
Failure data analysis of a LAN of Windows NT based computers
Kalyanakrishnam, M.; Kalbarczyk, Z.; Iyer, R.;
Reliable Distributed Systems, 1999. Proceedings of the 18th IEEE Symposium on
19-22 Oct. 1999 Page(s):178 - 187
[24]
Networked Windows NT system field failure data analysis
Jun Xu; Kalbarczyk, Z.; Iyer, R.K.;
Dependable Computing, 1999. Proceedings. 1999 Pacific Rim International
Symposium on
16-17 Dec. 1999 Page(s):178 - 185
Bibilografia
147
____________________________________________________________
[25]
A case study of C.mmp, Cm*, and C.vmp: Part I—Experiences with fault
tolerance in multiprocessor systems
Siewiorek, D.P.; Kini, V.; Mashburn, H.; McConnel, S.; Tsao, M.;
Proceedings of the IEEE
Volume 66, Issue 10, Oct. 1978 Page(s):1178 - 1199
[26]
Filtering Failure Logs for a BlueGene/L Prototype
Yinglung Liang; Yanyong Zhang; Sivasubramaniam, A.; Sahoo, R.K.; Moreira, J.;
Gupta, M.;
Dependable Systems and Networks, 2005. DSN 2005. Proceedings. International
Conference on
28-01 June 2005 Page(s):476 - 485
[27]
Failure data analysis of a large-scale heterogeneous server environment
Sahoo, R.K.; Squillante, M.S.; Sivasubramaniam, A.; Yanyong Zhang;
Dependable Systems and Networks, 2004 International Conference on
28 June-1 July 2004 Page(s):772 - 781
[28]
Crash Data Collection: A Windows Case Study
Ganapathi, A.; Patterson, D.;
Dependable Systems and Networks, 2005. DSN 2005. Proceedings. International
Conference on
28-01 June 2005 Page(s):280 - 285
[29]
A paperless system of reporting and analyzing field failure data for IFTE ATS
Curry, P.A.; Hauer, C.C.; Jones, B.E.;
AUTOTESTCON '97. 1997 IEEE Autotestcon Proceedings
22-25 Sept. 1997 Page(s):13 – 17
[30]
Error log analysis: statistical modeling and heuristic trend analysis
Lin, T.-T.Y.; Siewiorek, D.P.;
Reliability, IEEE Transactions on
Volume 39, Issue 4, Oct. 1990 Page(s):419 - 432
Bibilografia
148
____________________________________________________________
[31]
Modification of: error log analysis: statistical modeling and heuristic trend
analysis
Ascher, H.E.; Lin, T.-T.Y.; Siewiorek, D.P.;
Reliability, IEEE Transactions on
Volume 41, Issue 4, Dec. 1992 Page(s):599 - 601, 607
[32]
Dati IDC 2004 resi noti da Belkin nel comunicato stampa del 29/10/2004
[33]
Bluetooth: ’last meter’ technology for nomadic wireless internetting
Gerla, M.; Johnssen, P.; Kapoor, R.; Vatalaro, F.;
Proceedings of the 12th Tyrrhenian International Workshop on Digital
Communications (TIWDC 20000)
September, 14-17 2000.
[34]
Bluetooth core specification v1.2
Bluetooth SIG.
https://www.bluetooth.org/spec/
November, 2003.
[35]
Bluetooth network encapsulation protocol (bnep) specification
Bluetooth SIG.
http://grouper.ieee.org/groups/802/15/Bluetooth/BNEP.pdf
June, 2001.
[36]
Personal area networking profile
Bluetooth SIG.
http://grouper.ieee.org/groups/802/15/Bluetooth/PAN-Profile.pdf
June, 2001.
[37]
An Automated Distributed Infrastructure for Collecting Bluetooth Field
Failure Data
Cinque, M.; Cornevilli, F.; Cotroneo, D.; Russo, S.;
Object-Oriented Real-Time Distributed Computing, 2005. ISORC 2005. Eighth
IEEE International Symposium on
18-20 May 2005 Page(s):329 - 336
Bibilografia
149
____________________________________________________________
[38]
Packet-level traffic measurements from the sprint ip backbone
Lyles, B.; Cotton, C.; Khan, M.; Moll, D.; Rockell, R.; Seely, T.; Diot, S.C.;
Fraleigh, C.; Moon, S.;
IEEE Network, 17:6–16, 2003.
[39]
Self-similarity in world wide web traffic: evidence and possible causes
Bestavros, A.; Crovella, M. E.;
Proc. of the 1996 ACM SIGMETRICS international conference on Measurement
and modeling of computer systems, 1996.
[40]
Effective fault treatment for improving the dependability of COTS and legacybased applications
Bondavalli, A.; Chiaradonna, S.; Cotroneo, D.; Romano, L.;
Dependable and Secure Computing, IEEE Transactions on
Volume 1, Issue 4, Oct-Dec 2004 Page(s):223 - 237
[41]
Analysis of workload influence on dependability
Meyer, J.F.; Wei, L.;
Fault-Tolerant Computing, 1988. FTCS-18, Digest of Papers., Eighteenth
International Symposium on
27-30 June 1988 Page(s):84 - 89
Scarica