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

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

Tolerância a Faltas. Terminologia básica. Tolerância a Faltas. Page 1. Departamento de Engenharia Informática. Departamento de Engenharia Informática

Arquitecturas Tolerantes a faltas em Sistemas Distribuídos

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

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

falhas em sistemas distribuídos

Replicação de servidores

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

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

Técnicas para obtenção de Tolerância a Falhas

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

Sistemas Distribuídos Capítulo 8 - Aula 13

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

Fiabilidade de Sistema Informáticos

Tolerância a Falhas com Máquinas de Estado

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

falhas em sistemas distribuídos

Sistemas Distribuídos

Replicação. Protocolos. June 2, 2010

Tolerância a Falhas. June 2, 2010

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

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

Sistemas Distribuídos

Tolerância a Falhas. Sumário. December 18, Introdução e Terminologia. Modelos de Falha

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

Meios para obter e validar a dependabilidade

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

SISTEMAS DISTRIBUÍDOS

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

Algoritmos Distribuídos Modelo Computacional

Sistemas Distribuídos Capítulo 8 - Aula 14

Sistemas Distribuídos Capítulo 8 - Aula 15

Ordenação. Relógios lógicos

Transacções Atómicas Distribuídas

Canais de Comunicação

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

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

Sistemas Digitais (SD)

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

PROVIDING DEPENDABILITY FOR WEB SERVICES

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

Consistência e Replicação

Protocolo Request-Reply

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

Qualidade. Ana Madureira

Replicação. Modelos de Consistência.

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

O que é? É uma aplicação que consiste em 2 ou mais processos que executam em diferentes processadores que não partilham memória.

SISTEMAS DIGITAIS (SD)

Replicação. Cleide Luzia Bonfim Possamai 03/05/2018

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

SSC0611 Arquitetura de Computadores

Módulo 8 Manutenção e fiabilidade

Barramento. Prof. Leonardo Barreto Campos 1

Grupo I [8v] b. [0,8v] Apresente o pseudo-código do algoritmo que U executa para validar a assinatura que recebe.

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

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

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

Sistemas Distribuídos

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

Sincronização e Concorrência

trabalho Heitor Oliveira,Rafael Aleixo,Alex Rodrigues September 2013

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

Sistemas de Arquivos Distribuídos. Bruno M. Carvalho Sala: 3F2 Horário: 35M34

Sequência 17 Organização e Hierarquia de Memória

SISTEMAS DISTRIBUÍDOS

Vamos fazer um pequeno experimento

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

Sistemas Distribuídos

21108 Sistemas Distribuídos Teste Formativo

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

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

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

Sistemas Distribuídos

Algoritmos e Estruturas de Dados II. Ordenação Externa II. Ordenação Externa. Ordenação Externa. Ordenação Externa

Sistemas Digitais (SD) Síntese de Circuitos Sequenciais: Definições

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

Rede de computadores Cliente- servidor. Professor Carlos Muniz

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

Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto

Big Endian é uma ordenação usada em sistemas do tipo Unix (arquiteturas SPARC, IBM Mainframe).

Sistemas de Tempo-Real

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

Algoritmos Distribuídos. AD Modelo Computacional 1

Instituto Superior de Engenharia do Porto. Sistemas Redundância

Organização de Unidades de Processamento

Sumário. Recuperação de Falhas

Consistência e Replicação

Sistemas entre Pares e Redes Sobrepostas

Parte I Multiprocessamento

Executivo Cíclico. Executivo Cíclico Introdução. Sistemas de Tempo Real: Executivo Cíclico Exemplo. Executivo Cíclico Introdução

Projeto de Sistemas Distribuídos. Considerações

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

Organização e Arquitetura de Computadores I

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

Sistemas Distribuídos Aula 13

Redes de Computadores

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Organização e Arquitetura de Computadores I

Transcrição:

Sistema Computacional Tolerância a Faltas Sistema computacional: Formado por um conjunto de componentes internas Contém um estado interno Está sujeito a um conjunto de entradas, ou estímulos externos Tem um determinado comportamento Produz resultados em função das entradas e do seu estado interno Comportamento: Especificado Observado Serviço cumprido Serviço interrompido Sistema Computacional Sistema Computacional Subsistemas Subsistemas Estímulos Saídas Estímulos Saídas Sistema Sistema Um sistema tem uma especificação funcional do seu comportamento que define em função de determinadas entradas e do seu estado quais as saídas. Sistema determinístico se as saídas e o estado seguinte forem uma função (determinística) dos estímulos e do estado actual

