Tolerância a Falhas
Carlos Oberdan Rolim
Ciência da Computação
Arquiteturas de sistemas tolerantes a
falhas
tolerância a falhas de um sistema de computação:
deve ser suportada pelo hardware e software
nível eficaz: arquitetura do sistema
arquitetura de um sistema:
componentes de hardware
(processadores, memórias, controladores, interfaces)
interconexões
(barramentos ou linhas de comunicação).
Microprocessadores comerciais
aplicações convencionais
quanto a condições existentes para reparo:
inseridos em sistemas passíveis de reparo a intervalos
quanto ao funcionamento do sistema:
é admissível interrupção
quanto ao tamanho da menor unidade permutável:
nível de chips (uso de soquetes)
TF em microprocessadores comerciais
desenvolvidos para aplicações não críticas:
não apresentam mecanismos intrínsecos para suporte de técnicas de
tolerância a falhas
mas vêm sendo usados para:
controle de processos industriais
controle de tráfego
instrumentação.
TF em microprocessadores comerciais
chips convencionais sem suporte para tolerância a falhas
solução temporária:
hardware adicional como votadores e comparadores
solução desejável
suporte para TF suprido pelo microprocessador
caso especiais
Intel iAPX 432
Pentium
iAPX432 da Intel
suporte a TF independente da arquitetura
(arquitetura = conjunto de instruções, modos de endereçamento,
registradores internos)
pode ser implementado em qualquer sistema digital
integrado
com acréscimo na área de silício
iAPX432
ENTRADA
MESTRE
VERIFICADOR
erro
SAIDA
TF no iAPX432
um chip pode ser configurado como mestre ou verificador:
um mestre pode operar sozinho ou ligado a um verificador
um verificador deve estar ligado a um mestre
verificador:
reversão de pinos
comparação
sinalização de erro
Configurações com iAPX432
funtional redundancy
checking
básico
quad modular
redundancy
GDP
GDP
GDP
GDP
GDP
BIU
BIU
BIU
BIU
bar.mem
bar.mem
bar.mem
-
custo
+
-
tolerância a falhas
+
GDP: general dat a processor
BIU: bus int erf ace unit
Configurações alternativas:
arquitetura básica: não há redundância
arquitetura FRC: detecção por HW
arquitetura QMR:
detecção + reconfiguração por HW
par mestre-verificador primário + par estepe
dois pares ativos, mas apenas o par primário fornece resultados ao
sistema
detecção de erro chaveia para o par estepe (FRC)
432 estrutura interna
Entrada
Unidade
f uncional
Controle
de reversão
Entrada/saída
(bidirecional)
c
o
m
p
a
r
a
d
o
r
Sinal
de erro
Pentium
486
paridade para os bytes de dados
Pentium
adicionalmente paridade nas caches, TLB e memória de microcódigo
verificação de exceções (machine check exception)
mestre / verificador (i432)
com dois chips - dobro do custo
Pentium Pro
mantém todas as técnicas do Pentium
adicionalmente:
paridade nos bytes de dados substituída por 8 bits de ECC
2 bits de paridade para barramento de endereço associado a técnicas
de retry
bits de paridade para sinais de controle
Pentium Pro
verificador de exceções
machine check architecture - MCA - com 3 registradores de controle e 5
bancos de 4 registradores de erro
problemas:
ECC limitado a parte mais fácil do circuito
documentação difícil
MCA opcional - pode ser desligado por software
Sistemas de grande porte
mainframes:
alto custo
arquitetura com vários processadores de alto desempenho
memória comum de grande capacidade
canais para ligação com periféricos
sistemas operacionais multiusuário
Características mainframes
condições para reparo:
passíveis de reparo a intervalos
funcionamento do sistema:
admissível interrupção
tamanho da unidade permutável:
nível de placas e unidades.
alto desempenho e alto custo
desaconselhável redundância pura e simples
alternativa: uso de processador de manutenção
Processador de manutenção
pequeno porte e autônomo
opera independentemente do mainframe
supervisiona mainframe
não interfere no processamento normal
construído com componentes confiáveis
capacidade de autoteste
não dispensa outras técnicas de TF
códigos de correção e detecção de erros
recuperação de erros transitórios sem intervenção do processador de
manutenção
Processador de manutenção
ligação do processador de manutenção ao mainframe:
diretamente ao barramento central
onde trafegam dados, instruções, endereços e sinais de controle
através de uma interface especial
semelhante à interface de periféricos
exemplo: IBM 3080 e 3090
Funções do processador de manutenção
inicialização e controle do sistema
supervisão contínua do sistema durante operação
diagnóstico de falhas
recuperação do sistema quando uma falha é detectada
teste durante desenvolvimento e produção
Funções do processador de manutenção
na detecção de um erro transitório:
o processo é inicialmente interrompido
o processo é posteriormente recuperado para um estado livre de
erros
o Sistema Operacional é responsável por reiniciar o processo
recuperado
Funções do processador de manutenção
na detecção de um erro permanente:
localizar a falha até o nível de componente
configurar p/ garantir operação normal
2 cenários de recuperação
reconfiguração é possível, mesmo degradada em desempenho
(graceful degradation)
reconfiguração não é possível:
proc. de manutenção diagnostica a falha até o nível de SRU
Processador de manutenção
processador de manutenção
unidade de
disquete
memória
local
processador
console
modem
mainframe
memória
CPU
unidade de
controle
do sist ema
E/S
console
remoto
Sistemas comerciais tolerantes a falhas
Exemplos:
computadores de grande porte desenvolvidos para aplicações
comerciais tolerantes a falhas (sisitemas de transações)
Tandem:
mecanismos de TF implementados em software
Stratus:
mecanismos de TF implementados em hardware
Tandem NonStop
sistema composto de 2 a 16 módulos
módulo:
processador + memória local + canal de entrada e saída + fonte de
alimentação
interligados por um barramento duplicado
adicionalmente controladores de dispositivos de entrada e
saída
controladores podem aparecer duplicados
cada um está conectado a dois canais de E/S
Tandem NonStop
redundância dinâmica em software
sistema operacional GUARDIAN;
kernel + grande número de processos
processos de supervisão para processadores
pares para processos do sistema e do usuário
par = processo primário ativo + processo substituto passivo
processo primário envia pontos de recuperação p/ substituto
Tandem NonStop
Diagnóstico de erros
erros em um módulo detectados por outros módulos
a cada segundo: processo supervisor do módulo envia sinal de vida
a todos outros módulos no sistema
a cada 2 segundos: processo supervisor verifica se recebeu sinal
de vida dos outros módulos
na falta de um sinal: módulo correspondente falhou
Diagnóstico de erros
operações de entrada e saída:
controle de time-out
sob falha:
processo de E/S substituto entra em operação
Recuperação
Falha diagnosticada no módulo:
processos substitutos relacionados aos primários em execução no
módulo voltam para o último PR
recuperação por retorno
processos substitutos são ativados
viram processos primários
sistema é reconfigurado
novos processos primários
Recuperação
Após reparo do módulo faltoso:
novos processos primários criam substitutos nesse módulo
Falha de um canal de entrada e saída:
o processo substituto correspondente é rolado para PR
processo substituto é ativado
processo primário é desativado (substituto)
Stratus Continuous Processing
Sistema: composto de 1 a 32 módulos
módulos interconectados por rede local (Strata Link)
Módulo:
processador + memória local + controladores de entrada e saída
interligados por um barramento interno
Stratus
Módulos:
não estão disponíveis para redundância dinâmica
hardware duplicado com comparador (redundância estática)
módulos podem aparecer duplicados
a duplicação é transparente ao usuário e às aplicações.
Stratus
Esquema de um módulo do Stratus
Stratus: SO
sistema operacional VOS
sistema multiusuário
permite acesso aos recursos através da rede local
apresenta recursos óbvios de tolerância a falhas uma vez que a
tolerância é via hardware
tendência de uso de UNIX
Stratus: diagnóstico de erros
interno aos módulos
comparação dos resultados (por replicação)
se comparação indica erro:
nenhum resultado é fornecido como saída do módulo
módulo é desconectado do sistema
é enviado sinal de erro ao programa de manutenção.
Stratus: programa de manutenção
providencia realização de testes no módulo
objetivo: determinar se falha é permanente ou transitória
problema é registrado
erro indicado em um terminal de supervisão
para módulo faltoso duplicado no sistema:
erro fica invisível à aplicação (unidade redundante)
Stratus: programa de manutenção
Falha transitória:
módulo é ressincronizado com unidade redundante
entra imediatamente em operação
Falha permanente:
módulo é substituído manualmente
não há interrupção do processamento normal
Sequoia
multiprocessador
fortemente acoplado (tightly coupled)
problemas com isolamento de falhas
vantagem no balanceamento de carga
uso extensivo de detecção de falhas em hardware
Sequoia
características gerais
construído com componentes padrão
familia Motorola 680x0
Multibus para conexão a periféricos
UNIX
elementos básicos
barramento dual segmentado
processador + memória + I/O
Sequoia: arquitetura
Processadores duais
PE
Interface
Mestre
PE
PE
s e gm e nto
local
pr oce s s ador
MI
MI
s e gm e nto
global
Interface
Escrava
SI
ME
ME
Memória
SI
s e gm e nto local
m e m ória
IOE
IOE
Entrada/Saída
Sequoia: barramento
barramento duplicado separado em 3 tipos de segmentos
segmentos eletricamente isolados (MI e SI)
configuração máxima:
até 8 segmentos de processador
até 16 segmentos de memória
até 64 PEs e 128 MEs / IOEs
Sequoia: processador
PE
2 micros sincronizados
comparação a cada ciclo de relógio
cada PE possui:
clock local
memória cache
metade read-only
gerenciador de memória virtual
Sequoia: memória
interleaved
código de correção de erros
para detecção e correção de erros de memória
controlador de memória em cada elemento de memória é
duplicado
espelhamento de memória
Sequoia: memória
cada ME contém 1024 test-and-set locks
para realizar acesso exclusivo a posições da memória
usados pelo sistema operacional
periodicamente a memória é copiada em disco
Sequoia: cache
local a cada PE
non-write-through
flush periódico dos blocos alterados (dirty blocks) determinado pelo SO
para atualizar memória principal
para contornar overflow de cache
flush (hardware especial):
primeiro escreve na memória espelhada
depois na primária
Sequoia: I/O
I/O
também duplicados
espelhamento de disco
dois apaptadores
MA - Multibus adapter
BA - bus adapter
Multibus - barramento padrão para periféricos
Sequoia: I/O
BA - bus adapter
conexão ao barramento de memória local (memory local segment)
quatro buffers locais
controlador de DMA
MA - Multibus adapter
conexão ao barramento de periféricos
microprocessador dual
buffers de dados (2Mbytes)
Sequoia: TF
paridade
cache
barramentos
elementos de I/O
códigos de correção e detecção
comparação de elementos duplicados
protocolos de monitoração
Sequoia: SO
compatível com padrão UNIX
kernell proprietário
superset do UNIX
test-and-set locks
exclusão mútua no acesso a memória compartilhada
controle de flush de cache
recuperação de falhas
Computadores de bordo
Função: controle ativo de aeronaves
Características:
tempo real, com tempo de atuação curto
reparo:
possível apenas durante os intervalos de vôo
desejável: a cada centena de horas de vôo
interrupção no funcionamento: inadmissível
confiabilidade:
da ordem de 10-9 falhas por hora
para um vôo de 10 horas
Exemplos
década de 70 (NASA)
dois computadores desenvolvidos a partir da mesma especificação
ambos com redundância modular tripla (TMR)
FTMP
Fault Tolerant Multi-Processor
SIFT
Software Implemented Fault Tolerance
Exemplos
FTMP:
votador implementado em hardware,
todos os processadores são sincronizados
relógio central é tolerante a falhas
SIFT:
votação realizada por software,
processadores são assíncronos,
não há relógio central: sincronismo de resultados para votação
garantido por software.
FTMP
sistema de barramento central:
5 barramentos redundantes
processadores e módulos de memória
ligados ao sistema de barramento por interfaces especiais (BGs - bus
guardians).
FTMP: Tríade
Tríade = 3 processadores + 3 memórias.
elementos executam a mesma tarefa
comunicam-se entre si através de 3 dos 5 barramentos
BGs votam sobre dados da tríade colocados nos 3 barramentos
falha em processador, memória ou barramento: mascarada
tríades diferentes executam tarefas diversas
FTMP
processadores e módulos de memória estepe
objetivo: substituir um elemento de uma tríade que falhou.
distribuição dinâmica de tarefas entre as tríades
objetivo: reconhecer falhas nos votadores
reconfiguração periódica
objetivo: reconhecer falhas no mecanismo de reconfiguração.
SIFT
Módulos processadores interligados por barramento
redundante
processadores operam assincronamente em relação aos demais
sincronização de resultados para votação:
por software
SIFT
uma tarefa é alocada sempre a 3 módulos:
cada módulo envia seu resultado aos outros 2 usando o barramento
redundante
cada módulo realiza votação majoritária por software
votação majoritária: (2-em-3)
AUGUST 300
sistema comercial baseado em SIFT
construído com microprocessadores Intel 80x86
máquina para controle de processos em tempo real
Comparação FTMP e SIFT
ambos com alta confiabilidade para aplicações tempo-real
FTMP:
esquema de votação mais eficiente (hardware)
tolerância a falhas não é visível a partir da aplicação
SIFT:
esquema de votação em software
tolerância a falhas é visível a partir da aplicação
Download

Tolerância a Falhas