Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

69
Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos

Transcript of Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Page 1: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Sistemas DistribuídosFrancisco Brasileiro

Aula 4: Tolerância a Falhas em Sistemas Distribuídos

Page 2: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

AgendaAgenda• Motivação

• Conceitos básicos e definições

• Mecanismos básicos– Acordo Bizantino– Sincronização de relógios– Armazenagem estável– Entrega confiável de mensagens– Nodos com semântica de falha controlada

Page 3: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

MotivaçãoMotivação

• Necessidade de tolerância a faltas– aumento do uso de computadores– diversificação do uso de computadores– aumento da dependência no correto

funcionamento dos sistemas computacionais

Page 4: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

MotivaçãoMotivação

• Exemplos de aplicações com requisitos de confiança no funcionamento– Sistemas críticos envolvendo risco de vida

• controle de vôo em aeronaves

– Sistemas envolvendo perdas financeiras• transações bancárias e do mercado financeiro

– Sistemas envolvendo desastres ambientais• controle de usinas nucleares

Page 5: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

MotivaçãoMotivação

• Quando é que um sistema falha?– Qual é o serviço adequado de um sistema?– Vamos assumir que a especificação é correta– Importância de se tratar faltas em sistemas

distribuídos• em um sistema distribuído a probabilidade de um

componente falhar é maior• aplicações críticas

Page 6: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições

• Serviços de um sistema computacional

• Confiança no funcionamento (dependability)

• Atributos de confiança no funcionamento– Fiabilidade (reliability)– Disponibilidade (availability)– Segurança

• prevenção contra catástrofes (safety)• prevenção contra acesso não autorizado (security)

Page 7: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições

• Tratamento de faltas– Prevenção

• minimizar, por construção, a probabilidade da ocorrência de faltas

– Tolerância• prover o serviço, ainda que ocorram faltas• introduz redundância no sistema

– física– temporal

Page 8: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições

• Características de prevenção de faltas– ausência de redundância– falhas ocasionais do sistema– manutenção assistida por humanos

• Problemas com a abordagem– atraso longo quando há necessidade de reparo– possível inacessibilidade para efetuar reparo– custos excessivos na manutenção e com o

processamento perdido

Page 9: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições

• Combinando prevenção e tolerância– As duas técnicas são complementares– Algumas aplicações devem necessariamente

tolerar faltas– A introdução de redundância física possibilita a

substituição do reparo manual– Outros pontos importantes

• diagnóstico de faltas• validação dos mecanismos do sistema para

tolerância a faltas

Page 10: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições

• Modelando sistemas– Visão externa– Visão interna– Comportamento do sistema– Especificação de serviços– Características desejáveis em uma especificação

• completa• consistente• correta

Page 11: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições• Falha ou defeito (failure)

– Desvio da especificação

• Erro (error)– Estado ou transição interna ilegais

• Falta (fault)– Causa dos erros e falhas

• Relação entre falta, erro e falha

Page 12: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições

• Tipos de faltas– Quanto à duração

• permanentes, transientes, intermitentes

– Quanto à natureza• físicas, interação

– Quanto à fase de introdução• projeto, operação

Page 13: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições

• Semântica de falha de componentes– domínio do valor– domínio do tempo– tipos de falhas

• silenciosa (crash, fail-stop)• omissão• temporização (desempenho)• valor• arbitrária (Bizantina)

– Bizantina com autenticação

Page 14: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições

• Sistemas tolerantes a faltas– Evitam a falha do sistema, mesmo na presença

de faltas em alguns dos componentes do sistema

– Mesmo que alguns componentes falhem, o sistema ainda é consistente com a sua especificação

• redução de desempenho (graceful degradation)

– Introdução de redundância é o princípio básico

Page 15: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições

• Fases na tolerância a faltas– Detecção de erros– Contenção e avaliação de estragos– Recuperação de erros– Tratamento de faltas e continuidade do serviço

• diagnóstico de faltas• reconfiguração do sistema

Page 16: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições

• Detecção de erros– Dedução de faltas e falhas– Propriedades de um detetor de erros ideal

