Sistemas Distribuídos: Conceitos e Projeto Resiliência de Processos

Documentos relacionados
Sistemas Distribuídos Capítulo 8 - Aula 13

Sistemas Distribuídos Capítulo 8 - Aula 14

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Tolerância a Falhas. Sumário. Acordo Distribuído. December 18, Grupos de Processos

Sistemas Distribuídos Capítulo 8 - Aula 15

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Algoritmos Distribuídos Modelo Computacional

Sistemas Distribuídos

Sistemas Distribuídos

(Broadcast - um emissor envia a mensagem para todos os nós do sistema) Multicast um emissor, um grupo de processos como receptores

falhas em sistemas distribuídos

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos Capítulo 6 - Aula 12

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Algoritmos Distribuídos. AD Modelo Computacional 1

APLICAÇÕES EM SISTEMAS DISTRIBUÍDOS Prof. Ricardo Rodrigues Barcelar

Sincronização de Relógios e Relógios Lógicos. Histórico da comunicação. Tempo Global. Mecanismos de ordenação total

Sistemas Distribuídos Aula 15

Arquitectura de Sistemas Paralelos e Distribuídos Comunicação Multicast

Programação de Sistemas Distribuídos e Concorrência

Sincronização em Sistemas Distribuídos

Consistência. ncia. Sistemas Distribuídos e Tolerância a Falhas. Trabalho realizado por:

Sistemas Distribuídos

Sistemas Distribuídos Aula 17

Sistemas Distribuídos

Sistemas Distribuídos Aula 16

Sistemas Distribuídos: Conceitos e Projeto

falhas em sistemas distribuídos

Roteiro. Introdução Sincronização de Relógio Físico Sincronização de Relógio Lógico Exclusão Mútua

Organização e Arquitetura de Computadores I

AULA ANTERIOR: MODELOS FUNDAMENTAIS

Sistemas Distribuídos Exclusão Mútua. Edeyson Andrade Gomes

Redes de Computadores. Prof. MSc André Y. Kusumoto

Sincronização em Sistemas Distribuídos

Sistemas Distribuídos

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Relógio Lógico Algoritmo de Lamport. Relógio Lógico Algoritmo de Lamport. Relógio Físico Algoritmo Centralizado. Relógio Físico Algoritmo Centralizado

Exclusão Mútua Distribuída. Algoritmos para eleição de um coordenador ou líder. UBI, DI, Paula Prata SDTF T04 1

Coordenaçãoe consenso

Departamento de Informática

Sistemas Distribuídos. 7 Coordenação e Acordo. Coordenação e Acordo. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR

Modelos Fundamentais. Introdução. Interação. Falhas. Segurança. Prof. Adriano Fiorese

Introdução. Matemática Discreta. Prof Marcelo Maraschin de Souza

Sistemas Distribuídos. Capítulo 6 - Aula 10

Departamento de Informática Faculdade de Ciências e Tecnologia UNIVERSIDADE NOVA DE LISBOA

Tolerância a Falhas com Máquinas de Estado

Exclusão Mútua Distribuída. Algoritmos para eleição de um coordenador ou líder. UBI, DI, Paula Prata SDTF T04 1

Comunicação de Grupo: Disfusão Confiável e Atômica

Desenvolvimento de Aplicações Distribuídas

Ordenação. Sistemas Distribuídos e Tolerância a Falhas. Universidade da Beira Interior 07/08

Tolerância a Falhas. Reliable Broadcast e Atomic Commitment. June 2, 2010

Sistemas Distribuídos

Um Algoritmo Probabilista de Recuperação de Erros para Difusão Fiável

Sistemas Distribuídos

Licenciatura Plena em Computação

Dados em programas são estruturados, enquanto que mensagens carregam informação seqüencial: Linearização x Restauração de dados Requisição

Sistemas Distribuídos Grupos

A camada de enlace de dados executa diversas funções específicas. Dentre elas

Camada de Enlace de Dados

Redes de Computadores. Prof. André Y. Kusumoto

Tempos e Estados Globais. ECO036 - Sistemas Paralelos e Distribuídos

Flávio G F Camacho Vipnet Baixada Telecomunicações e Informática LTDA

Rede de computadores Protocolos UDP. Professor Carlos Muniz

Sistemas Distribuídos Estados globais. Vinícius Fernandes Soares Mota

LEIC/LERC 2008/09 2º Teste de Sistemas Distribuídos

1- Replicação de Dados - A replicação de dados permite lidar com falhas ao nível dos nós que impeçam o acesso

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Programação Distribuída. Arquiteturas

1- Replicação de Dados - A replicação de dados permite lidar com falhas ao nível dos nós que impeçam o acesso

LEIC/LERC 2007/08 Segundo Teste de Sistemas Distribuídos

Abordagem, Instalação e Realização de benchmarks para LibPaxos2 e RingPaxos

