Sistemas Distribuídos Capítulo 8 - Aula 15

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

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

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

Sistemas Distribuídos Capítulo 8 - Aula 14

Sistemas Distribuídos Aula 15

Sistemas Distribuídos Capítulo 8 - Aula 13

falhas em sistemas distribuídos

Sincronização em Sistemas Distribuídos

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

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

Sistemas Distribuídos

Sincronização em Sistemas Distribuídos

SISTEMAS DISTRIBUÍDOS

falhas em sistemas distribuídos

Sistemas Distribuídos

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

Transmissão Multicast Confiável e Experimentos na Internet

Redes de Computadores

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

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

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

Sistemas Distribuídos Capítulo 6 - Aula 12

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

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

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

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

Ordenação. Relógios lógicos

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

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

Comunicação orientada a mensagens

Sistemas Distribuídos. Capítulo 7 - Aula 16

Sistemas Distribuídos Capítulo 6 - Aula 10

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

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

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

Tempo e sincronização

Sistemas Distribuídos Aula 15

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

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Redes de Computadores

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços

Capítulo 3. A camada de enlace de dados

Protocolo de transporte em tempo-real (Real- Time Transport Protocol) Definido na RFC 3350 Normalmente usado sobre o UDP Serviços

Sistemas Distribuídos Aula 16

Sistemas Distribuídos

Tolerância a Falhas. especialmente em grades

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

Tolerância a Falhas com Máquinas de Estado

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

Redes de Computadores

SISTEMAS DISTRIBUÍDOS

Vamos fazer um pequeno experimento

Sistemas Distribuídos

Fundamentos de Sistemas Operacionais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar

Sistemas Distribuídos

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

TCP - formato do segmento. Formato do segmento TCP (fonte: Kurose)

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

Relógios Lógicos. Sumário. November 27, Relação Happened-Before. Relógios de Lamport. Relógios Vectoriais

Sistemas Distribuídos

Redes de Computadores

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

Desenvolvimento de Aplicações Distribuídas

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Redes de Computadores. Prof. André Y. Kusumoto

2 Fundamentação Conceitual

Sistemas Distribuídos

Nível de Rede. Modelo de Referência OSI GCAR

AULA ANTERIOR: MODELOS FUNDAMENTAIS

Camada de Transporte. Protocolos TCP e UDP

Modelos Fundamentais de um SD. Modelo de Interação ou Sincronismo

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

Capítulo 3 Camada de transporte

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

Protocolos TCP e UDP. Protocolo TCP. Protocolo TCP. A necessidade de uma comunicação segura: Transmission Control Protocol

Sistemas Distribuídos

Sumário. 1 Caracterização de Sistemas Distribuídos 1. 2 Modelos de Sistema Redes de Computadores e Interligação em Rede 81

Nível de Enlace. Nível de Enlace. Serviços. Serviços. Serviços. Serviços. Serviços oferecidos os nível de rede

Redes de Computadores

Evandro Deliberal Aula 04

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

Modelos Fundamentais de um SD. Modelo de Interação ou Sincronismo

Sistemas Distribuídos: Conceitos e Projeto

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

Trabalho do Curso de Redes de Computadores COS765/MAB /1

Redes de Computadores. Prof. André Y. Kusumoto

Sistemas Operacionais II

Nível de Rede. Funções do nível de rede GCAR

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

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

Capítulo 3 Camada de transporte

AULA 3 - REDES. Prof. Pedro Braconnot Velloso

Barramento. Prof. Leonardo Barreto Campos 1

Redes de Computadores 2 o Teste

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

Sistemas Distribuídos Grupos

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

SSC0641 Redes de Computadores

Transcrição:

Sistemas Distribuídos Capítulo 8 - Aula 15 Aula de hoje Aula Passada Comunicação Confiável Cliente-Servidor Comunicação Confiável de Grupo Comunicação Confiável de Grupo Multicast Atômico Sincronia Virtual Ordenação de Mensagens Recuperação 1

Multicast Atômico Sincronia Virtual Como implementar? Sistema distribuído possui uma camada de comunicação, que gerencia o recebimento das mensagens em um buffer local, até que possa ser entregue à aplicação

Multicast Atômico Sincronia Virtual Como implementar? Uma mensagem m está associada com uma lista de processos aos quais deve ser entregue Lista de entrega corresponde a uma visão do grupo Todos os processos possuem a mesma visão, concordando que m deve ser entregue a cada um deles e a nenhum outro processo

