Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Carlos Oberdan Rolim Ciência da Computação
Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação
2
Blocos básicos
3
Blocos básicos Concordância bizantina Clocks sincronizados
acordo, consenso Clocks sincronizados Armazenamento estável Processadores fail-stop Entrega confiável de mensagens
4
Blocos básicos
5
Concordância bizantina
problema dos generais bizantinos alcançar consenso na presença de traidores defeitos bizantinos quando um sistema apresenta defeito, seu comportamento pode ser totalmente arbitrário nodo pode enviar informações diferentes para os diferentes componentes com quem se comunica defeito em um componente do sistema é uma falha no sistema
6
Problema dos generais bizantinos
generais sitiam cidade inimiga alguns generais são traidores devem chegar a consenso sobre atacar ou recuar generais traidores não devem poder atrapalhar o consenso traidores não podem provocar divisão: alguns atacam e outros recuam concordância bizantina consenso na presença de falhas arbitrárias
7
Objetivo básico consenso entre todos os nodos sem defeitos (não traidores) não traidores devem tomar a mesma decisão devem obter o mesmo conjunto de valores e executar o mesmo algoritmo sobre os valores traidores podem enviar valores diferentes para nodos diferentes
8
Requisitos formais todos os nodos não traidores usam o mesmo valor v(i) para o nodo i não necessariamente o valor recebido do nodo i se o nodo transmissor i é não traidor então todo nodo não traidor usa o valor v(i) transmitido por i não interessam os valores que os traidores usam não interessam os valores transmitidos por traidores
9
Comentários um traidor pode agir maliciosamente atrapalhando o consenso traidores podem enviar valores diferentes para diferentes nodos mensagens de confirmação podem ser falsificadas pelos traidores consenso é impossível em sistemas assíncronos mesmo com um único traidor mesmo quando só ocorrem falhas de crash
10
Problema com 3 nodos
11
Algoritmos de Lamport Lamport 82 (Lamport, Shostak e Pease)
sistemas síncronos sistema totalmente conectado mensagens orais: n ≥ 3 m +1 algoritmo de consistência interativa (ICA) mensagens assinadas: n ≥ m + 2 grande número de rodadas: m + 1 grande número de mensagens: O(nm) n = # nodos m = # traidores
12
Protocolo para mensagens orais
mensagens comuns, sem assinatura n nodos, m traidores solução possível para n ≥ 3m+1 A1: toda mensagem enviada é recebida corretamente A2: o receptor sabe quem enviou a mensagem A3: a ausência de uma mensagem pode ser detectada (time-out) premissas: sistema é síncrono
13
Exemplo quatro nodos todos os nodos tem um valor a transmitir n ≥ 3m+1
cada valor transmitido deve ser confirmado entre os nodos receptores antes de ser aceito n ≥ 3m+1 os valores são resultado de computações diferentes e cada um sozinho não está certo nem errado interessa apenas que no final todos os nodos concordem sobre o mesmo valor
14
Exemplo Node2 assume que resposta é x
Valor arbitrário definido pelo algoritmo
15
Rodadas
16
Rodadas
17
Rodadas
18
Rodadas
19
Rodadas
20
Algoritmo – Interactive Consistency Algorithm (ICA)
o general envia o seu valor para os outros n-1 nodos do sistema cada nodo usa o valor recebido, ou default se não recebeu nenhum valor – (fim da recursão) n = número de nodos m = número de traidores
21
Algoritmo ICA(m), m>0 nodo i para cada nodo i:
v(i) (valor recebido pelo nodo i ou default), nodo i atua como general em ICA(m-1) enviando v(i) para os demais n-2 nodos (confirmação do valor) para cada nodo i: v(j) valor recebido do nodo j (j ≠ i) nodo i usa valor maioria(v(1), ..., v(n-1)) o general envia o seu valor para os outros n-1 nodos
22
ICA(m) cada general difunde seu valor para todos os nodos do sistema
cada um dos demais nodos será também general transmitindo seu valor aos demais na rodada 1
23
ICA(m) confirmação do valor transmitido pelo general
24
ICA(m)
25
ICA(m)
26
Comentários ICA(m) deve ser usado por todos os nodos para alcançar consenso cada nodo é uma vez general na rodada 1 cada nodo participa da confirmação dos valores dos demais nodos (rodada 2) usando ICA(m) em cada nodo, cada nodo do sistema terá o mesmo valor assumido para todos os outros nodos não necessariamente o valor transmitido por cada nodo
27
Concordância bizantina
algoritmo de Lamport ótimo em relação ao número de rodadas mas exige número exponencial de mensagens outros algoritmos foram propostos alguns mais eficientes em relação ao número de mensagens alguns suportam sistemas não totalmente conectados alguns suportam sistemas assíncronos através de procedimentos randômicos comentários finais
28
Relógios sincronizados
ordem total temporal sincronização externa manter clocks com desvio máximo em relação a referência externa de tempo poderia ser usado GPS sincronização interna manter clocks com desvio relativo máximo aceitável entre si facilitaria a implementação de serviços tolerantes a falhas importante em sistemas de tempo real GPS não evita a necessidade de algoritmos de sincronização NTP não é solução
29
Relógios sincronizados
lembrar a inexistência de relógio global necessários para impor ordem total temporal a eventos importante em sistemas de tempo real facilitam a implementação de vários serviços a sincronização de relógios de tempo real é uma tarefa de alto custo, pois envolve grande quantidade de mensagens, e deve ser evitada se possível a maior parte dos problemas de ordenação em sistemas convencionais, inclusive ordenação total, pode ser resolvida com clocks lógicos (Lamport)
30
Sincronização de clocks
problemas clocks diferentes podem marcar tempos diferentes e ter velocidades diferentes valores de cada clock devem ser comunicados para haver sincronização retardo na rede de comunicação pode variar randomicamente maior problema: clocks com defeito cada nodo tem um relógio informam valores diferentes a cada leitura
31
Modelo para sincr. interna
hipóteses assumidas: um clock físico em cada nodo controlado por um processo o processo informa o valor do seu clock aos demais nodos falhas no clock podem ser modeladas como falhas do seu processo controlador Ci(t) - leitura de Ci no tempo físico t relógio é contínuo
32
Comportamento do clock
falho comportamento arbitrário sem falha valor é próximo do tempo físico desvio é limitado por uma constante ρ para relógios com cristal: ρ da ordem de 10-5
33
Requisitos básicos para sincronização
S1 - a qualquer tempo, o valor de todos os clocks sem defeito deve ser aproximadamente igual |Ci(t) - Cj(t)| ≤ β S2 - existe um pequeno limite Σ no valor que um clock sem defeito pode ser corrigido a cada nova sincronização evitar grandes saltos e evitar que todos os relógios estejam parados
34
Protocolos de sincronização de clocks
determinísticos requisitos S1 e S2 são garantidos limites são garantidos requer hipóteses sobre retardo de mensagens probabilísticos não requer hipóteses sobre retardo máximo de mensagens garante precisão com uma determinada probabilidade a qualquer tempo, o valor de todos os clocks sem falha deve ser aproximadamente igual; existe um pequeno limite Σ no valor que um clock sem falha pode ser corrigido a cada resincronização
35
Protocolos determinísticos
é garantida a precisão requerida é assumido um limite máximo para o retardo de mensagens similar ao problema dos generais bizantinos cada processo lê todos os clocks do sistema e determina o novo valor do seu clock como a média de todos os valores devido a clocks maliciosos, valores lidos não podem ser diretamente usados necessidade de consenso
36
Protocolo determinístico de Lamport
Lamport e Melliar-Schmith (1985) semelhante ao algoritmo de mensagem orais em concordância bizantina solução possível apenas se o número de clocks falhos é menor que n/3 sincronização mais próxima que pode ser obtida: (max - min)(1 - 1/n) max - maior tempo de retardo, min - menor tempo de retardo, n - número de nodos
37
Protocolos probabilísticos
sincroniza clocks apesar de retardos arbitrários na rede hipótese: relógios maliciosos não existem comportamento arbitrário é excluído relógios são sincronizados com alta probabilidade não requer hipóteses sobre retardo máximo de mensagens assume que relógios bizantinos não existem, assim o problema não precisa ser tratado como consenso bizantino garante precisão com uma determinada probabilidade
38
Sincronização externa
necessária referência externa Global Positioning System (após 1990) referência externa mundialmente disponível sincronização da ordem de milisegundos fortemente recomendado para sistemas de tempo real infelizmente ainda não totalmente incorporado a sistemas comerciais
39
Global positioning system
rede de satélites que difunde valores altamente acurados de tempo real desenvolvido para suporte a sistemas de localização baixo custo modelo de falhas do GPS usual: crash distorções atmosféricas problemas com antenas (recepção do sinal)
40
Armazenamento estável
TF assume: parte do estado do sistema permanece disponível mesmo após defeito do sistema essencial em vários esquemas de suporte a tolerância a falhas armazenamento estável conteúdo é preservado apesar de falhas disco magnético não é considerado armazenamento estável confiável armazenamento estável ideal não pode ser implementado na prática
41
Defeitos em discos transientes bad sector defeito na controladora
dados no meio magnético não são perdidos defeito de disco o conteúdo não pode ser mais recuperado discos são memórias não voláteis e muitas vezes usados como se fossem memórias estáveis em uma memória estável ideal, dados gravados jamais são perdidos ou corrompidos arquivos são facilmente perdidos em disco
42
Implementações de memória estável
sombreamento de disco conjunto de imagens idênticas de um disco em dispositivos separados caso particular: espelhamento 2 discos exemplo: computadores Tandem discos são de porta dual e conectados a dois controladores aproximações de memória estável
43
RAID Redundant Array of Inexpensive Disks bit interleaving
propostos inicialmente para diminuir custos de armazenamento e prover alta velocidade bit interleaving entrelaçamento de bits: aumenta velocidade permitindo operação em paralelo, mas diminui confiabilidade solução: mais alguns discos no array independentes
44
RAID 1, 2 e 3 RAID 1 RAID 2 RAID 3 método mais caro (100% redundância)
dois discos idênticos espelhados RAID 2 bits entrelaçados palavra + código correção de 1 bit ou detecção de 2 bits número de discos depende do algoritmo de correção RAID 3 bits entrelaçados + disco extra para paridade método mais caro (100% redundância) só permite verificação de paridade
45
RAID 4 , 5 e 6 RAID 4 como RAID 3, mas com setores entrelaçados RAID 5 como RAID 3 mas sem disco de paridade paridade é distribuída pelos discos do sistema RAID 6 como RAID 5, mas com mais um disco de paridade (além da paridade distribuída) dois discos podem falhar sem perda de dados pode trocar drive defeituoso com sistema em operação pode ser implementado em um único disco físico pode ser implementado a partir de dois discos mais popular degrada para RAID 5 quando 1 disco está defeituoso
46
Processadores fail-stop
em caso de defeito, nodo cessa operação sem realizar qualquer ação incorreta comportamento fail-stop assumido por grande parte dos esquemas de TF processadores reais não são fail-stop processadores reais com defeito se comportam de maneira arbitrária nodos aproximadamente fail-stop podem ser construídos a partir de processadores reais (k fail-stop) exemplo: Stratus
47
Processadores fail-stop
nodo cessa operação sem realizar qualquer ação incorreta em caso de defeito comportamento mais simples possível facilita a construção de tolerância a falha efeitos visíveis após defeito o nodo pára qualquer execução o estado interno e a memória volátil são perdidos (sem recuperação), o estado da memória estável não é alterado qualquer nodo pode detectar falha em um nodo fail-stop
48
Processadores fail-stop
fail-stop: premissa usual em TF mas processadores reais com defeito se comportam de maneira arbitrária nodos fail-stop a partir de processadores reais é impossível construir sistemas que suportam defeitos de um número qualquer de componentes processador k-fail-stop comporta-se como um processador fail-stop, a não ser que k+1 ou mais componentes do sistemas falhem aproximação de um processador fail-stop ideal
49
Implementação importante implementações possíveis:
o funcionamento do processador fail-stop dependerá da confiabilidade do dispositivo de armazenamento estável implementações possíveis: com armazenamento estável confiável Fred B. Schneider (1983) sem armazenamento estável confiável Fred Schneider (1984)
50
Com armazenamento estável confiável
processador k-fail-stop: k+1 processadores comuns processador Ps rede confiável origem da mensagem pode ser autenticada pelo receptor clocks sincronizados e na mesma velocidade de todos os processadores sem falha e do processador Ps hipóteses comportamento bizantino proc. de armazenamento opera corretamente e não falha implementado por assinatura digital
51
k-fail-stop comporta-se como um processador fail-stop a
menos que k+1 ou mais componentes falhem
52
Implementação k+1 procs executam o mesmo programa
envio de mensagens a Ps mensagem requisitando read ou write procs sem falha executam a mesma sequência de acessos a Ps detecção de falha por Ps se pelo menos uma requisição é diferente das demais se o número de requisições é menor que k+1 dentro de uma janela de tempo
53
Implementação após detecção de falha liga variável FAILED
Ps bloqueia a execução de qualquer read ou write subsequente bloqueio do armazenamento estável = bloqueio de processamento liga variável FAILED FAILED pode ser lida por outros processadores fail-stop da rede
54
Comentários importante exemplo: Stratus
todos os processadores estão com relógios sincronizados operações são executadas sobre o armazenamento Estável apenas se todos os k+1 processadores não apresentarem falha votação por maioria não funciona nesse caso exemplo: Stratus k = 1 Ps apenas uma interface
55
Sem armazenamento estável confiável
necessário implementar Ps confiável processador k-fail-stop: k+1 processadores comuns Pp 2k+1 processadores Ps se k falham, sobram k+1 Ps sem falha clocks sincronizados mensagens assinadas solução concordância bizantina
56
Entrega confiável de mensagens
comunicação ponto a ponto linhas de comunicação reais perdem mensagens e introduzem ruído exigências: confiabilidade mensagem não é corrompida ordenação ordem é preservada entre dois nodos
57
Entrega confiável de mensagens
Delivery
58
Propriedades P1. - uma mensagem enviada por i é recebida corretamente por j P2. - mensagens enviadas por i são entregues (delivered) para j na ordem em que foram enviadas por i devem valer mesmo em caso de defeitos em nodos ou links idealmente devem valer mesmo no caso de particionamento da rede suportadas por protocolos de comunicação
59
Detecção de erros erros de transmissão detecção por codificação
inevitáveis ruído térmico atenuação de sinal ruído induzido cross talk (interferência cruzada) detecção por codificação paridade, códigos de correção e detecção e CRC (cyclic redundancy codes)
60
Ordenação e entrega redes de comunicação reais
pacotes podem ser perdidos protocolo de comunicação assegura confiabilidade mesmo com rede não confiável numeração de mensagens retransmissão de mensagens
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.