Sistemas Tolerantes a Falhas: Conceitos e Técnicas FURB – DSC Paulo Fernando da Silva
Sumário Introdução Conceitos Redundância da Informação e Temporal Redundância de Hardware Redundância de Software Tolerância a Falhas em Sistemas Distribuídos Considerações Finais
Introdução – Cenário Atual Expansão das redes de computadores; Maior disponibilidade de serviços; Ex.: transações eletrônicas; Maior dependência de serviços; Ex.: Site de vendas pela internet; Falhas podem prejudicar empresas;
Introdução – Cenário Atual Confiabilidade e disponibilidade são cada vez mais importantes; Dependência da sociedade: Tráfego aéreo; Área da saúde; Área financeira; Telecomunicações;
Introdução – Cenário Atual Hardware: Teve grande aumento de confiabilidade; Software: Está se tornando cada vez mais complexo; Apresenta muito problemas; Só o hardware não garante a confiabilidade e disponibilidade dos sistemas;
Introdução – Exemplo de Falha Foguete Ariane 5 (1996): Explodiu 37 segundos após o lançamento; Invertigação apontou falha no software; Conversão de 64bits para 16bits (overflow); Gerou valor inválido que provocou a auto-destruição; Código funcionava no Ariane 4; Não foi adequado à realidade do Ariane 5;
Introdução - Desafios Como evitar, detectar e contornar bugs? Como explorar a rede aumentando a confiabilidade e a disponibilidade? Como desenvolver um sistema confiável em uma plataforma não confiável?
Conceitos – TF x Depend. Tolerância a Falhas: Dependabilidade: Localização e recuperação de falhas do sistema; Chamados de sistemas redundantes; Falsa impressão de que o sistema não falha!!! Dependabilidade: Conceito mais atual; Confiança que se pode ter em um sistema;
Conceitos – Falha, Erro e Defeito Desvio da especificação; Não pode ser tolerado; Erro: Causador de defeito em potencial; Falha: Causa física ou algoritmica do erro;
Conceitos – Falha, Erro e Defeito
Conceitos – Falha, Erro e Defeito
Conceitos – Falha, Erro e Defeito Falhas são inevitáveis: Componentes físicos envelhecem; Projetos de software podem apresentar falhas humanas; Defeitos são evitáveis: Através de técnicas de tolerância a falhas;
Conceitos – Falha, Erro e Defeito Exemplo: Chip com defeito: falha; Interpretação errada da informação: erro; Negação de acesso ao usuário: defeito; Nem toda falha leva a um erro; Nem todo erro leva a um defeito; Podem não aparecer durante a execução do sistema;
Conceitos – Classificação das Falhas
Técnicas de Dependabilidade
Técnicas de Dependabilidade
Técnicas de Dependabilidade
Técnicas de Tolerância a Falhas Classificam-se em: Técnicas de mascaramento; Técnicas de detecção e reconfiguração; Mascaramento: Usa redundância para mascarar o defeito; É mais rápida; Própria para tempo real;
Técnicas de Tolerância a Falhas Detecção e Reconfiguração Fase de Detecção: Falha é detectada quando gerar um erro; Recuperação: Coloca o sistema em um estado seguro; Localização: Determina o componente falho (diagnóstico); Reconfiguração: Elimina ou substitui o componente falho;
Redundância da Informação Repete bits na transmissão: Códigos de paridade; Técnicas de checksum; Detecta apenas erros simples; Usado em componentes de hardware: Memórias e processadores; Redes de computadores;
Redundância Temporal Torna redundante as informações no tempo; Repete-se a computação no tempo; Resultados diferentes indicam falhas; Usado onde o tempo não é crítico;
Redundância HW - Passiva Faz mascaramento de falhas; Vários componentes executam a mesma tarefa; Resultado determinado por votação; Resultado obtido por maioria ou valor médio;
Redundância HW - Passiva
Redundância HW - Passiva
Redundância HW - Ativa Técnicas de detecção, localização e reconfiguração;
Redundância HW - Ativa
Redundância HW - Ativa Funcionamento do módulo estepe: Alimentado: minimiza a descontinuidade do sistema; Não alimentado: espete só começa a operar quando necessário; Módulo não alimentado minimiza a vida útil do estepe;
Redundância HW - Híbrida Baseado em votação: Módulo que descorda é desconectado; Estepe entra em seu lugar;
Redundância HW - Híbrida
Redundância Software Se a falha está no software, replicação de hardware é inútil; Solução: replicar o software: Diversidade; Blocos de recuperação;
Redundância SW - Diversidade São implementadas diversas soluções em software; Resultado determinado por votação; Diversidade de versões; Diversidade de algoritmos;
Redundância SW - Diversidade
Redundância SW - Diversidade Problemas: Aumento do custo de desenvolvimento; Não há garantias de que o erro não esteja em todas as versões;
Redundância SW – Blocos de Recuperação Semelhante à Diversidade; Réplica somente é usada em caso de falha; Software passa por teste de aceitação: Programa é testado através de uma base de testes;
Redundância SW – Blocos de Recuperação
TF em Sistemas Distribuídos Sistema Distribuído: Sistema altamente coordenado e transparente, distribuído sobre uma rede de computadores; Características: Heterogeneidade, Escalabilidade, Segurança... Tolerância a Falhas;
TF em Sistemas Distribuídos Tipos de Falhas Crash: Parada de um componente; Perda de um estado interno; Omissão: Componente não responde à requisições; Temporização: Componente responde muito tarde ou muito cedo;
TF em Sistemas Distribuídos Tipos de Falhas Resposta: Componente produz respostas incorretas; Bizantinas (arbitrárias): Comportamento imprevisível;
TF em Sistemas Distribuídos Tipos de Falhas
TF em Sistemas Distribuídos Técnicas – Ponto de Recuperação Nodo tem um conjunto de checkpoints
TF em Sistemas Distribuídos Técnicas – Ponto de Recuperação Checkpoint coordenado; Todos devem fazer rollback em conjunto; Garantia de estado consistente global; Solução complexa;
TF em Sistemas Distribuídos Técnicas – Replicação de Dados Replica os dados por vários nodos; Modelo Primário-Backup: Operações leitura: acessa apenas o primário; Operações escrita: primário atualiza backup; Quando primário falha, backup entra e ação;
TF em Sistemas Distribuídos Técnicas – Replicação de Dados
Considerações Finais Cresce o número de aplicações que necessitam de alta disponibilidade e confiabilidade; Os sistemas tendem a ficar cada vez mais complexos;
Considerações Finais Tolerância a Falhas não garante um sistema livre de falhas; Ainda existem vários desafios para se obter maior dependabilidade;
Obrigado! Perguntas? Contato: Paulo Fernando da Silva paulofernando@furb.br