Falta, Erro, Falha Falta->Erro->Falha Falta (fault): acontecimento que altera o padrão normal de funcionamento de uma dada componente do sistema Erro (error): transição do sistema, provocada por uma falta, para um estado interno incorrecto Estado interno inadmissível Estado interno admissível mas não o especificado para estas entradas Falha (failure): um sistema falha quando se desvia da sua especificação de funcionamento Num determinado estado, o resultado produzido por uma dada entrada não corresponde ao esperado Exemplo: Falta: cabo de alimentação desligado Erro: o processador (e restantes componentes) não funcionam Falha: o computador não arranca Falha: desvio do comportamento especificado Erro: Uma falha ocorre devido a um erro Falta: A causa de um erro é uma falta Falta Erro Falha Falta Erro Falha Exemplo de Falta: o primeiro bug Erros Latentes e Efectivos Latência de um erro tempo que decorre entre a ocorrência de um erro e da falha correspondente. Erro Latente: ainda não causou falha Efectivo: quando causa a falha

Exemplo: bug software Exemplo: bit de memória defeituoso Falta: engano de um programador ao definir a lógica de uma instrução Erro: instrução errada Erro fica latente até esta instrução ser executada Falha: execução da instrução errada O erro torna-se efectivo e o programa falha Falta: funcionamento incorrecto de uma posição de memória, em que um bit fica sempre com o valor 1 Não dá origem a erro se Esta posição de memória não for utilizada Se não for escrito um 0 naquele bit Erro: escrita de um octeto com o bit a 0 Erro processado (ex: bits de paridade com correcção) => Serviço continua a ser prestado de acordo com a especificação Falta foi tolerada Erro não processado => Erro fica latente até esta posição de memória ser lida Falha: leitura de um valor incorrecto da posição de memória O erro torna-se efectivo e o sistema de memória falha, não funciona de acordo com o especificado Tipos de Faltas Classificação das Faltas Causa Física: fenómenos eléctricos, mecânicos, Humana Acidental: concepção, operação, Intencional: ataque premeditado (consideradas no capítulo de segurança) Estudo (2003) sobre falhas em serviços na Internet: Erros humanos (operação) são a principal causa de faltas. Origem Interna: componentes internos, programa, Externa: temperatura, falta de energia, Duração Permanentes: mantêm-se enquanto não forem reparadas (ex: cabo de alimentação desligado) Fáceis de detectar Difíceis de reparar Temporárias: ocorrem apenas durante um determinado período, geralmente por influência externa Difíceis de reproduzir, detectar Fáceis de reparar Faltas transientes: ficam reparadas imediatamente após terem ocorrido (ex.: perda de mensagem)

Classificação das Faltas Modelo de Faltas Determinismo Determinísticas: Dependem apenas da sequência de inputs Repetindo essa sequência, reproduzimos a falta Não-Determinísticas ( Heisenbugs ): Dependem de outros factores (e.g., escalonamento de threads, leituras do relógio, ordem de entrega de mensagens) Difíceis de reproduzir, depurar No modelo de faltas é necessário identificar quais as expectáveis e em seguida decidir: quais as faltas que vão ser toleradas quais as que não vão ser toleradas. A relação entre as faltas que têm possibilidade de ser recuperadas e o conjunto de faltas previsíveis define uma taxa de cobertura Falta densa: acumulação de tantas faltas toleráveis que deixa de ser tolerável As faltas que originam erros sem possibilidade de tratamento dão origem a catástrofes Modelo de Faltas num Sistema Distribuído Modelo de Faltas num Sistema Distribuído Num sistema distribuído o modelo de faltas é muito mais complexo que num sistema centralizado. Várias componentes do sistema podem falhar: Falhas na comunicação Falhas nos nós Processadores/Sistema Processos servidores ou clientes Meios de Armazenamento Persistente Comunicação Faltas mais prováveis Falta temporária ou transiente Protocolos de transporte com tratamento de erros - TCP RPC com semânticas - pelo-menos-uma-vez, no máximouma-vez Falta permanente Impossível de recuperar sem redundância física redes malhadas, cablagens duplas

