Tolerância a falhas
Módulo 5
[C11,C15,T4.5] (65 p.)
1
Conteúdo
 Falhas



tipos
tempo médio até falhar
em processadores
 Uso de redundância



tipos
replicação ativa
replicação primary backup
 Consenso na presença de falhas
2
Falhas
 Um sistema falha quando não funciona de acordo com sua
especificação.
 Falhas típicas:
 hardware: processador, memória, dispositivo de E/S,
cabo, ...
 software: erros de programação, erros de operação,
situações não previstas, ...
 Objetivo de tolerância a falhas: garantir que um sistema
continue a funcionar corretamente na presença de defeitos.
 Tolerância a falhas é necessária principalmente em
aplicações que requerem alta disponibilidade.
3
Tipos de falhas
 Falha transiente: ocorre apenas uma vez; se a
operação é repetida, a falha desaparece. Exemplo:
falha numa transmissão usando micro-ondas
porque algum objeto obstrui temporariamente.
 Falha intermitente: ocorre de maneira aleatória
e imprevisível. Exemplo: um conector com mau
contato.
 Falha permanente: ocorre sempre até que o
componente seja substituído. Exemplo: um chip
queimado, erros em software.
4
Tempo médio até falhar
 Exemplo:
 Um componente tem uma probabilidade p de falhar em
um segundo.
 A probabilidade desse componente não falhar em k
segundos consecutivos é

O tempo estimado até esse componente falhe (mean
time to failure) é

Assim, se p = 0.001 então MTF = 1000 segundos.
5
Falhas em processadores
 Tipos:


Fail-silent fault (ou Fail-stop fault): um
processador com falha pára e não responde a
subsequentes requisições ou produz qualquer
resultado.
Byzantine fault: um processador com falha
continua a operar, emitindo resultados errados,
possivelmente em acordo com outros
processadores com falha, causando a impressão
de que estão todos funcionando normalmente. 6
Uso de redundância
 Tipos de redundância:



Redundância de informação: bits extras são
adicionados para se recuperar de bits errados.
Redundância de tempo: uma ação é executada
e, se necessário, é executada novamente. (Útil
para falhas transientes e intermitentes.)
Redundância física: equipamento extra é
adicionado para que o sistema como um todo
tolere a falha de um ou outro componente.
Exemplo: múltiplos processadores.
7
Uso de replicação ativa
 Todos os processadores são usados o tempo todo como
servidores (em paralelo) a fim de ocultar falhas
completamente.
 TMR: Triple Modular Redundancy
 Sistema tolerante a falhas no nível k: satisfaz sua
especificação mesmo se até k componenetes falharem
simultaneamente:
 fail-silent fault: requer k+1 componenetes
 byzantine fault: requer 2k+1 componentes
 Requisito: todas as requisições chegam nos servidores
numa mesma ordem (atomic broadcast problem).
8
Uso de primary backup
 Apenas um processador (primary) é o servidor a cada
instante. Se este falhar, um outro processador (backup) é
ativado para operar em seu lugar.
 A substituição de um processador por outro não deve ser
notada pelas aplicações; somente o sistema operacional do
cliente deve notar.
 Vantagens:
 Mais simples: mensagens do cliente vão para apenas
um servidor (não é necessário ordenar mensagens).
 Na prática, requer menos máquinas.
 Desvantagem: não funciona se para Byzantine faults.
9
Consenso na presença de falhas
 Exemplos: eleição de um coordenador, decisão quanto a
fazer ou não commit de uma transação, divisão de tarefas.
 Primeiro caso: processadores confiáveis, mas possíveis
falhas de comunicação. Exemplo: two-army problem.
Consenso é impossível sem comunicação confiável!
 Segundo caso: comunicação confiável, mas possíveis
falhas de processadores. Exemplo: Byzantine generals
problem.
Consenso é possível quando há m processadores confiáveis
somente se houver 2m+1 processadores confiáveis.
10
Download

Recomendar uma estratégia