• completude e corretude• independência de projeto

– Principais tipos de detetores de erros• replicados• temporizadores (watchdogs)• códigos e redundância estrutural• testes de aceitação e diagnósticos

Page 17: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições

• Contenção e avaliação de estragos– Latência– Disseminação de erros– Análise do fluxo de informação– Portas “corta-fogo”– SRU’s (smallest replacement units)

Page 18: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições

• Recuperação de erros– Abordagem pessimista (backward recovery)

• pontos de salvaguarda (checkpoint)• implementação razoavelmente simples• custo alto• efeito “dominó“

– Abordagem otimista (forward recovery)• ações corretivas• considerações sobre a natureza dos erros• normalmente é dependente da aplicação ou do sistema

Page 19: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições

• Tratamentos de faltas e continuidade do serviço– Identificação de componentes defeituosos– Localização do erro– Reparo do sistema

• on-line• reconfiguração• componentes suplentes (spares)

– passivos (cold-spares) e ativos (hot-spares)

Page 20: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições• Modelagem de sistemas distribuídos

– Modelo físico• Principais componentes

– processadores– rede de comunicação– dispositivos de armazenagem não voláteis– software

– Modelo lógico• Aplicações implementadas por processos cooperantes• Comunicação via troca de mensagens• Sistemas síncronos versus sistemas assíncronos

Page 21: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Conceitos Básicos e DefiniçõesConceitos Básicos e Definições

• Tipos de sistemas distribuídos– Sistemas síncronos

• atraso máximo conhecido para escalonamento e troca de mensagens

• oferecem framework mais simples• mais difíceis de serem implementados

– Sistemas assíncronos• timed-related x time-free• mais fáceis de serem implementados

Page 22: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos BásicosMecanismos Básicos

• Suportes para construção de sistemas distribuídos tolerantes a faltas– Como disseminar informação de forma

consistente e confiável?– Como ordenar eventos?– Como prover um sistema de tempo global?– Como armazenar informação de forma estável?– Como restringir a semântica de falha de

componentes?

Page 23: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Acordo Bizantino

Mecanismos Básicos:Acordo Bizantino

• Como atingir consenso na presença de componentes com semântica de falha arbitrária?– O problema dos generais Bizantinos

• decisão final é baseada nas decisões locais• alguns generais podem ser traidores

– Como garantir que todos os generais leais decidirão pelo mesmo plano?

• os generais devem receber as mesmas informações• os generais devem usar a mesma função de decisão

Page 24: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Acordo Bizantino

Mecanismos Básicos:Acordo Bizantino

• Como entrar em um acordo sobre qual valor usar para a decisão de um general traidor? – Todos os generais leais devem chegar a um

consenso sobre que valor usar para a decisão de cada general

• Consistência interativa– todos os generais leais usam o mesmo valor v(i) para o

general i– se o general i é leal, então todos os generais leais devem

usar o valor v(i) que o general i envia

Page 25: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Acordo Bizantino

Mecanismos Básicos:Acordo Bizantino

• Requisitos para obter consistência interativa– Várias rodadas de troca de informação– Sistema de comunicação síncrono– Número limitado de generais traidores

• Há solução para o caso de 3 generais, onde um deles pode ser um traidor?– os generais podem tomar apenas duas

decisões (atacar ou esperar)

Page 26: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Acordo Bizantino

Mecanismos Básicos:Acordo Bizantino

atacar

G1 (T)

G2 (R) G3 (R)

atacar

esperar

O que fazer?

Page 27: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Acordo Bizantino

Mecanismos Básicos:Acordo Bizantino

esperar

G1 (R)G2 (R)

G1 (T)atacar

esperar

O que fazer?

Page 28: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Acordo Bizantino

Mecanismos Básicos:Acordo Bizantino

• Resultados teóricos– Número mínimo de rodadas

• k+1

– Relação mínima entre componentes corretos/defeituosos

• n/k>3

– Número mínimo de canais de comunicação disjuntos

• 2k+1

Page 29: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos: Acordo BizantinoMecanismos Básicos: Acordo Bizantino

