tolerância a falhas

58
Tolerância a falhas Hugo Albuquerque, João Vitor, Maria Cireno, Thiago Lima {hra, jvob, mcrs, tavl}@cin.ufpe.br

Upload: carol-swanson

Post on 01-Jan-2016

33 views

Category:

Documents


1 download

DESCRIPTION

Tolerância a falhas. Hugo Albuquerque, João Vitor, Maria Cireno , Thiago Lima { hra , jvob , mcrs , tavl }@ cin.ufpe.br. Agenda. Motivação Introdução Conceitos Tolerância a falhas Redundância Detecção e correção de erros Aplicações. Motivação. - PowerPoint PPT Presentation

TRANSCRIPT

Tolerncia a falhas

Tolerncia a falhasHugo Albuquerque, Joo Vitor, Maria Cireno, Thiago Lima{hra, jvob, mcrs, tavl}@cin.ufpe.brAgendaMotivaoIntroduoConceitosTolerncia a falhasRedundnciaDeteco e correo de errosAplicaesMotivaoNecessidade crescente de sistemas mais confiveisControle de vo, Sistemas bancrios, etc.

Interrupo de servio pode ter consequncias catastrficas para alguns serviosTolerncia a falhas visa evitar ao mximo essas interrupes do sistema.IntroduoO que um Sistema Tolerante a Falhas?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).

O que Tolerncia a Falhas? um atributo que habilita o sistema para ser tolerante a falhas. o conjunto de tcnicas utilizadas para detectar, mascarar e tolerar falhas no sistema.

ConceitosServio e Tarefa

FalhaErroDefeito

Dependabilidade

Servio e TarefaServios so funcionalidades oferecidas ao usurio.Em STR, possuem limitao temporal.Servios so fornecidos atravs de tasks(tarefas)

Tarefas so trechos de cdigo ou subrotinas para fornecer uma funcionalidade especfica.Podem ser classificadas quanto sua prioridade ou ocorrnciaTarefas (Classificao)Quanto a sua ocorrncia:Aperidicas: podem ser disparadas a qualquer momento.Espordicas: podem ocorrer a qualquer momento, porm o tempo mnimo entre as ativaes conhecido.Peridicas: intervalo entre disparos conhecido e fixo.Quanto a sua prioridade:No-Crticas: atrasos e falhas so tolerveis.Semi-Crticas: atrasos so tolerveis, mas falhas no.Crticas: falhas ou atrasos no so tolerveis.FalhaFalha: problema ou imperfeio no nvel fsicoCurto circuito, falhas algortmicas, etc.Podem ser classificadas em:Transitrias: ficam ativas por um certo perodo de tempo.Intermitentes: faltas transitrias ativas periodicamente.Permanentes: aps ocorrer, permanecem ativas at correo.ErroErro: desvio na exatido ou preciso da computaoOcorrem no nvel computacional.Associados a valores incorretos do estado do sistema.Causados por falhas.

DefeitoDefeito: sistema no corresponde ao esperadoDesvio da especificaoSistema no age de acordo com especificao ouEspecificao no descreve adequadamente o sistemaQuando servios no so fornecidos da forma ou prazo esperados pelo usurio

Podem gerar consequncias catastrficas

DependabilidadeUma propriedade de um sistema computacional, tal como usabilidade, desempenho e custo.

Dependabilidade diz respeito a habilidade de entregar um servio comprovadamente confivel, ou seja, habilidade do sistema para evitar defeitos inaceitveis para seus usurios.

Atributos da dependabilidadeDisponibilidadediz respeito a mdia de tempo disponvel para acessoConfiabilidadediz respeito a continuidade da entrega de servio corretoIntegridadeimpedimento de alteraes de estado imprpriasSegurana (safety)diz respeito a garantias de no haver defeitos catastrficos ao usurio ou ambienteAtributos da dependabilidadeConfidencialidadeimpedimento de acesso indevidoMantenabilidadehabilidade para reparo e modificaes eficientesSegurana (security)proteo contra acessos, ou controle, no autorizados ao estado do sistemaTestabilidadefacilidade para testar o sistema (ponto de teste, testes automatizados)

