O documento discute conceitos fundamentais de tolerância a falhas em sistemas, incluindo redundância, disponibilidade, confiabilidade, segurança e capacidade de manutenção. Aborda também detecção de falhas, comunicação confiável e uso de grupos de processos para mascarar falhas e aumentar a resiliência do sistema.
2. CONCEITOS BÁSICOS
▸ Técnica fundamental para tratamento de falhas: redundância;
▸ Tolerância a falhas está relacionada à confiabilidade (dependability)
de um sistema;
▸ Requisitos para confiabilidade:
▸ Disponibilidade (availability)
▸ Confiabilidade (reliability)
▸ Segurança (safety)
▸ Capacidade de manutenção (maintainability)
3. DISPONIBILIDADE (AVAILABILITY)
▸ Indica que um sistema está pronto para uso imediato;
▸ Refere-se à probabilidade de que sistema está operando
corretamente num dado instante e está disponível para
executar suas funções;
▸ Alta disponibilidade indica que sistema muito
provavelmente estará funcionando num dado instante;
4. CONFIABILIDADE (RELIABILITY)
▸ Refere-se à propriedade que um sistema irá operar
continuamente sem falha;
▸ Édefinida em termos de um intervalo de tempo, ao invés
de num dado instante como ocorre com a disponibilidade;
▸ Sistema confiável é aquele que muito provavelmente irá
operar sem interrupção durante um período relativamente
longo de tempo;
5. SEGURANÇA (SAFETY)
▸ Refere-se às consequências da falha de um sistema em
operar corretamente;
▸ Sistemas críticos devem prover alto grau de segurança;
6. CAPACIDADE DE MANUTENÇÃO
(MAINTAINABILITY)
▸ Indica a facilidade para que um sistema que falhou seja
reparado;
▸ Sistema com alta capacidade de manutenção
normalmente também apresenta alto grau de
disponibilidade, especialmente se falhas podem ser
detectadas e reparadas automaticamente;
7. DISPONIBILIDADE X CONFIABILIDADE
▸ Sistema que falha por 1 milissegundo a cada hora:
▸ Disponibilidade alta, acima de 99.9999 %;
▸ Confiabilidade baixa;
▸ Sistema que nunca cai (crashes) mas é desligado por 2
semanas no ano:
▸ Alta confiabilidade;
▸ Apenas 96 % de disponibilidade;
8. CONCEITOS BÁSICOS
▸ Defeito: se um sistema não pode cumprir suas promessas,
apresenta defeito.
▸ Ex.: Não consegue garantir as consistências prometidas.
▸ Erro: parte do estado de um sistema causado por uma
falha.
▸ Ex.: Pacotes danificados.
▸ Falha: é a causa de um erro.
▸ Ex.: Um meio de transmissão errado ou ruim pode
danificar pacotes.
9. CONCEITOS BÁSICOS
▸ Sistema falha quando não pode manter seus
compromissos;
▸ Um erro é uma parte do estado de um sistema que pode
levar a uma falha;
▸ Causa do erro é chamada de falta(fault);
▸ A construção de sistemas confiáveis (dependable) está
relacionada ao controle das faltas (faults);
▸ Faltas podem ser prevenidas, removidas e previstas.
10. CONCEITOS BÁSICOS
▸ Sistemas de uma máquina (não distribuídos): uma falha é
quase sempre total;
▸ Sistemas distribuídos: pode ocorrer uma falha parcial,
quando um componente do sistema falha.
▸ Objetivo: recuperar automaticamente de falhas parciais
sem afetar seriamente o desempenho global
11. TOLERÂNCIA A FALTAS(FAULT
TOLERANCE)
▸ Significa que um sistema pode prover seus serviços
mesmo na presença de faltas;
▸ NÃO significa que falhas não vão ocorrer!!!
12. TIPOS DE FALHAS:
▸ Transiente:
▸ Ocorre uma vez e desaparece;
▸ Intermitente:
▸ Ocorre, para por um período indeterminado, reaparece, e
assim por diante;
▸ Permanente:
▸ Continua a existir até que o componente faltoso seja
substituído;
13. COMO TRATAR FALTAS:
▸ Fault prevention:
▸ Prevenir a ocorrência de faltas
▸ Fault tolerance:
▸ Construir componente que possa mascarar a presença de faltas;
▸ Fault removal:
▸ Reduzir a presença, o número e a gravidade (seriousness) de
faltas;
▸ Fault forecasting:
▸ Estimar a situação atual e futura de faltas e as consequências de
suas ocorrências;
14. MODELOS DE FALHA
▸ Para melhor identificar as falhas, foram desenvolvidos
diversos esquemas de classificação, entre eles, o quadro
abaixo:
15. MASCARAMENTO DE FALHA POR
REDUNDÂNCIA
▸ Para o sistema ser tolerante a falhas, as ocorrências destas
devem ser ocultas de outros processos e dos usuários;
▸ A técnica fundamental para mascarar falhas é usar
redundância;
16. MASCARAMENTO DE FALHA POR
REDUNDÂNCIA
▸ Redundância de informação:
▸ bits extras para recuperação de pacotes (Hamming);
▸ Redundância de tempo:
▸ executar novamente uma ação, se for preciso;
▸ Redundância física:
▸ adicionar equipamentos ou processos extras para
possibilitar tolerância a perda ou mal funcionamento de
alguns componentes;
19. RESILIÊNCIAD
EP
R
O
C
E
S
S
O
▸ Resiliência:
▸ The ability to recover quickly from illness, change, or
misfortune;
▸ The property of a material that enables it to resume its
original shape or position after being bent, stretched, or
compressed; elasticity;
▸ Proteção contra falha de processos: obtida com
replicação de processos em grupos;
20. RESILIÊNCIAD
EP
R
O
C
E
S
S
O
▸ Diversos processos idênticos são organizados num grupo;
▸ Quando uma mensagem é enviada para um grupo, todos
os processos membros deste grupo a recebem;
▸ Se um processo no grupo falha, outro pode assumir;
▸ Grupos podem ser dinâmicos, criados e destruídos por
demanda;
21. RESILIÊNCIAD
EP
R
O
C
E
S
S
O
▸ Processos podem entrar e sair de grupos em tempo de
execução e podem pertencer a vários grupos simultaneamente;
▸ Mecanismos devem existir para gerenciamento de grupos e
processos;
▸ Grupos permitem tratar com vários processos usando uma
abstração;
▸ Mensagens podem ser enviadas para grupos sem saber
informações sobre;
22. Q
U
E
S
T
Õ
E
SD
EP
R
O
J
E
T
OD
EG
R
U
P
O
S
▸ A abordagem fundamental para tolerar um processo faltoso
é organizar vários processos idênticos em um grupo.
▸ Quando uma mensagem é enviada a um grupo, todos
membros do grupo a recebem;
▸ Se um processo falhar, espera-se que algum outro se
encarregue da mensagem em seu lugar;
▸ Grupos podem ser dinâmicos;
▸ A finalidade de introduzir grupos é permitir que
processos tratem conjuntos de processos como uma
única abstração;
23. G
R
U
P
O
SSIMPLES(
F
L
A
TG
R
O
U
P
)
▸ Todos processos são iguais dentro de um grupo;
▸ Ninguém manda, todas decisões são coletivas;
▸ Simétrico, sem um ponto único de falha;
▸ Tomada de decisão é mais complexa;
▸ Entrada e saída de membros no grupo feitas através de
mensagens multicast (confiáveis); pode ocorrer fail-stop;
26. RESILIÊNCIAD
EP
R
O
C
E
S
S
O
▸ Processos podem ser replicados e organizados num
grupo(tolerante a faltas) para substituir um processo único
(vulnerável);
▸ Existência de processos idênticos num grupo permite
mascarar a falha de um ou mais processos nesse grupo;
▸ Replicação pode ocorrer através de protocolos baseados
em primário (primary-based) ou com escrita
replicada(replicated-write);
27. RESILIÊNCIAD
EP
R
O
C
E
S
S
O
▸ Primary-based: grupo é organizado de forma hierárquica e
processo primário coordena todas as operações de escrita;
▸ Se primário falha, processos backup executam
algoritmo de eleição para escolha de um novo primário;
▸ Operação na forma de replicação ativa, ou de protocolos
baseados em quórum (quorum-based);
▸ Processos idênticos operam em organização flat com
coordenação distribuída;
28. M
A
S
C
A
R
A
M
E
N
T
OD
EF
A
L
H
AER
E
P
L
I
C
A
Ç
Ã
O
▸ Questão: quanta replicação é necessária?
▸ Sistema é dito k fault tolerant(k-tolerante a faltas) se pode
sobreviver a faltas em k componentes e ainda cumprir suas
especificações;
▸ Se componentes (processos) falham silenciosamente, k+1
processos remanescentes são suficientes para prover k-
tolerância a faltas;
▸ Nesse caso, se k processos falharem, processo restante provê
a resposta desejada
29. A
C
O
R
D
OE
MS
I
S
T
E
M
A
SC
O
MF
A
L
H
A
S
▸ Organizar processos replicados em um grupo ajuda a
aumentar a tolerância a falha. Existem várias situações:
▸ Sistemas síncronos vs. assíncronos;
▸ Atraso de comunicação limitado ou não;
▸ Entrega de mensagens ordenada ou não;
▸ Transmissão de mensagens unicast ou multicast;
31. A
C
O
R
D
OE
MS
I
S
T
E
M
A
SC
O
MF
A
L
H
A
S
▸ Esse problema, estudado pela primeira vez por Lamport
(1982), é também conhecido como problema do acordo
bizantino, consideramos problemas assíncronos,
mensagens unicast, ordenação preservada e atraso
limitado.
32. A
C
O
R
D
OE
MS
I
S
T
E
M
A
SC
O
MF
A
L
H
A
S
▸ Em um sistema com k processos faltosos pode-se
conseguir um acordo somente se estiverem presentes
2k+1 processos funcionando corretamente, para um total
de 3k+1 (ou seja, mínimo mais que 2/3).
33. D
E
T
E
C
Ç
Ã
OD
EF
A
L
H
A
▸ Mascaramento de falha requer sua identificação prévia;
▸ Membros do grupo que não têm falta devem ser capazes
de detectar quem ainda é membro do grupo e quem
apresentou falta e deve ser removido;
▸ Mecanismos:
▸ Envio de msg: “are you alive?” entre os nós, e espera
por resposta – ping ativo;
▸ Espera passiva até que mensagens cheguem dos
diferentes processos (viável apenas se há comunicação
suficiente (frequente) entre os nós;
34. D
E
T
E
C
Ç
Ã
OD
EF
A
L
H
A
▸ Mecanismo de timeout é usado para verificar se processo tem
falta;
▸ Problema: ausência de resposta pode indicar erroneamente
que processo tem falta;
▸ Implementação pode considerar mecanismo de gossiping,
em que nó propaga informações do seu estado aos vizinhos;
▸ Necessidade de distinguir falha da rede e falha de um
processo;
35. D
E
T
E
C
Ç
Ã
OD
EF
A
L
H
A
▸ Detecção de faltas também pode ser feita como um efeito
colateral do uso de gossiping para troca de informações
entre os vizinhos, propagando informações sobre os
estados dos nós;
▸ Eventualmente, todo processo terá informações
suficientes para decidir sobre o estado dos demais e se há
processos com falta;
37. C
O
M
U
N
I
C
A
Ç
Ã
OP
O
N
T
O
-
A
-
P
O
N
T
O
▸ Tolerância a falta normalmente concentra-se na detecção
de falta de processo;
▸ Faltas na comunicação também devem ser consideradas;
▸ Modelos de falha também se aplicam aos canais de
comunicação: crash, omissão, timing e arbitrárias;
▸ Construção de canais de comunicação normalmente foca
no mascaramento de falhas do tipo crashe omissões;
38. C
O
M
U
N
I
C
A
Ç
Ã
OP
O
N
T
O
-
A
-
P
O
N
T
O
▸ Falhas arbitrárias podem ocorrer na forma de mensagens
duplicadas, resultantes de armazenamento temporário e
retransmissões;
▸ Na comunicação ponto-a-ponto, confiabilidade é obtida
com o uso de protocolos de transporte confiável, como
TCP;
▸ Mensagens de reconhecimento e retransmissões
mascaram omissões;
▸ Falhas na conexão TCP podem ser tratadas permitindo
que SD tente estabelecer uma nova conexão;
39. C
O
M
U
N
I
C
A
Ç
Ã
OP
O
N
T
O
-
A
-
P
O
N
T
O
▸ A forma mais adotada para adquirir esta transparência é
através do uso de RPC;
▸ RPCs visam esconder detalhes da comunicação, tornando
chamadas remotas semelhantes às chamadas locais;
40. F
A
L
H
A
SE
MR
P
C
‣ Falhas possíveis:
‣ Cliente não consegue localizar o servidor;
‣ Mensagem do cliente não chega ao servidor (perdida);
‣ Servidor cai (crashes) depois de receber pedido;
‣ Resposta do servidor ao cliente é perdida;
‣ Cliente cai (crashes) depois de enviar pedido;
41. F
A
L
H
A
SE
MR
P
C
▸ Cliente não consegue localizar o servidor:
▸ Servidores todos podem ter caído (down);
▸ Cliente pode estar usando versão stub antiga
incompatível com versão atual do servidor;
▸ Erro pode gerar exceção (exception– Java, ou sinal
específico – C);
▸ Nem toda linguagem tem suporte;
42. F
A
L
H
A
SE
MR
P
C
▸ Mensagem do cliente não chega ao servidor (perdida):
▸ Pode ser tratada com timer mantido pelo SO ou pelo
stub do cliente;
▸ Expiração de timeout antes de resposta ou
reconhecimento gera retransmissão;
▸ Servidor pode precisar diferenciar retransmissões de
novas chamadas;
43. F
A
L
H
A
SE
MR
P
C
▸ Servidor cai (crashes) depois de receber pedido:
▸ Possíveis tratamentos dependem do que é esperado
pelo cliente:
a. Semântica at-least-once (ao menos uma vez): sistema cliente
continua tentando (retransmitindo pedido) até uma resposta seja
recebida. Nesse caso, RPC terá sido executada ao menos1vez;
b. Semântica at-most-once (no máximo uma vez): cliente desiste
imediatamente e retorna indicação de falha. RPC terá sido
executada no máximo 1 vez, mas possivelmente nenhuma;
c. Semântica exactly once (exatamente uma vez);
44. F
A
L
H
A
SE
MR
P
C
▸ Servidor cai (crashes) depois de receber pedido;
▸ Quedas de Servidor – situações possíveis na ocorrência
de uma queda do servidor.
45. F
A
L
H
A
SE
MR
P
C
▸ Resposta do servidor ao cliente é perdida;
▸ Ausência de resposta pode gerar retransmissões depois
da expiração de temporizadores
▸ Problema: como saber se servidor recebeu pedido (e
realizou serviço)?
▸ Solução: tentar tornar operações idempotentes
(repetíveis sem efeitos indesejados)
46. F
A
L
H
A
SE
MR
P
C
▸ Resposta do servidor ao cliente é perdida;
▸ Para operações não idempotentes pode-se atribuir
número de sequência para requisições de cada cliente;
▸ Números permitem ao servidor diferenciar pedido de
retransmissões. Servidor tem que manter informações
de estado;
▸ Mensagens podem conter (bit) identificador de
retransmissão: novos pedidos podem ser realizados
imediatamente. Retransmissões requerem tratamento;
47. F
A
L
H
A
SE
MR
P
C
▸ Cliente cai (crashes) depois de enviar pedido;
▸ Problema: servidor está realizando solicitação e
mantendo recursos por nada;
▸ Computação órfã gera desperdício de recursos de
processamento;
▸ Pode haver bloqueio de recursos;
48. F
A
L
H
A
SE
MR
P
C
▸ Cliente cai (crashes) depois de enviar pedido;
▸ Soluções:
▸ Client stub salva registro (log) em disco (persistente)
antes de realizar chamada RPC. Depois de um reinício
(reboot) computação órfã é explicitamente encerrada
(or rolled back): orphan extermination
▸ Possibilidade de surgimento de grandorphans, e atrasos
para acesso ao disco antes de RPCstornam proposta não
interessante
49. F
A
L
H
A
SE
MR
P
C
▸ Cliente cai (crashes) depois de enviar pedido;
▸ Soluções:
▸ Tempo é dividido em épocas; ao reiniciar, cliente
divulga uma mensagem às demais máquinas
declarando nova época. Ao receber mensagem, nó
remove todas as computações anteriores daquele
cliente. Falha na rede pode gerar órfãos ativos.
Estratégia conhecida como reencarnação
(reincarnation).
50. F
A
L
H
A
SE
MR
P
C
▸ Cliente cai (crashes) depois de enviar pedido;
▸ Soluções:
▸ Gentle reincarnation: ao receber mensagem de nova
época, servidor tenta localizar todos os clientes remotos
associados. Na ausência de comunicação, computações
são encerradas.
▸ Expiration: cada RPC recebe um tempo (T) para
conclusão. Se não for concluída nesse tempo, RPC deve
negociar novo prazo. Em caso de reiniciação, servidor
pode encerrar requisições órfãs depois de tempo T.
51. F
A
L
H
A
SE
MR
P
C
▸ Cliente cai (crashes) depois de enviar pedido;
▸ Problemas:
▸ Encerramento das computações órfãs pode ter
consequência imprevistas
▸ Requisições podem ter bloqueado recursos
▸ Requisições podem ter iniciado outras requisições...
53. M
U
L
T
I
C
A
S
TC
O
N
F
I
Á
V
E
L(
R
E
L
I
A
B
L
EM
U
L
T
I
C
A
S
T
I
N
G
)
▸ Multicast confiável é importante para garantir que
mensagens sejam entregues a todos os processos
replicados num grupo;
▸ Protocolos de transporte oferecem comunicação confiável
apenas ponto-a-ponto;
▸ Possível abordagem para multicast confiável consiste em
criar-se vários canais unicast, um para cada receptor:
solução ineficiente;
54. M
U
L
T
I
C
A
S
TC
O
N
F
I
Á
V
E
L(
R
E
L
I
A
B
L
EM
U
L
T
I
C
A
S
T
I
N
G
)
▸ Situações envolvem diferentes aspectos se processos
membros do grupo podem variar, saindo por falha, ou
ingressando no grupo, durante transmissão de
mensagem;
▸ Como garantir que mensagem seja entregue aos
processos do grupo apenas se todos receberem?
▸ Transmissor associa número a cada mensagem
transmitida;
55. M
U
L
T
I
C
A
S
TC
O
N
F
I
Á
V
E
L(
R
E
L
I
A
B
L
EM
U
L
T
I
C
A
S
T
I
N
G
)
▸ Mensagens são transmitidas em sequência;
▸ Mensagens transmitidas são mantidas em buffer no
transmissor até que todos os destinatários confirmem
recebimento;
▸ Receptores conseguem identificar mensagens fora de
ordem e geram reconhecimento negativo (negative
acknowledgment) solicitando retransmissão;
58. M
U
L
T
I
C
A
S
TC
O
N
F
I
Á
V
E
L(
R
E
L
I
A
B
L
EM
U
L
T
I
C
A
S
T
I
N
G
)
▸ Abordagem usando reconhecimento não é adequada para
grande número de receptores (não escalável);
▸ Um problema apresentado é a implosão de retorno, que pode
lotar o remetente com mensagens de confirmação de
recebimento;
▸ Solução: Não confirmar recebimento, mas apenas devolver
respostas quando detectar faltas.
▸ Gera novo problema: Quando remover mensagem enviada do
buffer?
▸ Quando fica cheio, mas pode resultar em uma retransmissão não ser honrada!
Implosões de retorno ainda podem acontecer!
▸
64. C
O
N
T
R
O
L
E
D
ER
E
C
O
N
H
E
C
I
M
E
N
T
O(
F
E
E
D
B
A
C
K
)H
I
E
R
Á
R
Q
U
I
C
O
▸ Cada subgrupo determina um coordenador local, que
passa a ser responsável pelos envios de pedidos de
retransmissão deste subgrupo
▸ Coordenador local tem seu próprio buffer de histórico de
transmissões.
▸ Mensagens recebidas por todos no subgrupo podem ser
descartadas.
▸ Questão: dificuldade para construção da árvore.
▸ Normalmente, roteador multicast no grupo é usado como
coordenador
66. M
U
L
T
I
C
A
S
TA
T
Ô
M
I
C
O
▸ Comunicação multicast confiável implica que mensagens
sejam entregues a todos os processos ou a nenhum
▸ Mensagens também devem ser entregues na mesma
ordem a todos os processos
▸ Considerando que operações são replicadas em vários
processos de um grupo, aplicação das operações
depende de processos estarem em acordo sobre quem
participa do grupo (está ativo), de forma que ou todos
realizem as operações, ou nenhum
68. M
U
L
T
I
C
A
S
TA
T
Ô
M
I
C
O– S
I
N
C
R
O
N
I
AVIR
T
U
A
L
▸ Há apenas uma situação em que entrega de mensagem
pode falhar: quando participação no grupo muda como
resultado do emissor da mensagem m quebrar(crash)
▸ Nesse caso, deve ser entregue a cada um dos processos
restantes, ou pode ser ignorada por todos os membros do
grupo, como se o emissor tivesse quebrado antes do
envio
▸ Multicast confiável com essas características é
denominado virtualmente síncrono(virtually synchronous)
71. O
R
D
E
N
A
Ç
Ã
OD
EM
E
N
S
A
G
E
N
S
▸ Multicast confiável não ordenado é um multicast
virtualmente síncrono sem garantias sobre a ordem em
que mensagens recebidas são entregues aos diferentes
processos
▸ Com multicasts ordenados em FIFO, camada de
comunicação deve entregar as mensagens aos processos
na mesma ordem em que foram enviadas
72. O
R
D
E
N
A
Ç
Ã
OD
EM
E
N
S
A
G
E
N
S
▸ Multicast confiáveis ordenados por causalidade entregam
mensagens de forma que potenciais causalidades entre
mensagens diferentes é preservada
▸ Com multicasts totalmente ordenados, independente de
ordenações entre as mensagens, todos os processos as
recebem na mesma ordem
74. O
R
D
E
N
A
Ç
Ã
OD
EM
E
N
S
A
G
E
N
S
▸ A entrega totalmente ordenada é aplicada em adição às
três primeiras, e significa que, independente da ordem
aplicada, a ordem de entrega deve ser a mesma em todos
os membros do grupo.
▸ Multicasts que apresentam essa propriedade são
denominados multicasts atômicos.
77. R
E
C
U
P
E
R
A
Ç
Ã
O
▸ Ocorrida uma falha, é necessário não apenas identificá-la,
mas recuperar-se da mesma e voltar para um estado
correto.
▸ Essencialmente existem 2 maneiras de se recuperar:
▸ Recuperação retroativa – volta para um estado anterior à
falha;
▸ Recuperação para a frente – tenta levar o sistema para um
novo estado correto para que possa continuar a executar.