Modelo de Faltas num Sistema Distribuído Tipos de faltas em Sistemas Distribuídos Sistema síncrono assume-se a existência de uma latência máxima entre nós da rede (bem conhecida) e um tempo máximo de processamento de cada mensagem Normalmente este modelo pressupõe que não é necessário tratar de retransmissões, o transporte abstrai essa complexidade Sistema assíncrono ambos os pressupostos acima não são válidos Mais realista, e.g., durante uma partição na rede, ou ataque DoS Num sistema assíncrono é impossível a detecção remota de falhas por paragem Pode ser confundida com um aumento na latência Faltas de processos (omission failures) faltas por paragem silenciosa (crash) faltas que fazem com que o processo suspenda a sua actividade, deixando de enviar mensagens para a rede, sem pré-aviso. falta por paragem detectável (failstop failures): falta silenciosa em que a paragem de um processo é detectável pelos outros processos (e.g., o próprio processo ou um outro processo ó consegue detectar a falta e notificar os outros nós). Faltas de omissão do canal falta de perda de mensagem: mensagem enviada não chega ao receptor Tipos de faltas em Sistemas Distribuídos Tipos de faltas em Sistemas Distribuídos Faltas arbitrárias (ou bizantinas) faltas que fogem ao padrão de comportamento especificado para a componente, por exemplo, um nó da rede que envia mensagens correctas a um interlocutor e erradas a outro. (útil para tolerar ataques ou erros de SW) Faltas de temporização Algum dos pressupostos de tempo de um sistema síncrono deixa de ser garantido Não fazem sentido em sistemas assíncronos Pela sua importância na simplificação dos sistemas é muitas vezes assumido que a falta é silenciosa sem que haja real demonstração que é assim. No tipo de faltas que é vulgar não considerar no subconjunto a recuperar temos: faltas densas - resultam da acumulação de faltas, não permitindo o seu tratamento porque são superiores à redundância do sistema ou à sua capacidade de manutenção; faltas bizantinas Ao pressupor um modelo de faltas não verificado na realidade, um sistema desenhado para ser tolerante a faltas pode não cumprir a sua especificação

Fiabilidade, Disponibilidade Classes de Disponibilidade Fiabilidade (reliability): mede o tempo médio desde o instante inicial até à próxima falha MTTF (Mean Time To Failure): medida estatística da fiabilidade Este é o critério fundamental se o sistema não for reparável Disponibilidade (availability): mede a relação entre o tempo em que um serviço é fornecido e o tempo decorrido MTTR (Mean Time to Repair): medida estatística da interrupção de serviço Disponibilidade = MTTF / (MTTF + MTTR) Tipo Indisponibilidade Disponibilidade Classe (min/ano) Não gerido 52 560 90% 1 Gerido 5 256 99% 2 Bem gerido 526 99.9% 3 Tolerante a faltas 53 99.99% 4 Alta disponibilidade 5 99.999% 5 Muito alta disponibilidade 0.5 99.9999% 6 Ultra disponibilidade 0.05 99.99999% 7 Classe de Disponibilidade = log 10 [1 / (1 - D)] D: Disponibilidade (Também chamado o número de noves de disponibilidade ) Exemplos de Classes de Disponibilidade Políticas de Tolerância a Faltas Especificações existentes: Classe 5: equipamento de monitorização de reactores nucleares Classe 6: centrais telefónicas Classe 9: computadores de voo Qualquer política de tolerância a faltas baseia-se na existência de um mecanismo redundante que possibilite que a função da componente comprometida seja obtida de outra forma. A redundância pode assumir diversas formas: física ou espacial, com duplicação de componentes; temporal, com repetição da mesma acção; informação com algoritmos que calculam um estado correcto.

Políticas de Tolerância a Faltas Políticas de Tolerância a Faltas Recuperação do erro substitui um estado errado por um estado correcto, podendo tornar sem efeito algumas etapas do processamento já efectuado. Esta política implica, detecção do erro, cálculo de um estado anterior ou posterior correcto. Durante o tempo de recuperação o sistema fica indisponível. Compensação do erro baseia-se na possibilidade de, mesmo na presença de um erro numa componente, ser possível calcular um estado correcto a partir de componentes redundantes. A arquitectura do sistema tem de possuir redundância suficiente para ser capaz de computacionalmente definir o estado correcto, apesar de um estado interno errado. Esta abordagem procura limitar ou eliminar o período de recuperação, ou seja, maximizar a disponibilidade do sistema. As duas políticas não são mutuamente exclusivas Protocolos de Replicação Arquitecturas Tolerantes a faltas em Sistemas Distribuídos Replicação passiva vs. activa Replicação de máquinas de estados vs. Replicação com operações de Leitura/Escrita (registos) Replicação de Servidores Transacções Atómicas

Replicação Passiva vs. Activa Replicação de máquinas de estados vs. leituras/escritas 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 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 Replicação de máquinas de estados vs. leituras/escritas Replicação Passiva 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 Cliente Servidor Principal Servidor Secundário

Protocolo Simples Replicação Passiva (Replicação Máquina de Estados) Protocolo Simples de Replicação Passiva 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 c s 1 s 2 P Mensagens de Prova de vida t max 1 2 3 timeout =? Em que instante s2 pode assumir que é o primário? 4 Pressupostos Custos da Replicação Passiva 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? 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.

Protocolo Simples de Replicação Passiva Protocolos de Quóruns 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) 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 Protocolos de Quóruns 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 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

Protocolos de Quóruns Exemplo (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> c r1 r2 r3 Fase de Leitura Lê <v 0,t 0 > c calcula t 1 = <t 0.seq#+1, cid> x Fase de Escrita Escreve <v 1,t 1, > Oper. de Escrita do valor v 1 x Oper. de Leitura Lê <v 1,t 1 > r1 r2 r3 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