• Algoritmo recursivo para consistência interativa• ICA(k), k>0

– 1. O transmissor envia o seu valor para os outros n-1 receptores

– 2. Seja v o valor recebido pelo general i, ou o valor default se nada for recebido. O general i se comporta como transmissor no algoritmo ICA(k-1) para enviar v para os outros n-2 receptores

– 3. Para cada general i, seja vj o valor recebido de j (i¡). O general i usa o valor da maioria dos valores recebidos para i

• ICA(0)– 1. O transmissor envia seu valor para os outros n-1 receptores

– 2. Cada general usa o valor recebido do transmissor ou o valor default se nada for recebido

Page 30: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Acordo Bizantino

Mecanismos Básicos:Acordo Bizantino

• Consistência interativa com mensagens assinadas– Mensagens repassadas por generais traidores

não podem ser modificadas sem que isso seja detectado por generais leais

• assinaturas digitais

– Resultados teóricos• número de rodadas: k+1• número máximo de generais traidores: n>k• número de canais de comunicação disjuntos: k+1

Page 31: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Sincronização de Relógios

Mecanismos Básicos:Sincronização de Relógios

• Como estabelecer um referencial de tempo global em um sistema distribuído?– Cada nodo tem seu relógio local– Relógios desviam do tempo real– Tempo global e ordenação de eventos

• relógios lógicos• sincronização de relógios

– sincronização interna– sincronização externa

Page 32: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Sincronização de Relógios

Mecanismos Básicos:Sincronização de Relógios

• A relação “aconteceu antes” () e a ordenação de eventos– Para dois eventos a e b:

• se a e b são eventos no mesmo processo e a vem antes de b, então a b

• se a é o evento de envio de uma mensagem m e b é o evento de recepção de m, então a b

• se existe um terceiro evento c, tal que a b e b c, então a c

Page 33: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Sincronização de Relógios

Mecanismos Básicos:Sincronização de Relógios

• Relógios lógicos implementam a relação “”– Um relógio lógico é um contador que serve para

associar valores a eventos e cada processo tem um relógio lógico

• Ci<a> é o valor associado ao evento a pelo processo i onde a ocorreu

• Para dois eventos a e b: se a b, então C(a) < C(b)

• Como implementar relógios lógicos?– Relógio é incrementado entre dois eventos locais– Mensagens carregam estampilhas

Page 34: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Sincronização de Relógios

Mecanismos Básicos:Sincronização de Relógios

• Aspectos a serem considerados na sincronização de relógios físicos– Relógios corretos operam em diferentes

velocidades– Necessidade de re-sincronização periódica– Troca de mensagens com valores das leituras

dos relógios introduz incerteza– Falhas nos relógios e nos canais de

comunicação

Page 35: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Sincronização de Relógios

Mecanismos Básicos:Sincronização de Relógios

• Definição do problema:– Sejam Ci(t) a leitura de Ci no tempo real t e ci(T) o

tempo real quando o i-ésimo relógio lê o valor T• assumindo que os relógios são contínuos:

– para um relógio correto, |d(Ci/dt)-1| < • existem dois requisitos básicos para sincronização de

relógios:– a todo instante a leitura de dois relógios corretos deve ser

bastante próxima (|Ci(t)-Cj(t)| )

– um relógio correto só pode ser adiantado/atrasado de um intervalo de tempo pequeno e limitado, durante cada re-sincronização

Page 36: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Sincronização de Relógios

Mecanismos Básicos:Sincronização de Relógios

• Tipos de protocolos– Determinísticos

• sempre garantem a precisão da sincronização• assumem um limite máximo no atraso para a

transmissão de mensagens

– Probabilísticos• nenhuma restrição sobre o atraso na troca de

mensagens• garantem a precisão da sincronização apenas dentro

de uma probabilidade pré-definida

Page 37: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Sincronização de Relógios

Mecanismos Básicos:Sincronização de Relógios

• Protocolos determinísticos– Uma possível solução é:

• cada nodo lê o seu relógio e o relógio dos outros nodos

