350 likes | 479 Views
Tandem un sistema ad alta disponibilità. Sauro Menchetti, Andrea Fedeli Esame di Informatica Industriale A.A. 1998/99. Un po’ di storia. La Tandem Computers fu fondata nel 1976 per costruire dei sistemi commerciali ad alta disponibilità per l’elaborazione delle transazioni
E N D
Tandemun sistema ad alta disponibilità Sauro Menchetti, Andrea Fedeli Esame di Informatica Industriale A.A. 1998/99
Un po’ di storia • La Tandem Computers fu fondata nel 1976 per costruire dei sistemi commerciali ad alta disponibilità per l’elaborazione delle transazioni • L’approccio che fu seguito per la realizzazione di tali sistemi fu quello della ridondanza dinamica
Un po’ di storia I tre maggiori venditori commerciali: • AT&T • Tandem • Stratus
Obiettivi del sistema Tandem • MTBF di circa 100 anni • Modularità • Operazioni fail fast • Tolleranza ad un singolo guasto • Manutenzione online • Interfaccia semplificata • Praticità, durevolezza
L’architettura del sistema • da 2 a 16 processori • Dynabus Interprocessor Bus • sistema basato sullo scambio di messaggi • i bus di I/O collegano ogni processore al Dynabus per mezzo di un controller
I moduli dei processori Sono i componenti più importanti del sistema. Contengono: • IPU, instruction processing unit • memoria • canale di I/O • interfaccia con il Dynabus • più sorgenti di alimentazione
Il Dynabus Interprocessor Bus • due estensioni in fibra ottica ne migliorano le caratteristiche • per trasferire i dati, c’è una apposita istruzione di send • ogni bus ha 16 linee per i dati ed altre linee per i controlli • costituito da due bus indipendenti a cui si accede tramite due controller separati
Le periferiche Tutti i percorsi e la maggior parte dei dispositivi sono duplicati • sottosistema di comunicazione 6100 • dischi: V8, XL8, V80, XL80; tutti mirrored • interfaccia IPI 2 del disk drive • controller fail fast totally self check
Evoluzione dei processori • 1976 NonStop I • 1981 NonStop II • 1983 TXP, Cyclone • 1986 VLX • 1987 CLX 600 • 1989 CLX 700 • 1991 CLX 800
Il sistema Tandem Integrity S2 • sistema basato su standard industriali • sistema operativo costruito su UNIX • portabilità delle applicazioni a livello sorgente • meccanismo di tolleranza ai guasti implementato in hardware • progettato per l’industria delle telecomunicazioni
Architettura dell’Integrity S2 • suddiviso in CRU • unità CPC triplicate • due controller TMRC • reliable system bus RSB • due moduli IOP • reliable system bus di I/O RIOB • bus NonStop V+
Il software dell’Integrity S2 • usa un kernel UNIX esistente per il sistema operativo • ripristino e reintegrazione delle CPC e dei TMRC dai core fault, cioè dai guasti che avvengono nel complesso formato dalla memoria e dal processore • supporto per le operazioni di I/O a vantaggio dei processi dell’utente
Tecniche per la manutenzione • Maggiore responsabilità agli utenti • Sostituzioni hardware “a caldo” • Ricerca dei guasti attraverso: • Test diagnostici online • Sistemi di individuazione dei fallimenti interni • Coordinamento remoto del sistema • Interfacce diagnostiche specifiche e semplici
Il Processore OSP • Comunica con tutti i processori del sistema attraverso una apposita interfaccia inclusa in ogni processore: • controlla lo status interno e la memoria; • verifica il funzionamento di tutti i canali I/O. • Dispone di una consolle diagnostica che anche in modo remoto permette di: • diagnosticare problemi hardware e software; • permette l’esecuzione di istruzioni passo a passo; • lanciare routine microdiagnostiche; • resettare, ricaricare un processore.
Il sistema TDMS Il Tandem Diagnostic Maintenance System sostituì lo OSP • Interfaccia verso l’operatore notevolmente semplificata • Monitoraggio real-time dei componenti: • Analisi online dei guasti • Chiamata automatica al centro assistenza Tandem (TNSC) • Compatibilità con tutti i sistemi precedenti • Registro degli eventi segnalati da processori e/o sistema operativo controllato periodicamente dal TDMS • Possibilità di test attivo e di analisi basata su sintomi
Esempio di funzionamento • Il processo di I/O del nastro crea un evento di errore e lo manda al registro degli eventi del TMDS • Il TMDS invia un segnale all’analizzatore dei guasti • L’analizzatore dei guasti localizza l’errore nel controller e scrive i dati necessari per la sostituzione nel registro • Il TMDS telefona al TNSC e comunica i dati del registro • Il TNSC telefona al TMDS per verificare l’analisi • Il TNSC invia un operatore per sostituire la scheda • Il TMDS regista la sostituzione nel registro
Sistema Operativo Guardian • Permette di sfruttare efficacemente la ridondanza hardware • massimo sfruttamento in caso di corretto funzionamento • minimo danno in caso di malfunzionamento e riparazioni • Rende trasparente al programmatore la ridondanza • Mantiene una visione globale del sistema • fornisce un mezzo efficiente ed affidabile di comunicazione tra processi • permette ad ogni processore di eseguire indipendentemente i propri compiti • Permette l’esecuzione di processi concorrenti e distingue processi privilegiati
Gestione dei processori • Inizializzazione tramite due vie: • caricamento a freddo • caricamento da un altro processore attraverso lo IPB • lancio automatico dei processi base e di quelli per la gestione dei dispositivi I/O collegati • Comunicazione e sincronizzazione tramite opportuni protocolli • Possibilità di ricaricare un processore senza alterare il sistema
Protocollo I’m Alive Verifica il corretto funzionamento di ciascun processore • Ogni processore ogni secondo trasmette un messaggio broadcast “I’m Alive” attraverso lo IPB • Ogni due secondi ogni processore verifica di aver ricevuto un messaggio “I’m Alive” da ogni processore • Qualora non accada: • richiede un messaggio “I’m Alive” al processore sospetto • se non perviene a maggioranza il sistema decide di sospendere il processore che non ha inviato il messaggio o quello che lo ha richiesto • Il processore guasto si spegne e ogni sua comunicazione viene cancellata
Sincronizzazione temporale E’ necessario che il clock del sistema sia quanto più possibile sincronizzato per la corretta lettura dei messaggi. Per questo si utilizza un apposito algoritmo [Nellen, 1985, 1986]. • Permette lo scambio di pacchetti temporalmente corretti • Da modo ad ogni processore di: • sincronizzarsi sul clock medio del sistema; • calcolare il suo errore rispetto alla media per una calibrazione continua. • Assicura una scarsa fluttuazione del clock in caso di sostituzione di un processore.
Protocollo di aggiornamento globale Poiché ci sono più copie identiche è necessario che gli aggiornamenti siano atomici ovvero: • siano aggiornate tutte le copie o nessuna di queste; • gli aggiornamento siano seriali. Questo risultato si ottiene attraverso un algoritmo apposito: • l’aggiornamento è effettuato da un processo speciale a bassa priorità all’interno del kernel; • viene inviato ad un apposito processo locker che garantisce la serialità; • effettuato l’aggiornamento viene comunicato a tutti i processi interessati.
Gestione dei Processi • Un processo è contraddistinto da un identificatore unico e possiede: • un vettore di stato; • una memoria privata; • il suo codice eseguibile. • Le comunicazioni avvengono tramite gli identificatori • Lo scheduling è gestito da un sistema con priorità e con preemption • Un meccanismo non permette l’inversione di priorità • Attraverso la coppia di processi si garantisce la sicurezza
Coppia di Processi • Per ogni processo che si vuole lanciare viene creata una coppia: • il processo primario attivo; • il processo backup passivo. • Quando si raggiunge uno stato critico si effettua un checkpoint • In caso di fallimento del processo primario, il secondario si attiva dall’ultimo checkpoint
Coppia di processi: checkpoint • I checkpoint sono decisi nei momenti critici del processo • Lo stato del processo attivo viene copiato in quello di backup • Questa operazione viene eseguita dal sistema operativo • In tal modo pur non funzionando il processo backup è in grado di attivarsi correttamente dall’ultimo checkpoint • Una coppia di processi è contraddistinta da un unico identificatore: • la tabella degli identificatori sa indirizzare verso il processo primario • in caso di fallimento il sistema operativo aggiorna la tabella e indirizza verso il processo che era di backup
Messaggi • Guardian è un sistema operativo basato su messaggi • Questo rende trasparente alle applicazioni finali: • la ridondanza fisica del sistema; • la localizzazione stessa di un processo o di una risorsa che potrebbe essere anche remoti; • il fallimento di una parte del sistema o di un processo in quanto i messaggi vengo reinstradati verso i componenti funzionanti. • Oltre ai messaggi tra processi sono previsti messaggi di controllo • Sono implementati in modo efficace sull’IPB in modo che la comunicazione tra processori sia quasi come all’interno di un processore singolo
Messaggi tra processi • E’ stata impiegata una strategia requestor-server • un processo invia un messaggio ed aspetta la risposta • un altro processo controlla la richiesta e risponde con un risultato • Un utilizzo tipico nei messaggi si ha nell’utilizzo di dispositivi periferici: • il processo che vuole leggere/scrivere invia la richiesta al processo di gestione del disco • il processo che gestisce il disco effettua la lettura/scrittura • tutto questo è trasparente per il programmatore il quale non ha interesse a sapere chi effettivamente esegua l’operazione né che questa sia implementata tramite scambio di messaggi • Un singolo messaggio può trasmettere fino a 60 KB di dati
Tolleranza ai guasti software • Molti dei guasti sono dovuti ad errori software, quindi è necessario implementare meccanismi per questo. Il sistema Tandem cerca di preoccuparsi anche di questo. • Tandem ha implementato molte istruzioni per verificare la consistenza dei dati durante un’esecuzione: • questo permette di fermare un processo che sta per contaminare il database in tempo; • il meccanismo della coppia di processi garantisce che un guasto software transiente possa essere tollerato in quanto probabilmente nel processo copia non si attiverà di nuovo • Gli errori significativi divengono ben visibili in quanto viene lasciata ampia traccia dello status del processore e quindi sono facilmente riparabili.
I processi di I/O • I processi di I/O sono particolari in quanto ognuno deve essere gestito nei processori a cui è collegato il dispositivo. • La coppia di processi viene mandata in esecuzione in ogni processore in grado di farlo. • In caso di fallimento di un processore, un bus, un controller o un dispositivo fisico viene reinstradato tutto. • Per i processi di I/O si utilizzano come checkpoint l’apertura o la chiusura di un file in modo che il processo backup possa riprendere il controllo da una situazione sicura.
Processi I/O: gestione dei dischi • Almeno due processori gestiscono i controller: quindi si hanno almeno otto possibili percorsi: • Ogni disco fisico è duplicato (mirroring) • I controller sono duplicati • I percorsi verso i controller sono duplicati • I dischi dispongono di una grande cache per aumentare la perfomance • I dischi dispongono di un meccanismo di lock per l’accesso ai file attraverso il protocollo 2PL • Inoltre i file sono partizionati in modo da permettere un accesso concorrente da parte di più applicazioni • Questo permette anche di distribuire un file a pezzi in più luoghi fisicamente distinti a garanzia della sua integrità
Mirroring dei dischi • Per ogni disco esiste un disco copia di backup: • si ha maggior sicurezza per il contenuto del disco • è migliore il tempo in lettura in quanto per queste si può utilizzare anche il disco di backup • i tempi di scrittura non sono significativamente differenti da quelli di dischi singoli, anche se leggermente maggiori. • Esiste comunque la possibilità per applicazioni non critiche a discrezione del programmatore l’utilizzo unmirrored dei dischi.
Transazioni • Guardian suddivide le elaborazioni in un’unità atomiche: le transazioni • Queste o sono eseguite per intero o non sono eseguite affatto • Una transazione può essere distribuita su più processi • I risultati parziali sono tenute nella cache del disco: qualora non sia possibile vengono scritti assieme ai dati per gli undo e i redo. • Ogni transazione possiede un identificatore unico • Più transazioni possono essere eseguite concorrentemente • Un apposito protocollo permette le letture e le scritture • La gestione delle transazioni migliora la sicurezze e la tolleranza ai guasti
Networking • La struttura di Guardian basata su messaggi e processi si estende alle reti • I sistemi Tandem utilizzano una rete proprietaria: Expand • permette il collegamento di fino a 255 nodi e 4080 processori • supporta tutti i principali protocolli • fornisce un valido supporto per la fault-tolerance: per esempio è possibile mantenere attiva una sessione anche se un collegamento si interrompe • può essere utilizzata come punto centrale di reti più ampie o per collegarsi ad altre reti
Protezione ai disastri • Il sistema Tandem permette di ridurre i tempi per il ripristino di un’unità dove è avvenuto un disastro da qualche ora a pochi minuti • Ogni database è mantenuto in due luoghi fisici distinti e questo viene aggiornato secondo una di queste modalità: • 2-Safe. La transazione viene registrata sempre in entrambi i database. Nessuna transazione viene persa • 1-Safe. Vengono trasmesse le transazioni a blocchi. Possono essere perse le ultime transazioni • Eletronic Vaulting. Viene trasmesso il solo registro da cui è possibile ricostruire tutte le transazioni che però non vengono trasmesse. Al riavvio è necessario quindi rieseguire tutto il registro • Il sistema dei protezioni ai disastri è trasparente al programmatore
Conclusioni L’architettura Tandem si presenta con caratteristiche di alta disponibilità • Sono stati ridotti al minimo i singoli punti di fallimento • Nella parte hardware tutto viene duplicato e progettato con caratteristiche fail-fast • La parte software è composta di un sistema operativo fault-tolerant in grado di sfruttare al meglio la ridondanza hardware • L’intera architettura ridondante è mascherata ai programmatori delle applicazioni finali
Riferimenti e siti web • D.P. Siewiorek, R. S. Swarz “Reliable computer Systems” Digital Press • J. Bartlett ed altri “Fault Tolerance in Tandem Computer System” Siti Web di interesse: • http://www.tandem.com • http://www.compaq.com