tolerância a falhas
Post on 28-Jan-2016
59 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
SAIDA
erro
MESTRE VERIFICADOR
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
GDP
BIU
GDP
BIU
GDP
BIU
GDP
BIU
GDP
BIU
-
-
+
+
custo
tolerância a falhas
bar.mem bar.mem bar.mem
básicofuntional redundancychecking
quad modularredundancy
GDP: general data processorBIU: bus interface 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
Unidadefuncional
Controlede reversão
Entrada/saída (bidirecional)
Entrada
Sinalde erro
comparador
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
unidade dedisquete
processadormemórialocal
console
modem
consoleremoto
memória
CPU
unidade decontrole
do sistema
E/S
processador de manutençãomainframe
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
PE PE PE
ME ME IOEIOE
MI MI
SI SI
InterfaceMestre
InterfaceEscrava
Processadores duais
Memória Entrada/Saída
segmentoglobal
segmentolocalprocessador
segmento localmemória
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
top related