Tolerância a Falhas

Download Report

Transcript Tolerância a Falhas

Tolerância a Falhas

Carlos Oberdan Rolim Ciência da Computação

Arquiteturas de sistemas tolerantes a falhas

tolerância a falhas de um sistema de computação: deve ser suportada pelo hardware e software nível eficaz: arquitetura do sistema arquitetura de um sistema: componentes de hardware (processadores, memórias, controladores, interfaces) interconexões (barramentos ou linhas de comunicação).

Microprocessadores comerciais

aplicações convencionais quanto a condições existentes para reparo: inseridos em sistemas passíveis de reparo a intervalos quanto ao funcionamento do sistema: é admissível interrupção quanto ao tamanho da menor unidade permutável: nível de chips (uso de soquetes)

TF em microprocessadores comerciais

desenvolvidos para aplicações não críticas: não apresentam mecanismos intrínsecos para suporte de técnicas de tolerância a falhas mas vêm sendo usados para: controle de processos industriais controle de tráfego instrumentação.

TF em microprocessadores comerciais

chips convencionais sem suporte para tolerância a falhas solução temporária: hardware adicional como votadores e comparadores solução desejável suporte para TF suprido pelo microprocessador caso especiais Intel iAPX 432 Pentium

iAPX432 da Intel

suporte a TF independente da arquitetura (arquitetura = conjunto de instruções, modos de endereçamento, registradores internos) pode ser implementado em qualquer sistema digital integrado com acréscimo na área de silício

iAPX432

ENTRADA

MESTRE VERIFICADOR erro

SAIDA

TF no iAPX432

um chip pode ser configurado como mestre ou verificador: um mestre pode operar sozinho ou ligado a um verificador um verificador deve estar ligado a um mestre verificador: reversão de pinos comparação sinalização de erro

Configurações com iAPX432

bá sico

GDP bar.mem

BIU GDP: general data proces sor BIU: bus interface unit

funtiona l redundancy checking

bar.mem

quad m odular redundancy

GDP GDP BIU bar.mem

BIU

custo tolerância a falha s

+ +

Configurações alternativas:

arquitetura básica: não há redundância arquitetura FRC: detecção por HW arquitetura QMR: detecção + reconfiguração por HW par mestre verificador primário + par estepe dois pares ativos, mas apenas o par primário fornece resultados ao sistema detecção de erro chaveia para o par estepe (FRC)

432 estrutura interna

Entrada Unidade funcional Controle de reversão Entrada/saída (bidirecional) r d o p a r a c o m Sinal de erro

Pentium

486 paridade para os bytes de dados Pentium adicionalmente paridade nas caches, TLB e memória de microcódigo verificação de exceções (machine check exception) mestre / verificador (i432) com dois chips - dobro do custo

Pentium Pro

mantém todas as técnicas do Pentium adicionalmente: paridade nos bytes de dados substituída por 8 bits de ECC 2 bits de paridade para barramento de endereço associado a técnicas de

retry

bits de paridade para sinais de controle

Pentium Pro

verificador de exceções

machine check architecture

- MCA - com 3 registradores de controle e 5 bancos de 4 registradores de erro problemas: ECC limitado a parte mais fácil do circuito documentação difícil MCA opcional - pode ser desligado por software

Sistemas de grande porte

mainframes: alto custo arquitetura com vários processadores de alto desempenho memória comum de grande capacidade canais para ligação com periféricos sistemas operacionais multiusuário

Características mainframes

condições para reparo: passíveis de reparo a intervalos funcionamento do sistema: admissível interrupção tamanho da unidade permutável: nível de placas e unidades.

alto desempenho e alto custo desaconselhável redundância pura e simples alternativa: uso de processador de manutenção

Processador de manutenção

pequeno porte e autônomo opera independentemente do mainframe supervisiona mainframe não interfere no processamento normal construído com componentes confiáveis capacidade de autoteste não dispensa outras técnicas de TF códigos de correção e detecção de erros recuperação de erros transitórios sem intervenção do processador de manutenção

Processador de manutenção

ligação do processador de manutenção ao mainframe: diretamente ao barramento central onde trafegam dados, instruções, endereços e sinais de controle através de uma interface especial semelhante à interface de periféricos exemplo: IBM 3080 e 3090

Funções do processador de manutenção

