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]
Download

PalestraTFv2 - Departamento de Sistemas e Computação