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 funtiona l redundancy checking bá sico quad m odular redundancy GDP GDP GDP GDP GDP BIU BIU BIU BIU bar.mem bar.mem bar.mem - custo + - tolerância a falha s + GDP: general data proces sor BIU: bus interface unit 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) c o m p a r a d o r 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 disquete memória local processador console modem mainframe memória CPU unidade de controle do sistema 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 PE PE segmento local processador MI MI segmento global Interface Escrava SI ME ME Memória SI segmento local memória IOE IOE Entrada/Saída 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 Fault Tolerant Multi-Processor SIFT 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: esquema de votação mais eficiente (hardware) tolerância a falhas não é visível a partir da aplicação SIFT: esquema de votação em software tolerância a falhas é visível a partir da aplicação