Chi sono |  Contatti |  Mappa del sito 
 
 
 
 
home > Articoli > Linux > Introduzione alla High Availability > continua
 
 

Introduzione alla High Availability

Che cosa è la High Availability?

Nella Information Technology e nelle TLC, col termine "availability" (disponibilità), viene generalmente inteso come il periodo di tempo in cui un servizio è appunto accessibile (ad esempio per 16 ore al giorno, 6 giorni alla settimana), oppure come il tempo richiesto ad un sistema per rispondere ad una richiesta utente (ad esempio un tempo di risposta inferiore ad 1 secondo).

Ogni latenza di servizio, pianificata oppure no, viene detta "outage".
Con "downtime" si intende invece la durata di un outage misurata in unità di tempo.

"Highly Available" (altamente disponibile) è quindi un sistema progettato per evitare la perdita di servizio, riducendo e possibilmente gestendo i guasti hardware ed i blocchi software, e minimizzando razionalmente le interruzioni pianificate.
L'highly available computing" utilizza sistemi informatici progettati e gestiti per operare con un minimo di downtime pianificato oppure non pianificato.

Occorre comunque precisare che il concetto di "altamente disponibile" non corrisponde ad una definizione assoluta. Le necessità in termini di disponibilità sono molto differenti a seconda degli ambiti di applicazione. Ad esempio, un istituto finanziario deve essere in grado di trasferire fondi in ogni momento del giorno o della notte, durante tutta la settimana. Al contrario, una azienda commerciale potrebbe richiedere che il sistema informativo sia disponibile solo 18 ore al giorno, ma con tempi di risposta inferiori al secondo.

Service Level (Livello di Servizio)

Il "Service Level" è il "grado" di servizio che un sistema pu�offrire all'utenza, (viene spesso descritto in un documento denominato Service Level Agreement (SLA) .
L'alta disponibilità presuppone un "service level" in cui gli "outage", pianificati oppure no, rientrino all'interno di termini prestabiliti.

Continuous Availability

Continuous Availability significa un servizio ininterrompibile, in cui non siano tollerabili nè outage pianificati nè non pianificati. Ci�costituisce un obiettivo molto più ambizioso di quanto non sia la altà disponibilità, ed in effetti è più uno stato ideale che non la caratteristica di qualsivoglia sistema reale. Il termine viene talvolta utilizzato per indicare un livello molto alto di disponibilità, in cui sia accettabile una quantità di downtime veramente minima.

Fault Tolerance

Fault Tolerance è invece un metodo per ottenere livelli molto alti di disponibilità.
Un sistema "fault tolerant" è un sistema caratterizzato da ridondanza relativamente alla maggior parte dei suoi componenti, incluse CPU, memoria, sottosistemi di I/O ed altri elementi.
Un sistema "fault tolerant" è in grado di mantenere attivo un servizio nonostante l'insorgere di guasti hardware e blocchi software.

Tuttavia, anche un sistema "fault tolerant" è soggetto ad "outages" dovuti ad errore umano. la "high availability" non implica necessariamente la "fault tolerance".

Un blocco ("failure") influenza la disponibilità quando si risolve in una interruzione di servizio non pianificata che dura abbastanza da costituire un problema per gli utenti. La percezione di ci�dipende fortemente dalla specifica applicazione. Ad esempio una indispomibilità che venga risolta in un secondo non comporta alcuna percettibile perdita di servizio in un sistema che effettui de�e transazioni on line, risulterebbe inaccettabile in una applicazione scientifica in ambiente real-time.

Dal momento che ogni componente pu�fallire, l'approccio corretto consiste nel progettare un sistema in cui eventuali malfunzionamenti possano essere previsti, isolati e corretti. Le specifiche esigenze in termini di disponibilità condizionano quindi il tipo di soluzione da adottare. Per esempio, se la interruzione di un sistema per alcune ore di dowbtime pianificato è considerata accettabile, non vi è necessità di dotarsi di prodotti di storage come dischi di tipo "hot pluggable" oppure "hot swapping".

Schematizzando, i seguenti principi sono sempre validi:

  • Il grado di disponibilità richiesto è determinato dall'ambito di applicazione. Non esiste livello di disponibilità adatto per ogni situazione.
  • Ci sono molti modi diversi di ottenere l'alta disponibilità
  • L'obiettivo dell'alta disponibilità interessa tutti gli apetti di un sistema.
  • L'eventualit�di blocchi pu�essere ridotta creando una infrastruttura che sia in grado di stabilire procedure precise di intervento e manutenzione.

Alcune (o tutte) fra le seguenti sono caratteristiche inerenti invece le applicazioni software in ambiente di tipo mission critical:

  1. Bassa frequenza di blocchi software
  2. Capacità di "recovery", dopo un blocco
  3. Possibilità di riconfigurazione senza shutdowm.
  4. Disponibilità di tools specifici per il management ed il monitoring.

Anche il costo economico dell'alta disponibilità dipende dal livello che si vuole ottenere, ed è direttamente correlato ai costi degli "outages".
Quanto più tale livello si avvicina all'ideale del 100% di disponibilità, tanto più cresce il costo delle soluzioni adottabili. In pratica, perci� il costo di un grado del 99,95% di disponibilità è significativamente più alto di quello relativo ad un grado del 99,50%, e cos�via.

Come si misura la High Availability?

La disponibilità è legata all'affidabilità, ma i due termini non si riferiscono alla stessa cosa. La disponibilità è una percentuale di tempo in cui un sistema rimane accessibile all'uso comune. Affidabilità si riferisce al periodo di tempo in cui è previsto non si verifichino guasti o interruzioni. La disponibilità implica l'affidabilità.

E' possibile esprimere attraverso la formula:

    % di disponibilità = (tempo totale - somma dei downtimes) / tempo totale
Con tempo totale (elapsed time) si intende tempo operativo + downtimes

La disponibilità viene spesso espressa come una percentuale di ore per settimana, mese o anno. durante le quali un sistema pu�venire normalmente adoperato.

Le seguenti tabelle elencano le ore di downtine e uptime associate a differenti percentuali di disponibilità:

  • 24 ore x 7 giorni alla settimana x 365 giorni all'anno
    DisponibilitàUptime attesoDowntime permessoResto
    99%8672880
    99,5%8716440
    99,95%875550
    100%876000


  • 12 ore x 5 giorni alla settimana x 52 settimane all'anno
    DisponibilitàUptime attesoDowntime permessoResto
    99%3088325642
    99,5%3104165642
    99,95%311825642
    100%312005642
  •