05tolerancia

10
1 Tolerância a falhas Módulo 5 [C11,C15,T4.5] (65 p.)

Transcript of 05tolerancia

Page 1: 05tolerancia

1

Tolerância a falhas

Módulo 5

[C11,C15,T4.5] (65 p.)

Page 2: 05tolerancia

2

ConteúdoFalhas

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

Page 3: 05tolerancia

3

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.

Page 4: 05tolerancia

4

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.

Page 5: 05tolerancia

5

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.

Page 6: 05tolerancia

6

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.

Page 7: 05tolerancia

7

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.

Page 8: 05tolerancia

8

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).

Page 9: 05tolerancia

9

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.

Page 10: 05tolerancia

10

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.