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
 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
 1981
 1983
 1986
 1987
 1989
 1991

NonStop I
NonStop II
TXP, Cyclone
VLX
CLX 600
CLX 700
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