Como obter dependabilidadePreveno de Falhas: Visa prevenir a ocorrncia ou introduo de falhasRemoo de Falhas: Visa reduzir o nmero ou a severidade das falhasPreviso de Falhas:Visa estimar o nmero presente, a incidncia futura e as conseqncias das falhasTolerncia a Falhas:visa entregar o servio correto mesmo na presena de falhas

Tolerncia a falhasRedundnciaRequisito bsicoHardware/software tolerante a falhasImplementada por mascaramento ou deteco de erros, seguidos de recuperao do sistema.Recuperao consiste no re-estabelecimento do estado correto do sistemaTipos de RedundnciaHardwareNMR, TMR, SMR, etc.SoftwareN-Version, N-Self-Checking Programming, etc.InformaoCdigos de deteco/correo de erros, RAID, etc.TempoRe-execuo de cdigo em momentos distintos, etc.Tcnicas deTolerncia a falhasTcnicas de tolerncia a falhasNMR / TMR / 2MRSMRMid-value SelectionFlux Summing

Standby Sparing

N VersionBlocos de recuperaoNMRN Modular RedundancyN mdulos paralelosSuporta at n-1/2 falhas.Sistema fail-silentCom ou sem Sistema de VotaoSistema de votao um ponto crtico de falhas.

NMR

TMRTriple Modular RedundancyNMR de ordem 3

2MR2 Modular RedundancyNMR de ordem 2Duplicao com ComparaoApenas detecta falhasEfetivo para Sistemas fail-silent2MR

SMRSiftout Modular RedundancyTolerante N-2 falhas.Mais simples que NMRMais eficiente e confivel do que sistemas NMR com circuito de votao.SMR

Tcnicas AuxiliaresMid-value SelectionFlux SummingMid-value SelectionEfetivo para sistemas com sadas no-booleanasSistemas de sensores

selecionada a mediana dos valores de sada dos mdulos do sistemaPode ser definida uma faixa de valores vlidosFlux SummingA sada do sistema reusada como entrada.Uso efetivo para correo dos mdulos.Facilita a identificao e correo de mdulos defeituosos.Segue diagrama:Flux Summing (figura)

Standby Sparing(a.k.a.: standby replacement)Um ou mais mdulos em standbyApenas um mdulo operacionalEm caso de falha, descarte do mdulo operacional e substituio por mdulo em standbyHot StandbyCold StandbyHot standbyTcnica em que o mdulo principal e os secundrios executam simultaneamente.Apenas as sadas do mdulo principal so consideradas.Dados so espelhados do mdulo principal para os mdulos secundrios.Dados so idnticos em todos os mdulos.Rpida recuperao em caso de falha.

Cold standbyTcnica em que mdulos secundrios s so ativados em caso de falha no mdulo principal.Espelhamentos podem ser executados esporadicamente do mdulo principal para os mdulos secundrios.Baixo consumo de energia.

Hot standby X Cold standbyCaractersticaHot StandbyCold StandbyGasto de energiaAltoBaixoTempo de RecuperaoBaixoAltoDesgaste dos mdulosAtoBaixoN Version(Replicao de software)N equipes isoladas entre siApenas 1 especificao de projeto

Cdigos gerados tendem a ser diferentes entre siTendem a no compartilhar dos mesmos errosProbabilidade de falha de programao inversamente proporcional a N.N VersionSimilar ao NMR, de hardware.O cdigo gerado por cada equipe executa em paralelo nos mdulos do sistemaSo submetidos a comparao de resultados para detectar erros de programao

Eficaz apenas para deteco de erros lgicosSubentende-se que o hardware no possui erros de projeto e fabricao.N self-checking versionExtenso ao N VersionN equipes isoladas entre siApenas 1 especificao de projetoEquipes devem projetar tambm um mdulo de verificao de corretude lgica para seus prprios mdulosMdulos em que sua sada no passar no prprio teste no considerada vlida pelo sistema de votao.N self-checking version

