Post on 18-Apr-2015
Tolerância a Falhasem Sistemas Distribuídos
Agnaldo L Martins
Tolerância a falhas
Falhas são inevitáveis, mas suas conseqüências devem ser minimizadas
O domínio da área de TF auxilia administradores e desenvolvedores de sistemas a avaliar a relação custo benefício para o seu caso específico e determinar a melhor técnica para seu orçamento
Ex: backup consome espaço e tempo enquantoredundância de equipamentos e espelhamento de discos exige investimentos sem aumento de desempenho
Tolerância a falhas
É um conjunto de técnicas para detectar, mascarar, e tolerar falhas.
Sistema tolerante a falhas
É um sistema que continua provendo corretamenteos seus serviços mesmo na presença de falhas dehardware ou de software.
Defeitos não são visíveis para o usuário, pois osistema detecta e mascara (ou se recupera) defeitosantes que eles alcancem os limites do sistema (pontode fuga da especificação).
ERRO
FALHA
DEFEITO
Uma falhaManifesta-se atravésde um erro
Uma falharesulta deum defeito
Um defeito é a manifestação deum erro
Estado lógico inesperado
Comportamentoinesperado
Estado nãoespecificado
Outro nome para TF: Sistemas redundantes
- Um Erro é a manifestação de uma Falha no sistemaO estado lógico do sistema difere do seuvalor esperado
- Esta Falha resulta num DefeitoEstado não especificado do HW ou SW
- Um defeito é a manifestação do Erro no sistemaO comportamento real do sistema deriva do seu comportamento esperado
Possíveis causas de falhas
Descuidos na especificação
Descuidos na implementação
Defeitos de componentes
Distúrbios externos
Exemplos de possíveis causas de falhas
VírusBombas relógioExploração de falhas na redeFragmentaçãoInchaçoEnvelhecimento
Atributos de dependabilidade
Disponibilidade – diz respeito a média de tempo disponível para acessoConfiabilidade – diz respeito a continuidade da entrega de serviço corretoIntegridade – impedimento de alterações de estado imprópriasSegurança (safety) – diz respeito a garantias de nãohaver defeitos catastróficos ao usuário ou ambienteConfidencialidade – impedimento de acesso indevidoManutenabilidade – habilidade para reparo e modificações eficientesSegurança (security) – proteção contra acessos, ou controle, não autorizados ao estado do sistemaTestabilidade – facilidade para testar o sistema (ponto de teste, testes automatizados)
Meio de se obter
Prevenção de FalhasVisa prevenir a ocorrência ou introdução de falhas
Remoção de FalhasVisa reduzir o número ou a severidade das falhas
Previsão de FalhasVisa estimar o número presente, a incidência futura e as conseqüências das falhas
Tolerância a FalhasVisa entregar o serviço correto mesmo na presença de falhas
Prevenção de falhasAplicação de técnicas de controle de qualidade durante projeto (HW e SW)
- Programação estruturada ou OO?
- Modularização
- Regras de projeto rigorosas para prevenir falhas operacionais de HW
- Definição de procedimentos para manutenção
-Testes para prevenir falhas de interação
- Firewalls ou similares para prevenir falhas maliciosas
Remoção de falhas
Fase de desenvolvimentoVerificação – estamos construindo o produto certo?
– Estática
Verificação de modelos– Dinâmica
Injeção de falhas e execução simbólica (teste)• Diagnóstico – se não estiver certo, o que está errado?• Correção – corrige-se os problemas
Fase operacionalManutenção corretiva ou preventiva
Previsão de falhas
Para estimar o comportamento utiliza dois tipos de avaliações:
Qualitativa• identifica e classifica os modos de defeitos
Quantitativa• faz análise probabilística
As estimativas servem para realizar ações que evitem falhas/defeitos
Tolerância
Implementada por mascaramento ou detecção de erros seguida de recuperação do sistema
Classes de detecção de erros:Concorrente – execução concorrente ao serviçoPreemptiva – execução c/ suspensão do serviço
Recuperação consiste no re-estabelecimento de estado correto
Implica em controle de erros e falhas
Tolerância
Controle de errosRollback (checkpoint)Compensação (mascaramento)
Controle de falhasDiagnóstico de falhasIsolamento de falhasReconfiguração do sistemaRe-inicialização do sistema
Em resumo
Requisito básico para construção:REDUNDÂNCIA
Estrutura básica composta de:HARDWARE TOLERANTE A FALHASSOFTWARE TOLERANTE A FALHAS
Nosso enfoque: TÉCNICAS DE TF EM SISTEMAS DISTRIBUÍDOS
Tipo de redundância
Redundância de HardwareUtiliza-se de hardware adicional
Redundância de informaçãoUtiliza-se de bits adicionais
Redundância de softwareReplica componentes de softwareRe-executa computações
REDUNDÂNCIA POR HARDWARE
Redundância de hardware
PassivaUsando módulos adicionais, onde 1 opera e os outros são backup
DinâmicaBaseia- se em detecção/localização, seguida de reconfiguração ou remoção
HíbridaVisa o mascaramento de falhas.Para obter melhordependabilidade usa mecanismos de detecção, localizaçãoe recuperação de falhas. Removem falhas de hardwaretrocando componentes defeituosos por esperasTécnica mais utilizada em aplicações críticas.
Ativa - Espera
Cold standbyEsperas desligados, ativação do zeroNão causa overhead durante operação
Warm standbyEsperas desligadas, ativação do último pontode verificação (checkpoint)
Hot standbyEsperas ligados, ativação do estado atualTambém chamado sistema duplex
REDUNDÂNCIA DEINFORMAÇÃO
Redundância de informação
Visa detectar erros ou mascarar falhas incluindo bits ou sinais extras à informação.
Exemplos:ParidadeChecksumsDuplicação de códigoCódigos cíclicosCódigos de correção de erros
Código de paridade
Conceito básico: adicionar bit(s) para manter a palavra de código com um número par ou ímpar de 1s.
Principal uso: detecção de erros no armazenamento de memória.
5 abordagens:Paridade por palavraParidade por byteParidade por chipParidade por múltiplos chipsParidade entrelaçada
Paridade por palavra
01000100010001
11000100010000
- Permite apenas detecção de erros simples- Não permite detecção de muitos erros múltiplos- Forma um código separável
Paridade por Byte
Paridade por grupo de bitsPermite detecção de erros “tudo 1” ou “tudo 0”Permite detecção de erros múltiplos, se errosforem em grupos distintos
Paridade por Chip
Paridade por Múltiplos Chips