Multicast Atômico Sincronia Virtual Suponha que a mensagem m seja enviada em multicast no instante que seu remetente tem visão de grupo G Se um processo entra ou sai do grupo, ocorre uma mudança de visão Duas mensagens: m e a de entrada/saída do novo processo (vc) Garantir que todos os processos em G recebam m antes de vc, evitando inconsistência

Multicast Atômico Sincronia Virtual Multicast confiável garante que uma mensagem enviada em multicast para a visão de grupo G seja entregue a cada processo não faltoso em G Se o remetente cair durante o multicast, a mensagem pode ou ser entregue a todos os processos restantes ou ser ignorada por cada um deles multicast virtualmente síncrono (Birman e Joseph, 1987) Mensagens multicast ocorrem entre mudanças de visão

Multicast Atômico Sincronia Virtual

Multicast Atômico Sincronia Virtual Uma mudança de visão é considerada uma barreira pela qual nenhum multicast pode passar! Aplicação de sincronia virtual: Isis implementações de ferramentas para desenvolvimento de SDs tolerantes a falhas: gerenciamento de replicação de dados, sincronização de computação distribuída, reconfiguração dinâmica de um sistema

Multicast Atômico Ordenação de mensagens Tipos de ordenação das mensagens Multicasts não ordenados Multicasts ordenados em Fifo Multicasts ordenados por causalidade Multicasts totalmente ordenados

Multicast Atômico Ordenação de mensagens Multicast confiável não ordenado Não são dadas garantias quanto à ordem na qual as mensagens recebidas são entregues aos diferentes processos

Multicast Atômico Ordenação de mensagens Multicast confiável ordenado em Fifo Camada de comunicação é forçada a entregar as mensagens que chegam do mesmo processo na mesma ordem em que elas foram enviadas

Multicast Atômico Ordenação de mensagens Multicast confiável ordenado por causalidade Entrega de mensagens de modo que a potencial causalidade entre mensagens diferentes seja preservada Se m 1 precede uma outra mensagem m 2 por causalidade, independentemente de terem sido enviadas por processos diferentes, camada de aplicação sempre entregará m 2 após ter recebido e entregado m 1 Utilização de relógios vetoriais

Multicast Atômico Ordenação de mensagens Multicast confiável com entrega totalmente ordenada Significa que as mensagens devem ser entregues na mesma ordem a todos os membros do grupo Entregas podem ser dos tipos não ordenada, ordenada em Fifo ou ordenada por causalidade

Multicast Atômico Ordenação de mensagens

Recuperação Essência: Quando ocorre uma falha no sistema, é necessário levar o sistema para um estado livre de erro Recuperação de um erro é fundamental em tolerância a falhas

Estratégias para Recuperação Duas formas principais: Recuperação retroativa: Retorna o sistema a algum estado que antes estava correto, continuando a execução após a recuperação. Mecanismo de ponto de verificação (estado presente do sistema é registrado) Recuperação para frente: Tentativa de levar o sistema para um próximo estado correto.

Estratégias para Recuperação (1) Recuperação retroativa: Comunicação multicast confiável retransmissão de pacote (2) Recuperação para frente: recuperação de pacotes a partir de outros pacotes (FEC)

Estratégias para Recuperação Desvantagem da recuperação para frente: É preciso saber de antemão quais erros podem ocorrer. Tendo conhecimento de todos os erros e como levar o sistema para um estado correto, é possível recuperar totalmente o sistema.

Estratégias para Recuperação Desvantagens da recuperação retroativa: (1) Pontos de validação podem ser caros para serem implementados (2) Não existem garantias que o erro não acontecerá novamente (3) Em alguns casos não é possível retroagir a um estado sem erros (ex. comando rm -rf *!!)

Recuperação Retroativa e Registro de mensagens Idéia principal: Combinar pontos de verificação com o registro da sequência de mensagens recebidas (1) O processo receptor registra uma mensagem antes de entregá-la a aplicação (ou então, o emissor registra as msgs antes de enviá-las) (2) Quando um processo cai, o sistema é restaurado para o estado correspondente ao ponto de verificação mais recente e, a partir deste ponto, reproduz as mensagens recebidas