• atribui ao seu relógio a mediana dos valores lidos

– Em que circunstâncias esse protocolo funciona?• a maioria dos nodos (e seus relógios) são corretos

• nodos e relógios não sofrem falhas arbitrárias

– O que fazer na presença de falhas arbitrárias?• dois nodos corretos quaisquer devem obter

(aproximadamente) o mesmo valor para um relógio Ci

• se Ci é correto, o valor obtido é o valor de Ci

Page 38: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Sincronização de Relógios

Mecanismos Básicos:Sincronização de Relógios

• Uma solução com mensagens orais• Número de nodos é pelo menos 3k+1• C(t)=H(t)+CORR(t)• Inicialmente os relógios estão sincronizados em

• Existe min e max para o atraso na transmissão

• Quando Ci(t)=T o nodo i dissemina “a hora é T”

• Guarda tempo das recepções de mensagens dos outros nodos por um período de (+max)(1+)

• Com os tempos de recepção recalcula CORR(t)– joga fora os k maiores e os k menores

– CORR(t)=+ mediana dos valores restantes

Page 39: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Sincronização de Relógios

Mecanismos Básicos:Sincronização de Relógios

• Protocolos probabilísticos– Algoritmo de Cristian

• tolera falhas de desempenho• não assume atraso máximo, mas assume um atraso

mínimo• nodo j requisita o valor do relógio de um nodo i e

corrige esse valor com base no atraso de leitura

Page 40: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Sincronização de Relógios

Mecanismos Básicos:Sincronização de Relógios

• Protocolos probabilísticos– Algoritmo de Cristian

• seja T o valor do relógio i quando a requisição de j é recebida e 2D o tempo de transmitir o pedido para i e receber a resposta:

– quando j recebe a mensagem o relógio de i lê um valor no

intervalo [T+min(1-), T+2D(1+2)-min(1+)]

– o valor médio do intervalo minimiza o erro

– o erro máximo dá a precisão da leitura

– quanto menor D maior a precisão

» para uma precisão e é preciso descartar todas as leituras

com atraso maior que 2U, onde U=(1-2)(+min)

Page 41: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável

• Qual a necessidade de se ter armazenagem estável?– Ter acesso à informação depois que uma falha

ocorre• uso de dispositivos de armazenagem não voláteis

– Recuperação para trás• leitura de pontos de salvaguarda

– Aumentar a fiabilidade de discos “de prateleira”

Page 42: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável

• Definição do problema– Toda informação que é gravada com sucesso

no tempo T, pode ser lida no tempo T’, T’>T• mesmo que falhas ocorram durante a operação• mesmo que os dispositivos sofram faltas físicas

– Cada bloco do disco tem um valor e um estado• o estado pode ser correto ou defeituoso

– Primitivas básicas de acesso ao disco• write(endereço, dado), retorna sucesso ou fracasso• read(endereço), retorna (estado, valor)

Page 43: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável

• Como tratar faltas em discos?– A maior parte pode ser tratada por meio de

codificação– Algumas faltas não podem ser tratadas assim

• falta transiente• setor defeituoso• falha da controladora• falha do disco

Page 44: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável

• Tratando os efeitos das faltas– Ao invés de enumerar todas as possíveis faltas,

é melhor estudar o impacto das mesmas• prover métodos para esconder/reverter os erros

– Eventos que ocorrem em um disco• leitura, gravação e espontâneos• desejáveis e não desejáveis

– É preciso mascarar os efeitos de eventos não desejáveis

Page 45: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável

• Eventos indesejáveis da operação read– Erro temporário

• bloco correto mas operação retorna bloco defeituoso

– Erro persistente• bloco correto mas operação retorna bloco

defeituoso, mesmo depois de sucessivas tentativas

– Erro não detectado• bloco está defeituoso mas operação retorna bloco

correto, ou bloco correto mas operação retorna um valor diferente do conteúdo do bloco

Page 46: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável

• Eventos indesejáveis da operação write– Escrita nula

• o bloco não é mudado

– Escrita incompleta• o bloco se torna defeituoso após a escrita

