Você está na página 1de 28

Sistemas

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

Existe um custo associado a qualquer ao visando tolerncia a


falhas
preciso avaliar o custo x benefcio para determinar a melhor
abordagem
Exemplo:
Backup consome espao, tempo e exige pessoal treinado
Redundncia de equipamentos e espelhamento de discos exige
investimentos sem aumento de desempenho
Terceirizao do problema pode encarecer demais a soluo

Introduo

No passado a preocupao em relao a falhas acontecia


apenas em aplicaes muito crticas
Avies, sondas espaciais, controles industriais de tempo real, ...

Com a popularizao da redes...


A dependncia tecnolgica aumentou
A necessidade de aplicaes mais estveis virou uma
exigncia comum

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

O que Tolerncia a Falhas?


o conjunto de tcnicas utilizadas para detectar, mascarar e tolerar
falhas no sistema.

O que um Sistema Tolerante a Falhas?


um sistema que continua provendo corretamente os seus servios
mesmo na presena de falhas de hardware ou de software.
Defeitos no so visveis para o usurio, pois o sistema detecta e
mascara (ou se recupera) defeitos antes que eles alcancem os
limites do sistema (ponto de fuga da especificao).
4

Introduo

Tolerncia a falhas tem influncia direta em:

Seleo de tecnologias
Especificao de sistemas
Incorporao de novas funcionalidades em projetos
Estabilidade e confiabilidade de aplicaes

Alguns desafios atuais


Como evitar, detectar e contornar bugs em hardware e software?
Como gerenciar a complexidade dos sistemas (hardware e
software)?
Como explorar o paralelismo para melhorar o desempenho sem
comprometer a qualidade dos resultados?
Como absorver novas tecnologias sem comprometer a tolerncia
a falhas?
5

Falha, Erro e Defeito


Falha (fault)
Causa fsica ou algortmica do erro
Um estado no especificado do hardware ou do software

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

Falha, Erro e Defeito


Exemplos:
Falha

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)

Falha, Erro e Defeito


Latncia de Falha
Perodo decorrido entre a ocorrncia da falha e a manifestao do
erro devido aquela falha

Latncia de erro
Perodo de tempo desde a ocorrncia do erro at a manifestao
do defeito devido aquele erro

Principais causas de falha:

Problemas de especificao
Problemas de implementao
Imperfeio ou fadiga de componentes
Distrbios externos (ex.:variaes ambientais)
Problemas de operao
Interveno maliciosa
8

Falha, Erro e Defeito


Para definir uma falha, deve-se levar em considerao:
A natureza da falha
Ambiente (hardware, software, operao, ...)
O projeto ( a melhor ideia?)
A implementao da soluo (ex: bugs no cdigo)

A durao da falha (tambm chamada de Persistncia)


permanente ou temporria?

A extenso da falha
Local, regional ou global?

O valor do impacto que a falha causa (em certo perodo de


tempo)
Determinado ou indeterminado?

O que pode ser feito para evit-las ?


Verificao e testes
+
Tolerncia a Falhas
9

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

Diz respeito a continuidade da entrega de servio


correto
No o mesmo que disponibilidade

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

Como alcanar a dependabilidade pretendida?


Preveno de Falhas
Visa prevenir a ocorrncia ou introduo de falhas

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

Estas tcnicas implicam na existncia de mecanismos de


validao, que so usados para verificar a a existncia de
falhas, confirmar o sucesso da remoo ou da preveno
e at mesmo acionar as solues de tolerncia

14

Tcnicas de
Dependabilidade

Como alcanar a dependabilidade pretendida? (cont.)


Preveno de Falhas
Visa prevenir a ocorrncia ou introduo de falhas

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 alcanar a dependabilidade pretendida? (cont.)


Remoo de Falhas
Visa reduzir o nmero ou a severidade das falhas

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 alcanar a dependabilidade pretendida? (cont.)


Previso de Falhas
Visa estimar o nmero presente, a incidncia futura e as
conseqncias das falhas

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 alcanar a dependabilidade pretendida? (cont.)


Tolerncia a Falhas
Visa entregar o servio correto mesmo na presena de falhas

Como?
Implementada por

Mascaramento
Deteco de erros seguida de recuperao do sistema
Classes de deteco de erros:

Concorrente execuo concorrente ao servio


Preemptiva execuo c/ suspenso do servio
Recuperao consiste no reestabelecimento de estado correto
Implica em controle de erros e falhas

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

Fases de aplicao das tcnicas de TF:


1. Deteco de erros
2. Confinamento e avaliao
3. Recuperao de erros
4. Tratamento da falha
19

Fases de Tolerncia a Falhas


Fase 1: Deteco de erros
Objetivo: identificar a ocorrncia de falhas por meio de
parmetros de controle
Mecanismos: limites de tempo, paridade, consistncia,
diagnsticos
O erro pode no ocorrer, ou seja: podem existir falhas que nunca
cheguem a se tornar um erro reconhecido pelo sistema

Fase 2: Confinamento e avaliao


Objetivo: isolar o problema e avaliar o impacto da falha
Mecanismos: aes atmicas, encapsulamento de operaes,
hierarquia de processos, controle de recursos, regras de
permisso explcitas (probe o inesperado)
O confinamento tenta limitar a propagao de dados invlidos
pelo sistema (isso ocorre devido latncia de falha)
20

Fases de Tolerncia a Falhas


Fase 3: Recuperao de erros
Objetivo: resgatar o controle do fluxo de execuo
Mecanismos:
Recuperao por retorno (volta ao estado anterior) mais eficiente,
mas requer uma implementao especfica para cada caso
Recuperao por avano (leva a um novo estado consistente) O
mecanismo de retorno uma soluo mais genrica, sendo por isso mais
adotado

Fase 4: Tratamento da falha


Objetivo: Resgatar a consistncia da aplicao
Mecanismos:
Diagnstico (comparao; resultados obtidos X resultados esperados)
Reparo (remoo ou substituio de componentes)

Tanto o diagnstico quanto o reparo podem ser conduzidos de forma


manual ou automtica
21

Mascaramento

O mascaramento garante a resposta correta mesmo diante


da ocorrncia de falhas, pois a falha no se manifestar
como um erro evitando assim a deteco do mesmo
S interessante para falhas temporrias
No caso de falhas permanentes ainda so necessrios
mecanismos de localizao e reparo
Mecanismos:

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

Sempre causa algum impacto no sistema


Custo, desempenho, tamanho, peso, potncia consumida, ...

A adoo de solues baseadas em redundncia uma opo


comum em sistemas tolerantes a falhas e pode ocorrer de
diversas formas

Redundncia
Redundncia
Redundncia
Redundncia

de
de
de
de

Hardware
Informao
Software
Temporal
23

Redundncia de Hardware

Passiva ou Esttica

Todos os elementos redundantes executam a mesma tarefa


Usada em mascaramento de falhas
No requer ao do sistema
No indica a falha

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