Recuperação Retroativa e Registro de mensagens Qual a diferença entre utilizar apenas pontos de verificação e pontos de verificação + registro de mensagens? (1) No caso do uso isolado de pontos de verificação, os processos são restaurados para o ponto antes da falha e o comportamento pode ser diferente após a recuperação (ex. msgs podem ser entregues em ordenação diferente) (2) No caso do registro de mensagens, o comportamento é reproduzido do mesmo modo entre o ponto de recuperação e o ponto em que ocorreu a falha

Pontos de Verificação A recuperação retroativa de erros requer que o sistema salve periodicamente seu estado em armazenamento estável Fotografia Distribuída: Registro de um estado global consistente Em uma fotografia distribuída, se um processo P tiver registrado o recebimento de uma mensagem, então também deve existir um processo Q que registrou o envio desa mensagem

Pontos de Verificação Em linhas gerais... Cada processo salva seu estado periodicamente em um armazenamento estável disponível localmente. A recuperação após uma falha de processo ou de sistema requer a construção de um estado global consistente com base nesses estados locais Melhor alternativa é recuperar a fotografia mais recente, denominada linha de recuperação mais recente conjunto consistente de pontos de verificação

Pontos de Verificação

Pontos de Verificação Independentes Descobrir uma linha de recuperação requer que cada processo seja revertido a seu estado salvo mais recente Se, em conjunto, os estados locais não formam uma fotografia distribuída, é preciso reverter ainda mais para trás. O processo de reversão em cascata pode resultar no efeito dominó

Pontos de Verificação Independentes

Pontos de Verificação Coordenados Todos os processos sincronizam para escrever, em conjunto, seu estado para armazenamento local O estado salvo é globalmente consistente, evitando as reversões em cascata que levam ao efeito dominó

Pontos de Verificação Coordenados Solução Simples: Usar protocolo de bloqueio de duas fases (1) Coordenador envia uma msg multicast CHECKPOINT_REQUEST a todos os processos (2) Quando o processo recebe esta mensagem, estabelece um ponto de verificação local e enfileira qualquer msg e envia uma mensagem de reconhecimento ao coordenador indicando que estabeleceu o ponto de verificação (3) Após receber todos os acks, coordenador envia msg multicast CHECKPOINT_DONE para desbloquear os processos

Pontos de Verificação Coordenados Estado globalmente consistente: Não existirão mensagens que ultrapassem as linhas de recuperação, ou seja, a mensagens são tratadas entre os pontos de verificação Qualquer mensagem que vier após uma requisiçã para estabelecer um ponto de verificação não é considerada como parte do ponto de verificação local. Ao mesmo tempo, mensagens que estão saindo são enfileiradas no local até a mensagem CHECKPOINT_DONE ser recebida

Resumo(1) Tolerância a falha é uma questão importante no projeto de sistemas distribuídos Característica pela qual um sistema pode mascarar a ocorrência e a recuperação de falhas. Vários tipos: Falha por queda, por omissão, temporização falha de resposta, arbitrárias

Resumo(2) Redundância é a técnica fundamental necessária para conseguir tolerância a falha No caso de processos, um grupo é formado Grupos podem ser simples (todos processos tomam decisões da mesma maneira ) ou hierárquicos (coordenador gerencia) Se os processos falham e devem chegar a um acordo, situação se complica!! Algoritmo de Lamport, onde resultados de computação são trocados e a decisão final é tomada como sendo a da maioria

Resumo(3) No caso da comunicação confiável multicast, deve-se garantir que todos as mensagens chegarão aos membros de um grupo. Se não existem falhas dos processos, e os grupos são pequenos, pode-se usar os mecanimos de confirmação. Por questões de escalabilidade, podese usar NACKs e temporizadores No caso de fornecer multicast atômico, onde todos os membros do grupo devem receber a informação na mesma ordem, A entrega das informações é basead em visões de grupo

Resumo(4) Recuperação em sistemas tolerantes a falhas é alcançada por pontos de verificação periódicos do estado do sistema. A verificação é completamente distribuída, sendo esta uma operação cara, principalmente no caso de pontos de verificação independentes. Para melhorar o desempenho, muitos sistemas distribuídos combinam pontos de verificação com registro de mensagens. Registrado a comunicação entre processos, torna-se possível reproduzir a execução do sistema após a ocorrência de uma queda.