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