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 autodestruiçã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: – 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 • 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 [email protected]