Arquitecturas Tolerantes a faltas em Sistemas Distribuídos



Documentos relacionados
Replicação de servidores

Tolerância a Faltas. Departamento de Engenharia Informática

Tolerância a Faltas. Índice. Terminologia. Replicação Passiva e activa Modelo Transaccional Transacções distribuídas

Replicação baseada em software para tolerância a falhas. Bruno Miguel Silva- m2359 João Prata - a15997 Orlando Pereira - m2371

Tolerância a Faltas. 8/28/2003 José Alves Marques. Sistema Computacional

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

Tolerância a Faltas. Page. Sistema Computacional. Sistema Computacional. Sistema Computacional

Departamento de Engenharia Informática. Tolerância a Faltas. 8/28/2003 José Alves Marques

Fault Tolerance Middleware for Cloud Computing

Comunicação. Parte II

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP)

Sistemas Distribuídos. Aleardo Manacero Jr.

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

Sincronização em Sistemas Distribuídos

Tópicos em Sistemas Distribuídos. Modelos de Comunicação

Arquitetura e Organização de Computadores I

Arquitectura de um Sistema de Chamadas a Procedimentos Remotos a Servidores Replicados

UNIVERSIDADE. Sistemas Distribuídos


ENHANCED SERVER FAULT- TOLERANCE FOR IMPROVED USER EXPERIENCE. André Esteves nº3412 David Monteiro

Nomes e Endereçamento. Nomes e Endereçamento. Paradigmas em Sistemas Distribuídos. Paradigmas em Sistemas Distribuídos

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

Computação Paralela. Desenvolvimento de Aplicações Paralelas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho.

Sistemas Distribuídos Aula 15

Consistência Eventual - Sistemas Distribuidos e Tolerância a Falhas

Sincronização em SDs I. Bruno M. Carvalho Sala: 3B2 Horário: 35T34

Grupo I [6,6v] Responda com os valores que se observam depois da chamada acontecer. 1 Falta na mensagem de resposta. Valor retornado na chamada

Programação 2ºSemestre MEEC /2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Sistemas Distribuídos e Tolerância a Falhas

Sistemas Distribuídos e Tolerância a Falhas. Tempo e Relógios. Baseado no trabalho de: Ana Sofia Cunha m1892 Christian Lopes a15132 UBI, 2008

Sistemas Distribuídos

Porta Série. Trabalhos Práticos AM 2007/2008. Porta Série. Objectivos

Chord. Tecnologias de Middleware. Fernando Martins - fmp.martins@gmail.com

Sistemas Distribuídos

Exclusão Mútua em Sistemas Distribuídos

Sistemas Informáticos

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de º Semestre, 2004/2005

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

Sistemas Distribuídos e Paralelos

Sistemas Distribuídos Grupos

Transporte de dados multimédia em Redes de Sensores Sem Fios

Um sistema SMS 1 simplificado

3. Comunicação em Sistemas Distribuídos

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

Fault Tolerance Middleware for Cloud Computing

Sistemas Distribuídos

Tipos de Servidores. Servidores com estado

4. Protocolos Teóricos e Protocolos de Controlo de Ligação Protocolos ARQ; Especificação de Protocolos; Eficiência ARQ.

Arquitetura de Sistemas Operativos

Distributed Systems Principles and Paradigms

Modelos Fundamentais. Carlos Ferraz.

Tempo e estados globais. Tempo. Tempo. Sincronização de relógios físicos. Sincronização de relógios físicos: drift

ALGORITMOS DISTRIBUÍDOS Algoritmos de eleição

Comunicação entre processos (grupos) COMUNICAÇÃO ENTRE PROCESSOS Comunicação de grupo. Comunicação entre processos (grupos)

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

SISTEMAS DISTRIBUÍDOS

Tecnologia de Sistemas Distribuídos Capítulo 8: Sistemas de Ficheiros Distribuídos Paulo Guedes

Sistemas de Gerência de Bancos de Dados. 7 - Outras Arquiteturas para SGBDs SGBDs Cliente-Servidor

Sistemas Distribuídos

Organização de Computadores 1

MC714 - Sistemas Distribuídos. Leandro Villas