inicialização e controle do sistema supervisão contínua do sistema durante operação diagnóstico de falhas recuperação do sistema quando uma falha é detectada teste durante desenvolvimento e produção

Funções do processador de manutenção

na detecção de um erro transitório: o processo é inicialmente interrompido o processo é posteriormente recuperado para um estado livre de erros o Sistema Operacional é responsável por reiniciar o processo recuperado

Funções do processador de manutenção

na detecção de um erro permanente: localizar a falha até o nível de componente configurar p/ garantir operação normal 2 cenários de recuperação reconfiguração é possível, mesmo degradada em desempenho (graceful degradation) reconfiguração não é possível: proc. de manutenção diagnostica a falha até o nível de SRU

Processador de manutenção

processador de manutenção unidade de dis quete memória loc al proc essador console modem mainframe memória CPU unidade de controle do s istema E/S console remoto

Sistemas comerciais tolerantes a falhas

Exemplos: computadores de grande porte desenvolvidos para aplicações comerciais tolerantes a falhas (sisitemas de transações) Tandem: mecanismos de TF implementados em software Stratus: mecanismos de TF implementados em hardware

Tandem NonStop

sistema composto de 2 a 16 módulos módulo: processador + memória local + canal de entrada e saída + fonte de alimentação interligados por um barramento duplicado adicionalmente controladores de dispositivos de entrada e saída controladores podem aparecer duplicados cada um está conectado a dois canais de E/S

Tandem NonStop

redundância dinâmica em software sistema operacional GUARDIAN; kernel + grande número de processos processos de supervisão para processadores pares para processos do sistema e do usuário par = processo primário ativo + processo substituto passivo processo primário envia pontos de recuperação p/ substituto

Tandem NonStop

Diagnóstico de erros

erros em um módulo detectados por outros módulos a cada segundo: processo supervisor do módulo envia sinal de vida a todos outros módulos no sistema a cada 2 segundos: processo supervisor verifica se recebeu sinal de vida dos outros módulos na falta de um sinal: módulo correspondente falhou

Diagnóstico de erros

operações de entrada e saída: controle de time-out sob falha: processo de E/S substituto entra em operação

Recuperação

Falha diagnosticada no módulo: processos substitutos relacionados aos primários em execução no módulo voltam para o último PR recuperação por retorno processos substitutos são ativados viram processos primários sistema é reconfigurado novos processos primários

Recuperação

Após reparo do módulo faltoso: novos processos primários criam substitutos nesse módulo Falha de um canal de entrada e saída: o processo substituto correspondente é rolado para PR processo substituto é ativado processo primário é desativado (substituto)

Stratus Continuous Processing

Sistema: composto de 1 a 32 módulos módulos interconectados por rede local (Strata Link) Módulo: processador + memória local + controladores de entrada e saída interligados por um barramento interno

Stratus

Módulos: não estão disponíveis para redundância dinâmica hardware duplicado com comparador (redundância estática) módulos podem aparecer duplicados a duplicação é transparente ao usuário e às aplicações.

Stratus

Esquema de um módulo do Stratus

Stratus: SO

sistema operacional VOS sistema multiusuário permite acesso aos recursos através da rede local apresenta recursos óbvios de tolerância a falhas uma vez que a tolerância é via hardware tendência de uso de UNIX

Stratus: diagnóstico de erros

interno aos módulos comparação dos resultados (por replicação) se comparação indica erro: nenhum resultado é fornecido como saída do módulo módulo é desconectado do sistema é enviado sinal de erro ao programa de manutenção.

Stratus: programa de manutenção

providencia realização de testes no módulo objetivo: determinar se falha é permanente ou transitória problema é registrado erro indicado em um terminal de supervisão para módulo faltoso duplicado no sistema: erro fica invisível à aplicação (unidade redundante)

Stratus: programa de manutenção

Falha transitória: módulo é ressincronizado com unidade redundante entra imediatamente em operação Falha permanente: módulo é substituído manualmente não há interrupção do processamento normal

Sequoia

multiprocessador fortemente acoplado (tightly coupled) problemas com isolamento de falhas vantagem no balanceamento de carga uso extensivo de detecção de falhas em hardware

Sequoia

características gerais construído com componentes padrão familia Motorola 680x0 Multibus para conexão a periféricos UNIX elementos básicos barramento dual segmentado processador + memória + I/O