Page 47: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável

• Eventos espontâneos indesejáveis• Corrupção

– o bloco muda de correto para defeituoso

• Recuperação– o bloco muda de defeituoso para correto

• Erro não detectado– o bloco muda de valor

Page 48: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável

• Armazenagem estável usando um único disco– Primitivas básicas

• CarefulRead(e)– elimina erros temporários

• CarefulWrite(e, d)– elimina escrita nula e escrita incompleta

– Dividir disco em pares de blocos• informação duplicada

• independentes em relação a eventos espontâneos

• pelo menos um dos blocos sempre terá um estado correto

Page 49: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável

• Primitivas de acesso ao disco– StableRead(e)

• faz CarefulRead(e) em um dos pares; se não tiver sucesso, faz CarefulRead(e) no outro par

– StableWrite(e, d)• faz CarefulWrite(e, d) em um dos pares; quando a

operação retorna sucesso, faz CarefulWrite(e, d) no outro par

– Cleanup()• faz a consistência do disco após uma falha do nodo

(normalmente na inicialização do sistema)

Page 50: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável

• Eventos indesejáveis mascarados– erro de leitura temporário e persistente– escrita nula e defeituosa– corrupção de um bloco

• Eventos não mascarados– erros não detectados– quedas do disco ou do nodo

Page 51: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Armazenagem EstávelMecanismos Básicos:Armazenagem Estável

• Armazenagem estável usando replicação– Pares de blocos são organizados em discos

distintos– Discos espelhados

• Mascaram falhas do disco, controladora ou nodo• Boa aproximação de uma unidade de armazenagem

estável– só não mascara erros não detectados

– RAID’s

Page 52: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Entrega Confiável de Mensagens

Mecanismos Básicos:Entrega Confiável de Mensagens

• Definição do problema– Uma mensagem enviada de i para j é recebida

por j corretamente– Mensagens enviadas por i são entregues a j na

ordem em que foram enviadas

• Implementação– Detecção de erros– Ordenação e garantia de entrega– Tratamento de falhas

Page 53: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Entrega Confiável de Mensagens

Mecanismos Básicos:Entrega Confiável de Mensagens

• Como fazer comunicação um-para-muitos?– Broadcast– Multicast

• Propriedades de interesse– Fiabilidade– Ordenação consistente– Causalidade

Page 54: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Entrega Confiável de Mensagens

Mecanismos Básicos:Entrega Confiável de Mensagens

• Caracterização do sistema– Comunicação via troca de mensagens

– Sistema síncrono ()

– Relógios são sincronizados ()

– Semântica de falha arbitrária para os nodos– Até k nodos e l canais de comunicação podem

falhar– Não há partições da rede

Page 55: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Entrega Confiável de Mensagens

Mecanismos Básicos:Entrega Confiável de Mensagens

• O objetivo é garantir as seguintes propriedades:– terminação: todo valor disseminado por um

transmissor correto no tempo t é entregue a todos os nodos corretos no tempo t+

– atomicidade: qualquer mensagem disseminada no tempo t ou é entregue por todos os nodos corretos no tempo t+ ou não é entregue a nenhum nodo;

– ordem: as mensagens entregues são entregues na mesma ordem em todos os nodos corretos

Page 56: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Entrega Confiável de Mensagens

Mecanismos Básicos:Entrega Confiável de Mensagens

• Protocolo de Cristian (protocolo-)– Implementado por três processos

• Transmissor: inicia a transmissão de mensagens• Repetidor: difunde mensagens recebidas• Entregador: ordena e entrega mensagens estáveis

– Mensagens estáveis

• Para tolerar faltas por omissão: =k+Dk,l+• Para tolerar faltas de desempenho ou arbitrárias:=k(+)+Dk,l+

• Para redes completamente conectadas: =(k+1)(+)

Page 57: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Entrega Confiável de Mensagens

Mecanismos Básicos:Entrega Confiável de Mensagens

• Outros protocolos– Sistemas síncronos

• Protocolos baseados em temporizadores ao invés de relógios sincronizados

– Nodos Voltan e Seljuk