Sincronização em Sistemas Distribuídos

Sistemas Distribuídos

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo

Visão do Usuário da DSM

Programação de Sistemas

Programação de Sistemas

Alta Disponibilidade na IPBRICK

O Manual do Desktop Sharing. Brad Hards Tradução: Pedro Morais

Projecto de Programação MEEC /2011-1ºSemestre. Mestrado Integrado em Engenharia Electrotécnica e de Computadores

Sumário. Comunicação Multicast. Soluções. Multicast. Application-Level Multicast. October 20, 2008 Algoritmos Epidémicos

Qualidade em Servicos de Rede Prof. Eduardo Maronas Monks Roteiro de Laboratorio Camada de Transporte Parte II

Sistemas Distribuídos

Sincronização. Sincronização de Relógios. Relógios Físicos

Programação Concorrente Introdução

Redes de Computadores I Licenciatura em Eng. Informática e de Computadores 1 o Semestre, 26 de Outubro de o Teste A

Modelos de Arquiteturas. Prof. Andrêza Leite

GESTÃO DE SISTEMAS E REDES DOMAIN NAME SYSTEM

Quadro de consulta (solicitação do mestre)

Arquiteturas Tolerantes a faltas em Sistemas Distribuídos Sistemas Distribuídos

Redes de Computadores. Trabalho de Laboratório Nº7

Sistemas Distribuídos Sincronização de Relógios. Edeyson Andrade Gomes

Falha benigna. Sistema. Sistema Próprio. Interrompido. Restauração. Falha catastrófica. Falha catastrófica. Sistema. Impróprio

PROGRAMA DE GESTÃO DOS RECENSEAMENTOS

Gestão de Redes e Sistemas Distribuídos

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

Questões de Concursos Públicos sobre Orientação a Objetos e UML

Introdução ao Modelos de Duas Camadas Cliente Servidor

Transcrição:

Arquitecturas Tolerantes a faltas em Sistemas Distribuídos Replicação de Servidores Transacções Atómicas Protocolos de Replicação Replicação passiva vs. activa Replicação de máquinas de estados vs. Replicação com operações de Leitura/Escrita (registos) Page 1 1

Replicação Passiva vs. Activa Replicação Passiva ( primary-backup ) - existe um servidor principal com que os clientes interactuam. Os restantes servidores estão de reserva (backups), de forma a que, quando detectam que o servidor primário falhou, um deles torna-se o primário; Recuperação da falta Replicação Activa sem existir controlo centralizado, todos os servidores recebem pela mesma ordem os pedidos dos clientes, efectuam a operação, determinam qual o resultado correcto por votação, e respondem ao cliente. Compensação da falta Replicação de máquinas de estados vs. leituras/escritas Replicação de máquinas de estados Réplicas são máquinas de estados determinísticas Operações arbitrárias (qualquer serviço determinístico) Algoritmo de replicação garante que todas réplicas executam a mesma sequência de operações (pedidos) Replicação com operações de Leitura/Escrita ( registo ) Suporta duas operações: Leitura e escrita de um objecto (registo) val = read( ); ack = write(new_val); Menos genérico (interface muito restrita) Algoritmos de replicação mais simples: apenas têm de garantir acordo eventual no último valor escrito Page 2 2

Replicação de máquinas de estados vs. leituras/escritas Especificações (comportamento esperado do sistema replicado) Leituras/Escritas: operação read tem de retornar o último valor escrito E quando há escritas concorrentes? Neste caso existem várias semânticas diferentes Para simplificar vamos deixar por especificar Replicação de máquinas de estados: sistema replicado deve ser equivalente (do ponto de vista dos clientes) a um servidor centralizado que nunca falha, e que executa os pedidos sequencialmente por uma ordem por ele determinada, consistente com a ordem em que são emitidos Replicação Passiva Cliente Servidor Principal Servidor Secundário Page 3 3

