Carlos Oberdan Rolim Ciência da Computação

Slides:



Advertisements
Apresentações semelhantes
O Modelo OSI O RM-OSI é um modelo de referência p/ interconexão de sistemas abertos (open systems interconection) Padrão ISO 7498, publicado em 1984 Sistemas.
Advertisements

Aula 3 – Transmissão Digital
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Redes de computadores I
Sistemas distribuídos
Barramentos Introdução.
Bruno Rafael de Oliveira Rodrigues
Sistemas Operacionais - 6
Tolerância a falhas Módulo 5 [C11,C15,T4.5] (65 p.)
Capítulo 2: Modelo de Computação distribuída
Capítulo 4: Estado Global
TCP Serviço de Transporte Confiável
Protocolos e Divisão em Camadas
Sistemas Distribuídos
Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 5: Modelos de Sistemas Distribuídos.
Sistemas Distribuídos
Sistemas Distribuídos
Sistemas Distribuídos Walfredo Cirne & Fubica Brasileiro Aula 5: Modelos de Sistemas Distribuídos.
Carolina Fonseca Neumar Ribeiro
The Byzantine Generals Problem
Fabio Notare Martins Pontifícia Universidade Católica do Rio Grande do Sul Programa de Pós-Graduação em Ciências da Computação.
Tolerância a Falhas em redes Intra-Chip
Modelos Fundamentais -> Interação Falhas Segurança.
Questões Resolvidas - A.C.-10/08/05
Modelo OSI OSI é um modelo de referência para interligação de sistemas abertos (open systems interconection) Padrão ISO 7498, publicado em 1984 Sistemas.
PROBABILISTC CLOCK SYNCHRONIZATION
Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º
Sistemas Distribuídos
Tópicos em Sistemas Distribuídos
Protocolo CMB em simulação distribuída
REDUNDÂNCIA POR SOFTWARE
Sistemas Distribuídos
Sistemas Distribuídos
Redundant Array of Independent Drives Raid
Agenda Memória Secundária RAID.
Tópicos em redes e sistemas distribuídos B Carlos Oberdan Rolim Ciência da Computação.
Sistemas Distribuídos
Difusão de Mensagens Broadcast confiável, atômico e causal
Carlos Oberdan Rolim Ciência da Computação
Carlos Oberdan Rolim Ciência da Computação
Carlos Oberdan Rolim Ciência da Computação
Tolerância a Falhas em Sistemas Distribuídos
Protocolos de Recuperação
O Problema Do Acordo Distribuído (Acordo Bizantino)
Entrada e Saída (E/S ou I/O)
Universidade da Beira Interior Processadores Fail-Stop Trabalho realizado por: Rui ferreira Nº Eng. Informática.
Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º
Comunicação de dados Protocolos básicos de enlace de dados.
Protocolos de Janela Deslizante
Prof. Cristiano Forte Aula 4
Sistemas Tolerantes a Falhas: Conceitos e Técnicas
Impossibility of Distributed Consensus with One Faulty Process Michael J. Fischer Nancy A. Lynch Michael S. Paterson 1985 Apresentado por Nazareno Andrade.
Técnicas de Replicação
Testes de Software AULA 02 Eduardo Silvestri
Fundamentos de Comunicação de Dados e Protocolos de Rede
Entrada e Saída (E/S).
PROGRAMAÇÃO DISTRIBUÍDA Aula 02 Prof. Henrique Mongelli
Subsistema de Entrada e Saída do Kernel
Protocolo MODBUS [ Slide de Abertura com a presença de outras logomarcas ] A segunda opção é a mais apropriada para a presença de mais de duas marcas.
Memória.
Detecção e Correção de Erros
Sistemas Operacionais IV – Gerenciamento de E/S
Rede de Computadores MAT164 – Redes de Computadores I Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação.
Serviço de tempo, Exclusão Mútua, Eleição e Acordo Prof. Dr. Norian Marranghello Grupo 5 Anuar Mamede Neto Eduardo Hitoshi Aoki.
1 Redes de computadores e a Internet  1.1 Evolução Histórica das Redes de Dados  1.2 Terminologia de Teleprocessamento  1.3 Formas de Utilização do.
Sistemas Distribuídos
Prof. Ivair Teixeira Redes de Computadores.
Lucas R. Costa Rodrigo R. Bezerra Kaio A. da silva
Transcrição da apresentação:

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

Blocos básicos

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

Blocos básicos

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

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

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

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

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

Problema com 3 nodos

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

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

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

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

Rodadas

Rodadas

Rodadas

Rodadas

Rodadas

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

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

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

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

ICA(m)

ICA(m)

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

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

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

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)

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

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

Entrega confiável de mensagens Delivery

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

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)

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