Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação Técnicas para alcançar dependabilidade Técnicas e métodos para alcançar a dependabilidade desejada Tolerância a Falhas Prevenção e remoção de falhas não são suficientes quando sistema exige alta confiabilidade ou alta disponibilidade; Sistema deve ser construído usando técnicas de tolerância a falhas; Tolerância a Falhas Duas classes de técnicas de tolerância a falhas: Mascaramento: Falhas não se manifestam como erros (são mascaradas na origem) Detecção, localização e reconfiguração. Fases de Aplicação das técnicas de Tolerância a Falhas Primeira Fase: detecção de Erro Falha primeiro se manifesta como um erro; Antes da manifestação como erro, a falha está latente e não pode ser detectada; Ex. mecanismo de detecção: Duplicação e comparação. Detecção: Duplicação e comparação Segunda Fase: Confinamento Da ocorrência da falha, até o erro ser detectado, pode haver “espalhamento” de dados inválidos; O confinamento estabelece limites para a propagação do dano; Segunda Fase: Confinamento Decisões de projeto; Sistemas, por natureza, não provêem confinamento; Durante o projeto devem ser previstas e implementadas restrições ao fluxo de informações; Estabelecer interfaces de verificação para detecção de erro. Terceira Fase: Recuperação Ocorre após a detecção; Troca do estado atual incorreto para um estado livre de falhas; Terceira Fase: Recuperação Técnicas de Recuperação Terceira Fase: Recuperação Recuperação por retorno e por avanço Quarta Fase: Tratamento Localizar a origem da falha; Localizar a falha de forma precisa; Reparar a falha; Recuperar o restante do sistema. Quarta Fase: Tratamento Localizar: Localização Grosseira e rápida: aplicada sobre um módulo ou subsistema; Localização Fina: onde o componente falho é determinado Para os dois tipos de localização é usado diagnóstico. Quarta Fase: Tratamento Diagnóstico: Teste de comparação entre resultados gerados com resultados previstos: Manual: executado por um operador local ou remoto; Automático: executado pelos componentes livres de falha do sistema. Quarta Fase: Tratamento Após a localização, a falha é reparada através da remoção do componente danificado, o reparo pode ser: Manual Automático Quarta Fase: Tratamento Automático: Degradação Gradual: Reconfiguração para operação com menor número de componentes; Substituição: por outro componente disponível no sistema. (usada em sistemas com longos perídos de missão sem possibilidade de reparo manual, sondas espaciais e satélites. Mascaramento de Falhas Garante resposta mesmo na presença de falhas; A falha não se manifesta como erro; Em caso de falhas permanentes, a localização e o reparo da falha são necessários Mecanismos para Mascarar Falhas Redundância Redundância para aumento de confiabilidade é quase tão antiga como a história dos computadores; Todas as técnicas de tolerância a falhas envolvem alguma forma de redundância; Na indústria nacional, o termo utilizado para designar um sistema tolerante a falhas é sistema redundante Redundância Redundância de Informações; Redundância Temporal; Redundância de Hardware; Redundância de software; Redundância Serve tanto para detecção de falhas quanto para mascaramento; O grau de redundância é diferente para cada caso; Para mascarar falhas são necessários mais componentes do que para detectar falhas. Redundância de Informação Bits ou sinais extras são armazenados ou transmitidos junto ao dado; Servem para deteção de erros ou mascaramento de falhas Ex.: Códigos de paridade; Checksums; Códigos de duplicação; Códigos cíclicos. Redundância Temporal Repete a computação no tempo; Evita custos de Hardware; Aumenta o tempo necessário para realizar uma computação Usada em sistemas onde o tempo não é crítico; Redundância Temporal Aplicações usuais: Detecção de falhas transitórias: repetindo a computação; Detecção de falhas permanentes: repete-se a computação com dados codificados e decodifica-se o resultado antes da comparação; Redundância de Hardware Baseada da replicação de componentes físicos: Redundância de Hardware Passiva Os elementos redundantes são usados para mascarar falhas; Todos os elementos executam a mesma tarefa; O resultado é determinado por votação; Ex: TMR (triple modular redundancy) e NMR (redundância modular com n módulos) Redundância de Hardware Passiva Redundância de Hardware Passiva Soluções para contornar a fragilidade do votador: Construir o votador com componentes de alta confiabilidade; Triplicar o votador; Realizar a votação por software; Redundância de Hardware Passiva TMR com votador Triplo Redundância de Hardware Passiva TMR apresenta uma confiabilidade maior que um sistema de um único componente até a ocorrência da primeira falha permanente; Depois perde a capacidade de mascarar falhas, apresentando confiabilidade menor que um sistema de um único componente; Redundância de Hardware Passiva Com o tempo, TMR apresenta uma confiabilidade pior do que um sistema não redundante; TMR é ideal para períodos não longos de missão, suporta apenas uma falha permanente Ideal para falhas temporárias... Uma de cada vez... Redundância de Hardware Passiva Confiabilidade de TMR Redundância de Hardware Passiva NMR (Redundância Modular Múltipla) é a generalização de TMR TMR é um caso especial de NMR; O computador de bordo do ônibus espacial é um exemplo de NMR, com n igual a 4 e votação por software.