tolerância a falhas em sistemas distribuídos agnaldo l martins

Post on 18-Apr-2015

135 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related