Fundamentos de
Tolerância a Falhas
Graduação: CIC e ECP
Taisy Silva Weber
2002
Bibliografia básica
y
Pradhan, D. K.
• Fault-Tolerant System Design. • Prentice Hall, New Jersey, 1996.
y
Jalote, P.
• Fault tolerance in distributed systems.
• Prentice Hall, Englewood Cliffs, New Jersey, 1994.
y
Birman, K.
• Building secure and reliable network applications. • Manning Publications Co, Geenwich, 1996
Conteúdo da disciplina
y
Conceitos básicos de tolerância a falhas
x atributos e medidas: dependabilidade, confiabilidade,
disponibilidade e outros
x redundância
x aplicações de TF
y
Arquiteturas tolerantes a falhas
y
TF em sistemas distribuídos
x Difusão confiável e de grupo. Recuperação de
processos. Replicação de dados. Validação.
arquiteturas convencionais,
servidores de rede, clusters de alta
Motivação para tolerância a falhas
x componentes de hardware cada vez mais confiáveis
ENTRETANTO
x software e projeto cada vez menos confiáveis x sistemas cada vez mais complexos
EXEMPLO
x falha de projeto na FPU do Pentium
capacidade de manter o serviço desejado mesmo na presença de falhas
evitar que o usuário do serviço seja o
Desafios atuais
y
bugs no projeto de hardware e software
• altíssima complexidade dos sistemas
y
paralelismo em alta escala
• uso de novas tecnologias (não provadas)
y
sistemas distribuídos
• para sistemas críticos
• para operação em tempo real
y
computadores móveis
• baixa potência
Dependabilidade vs desempenho
1 10 100 1000 10000 100000 sistemas ultra confiáveis sistemas comerciais tolerantes a falhas sistemas altamente paralelos e sistemas distribuídos dependabilidade PC objetivoCausas de defeitos
Sistemas tradicionais
Não tolerante a falhas Tolerante a falhas
Redes cliente-servidor
(não tolerantes a falhas) MTBF: 6 a 12 semanas Indisponibilidade após defeito: 1 a 4 h MTBF: 21 anos (Tandem) Disponibilidade média: 98%
Defeitos: Defeitos: Defeitos:
hardware 50% software 65% projeto 60%
software 25% operações 10% operações 24%
operações 10% hardware 8% físicos 16%
comunicações / ambiente
15% ambiente 7%
Causas usuais de defeitos em sistemas de computação
Dependability of Computer Systems: from Concepts to Limits
Tópicos
z
nesse item:
y
Falha, erro, defeito
y
Falhas
y
Dependabilidade
y
Atributos de dependabilidade
y
Exemplos de áreas de aplicação
Conceitos básicos
y
falha, erro e defeito
y
atributos
x dependabilidade, confiabilidade, disponibilidade e
outros
y
redundância
y
aplicações de TF
Barry Johnson,cap. 1, livro do Pradhanconceitos básicos podem ser encontrados também em livros de sistemas operacionais, redes, arquitetura de computadores, sites de fabricantes de soluções de alta disponibilidade e da NASA, além de grande número de artigos (Laprie, Avizienis, Cristian, Schneider, Siewiorek, Nelson, Rennels…)
Falha, erro ou defeito?
y
estado errôneo (ou erro)
x se processamento posterior pode levar a defeito
y
falha
x causa física ou algorítmica do erro
y
falhas podem ser toleradas, defeitos não
z
fault → error → failure
x falha (falta) → erro → defeito
x falta → erro → falha (tolerância a falta)
alguns grupos no Brasil usam a última terminologia
Falha versus erro
falha
erro
defeito
falha
subsistema
falha (falta)
→
erro
→
defeito
universo físico universo da informaçãoerro
defeito
desvio da especificação falha processamento posterior pode levar a defeitoLatência
z
latência
de falha
x período de tempo desde a ocorrência da falha até a
manifestação do erro devido aquela falha
z
latência
de erro
x período de tempo desde a ocorrência do erro até a
manifestação do defeito devido aquele erro
erro
defeito
falha
Falhas
z
falhas físicas
y
permanentes
y
temporárias
z
humanas
y
falhas de projeto
y
interação
intermitentes
transitórias
intencionais
não intencionais
confiabilidade sempre foi um problema de engenharia, assimfalhas físicas, que
afetam diretamente o
hardware,
tradicionalmente vem recebendo atenção especial
Causas de falhas
z
problemas de especificação
z
problemas de implementação
z
componentes defeituosos
x imperfeições de manufatura x fadigaz
distúrbios externos
x radiação, interferência eletromagnética, variações
ambientais (temperatura, pressão, umidade), problemas de operação
Descrição de falhas
z
natureza
y
falha de hardware, falha de software, etc..
z
duração
y
permanente ou temporária
z
extensão
y
local a um módulo, global
z
valor
Objetivo de TF
z
alcançar dependabilidade
y
dependabilidade (dependability)
x qualidade do serviço fornecido por um dado sistema x confiança no serviço fornecido
y
atributos (medidas):
x confiabilidade, disponibilidade, segurança (safety),
mantenabilidade, testabilidade, performability, etc…
x segurança (security) também é considera por alguns
autores como atributo de dependabilidade
adiante veremos mais detalhes sobre
Confiabilidade
y
reliability: capacidade de atender à
especificação
• dentro de condições definidas
• durante certo período de funcionamento
• condicionado a estar operacional no início do período
y
falha é um fenômeno aleatório
x probabilidade que um sistema funcione corretamente
durante um intervalo de tempo [t0,t]
• probabilidade condicional
x R(t) = P {X > t}
• X = tempo sem falhas de um sistema
depende do sistema estar operacional em t0
Confiabilidade
z
mais usada como medida em:
y
sistemas em que mesmo curtos períodos de
operação incorreta são inaceitáveis
y
sistemas em que reparo é impossível
z
exemplos:
y
aviação
x intervalo de tempo: 10 a 12 horas
y
exploração espacial
Disponibilidade
y
probabilidade do sistema estar operacional no
instante de tempo t
y
alternância de períodos de funcionamento e
reparo
• um sistema pode ser altamente disponível mesmo apresentando períodos de inoperabilidade
desde que esses períodos sejam curtos
disponibilidade e confiabilidade são os
atributos mais conhecidos e usados, muitas vezes
Segurança
y
probabilidade do sistema:
x ou de estar operacional e executar sua função
corretamente
x ou de descontinuar suas funções de forma a não
provocar dano a outros sistema ou pessoas que dele dependam
y
medida da capacidade fail-safe do sistema
y
não está relacionado diretamente a security
atributo usual na área de controle de processos industriais e de transporte
Outros atributos
y
performability
x relacionado a queda de desempenho provocada por
falhas
y
mantenabilidade
x facilidade de realizar a manutenção do sistema
• probabilidade que um sistema com defeitos seja restaurado a um estado operacional dentro de um período t
y
testabilidade
• capacidade de testar certos atributos internos ao sistema • facilidade de realizar certos testes
sistema continua a operar, mas com queda de desempenho
Performability
z
relacionado a queda de desempenho
provocada por falhas
y
sistema continua a operar, mas com queda de
desempenho
y
P(L,t)
x probabilidade que o desempenho do sistema seja no
mínimo L no instante de tempo t
graceful degradation: degradação suave
Mantenabilidade
z
facilidade de realizar a manutenção do
sistema
y
quantitativamente: probabilidade que um
sistema com defeitos seja restaurado a um estado
operacional dentro de um período t
y
restauração
x localização do problema x reparo físico
Testabilidade
z
capacidade de testar certos atributos internos
ao sistema
z
facilidade de realizar certos testes
z
relacionada a mantenabilidade
y
a testabilidade aumenta a mantenabilidade
z
testes:
y
manuais
Aplicações de FT
y
longa vida
y
manutenção adiada
y
computação crítica
alta disponibilidade
satélites e sondas espaciais:
probabilidade de 0,95 de estar operacional após 10 anos de missão,
freqüentemente permitem ser reconfigurados manualmente por operador
manutenção é ou impossível ou extremamente cara:
lugares remotos ou só acessíveis periodicamente,
Computação crítica
z
aplicações críticas:
x segurança humana, proteção de equipamento ou
segurança do meio ambiente
y
áreas:
x controle de tráfego aéreo x sistemas militares
x controle de plantas industriais
y
exemplos:
• Space Shuttle
• controladores industriais programáveis
Alta disponibilidade
z
aplicações que exigem alta disponibilidade:
x transações financeiras e comerciais x sistemas de reservas internacionais x aplicações na Internet (e-comerce)
y
exemplos:
x clássicos
• Tandem Nonstop & Stratus
x atuais
sistemas on-line, não confundir com tempo real
aparecem freqüentemente com o nome de sistemas de
Técnicas para alcançar
dependabilidade
y
a dependabilidade de um sistema depende de
decisões de projeto desse sistema
x para alcançar dependabilidade (ou seja para alcançar os
atributos de dependabilidade) é necessário o emprego de técnicas de projeto adequadas
x nem todas as técnicas estão relacionadas a TF
• por exemplo: bons componentes podem levar a uma boa confiabilidade dos sistema
existem inúmeras técnicas, algumas que interessam nossa área são mencionadas a seguir
Técnicas: validação
dependabilidade
validaçãoremoção
prevenção tolerância a falhas
previsão
verificar a presença de falhas e removê-las
estimar presença de falhas e suas conseqüências
Técnicas: prevenção
dependabilidade
validação remoção
prevenção tolerância a falhas
previsão
evitar introduzir falhas
durante projeto e construção
do sistema seleção de metodologiasde projeto e tecnologia apropriada
Técnicas: tolerância a falhas
dependabilidade
validação remoção
prevenção tolerância a falhas previsão
fornecer serviço esperado mesmo na presença de falhas
mascaramento de falhas, detecção de falhas, localização, confinamento, recuperação, reconfiguração, tratamento
Técnicas para alcançar
dependabilidade
dependabilidade
validação remoção
prevenção tolerância a falhas previsão verificar presença de falhas e remover estimar presença de falhas e suas conseqüências evitar introduzir falhas durante projeto e construção do
sistema fornecer serviçoesperado mesmo na presença de falhas
Técnicas de TF
z
prevenção e remoção de falhas não são
suficientes:
y
quando o sistema exige alta confiabilidade,
y
ou alta disponibilidade
z
técnicas de TF exigem
y
componentes adicionais
Técnicas de TF
z
mascaramento
x falhas são mascaradas e não chegam a provocar defeito
z
detecção, localização e recuperação
x ou erros (ou falhas) devem ser inicialmente detectados x o sistema entra em um estado de tratamento de exceção
até poder voltar a operação normal
ou no universo físico: falha
no universo da informação: erro
Classificação
z
4 fases (Anderson & Lee):
y
detecção
y
confinamento e avaliação
y
recuperação
y
tratamento da falha
z
outra classificação
x detecção, diagnóstico, confinamento, mascaramento,
compensação detecção confinamento e avaliação recuperação tratamento primeira fase
Detecção
x duplicação e comparação x testes de limites de tempo
• time-out, cão de guarda (watchdog timers)
x testes reversos x codificação x teste de razoabilidade • limites ou compatibilidades x testes estruturais • consistência x diagnóstico detecção confinamento e avaliação recuperação tratamento
2 módulos idênticos de hardware
COMPARADOR
ponto crítico de falha (single point of failure)
comparador em software ou hardware ? resultado erro
Duplicação e comparação
mesmos dados de entrada mesmo clockCOMPARAÇÃO
Duplicação e comparação: software
detecção processador B COMPARAÇÃO processador A memória compartilhada resultado de A resultado de B memória local de A resultado de A memória local de B resultado de B SINAL DE ERRO SINAL DE ERRO leitura escrita
Confinamento e avaliação de danos
z
latência de falha
x pode provocar espalhamento de dados inválidos
z
confinamento
x estabelece limites para a propagação do dano
ocorrência de falha até erro (detectado)
detecção
confinamento e avaliação recuperação
tratamento
confinamento e avaliação
dependem de decisões de projeto do sistema
facilitam detecção e recuperação, mas não são obrigatórias
Mecanismos de
confinamento e avaliação
z
confinamento:
y
restrições ao fluxo de informações
x evitar fluxos acidentes
x estabelecer interfaces de verificação para detecção de
erros
z
avaliação dos danos:
y
estática: projeto inicial e hardware
Exemplos
z
ações atômicas
x operações primitivas auto encapsuladas x sem efeitos secundários
z
isolamento de processos
x tudo que não é permitido é proibido
z
hierarquia de processos
x clareza conceitual
Recuperação de erros
z
troca do estado atual incorreto para um
estado livre de falhas
y
ocorre após detecção
detecção
confinamento e avaliação recuperação
tratamento
pode ser um estado anterior, livre de falhas, do sistema
pode ser um novo estado
em último caso, pode ser o estado inicial
z
dois grupos
x retorno
x avanço
Recuperação
condução a novo estado condução a estado anterior
P estado anterior falha rollback P falha novo estado avanço
Avanço
z
forward error recovery
y
condução a novo estado consistente
x ainda não ocorrido desde a última manifestação de
erro
y
eficiente, mas específica a cada sistema
x danos devem ser previstos acuradamente
mais usadas em sistemas de tempo real, onde o retorno para um estado anterior (no tempo) seja inviável
Retorno
z
backward error recovery
x condução a estado anterior consistente x alto custo mas de aplicação genérica
z
exemplo de técnica de recuperação por
retorno
y
pontos de verificação (checkpoints)
x mais simples
x salvamento de todo o estado do sistema
Recuperação
z
simples em um único processo
z
complexa em processamento distribuído
y
usualmente retroativa (de retorno)
y
pode provocar
efeito dominó
x retorno ao início do processamento
x problema com mensagens órfãs e perdidas
y
solução
x restrições a comunicação entre processos
mais sobre órfãs e perdidas quando estudarmos sistemas distribuídos
Tratamento de falhas
z
localizar a origem do erro (falha)
x localizar a falha de forma precisa x reparar a falha
x recuperar o restante do sistema
y
hipótese de falha
x uma única falha de cada vez
lembrar diferenças entre falhas permanentes e temporárias
detecção
confinamento e avaliação recuperação
Localização da falha
z
duas fases:
y
localização grosseira (módulo ou subsistema)
x deve ser rápida
y
localização fina
x reparos de menor custo
z
diagnóstico
para localização da falha
x manual
x automático (componentes livres de falha são
Reparo da falha
z
remoção do componente defeituoso
y
manual ou automática
z
automática
y
degradação suave:
x reconfiguração para operação com menor número de
componentes
y
auto-reparo:
x substituição imediata por componente disponível no
Auto-reparo
z
substituição automática
y
sistemas com longo período de missão sem
possibilidade de reparo manual
y
aplicação de
redundância
de componentes
x redundância dinâmica x redundância híbrida
x redundância auto-eliminadora
Bibliografia para conceitos básicos
z capítulo de livro
y Johnson, Barry. An introduction to the design na analysis of the
fault-tolerante systems, cap 1. Fault-Tolerant System Design. Prentice Hall, New Jersey, 1996
z artigos
y Avizenis. The four-universe information system model for the study of
fault-tolerance, FTCS 1982
y Laprie, Jean-Claude. Dependable Computing: Concepts, Limits, Challenges.
FTCS, 1995
y Jean-Claude Laprie - Dependability of Computer Systems: from Concepts to
Limits. DCIA 98, http://www.cs.wits.ac.za/research/workshop/ifip98.html
z livros