Escolar Documentos
Profissional Documentos
Cultura Documentos
Distribudos
Parte 10
Tolerncia a Falhas
Contedo adaptado a partir dos materiais produzidos pelo seguintes professores:
Edmar Rezende (PUC-Campinas)
Raul Ceretta Nunes (UFSM)
Raimundo Macedo (LASID UFBA)
Introduo
Falhas so inevitveis
Apesar de ser importante desenvolver solues que tentem ao
mximo evitar a ocorrncia de falhas, preciso estar ciente de que
no 100% de garantia de sucesso
As consequncias da falha podem ser evitadas por meio do uso
adequado de tcnicas de tolerncia a falhas
Introduo
Novos desafios
Falhas afetam a credibilidade das aplicaes, produtos e
organizaes
Falhas causam problemas de segurana, disponibilidade e
desempenho
3
Introduo
A fora de uma corrente pode ser medida pela resistncia de
seu elo mais fraco
Um nico ponto de vulnerabilidade pode comprometer a aplicao
como um todo
Introduo
Seleo de tecnologias
Especificao de sistemas
Incorporao de novas funcionalidades em projetos
Estabilidade e confiabilidade de aplicaes
Erro (error)
Um Erro a manifestao de uma Falha no sistema
Uma alterao perceptvel (e indesejada) no estado lgico do sistema
Um sistema est em erro se o processamento posterior a partir deste
estado pode levar a um defeito
Defeito (failure)
um desvio na especificao do sistema
Ocorre no universo do usurio e no pode ser tolerado
Importante:
Uma falha pode ou no levar a um erro
Um erro pode ou no conduzir a um defeito
Erro
Defeito
Exemplo 1
Bit modificado
erroneamente
Registro
corrompido
Atualizao
incorreta de
salrio
Exemplo 2
Defeito na
placa de rede
Os processos
hospedados
na mquina
no
conseguem
mais se
comunicar
com o mundo
exterior
Site fora do ar
(servio
indisponvel)
Latncia de erro
Perodo de tempo desde a ocorrncia do erro at a manifestao
do defeito devido aquele erro
Problemas de especificao
Problemas de implementao
Imperfeio ou fadiga de componentes
Distrbios externos (ex.:variaes ambientais)
Problemas de operao
Interveno maliciosa
8
A extenso da falha
Local, regional ou global?
Dependabilidade
A indstria no aceita bem o termo Tolerncia a Falhas, preferindo
termos como Sistemas redundantes ou Alta disponibilidade
Tentou-se unificar estes termo em um s: segurana de
funcionamento, mas isso acabou por confundir-se com aspectos de
segurana
Atualmente um termo mas amplo, dependabilidade est se tornando
popular
Dependabilidade (Dependability)
Dependabilidade diz respeito a habilidade para entregar um servio
comprovadamente confivel, ou seja, habilidade do sistema para evitar
defeitos inaceitveis para seus usurios.
a qualidade do servio oferecido por um dado sistema
uma propriedade de um sistema computacional, tal como
funcionalidade, usabilidade, desempenho e custo.
10
Dependabilidade
Principais medidas de dependabilidade
Confiabilidade (reliability)
Atender as especificaes, dentro de condies definidas, durante certo
perodo de funcionamento
Disponibilidade (availability)
Probabilidade do sistema estar operacional num instante de tempo
determinado
Diz respeito a mdia de tempo disponvel para acesso
Tolera a alternncia de perodos de funcionamento e reparo
Importante:
Um sistema pode ser altamente disponvel mesmo apresentando perodos de
inoperncia, desde que estes sejam curtos e no comprometam a qualidade
de servio
11
Dependabilidade
Principais medidas de dependabilidade (cont.)
Segurana (safety)
Probabilidade do sistema descontinuar suas funes de
forma a no provocar danos em quem depende dele
(pessoas ou outros sistemas)
Objetivo: manter o funcionamento consistente
Diz respeito a garantias de no haver defeitos catastrficos
ao usurio ou ambiente
Segurana (security)
Visa preservar a privacidade, autenticidade, integridade e
irreputabilidade dos dados
Diz respeito a proteo contra acessos, ou controle, no
autorizados ao estado do sistema
12
Dependabilidade
Principais medidas de dependabilidade (cont.)
Desempenho (performability)
Diz respeito a capacidade do sistema manter ou no seu
desempenho diante de falhas
O que ser afetado pela falha? Parte do sistema? Todo?
Mantenabilidade (maintainability)
Diz respeito a habilidade para reparo e modificaes eficientes
O sistema facilmente mantido? Como reage diante da necessidade
de reparo?
Testabilidade (testability)
Diz respeito a capacidade de testar certos atributos internos ao
sistema ou facilidade de realizar certos testes
Quanto maior a testabilidade, melhor a mantenabilidade, por
conseqncia menor o tempo de indisponibilidade do sistema
devido a reparos.
13
Tcnicas de
Dependabilidade
Remoo de Falhas
Visa reduzir o nmero ou a severidade das falhas
Previso de Falhas
Visa estimar o nmero presente, a incidncia futura e as consequncias das
falhas
Tolerncia a Falhas
Visa entregar o servio correto mesmo na presena de falhas
14
Tcnicas de
Dependabilidade
Como?
Aplicao de tcnicas de controle de qualidade durante
projeto
Controle de informao, verses e modularizao
Regras de projeto rigorosas para prevenir falhas
operacionais de HW
Definio de procedimentos para manuteno
Testes para prevenir falhas de interao
Firewalls ou similares para prevenir falhas maliciosas
15
Tcnicas de
Dependabilidade
Como?
Aplicada em 2 instantes:
Fase de desenvolvimento
Verificao Esttica Verificao de modelos e prova de teoremas
Verificao Dinmica Injeo de falhas e execuo simblica (teste)
Diagnstico Determina o impacto das falhas apuradas nas
verificaes
Correo corrige- se os problemas diagnosticados
Fase operacional
Manuteno corretiva (diante da ocorrncia do erro)
Manuteno preventiva (diante da possibilidade de ocorrncia de
erro)
16
Tcnicas de
Dependabilidade
Como?
Para estimar o comportamento utiliza dois tipos de avaliaes:
Estimativa Qualitativa
Identifica, classifica e elenca os modos de
defeitos
Estimativa Quantitativa
Faz anlise probabilstica
As estimativas ajudam a definir aes que evitem
falhas/defeitos
17
Tcnicas de
Dependabilidade
Como?
Implementada por
Mascaramento
Deteco de erros seguida de recuperao do sistema
Classes de deteco de erros:
18
Tolerncia a Falhas
Objetivo: garantir o funcionamento correto do sistema mesmo
diante da ocorrncia de falha
Prever problemas e remov-los aps sua ocorrncia no
suficiente para sistemas que exigem altos nveis de
confiabilidade e disponibilidade
A existncia destes mecanismos no dispensa tcnicas de
preveno e remoo antecipada
Mascaramento
Redundncia de hardware
Cdigos de correo de erros (ECC)
Diversidade ou programao diversitria (n-verses)
Blocos de recuperao
22
Redundncia
Redundncia para aumentar a confiabilidade algo mais
antigo que a histria dos computadores
Serve tanto para deteco quanto para o mascaramento de falhas
Redundncia
Redundncia
Redundncia
Redundncia
de
de
de
de
Hardware
Informao
Software
Temporal
23
Redundncia de Hardware
Passiva ou Esttica
Ativa ou dinmica
Para obter reduo de custo, baseia- se em deteco/localizao,
seguida de remoo e de reconfigurao/recuperao de falhas falha
No prov mascaramento - trabalha baseada em substituio de
mdulos
Usada em aplicaes de longa vida
Hbrida
Combina aspectos de redundncia ativa e passiva
Usada para garantir mascaramento e longa vida
Geralmente so solues de alto custo
24
Redundncia de Software
Replicao de componentes de software idnticos no
suficiente, pois componentes iguais apresentaro erros iguais
Principais tcnicas:
Verificao de consistncia
Usa conhecimento prvio sobre caractersticas da informao para
verificar se a informao correta (ex: validade de endereo)
Verificao de capacidade
Usa conhecimento prvio sobre caractersticas do sistema (ex:
memria disponvel)
Programao N-auto-verificvel
N verses do programa so escritas e cada uma realiza um teste
de aceitao prprio, permitindo suportar N-1 falhas
Testes de aceitao so testes realizados sobre os resultados
produzidos por um programa e podem ser criados por verificao
de consistncia ou capacidade
25
Redundncia de Software
Principais tcnicas: (cont.)
Programao N-verso (ou programao diversitria)
Diversas implementaes para o mesmo problema que devem
apresentar os mesmos resultados (exemplo: 2+2=4; 2 2=4;
2x2=4)
Para N verses so toleradas (n-1)/2 falhas
Todas as verses so executadas sempre, e a resposta do sistema
determinada por votao
Blocos de recuperao
Trabalha com vrias verses para solucionar um mesmo problema
Existe um nico teste posterior de aceitao do resultado
fornecido pela verso primria
As verses secundrias s so acionadas se a verso principal for
reprovada no teste de aceitao
Para N verses so toleradas (N-1) falhas
26
Redundncia de Informao
Visa detectar erros ou mascarar falhas incluindo bits ou sinais
extras informao
A codificao aumenta o nmero de bits sem com isso
aumentar a capacidade para a representao da informao
Com isso a informao armazenada ganha meios de ser verificada
e at mesmo corrigida
Exemplos:
Paridade
Checksums
Duplicao de cdigo
Cdigos cclicos
Cdigos de correco de erros (CCE)
27
Redundncia de Temporal
Uma dada funo executada mltiplas vezes, com as
mesmas entradas
Soluo usada em sistemas onde o tempo no crtico
Evita o custo de hardware adicional aumentando o tempo
necessrio para realizar o processamento
Eventuais diferenas nas sadas indicam erros causados por
defeitos fsicos transientes (ou por rudo).
Garantindo tempo para as duas execues da tarefa em
todas as respectivas ativaes (inclusive no pior caso), podese conseguir uma taxa de deteco de erros acima de 99,9%
28