– Sistemas assíncronos (time-related)• Ordenação causal

– Isis, Horus e Ensemble– Transis– NewTOP

Page 58: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada

• Por que restringir a semântica de falhas de componentes?– Simplificação de projetos

• Como se escolhe a semântica de falha de componentes?– Qualidade do componente– Requisitos da aplicação– Tempo de missão

Page 59: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada

• Como implementar nodos com semântica de falha controlada– Replicando processadores com semântica de

falha menos restritiva– Máquina de estados

• processamento determinístico• submeter réplicas às mesmas entradas• validar saídas

Page 60: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada• Nodos com semântica de falha por parada

(fail-stop)– Propriedades de um nodo fail-stop

• falha silenciosa• armazenagem estável é mantida após a parada do

nodo• qualquer nodo pode detectar a falha de um nodo

fail-stop

Page 61: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada

• Implementação com armazenagem estável– Um nodo fail-stop k-resiliente é composto por k+1

processadores convencionais e um nodo confiável implementando armazenagem estável

– Assinatura digital para autenticar origem– Comunicação é feita via armazenagem estável– Pedidos de leitura/gravação são enviados por

cada processador para o nodo de armazenagem– Qualquer diferença entre os valores para o

mesmo pedido indicam uma falha do nodo

Page 62: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada

• Implementação sem armazenagem estável– Um nodo fail-stop k-resiliente é composto por k+1

processadores convencionais– O nodo de armazenagem estável é implementado

por 2k+1 processadores convencionais– Para escrever na armazenagem estável, um

acordo Bizantino é iniciado com o nodo de armazenagem; qualquer diferença nos valores do mesmo pedido indicam uma falha do nodo

– Para ler faz um broadcast e usa o valor majoritário

Page 63: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada• Implementação em hardware de um nodo

com semântica de falha silenciosa (crash)

processador

processador

comparadorentrada saída

Page 64: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada• Implementação em software

Receptor Transmissor

Validador

RemetenteOrdenador

ServidorDMQ

PMQ

RMQ

ICL

ECL

VMQ

Sim Não

Mensagens originadas da rede Mensagens destinadas à rede

Links

Links

Links

deve ser ordenada?

Links

Page 65: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada• Vantagens dos nodos hard

– Impacto mínimo no desempenho– Impacto mínimo no projeto do software

• Vantagens dos nodos soft– Possibilidade de uso de diversidade no projeto– Uso de componentes off-the-shelf– Facilidade de expansão– Maior robustez contra a ocorrência de faltas

geradas por uma causa comum

Page 66: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada

Mecanismos Básicos:Nodos com Semântica de Falha

Controlada• Como proceder?

– A escolha não é clara, porém ...– O tempo de projeto de nodos hard é longo

(entre 1 e 2 anos), e enfrenta alguns problemas sérios

– Para algumas aplicações, o impacto no desempenho introduzido nos nodos soft pode não ser muito grande

Page 67: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Replicando Componentes

Mecanismos Básicos:Replicando Componentes

• Estratégias de replicação– Replicação ativa

• modelo da máquina de estados– determinismo de réplicas– ordenação das entradas

• grau de replicação– sistema k-resiliente– semântica de falhas assumida

Page 68: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Replicando Componentes

Mecanismos Básicos:Replicando Componentes

• Estratégias de replicação– Replicação passiva

• primária e cópias• pontos de salvaguarda + detecção de falhas• mais simples quando não ocorrem falhas• réplicas podem ser não-determinísticas• recuperação mais lenta• só tolera faltas de componentes com semântica de

falha silenciosa

Page 69: Sistemas Distribuídos Francisco Brasileiro Aula 4: Tolerância a Falhas em Sistemas Distribuídos.

Mecanismos Básicos:Replicando Componentes

Mecanismos Básicos:Replicando Componentes

• Estratégias de replicação– Replicação semi-ativa

• tenta prover as vantagens das outras duas abordagens

– recuperação rápida– tratamento de não-determinismo

• só tolera faltas de componentes com semântica de falha silenciosa