Upload
internet
View
104
Download
0
Embed Size (px)
Citation preview
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:– 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 FalhasDetecçã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;