Canais de Comunicação

Sistemas entre Pares e Redes Sobrepostas

Aluísio Augusto Silva Gonçalves 17 de maio de 2018

Bancos de Dados Distribuídos. Lucas Henrique Samuel Queiroz

Redes de Computadores e Aplicações. Aula 37 Roteamento IP Unicast Dinâmico RIP

O que é um sistema distribuído?

Blockchain em Seguros Realidade e Possibilidades

Introdução aos Sistemas Distribuídos

Camada de Enlace de Dados

Introdução à Ciência da Computação Correção da AV1 de Prof. Fred Sauer

Sincronização. Tempo e Relógios. Sincronização de Relógios - Algoritmo de Cristian - Algoritmo de Berkeley - Network Time Protocol

Novas Propostas para Protocolos de Streaming Luiz Eduardo Fontes Mello de Almeida

Sistemas entre Pares e Redes Sobrepostas

# $ % & ' ( ) * ' ( ) *! " " Orientador +, -

Grupo I [7,5v] {H(M)}K1, {K2}K3, {M}K4

Disciplina Estruturas de Comunicação de Dados

AULA CRM: INTRODUÇÃO & VISÃO GERAL

Redes de Computadores

Sistemas Distribuídos

Sistemas Distribuídos

Experiência 04: Comandos para testes e identificação do computador na rede.

AULA 08 CRIPTOGRAFIA E SEGURANÇA DE DADOS CRIPTOGRAFIA ASSIMÉTRICA CHAVES E ALGORITMOS 03/03/2016 PROF. FABIANO TAGUCHI

Correção de Erros. Erros de memória de semicondutores podem ser:

Transcrição:

Sistemas Distribuídos: Conceitos e Projeto Resiliência de Processos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática / UFMA http://www.lsd.ufma.br 24 de julho de 2013 Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 1 / 19

Resiliência Propriedade de um material de recuperar a sua forma ou posição original após sofrer choque ou deformação; elasticidade; Poder de recuperação. Capacidade de superar, de recuperar de adversidades; Capacidade de um ecossistema retornar à condição original de equiĺıbrio após suportar alterações ou perturbações ambientais. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 2 / 19

Resiliência de Processos A resiliência de processos preocupa-se em criar mecanismos de proteção a processos, tentando fazer com que os mesmos sobrevivam a eventuais falhas em um sistema; Uma forma de tornar um processo resiliente é a utilização de processos redundantes (redundância física); Um aspecto chave para contornar falhas de processos é organizar vários processos idênticos em um grupo no qual todos os processos recebam todas as mensagens enviadas ao mesmo. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 3 / 19

Questões de Projeto: Grupos Simples vs Grupos Hierárquicos Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 4 / 19

Questões de Projeto: Grupos Simples vs Grupos Hierárquicos Grupo Simples: Todos os processos são iguais Decisões são tomadas coletivamente Vantagens: Não tem ponto de falha único Mesmo que um processo caia, o grupo continua a oferecer o serviço Desvantagem: Tomada de decisão pode ser complicada, com necessidade de uma votação atraso Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 5 / 19

Questões de Projeto: Grupos Simples vs Grupos Hierárquicos Grupo Hierárquico: Existe um processo coordenador, os demais são denominados operários Sempre que uma requisição é gerada, é enviada ao coordenador O coordenador decide qual é o operário mais adequado para executá-la Vantagem: Decisões decididas de forma simples, já que é centralizada Desvantagem: Perda do coordenador provoca parada repentina Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 6 / 19

Questões de Projeto: Associação a um Grupo Problemas: Como criar e eliminar grupos? Como permitir que processos se juntem e saiam dos grupos? Abordagens: 1 Servidor de grupos 2 Gerenciamento distribuído Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 7 / 19

Servidor de Grupos Todas as requisições são enviadas a este servidor Mantem um banco de dados completo de todos os grupos e seus associados Método direto, eficiente e razoavelmente fácil de implementar Problemas: Se o servidor de grupo cair, o gerenciamento deixa de existir Provavelmente, grupos deverão ser reconstituídos do zero Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 8 / 19

Gerenciamento Distribuído Se existe multicast confiável, um processo pode enviar uma mensagem a todos os membros do grupo anunciando que deseja se juntar ao mesmo; Para sair de um grupo, o processo deveria mandar uma mensagem. No entanto, é difícil de prever quedas! Membros tem que descobrir quedas experimentalmente; Os métodos Entrar/Sair de um grupo devem ser síncronos com as mensagens enviadas/recebidas: a partir do momento que um processo se junta ao grupo, ele deve receber todas as mensagens já enviadas. Ao sair, ele não deve mais receber mensagens do grupo e nem este deve receber mensagens dele. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 9 / 19