Protocolo Simples Replicação Passiva (Replicação Máquina de Estados) P1: servidor primário P2: servidor secundário Quando P1 recebe um pedido: Processa-o e actualiza o seu estado interno Envia uma mensagem update a P2 Responde ao cliente, sem esperar pela resposta de P2 P2 actualiza o seu estado quando recebe as mensagens update de P1 P1 envia a P2 mensagens I m alive cada P unidades de tempo Se P2 não receber uma mensagem I m alive após expirar um temporizador, torna-se o primário: Avisa os clientes Começa a processar os pedidos Protocolo Simples de Replicação Passiva c 1 3 P s 1 4 Mensagens de Prova de vida 2 s 2 t max timeout =? Em que instante s2 pode assumir que é o primário? Page 4 4

Pressupostos Sistema síncrono: A comunicação é fiável (o transporte recupera de faltas temporárias de comunicação e não há faltas permanentes); Pode definir-se um limite para o tempo máximo de transmissão de uma mensagem na rede (t max ) e para o respectivo processamento; A rede assegura uma ordem FIFO na comunicação Relógios das máquinas estão sincronizados (ou, pelo menos, as respectivas velocidades) Servidores podem ter faltas por paragem silenciosa (crash) O que pode acontecer se falharem estes pressupostos? Custos da Replicação Passiva Grau de replicação: número de servidores usados para implementar o serviço Tempo de resposta (blocking time): tempo máximo entre um pedido e a sua resposta, no período sem falhas Tempo de recuperação (failover time): Tempo desde falha do primário até cliente ser notificado do novo primário Objectivo: assumindo que f componentes podem falhar, minimizar o grau de replicação, tempo de resposta e tempo de recuperação. Page 5 5

Protocolo Simples de Replicação Passiva Custos Grau de replicação: óptimo (f+1 réplicas toleram f faltas) Tempo de resposta: 2*t max (ignorando tempo de processamento) Tempo de recuperação: P+3*t max (desde falha até cliente ser notificado) Protocolos de Quóruns Replicação activa Replicação com operações de Leitura/Escrita Menos genérico do que o anterior Pressupostos: Falhas por paragem (crash) Sistema assíncrono, falhas na comunicação Requer 2f+1 réplicas para tolerar f falhas dos nós servidores Page 6 6

Protocolos de Quóruns Sistema de Quóruns: conjunto de sub-conjuntos das réplicas, tal que quaisquer dois sub-conjuntos se intersectam. Por exemplo: N réplicas Quórum: qualquer maioria: Q >N/2 Cada réplica guarda: valor do objecto (registo) respectivo timestamp Protocolos de Quóruns Operação de Leitura Envia pedido de leitura para todas as réplicas (retransmitindo-o até concluir a operação, para colmatar falhas temporárias na rede) Ao receber pedido, réplica responde ao cliente com valor actual de <val,ts> Cliente aguarda resposta de um quórum Escolhe valor associado ao maior timestamp Page 7 7

Protocolos de Quóruns Operação de Escrita (2 fases leitura e escrita) Efectua pedido de leitura a todas as réplicas (ler timestamp actual) Aguarda resposta de um quórum Escolha o maior timestamp, t, e incrementa Efectua um um novo pedido a todas as réplicas para escrever <novo-val, t+1> (Servidores respondem ack, e apenas guardam novo-val se o timestamp for maior do que o actual) Cliente aguarda acknowledge de um quórum Problema: Duas escritas concorrentes podem escolher o mesmo timestamp Solução: timestamp = <Nº seq., client-id> Exemplo (Protocolos de Quóruns) c c calcula t 1 = <t 0.seq#+1, cid> r1 x r1 r2 r3 x r2 r3 Fase de Leitura Lê <v 0,t 0 > Fase de Escrita Escreve <v 1,t 1, > Oper. de Leitura Lê <v 1,t 1 > Oper. de Escrita do valor v 1 Page 8 8

Replicação de Máquinas de Estados em Sistemas Assíncronos Protocolos bastante complexos. Exemplo: Paxos Combina técnicas dos protocolos anteriores Servidor primário determina ordem global dos pedidos e notifica um quórum dos secundários dessa ordem Quando o primário falha dá-se um protocolo de view-change para eleger um novo primário A view-change conclui quando há acordo, por parte de um quórum, sobre o novo primário Mais detalhes em: L. Lamport, The part-time parliament. In ACM Transactions on Computer Systems Page 9 9