Sequoia: arquitetura

Processadores duais PE Interface Mestre Interface Escrava ME MI Memória PE ME SI MI SI PE

segmento local processador segmento global segmento local memória

IOE Entrada/S aída IOE

Sequoia: barramento

barramento duplicado separado em 3 tipos de segmentos segmentos eletricamente isolados (MI e SI) configuração máxima: até 8 segmentos de processador até 16 segmentos de memória até 64 PEs e 128 MEs / IOEs

Sequoia: processador

PE 2 micros sincronizados comparação a cada ciclo de relógio cada PE possui: clock local memória cache metade read-only gerenciador de memória virtual

Sequoia: memória

interleaved código de correção de erros para detecção e correção de erros de memória controlador de memória em cada elemento de memória é duplicado espelhamento de memória

Sequoia: memória

cada ME contém 1024 test-and-set locks para realizar acesso exclusivo a posições da memória usados pelo sistema operacional periodicamente a memória é copiada em disco

Sequoia: cache

local a cada PE non-write-through flush periódico dos blocos alterados (dirty blocks) determinado pelo SO para atualizar memória principal para contornar overflow de cache flush (hardware especial): primeiro escreve na memória espelhada depois na primária

Sequoia: I/O

I/O também duplicados espelhamento de disco dois apaptadores MA - Multibus adapter BA - bus adapter Multibus barramento padrão para periféricos

Sequoia: I/O

BA - bus adapter conexão ao barramento de memória local (memory local segment) quatro buffers locais controlador de DMA MA - Multibus adapter conexão ao barramento de periféricos microprocessador dual buffers de dados (2Mbytes)

Sequoia: TF

paridade cache barramentos elementos de I/O códigos de correção e detecção comparação de elementos duplicados protocolos de monitoração

Sequoia: SO

compatível com padrão UNIX kernell proprietário superset do UNIX test-and-set locks exclusão mútua no acesso a memória compartilhada controle de flush de cache recuperação de falhas

Computadores de bordo

Função: controle ativo de aeronaves Características: tempo real, com tempo de atuação curto reparo: possível apenas durante os intervalos de vôo desejável: a cada centena de horas de vôo interrupção no funcionamento: inadmissível confiabilidade: da ordem de 10 -9 falhas por hora para um vôo de 10 horas

Exemplos

década de 70 (NASA) dois computadores desenvolvidos a partir da mesma especificação ambos com redundância modular tripla (TMR) FTMP SIFT Fault Tolerant Multi-Processor Software Implemented Fault Tolerance

Exemplos

FTMP: votador implementado em hardware, todos os processadores são sincronizados relógio central é tolerante a falhas SIFT: votação realizada por software, processadores são assíncronos, não há relógio central: sincronismo de resultados para votação garantido por software.

FTMP

sistema de barramento central: 5 barramentos redundantes processadores e módulos de memória ligados ao sistema de barramento por interfaces especiais (BGs - bus guardians).

FTMP: Tríade

Tríade = 3 processadores + 3 memórias. elementos executam a mesma tarefa comunicam se entre si através de 3 dos 5 barramentos BGs votam sobre dados da tríade colocados nos 3 barramentos falha em processador, memória ou barramento: mascarada tríades diferentes executam tarefas diversas

FTMP

processadores e módulos de memória estepe objetivo: substituir um elemento de uma tríade que falhou. distribuição dinâmica de tarefas entre as tríades objetivo: reconhecer falhas nos votadores reconfiguração periódica objetivo: reconhecer falhas no mecanismo de reconfiguração.

SIFT

Módulos processadores interligados por barramento redundante processadores operam assincronamente em relação aos demais sincronização de resultados para votação: por software

SIFT

uma tarefa é alocada sempre a 3 módulos: cada módulo envia seu resultado aos outros 2 usando o barramento redundante cada módulo realiza votação majoritária por software votação majoritária: (2-em-3)

AUGUST 300

sistema comercial baseado em SIFT construído com microprocessadores Intel 80x86 máquina para controle de processos em tempo real

Comparação FTMP e SIFT

ambos com alta confiabilidade para aplicações tempo-real FTMP: SIFT: esquema de votação mais eficiente (hardware) tolerância a falhas não é visível a partir da aplicação esquema de votação em software tolerância a falhas é visível a partir da aplicação