k-tolerância a Falhas Um sistema é k-tolerante a falha se puder sobreviver a falhas em k componentes e ainda assim cumprir suas especificações; Quanta redundância é necessária? 1 Falhas silenciosas : se k pararem sem propagar informações erradas, basta ter k +1 processos 2 Falhas bizantinas: é preciso um mínimo de 2k + 1 processadores para conseguir k-tolerância. Uma precondição impĺıcita relevante é que todas as requisições cheguem a todos os servidores na mesma ordem. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 10 / 19

Acordo em Sistemas com Falhas Em muitos casos, um grupo de processos deve chegar a um acordo: eleger um coordenador, decidir a validação de uma transação, etc. Objetivo: Todos os processos que não apresentam falhas devem chegar a um consenso sobre alguma questão, dentro de um número finito de etapas; Premissas diferentes sobre o sistema requerem soluções diferentes: se o atraso de comunicação é limitado ou não; se a entrega de mensagens é ordenada ou não; se a transmissão de mensagens é feita em unicast ou multicast. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 11 / 19

Problema dos Dois Exércitos Vamos considerar um caso simples: processos são perfeitos mas a comunicação pode perder mensagens; Um exército vermelho de 5000 homens está acampado em um vale. Dois exércitos azuis de 3000 homens cada estão acampados em colinas próximas; Se o exército azul conseguir coordenar o ataque será bem sucedido. Caso contrário será destruído; General Alexandre envia uma mensagem ao general Bonaparte contendo vamos atacar amanhã ao anoitecer ; O mensageiro entrega a mensagem e recebe uma outra contendo combinado ; Alexandre recebe a confirmação e prepara suas tropas; No dia seguinte, Alexandre percebe que se Bonaparte não tiver certeza que ele recebeu suas mensagem de confirmação poderá não atacar e decide enviar um mensageiro com uma mensagem de confirmação. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 12 / 19

Problema dos Dois Exércitos Novamente Bonaparte recebe a mensagem mas agora fica preocupado que se Alexandre não receber uma confirmação poderá não atacar; Esta situação se repetirá continuamente. Mesmo que se estabeleça uma quantidade finita de passos, ainda assim o último que enviar uma confirmação não terá certeza se sua mensagem foi entregue; Conclusão: mesmo que processos não falhem, a concordância entre dois processos é impossível caso a comunicação não seja confiável. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 13 / 19

Problema do Acordo Bizantino O exército vermelho continua acampado no vale mas agora existem n generais azuis com exércitos acampados na colinas; A comunicação é feita por telefone aos pares e é instantânea e perfeita; No entanto, m generais são traidores; Definição do problema: como obter consenso entre os componentes de um sistema distribuído que não falham onde componentes podem exibir falhas bizantinas, ou seja, um componente pode enviar valores diferentes a componentes diferentes para o mesmo dado? Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 14 / 19

Problema do Acordo Bizantino: Lamport 1982 Premissas: processos síncronos (atrasos de mensagens e diferenças entre a velocidade relativa de processadores são limitados), mensagens unicast, ordenação preservada e o atraso de comunicação limitado; Sistema: N processos, onde cada processo i forneça um valor v i aos demais; Objetivo: Cada processo deve construir um vetor V de comprimento N tal que, se o processo i não for faltoso, V[i] = v i. Caso contrário, V[i] é indefinido. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 15 / 19

Passos do Algoritmo Lamport 82 1 Cada general envia uma mensagem a todos os demais generais anunciado suas forças; 2 Os resultados do passo 1 são coletados e mantidos em vetores; 3 Cada general passa seu vetor a todos os demais generais; 4 Cada general decide se existe para cada entrada no vetor maioria. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 16 / 19

Problema do Acordo Bizantino: Lamport 1982 Figura: Três generais leais e um traidor (a): generais anunciam suas forças (b): vetores de cada general baseados na informação do passo a (c): o vetor de cada general após o passo 3 Todos os generais concluem que as forças são: (1, 2, não sei, 4); Portanto, o traidor não conseguiu corromper a informação dos generais leais. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 17 / 19

Problema do Acordo Bizantino: Lamport 1982 Figura: Mesmo problema para dois generais leais e um traidor Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 18 / 19

Problema do Acordo Bizantino: Lamport 1982 Neste caso, o algoritmo falha em produzir concordância; Lamport provou que em um sistema com k processos faltosos, a concordância somente poderá ser atingida caso 2k + 1 processos continuem operando normalmente de um total de 3k + 1 processos; Ou seja, são necessários mais de dois terços de processos operando corretamente; Fischer et al. em 1985 provou que em um sistema distribuído no qual mensagens não podem ser entregues em um tempo conhecido finito, não é possível atingir concordância mesmo que apenas um processo falhe (a não ser que falhem silenciosamente); A essência do problema está em como distinguir se um processo caiu ou está muito lento. Francisco Silva (UFMA/LSD) SD: Princípios e Algoritmos 24 de julho de 2013 19 / 19