Aula 15 - Tolerância à Falhas

1

Tolerância à Falhas

Existe diferença entre falhas em máquinas convencionais e distribuídas?

Existe sim, as máquinas distribuídas lidam com falhas parciais, as máquinas convencionais lidam com falhas totais.

Falhas parciais

Apenas alguns componentes falham.

Falhas totais

Afetam todos os componentes.

O que é?

Técnicas de recuperação automatica a falhas parciais, sem afetar seu desempenho global.

Qual a diferença entre defeito, erro e falha?

Defeito

Erro

Falha

Está relacionado com o propósito do sistema, ou seja, ele não pode cumprir as suas "promessas".

É um estado do sistema que pode levar a um defeito.

É a causa de um erro do sistema.

Tipos de falhas

Falha transiente

Falha intermitente

Falha permanente

Ela ocorre uma vez e desaparece.

Ela ocorre, para por um periódo indeterminado, reaparece e assim por diante.

Ela continua a existir até que o componente faltoso seja substituído.

2

Mascaramento de falha

O que é?

É um processo de ocultar as falhas de outros processos e usuários, a fim de permitir que o sistema tolere falhas parciais.

A principal técnica de marcaramento de falhas é a redundância e temos três tipos: redundância de informação, redundância de tempo e redundância física.

Redundância de informação

Podemos inserir bits extras aos dados transmitidos para recuperação de bits deteriorado por linhas ed transmissão.

Redundância de tempo

Quando a ação é realizada novamente após um determinado tempo, se necessário.

Redundância física

Quando processos ou equipamentos extras são adicionados para possibilitar que o sistema possa tolerar a perda ou mau funcionamento de alguns componentes.

3

Estratégias de tolerância a falhas

As estratégias de tolerância a falhas são divididas em: resiliência de processos e acordo em sistemas com falha.

Resiliência de processos

Uso de grupos para alcançar a resiliência

Os processo são organizados em grupos para tolerar as falhas.

Os processos dentro do grupo se comunicam entre sí e podem se organizar de duas formas: grupos simples e grupos hierárquicos.

Grupos simples

Todos os processos são iguais dentro de um grupo e as decisões são tomadas coletivamente.

Vantagens

Não temos um único ponto de falha.

Desvantagens

A tomada de decisão pode ser complicada, pois temos a necessidade de uma votação, que gera um atraso e custo adicional.

Grupos hierárquicos

Existe um processo coordenador e os demais são chamados de operários.

Vantagens

As decisões são centralizadas, logo, são tomadas de forma mais rápida.

Desvantagens

Temos um único ponto de falha, caso o coordenador falhe, o serviço falhará.

Os processos dentro dos grupos precisam se comunicar entre sí e tomar decisões, existem portanto algoritmos para lidar com a troca de mensagens entre os processos: algoritmos de consenso.

Algoritmos de consenso

O que é?

Determina quais mensagens devem ser trocadas em um grupo e o que cada participante faz com ela.

Tipos de algoritmo de consenso: consenso por inundação, paxos, PBFT, algoritmo de raft.

Consenso por inundação

Paxos

Usado em sistemas com comunicação assíncrona onde não temos certeza se um nó está em falha, ou só está lento.

Algoritmo de raft

Algoritmo de consenso alternativo ao algoritmo paxos, com o objetivo de ser confiável, replicado, redundante e tolerante a falhas.

PBFT (Pratical Bizantine Fault Tolerance)

Permite que um sistema distribuído alcance um consenso mesmo quando uma pequena quantidade de nós demonstra comportamento malicioso.