Indipendentemente dal servizio reso da un sistema informatico, è essenziale che gli utenti abbiano fiducia nel suo funzionamento per poterlo utilizzare nelle migliori condizioni. Il termine affidabilità caratterizza il livello di fiducia di un sistema informatico. Un fallimento corrisponde al malfunzionamento del servizio, cioè ad uno stato di funzionamento anormale o più esattamente non conforme alle specifiche. Dal punto di vista dell'utente, un servizio ha due stati:
Servizio appropriato, cioè conforme alle attese;
Servizio inappropriato, cioè non conforme alle attese.
Un fallimento è imputabile ad un errore, cioè ad un malfunzionamento locale. Non tutti gli errori portano necessariamente ad un fallimento del servizio. Esistono più modi per limitare i fallimenti di un servizio:
La prevenzione degli errori che consiste nell'evitare gli errori anticipandoli;
La tolleranza agli errori il cui obiettivo è di fornire un servizio conforme alle specifiche nonostante gli errori introducendo una ridondanza;
L'eliminazione degli errori che punta a ridurre il numero di errori grazie a delle azioni correttive;
La previsione degli errori anticipando gli errori e il loro impatto sul servizio.
Viene detta Alta disponibilità (in inglese high availability) tutte le disposizioni che puntano a garantire la disponibilità di un servizio, cioè assicurare il buon funzionamento di un servizio 24/7.
Il termine disponibilità designa la probabilità che un servizio sia in buono stato di funzionamento ad un dato istante.
Il termine affidabilità designa la probabilità che un sistema sia in modalità di funzione normale in un dato periodo. Si parla invece di continuità di servizio.
La disponibilità si esprime la maggior parte delle volte sotto forma di tasso di disponibilità, espresso in percentuale, rapportando il tempo di disponibilità al tempo totale. La tabella seguente presenta il tempo di indisponibilità (in inglese downtime) su una base annua (365 giorni) in funzione del tasso di disponibilità:
tasso di disponibilità | durata dell'indisponibilità |
---|---|
97% | 11 giorni |
98% | 7 giorni |
99% | 3 giorni e 15 ore |
99,9% | 8 ore e 48 minuti |
99,99% | 53 minuti |
99,999% | 5 minuti |
99,9999% | 32 secondi |
In effetti, il guasto di un sistema informatico può causare una perdita di produttività e di soldi, fino ad una perdita hardware o umana in alcuni casi critici. È quindi essenziale valutare i rischi legati ad una disfunzione (errore) di uno dei componenti del sistema d'informazione e di prevedere dei mezzi e delle misure che evitino o ristabiliscano in tempi accettabili qualsiasi incidente.
Come tutti sanno, i rischi di guasto di un sistema informatico sulla rete sono numerosi. L'origine degli errori può essere schematizzata nel modo seguente:
Origine hardware, possono essere di origine naturale o criminale:
Disastro naturale (inondazione, terremoto, incendio);
Ambientale (intemperie, tasso di umidità dell'aria, temperatura);
Guasto hardware;
Guasto di rete;
Interruzione elettrica.
Origini umane, possono essere intenzionali o fortuite:
Errore di concezione (bug software, cattivo dimensionamento delle rete).
Origini operative, sono legate ad uno stato del sistema ad un momento dato:
Bug software;
Malfunzionamento software.
L'insieme di questi rischi può avere differenti cause come ad esempio:
Malice premeditata.
Dal momento che è impossibile impedire tutti i guasti, una soluzione possibile è quella di realizzare dei meccanismi di ridondanza, duplicando le risorse critiche. La capacità di funzionare di un sistema, nonostante una disfunzione di qualcuno dei suoi componenti è detta Tolleranza ai guasti (fault tolerance).
Quando una delle risorse smette di funzionare, le altre le danno il cambio per lasciare tempo agli amministratori del sistema di rimediare all'avaria. In inglese si usa anche la parola Fail-Over Service (sigla FOS). Idealmente, nel caso di un guasto hardware, gli elementi hardware guasti si dovranno estrarre a caldo (in inglese hot swappable), cioè che possono essere prima estratti e poi sostituiti, senza interruzione di servizio.
Tuttavia, la realizzazione di un'architettura ridondante permette di assicurare solamente la disponibilità dei dati di un sistema ma non di proteggere i dati contro gli errori di manipolazione degli utenti o contro delle catastrofi naturali come un incendio, un'inondazione o ancora un terremoto. È quindi necessario di prevedere dei meccanismi di backup, idealmente su dei siti remoti, per garantire la perennità dei dati. D'altra parte, un meccanismo di backup permette di assicurare una funzione di archiviazione, cioè di conservare i dati in uno stato corrispondente ad una data ben determinata.
Foto: © Pixabay.