Blocos de RecuperaoExtenso ao N versionN verses de software, apenas 1 executando no sistemaEm caso de falha na verso operacional, o sistema passa a executar uma das verses em standbyFalha detectada atravs de teste de corretude, a qual so submetidas as sadas dos mdulos antes de se tornarem sada do sistema.Falha no sistema caso nenhuma das verses passe na verificao de corretude.Deteco de falhas/errosVerificao de capacidadeVisa detectar falhas antes da ocorrncia do erroVerificar a capacidade do sistema antes de executar uma tarefaVerificar o funcionamento dos componentesMemriaComunicaoExecutado no tempo livre do processadorGeralmente gerenciada por software (sistema operacional)Verificao de consistnciaVerificar determinados pontos da computao procura de inconsistnciasPor exemplo, checar se o valor de uma varivel est dentro de um intervalo pr-determinadoDeteco de errosExecuo de testes para verificar ocorrncia de errosTeste idealBaseado apenas na especificao do sistema (caixa preta)Completo e corretoIndependente do sistema em relao suscetibilidade de errosTestes de deteco de errosTestes de replicaoTestes de temporizao (timing)Tempo de respostaTestes estruturais e semnticosCodificaoTestes de coernciaAssertionsTestes de diagnsticoOutput calculado vs. Output previstoTestes de Replicao so muito comuns e poderosos, podendo ser bem completos e implementados sem o conhecimento do funcionamento interno do sistema. Tal teste implica em replicar algum componente do sistema, e comparar ou votar resultados de diferentes componentes a fim de detectar erros. O tipo e a quantidade de replicaes dependem da aplicao. Tal forma de teste usada frequentemente em hardware, como por exemplo no TMR (Triple Modular Redundancy).

Se a especificao de um componente inclui restries no tempo de resposta, ento testes de Timing podem ser aplicados. Basicamente, tais testes realizam uma solicitao a algum componente e verificam se o tempo de resposta excede ou no a restrio imposta na especificao. Testes de Timing so usados tanto em hardware como em software. Em sistemas distribudos, ele possui um papel importante, pois a falha de um n determinada pelo seu tempo de resposta a uma determinada solicitao.

Em quaisquer dados, dois tipos gerais de testes so possveis: testes de semntica e estruturais. Testes Semnticos tentam garantir se o valor consistente com o resto do sistema. Testes Estruturais s consideram a informao e garantem que internamente a estrutura dos dados como deveria ser. A forma mais comum de teste estrutural a codificao, que usada intensamente em hardware. Nela, bits extras so adicionados aos dados, de forma que possvel detectar se existe algum bit corrompido. Tal teste tambm pode ser usado em software, sendo aplicado s estruturas de dados.

Testes de Coerncia determinam se o estado de algum objeto no sistema est coerente. Um exemplo comum de tal teste verificar se determinado valor est em um determinado intervalo. Outro exemplo colocar assertions no meio do sistema, a fim de que inconsistncias sejam detectadas.

Em Testes de Diagnstico, um sistema usa alguns testes em seus componentes para verificar se ele est funcionando corretamente. A partir do conhecimento prvio de certos valores de entrada e de seus resultados de sada corretos, estes valores so aplicados ao componente e a sada comparada com os resultados corretos.43Tcnicas de deteco de errosDuplicaoImprobabilidade da alterao ocorrer no mesmo local nos dois conjuntos simultaneamenteParidade simples, vertical ou TRC (Transverse Redundancy Check)1 bit a cada caractere (byte)Paridade par ou mpar (n de 1s)Identificar nmero mpar de bits trocadosTaxa de utilizao de bits: R = 8/(8+1) = 88,8%CaractereASCIIBinrioParidade parParidade mparA41100000101B42100001001C43100001110Tcnicas de deteco de errosParidade horizontal ou LRC (Longitudinal Redundancy Check)Caractere de paridade para blocos de caracteresDetecta mais de 1 erro em cada caractere, porm apenas 1 erro por ordem de bitTaxa de utilizao: R = n/(n + 1), n n de caracteres no bloco

