A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação.

Apresentações semelhantes


Apresentação em tema: "Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação."— Transcrição da apresentação:

1 Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

2 Blocos básicos

3 Concordância bizantina acordo, consenso Clocks sincronizados Armazenamento estável Processadores fail-stop Entrega confiável de mensagens

4 Blocos básicos

5 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 Concordância bizantina

6 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 Problema dos generais bizantinos

7 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 Objetivo básico

8 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 Requisitos formais

9 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 Comentários

10 Problema com 3 nodos

11 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(n m ) n = # nodos m = # traidores Algoritmos de Lamport

12 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 Protocolo para mensagens orais

13 quatro nodos n = 4 todos os nodos tem um valor a transmitir 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 Exemplo

14 Node2 assume que resposta é x Valor arbitrário definido pelo algoritmo

15 Rodadas

16

17

18

19

20 ICA(0) 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 Algoritmo – Interactive Consistency Algorithm (ICA)

21 ICA(m), m>0 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 Algoritmo

22 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 ICA(m)

23 confirmação do valor transmitido pelo general ICA(m)

24

25

26 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 Comentários

27 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 Concordância bizantina

28 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 Relógios sincronizados

29 necessários para impor ordem total temporal a eventos importante em sistemas de tempo real lembrar a inexistência de relógio global 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) Relógios sincronizados

30 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 Sincronização de clocks

31 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 Modelo para sincr. interna

32 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 Comportamento do clock

33 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 Requisitos básicos para sincronização

34 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 Protocolos de sincronização de clocks

35 é 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 Protocolos determinísticos

36 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 Protocolo determinístico de Lamport

37 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 Protocolos probabilísticos

38 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 Sincronização externa

39 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) Global positioning system

40 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 Armazenamento estável

41 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 arquivos são facilmente perdidos em disco em uma memória estável ideal, dados gravados jamais são perdidos ou corrompidos Defeitos em discos

42 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 Implementações de memória estável

43 Redundant Array of Inexpensive Disks 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 RAID

44 RAID 1 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 RAID 1, 2 e 3

45 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 RAID 4, 5 e 6

46 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 Processadores fail-stop

47 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 Processadores fail-stop

48 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 Processadores fail-stop

49 importante 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) Implementação

50 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 Com armazenamento estável confiável

51 comporta-se como um processador fail-stop a menos que k+1 ou mais componentes falhem k-fail-stop

52 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 Implementação

53 após detecção de falha 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 Implementação

54 importante 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 Comentários

55 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 Sem armazenamento estável confiável

56 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 Entrega confiável de mensagens

57 Delivery Entrega confiável de mensagens

58 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 Propriedades

59 erros de transmissã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) Detecção de erros

60 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 Ordenação e entrega


Carregar ppt "Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação."

Apresentações semelhantes


Anúncios Google