Caractere12345678910Paridade (LRC)bit 011010110100bit 101010110101bit 210010010010bit 310011000010bit 410111100010bit 510100100111bit 600001110111bit 700010010110Tcnicas de deteco de errosCRC (Cyclic Redundancy Check)Transmisso:Cada bit da mensagem representa um coeficiente de um polinmio M(X)Define-se um polinmio gerador G(X) de grau rDesloca-se a mensagem M(X) de r bits para a esquerdaDivide-se M(X) por G(X), atravs de um XOR ()Soma-se o resto da diviso mensagem deslocada, formando a mensagem composta T(X)Recepo:T(X) dividido por G(X)Se o resto no for nulo, existe um erro na transmissoTcnicas de deteco de errosCRC (Cyclic Redundancy Check)Ex:Mensagem: M(X) = 110011 (X5 + X4 + X + 1)Polinmio: G(X) = 11001 (X4 + X3 + 1)

T(X) = 1100111001

Como o resto final foi nulo, noforam detectados erros

M(X) 1100110000 11001 G(X) 11001 100001 Quociente 0 10000 11001Resto = CRC 1001

T(X) 1100111001 11001 G(X) 11001 100001 Quociente 0 11001 11001Resto = CRC 0000

47Tcnicas de deteco de errosChecksumSimples soma dos caracteres transmitidosRealiza-se a operao mdulo sobre o resultado para garantir o limite de tamanho no checksumQuando recebida a mensagem, calcula-se o checksum novamente e compara-se com o checksum recebidoEx:1AH 75H F8H 9CH soma = 223H mod (25610) = 23HConfinamento e Avaliao de DanosCaso necessrio, deve-se confinar o erro, a fim de que o mesmo no se propague a outras partes do sistemaErros propagam-se atravs da comunicao de componentesAvaliao atravs do fluxo da informao a partir do componente defeituosoRecuperao de errosPara trs ou por retorno (Backward Recovery)Checkpoints em pontos estveisIndepende da natureza da falha (exceto hardware)Overhead (checkpoints e rollback)Para frente ou por avano (Forward Recovery)Medidas corretivasNo h overheadDepende de avaliao e suposies precisasTratamento de falhasLocalizao da falhaReparo do sistemaCorreoReconfiguraoTroca de componenteTcnicas de correo de errosParidade combinadaParidade vertical + horizontalPermite a localizao do erroCaractere12345678910Paridade (LRC)bit 011010110100bit 101010110101bit 210010010010bit 310011000010bit 410111100010bit 510100100111bit 600001110111bit 700010010110Paridade (VRC)1000111010Caractere12345678910Paridade (LRC)bit 011010110100bit 101010110101bit 210010010010bit 310011000010bit 410111000011bit 510100100111bit 600001110111bit 700010010110Paridade (VRC)1000101010Tcnicas de correo de errosCdigo de Hamming (c, d)Adio de bits de redundncia a bloco de dadosDeteco de 2 bits de erros ou correo de 1 bitBits de Hamming em potncias de 2 (1, 2, 4, 8, ...)Quantidade de bits de Hammingd + p 2p 1Tcnicas de correo de errosCdigo de Hamming (c, d)CodificaoPara cada bit de dado ativo (1) escreve-se sua posio em binrioRealiza-se o XOR entre as posies, 2 a 2O resultado identifica os bits de Hamming em ordem inversaDecodificaoRealiza-se o XOR das posies em binrio dos bits ativos de todo o bloco recebido (incluindo os bits de Hamming)Se o resultado for nulo, no houve errosCaso contrrio, o resultado identifica em formato binrio a posio do erroTcnicas de correo de errosCdigo de Hamming (c, d)Ex: Mensagem 10011001Codificao p1p21p4001p81001Hamming 0011011110011100 = 0001 (3) (7) (9) (12)Resultado 101000101001Tcnicas de correo de errosCdigo de Hamming (c, d)Ex: Dado 1101Codificao p1p21p4101

Resultado 1010101Situao de erroACB1110100ACB1010100010AplicaesLonga vidaSatlites, sondas espaciais, marca-passo, etc.Computao crticaABS, airbag, alarmes de incndio, controles de usinas nucleares, equipamentos de radioterapia, sistemas de suporte vida (ventiladores, bypass, etc)Alta disponibilidadeInternet, ATMs, etc.Obrigado!