590 likes | 736 Views
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:
E N D
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
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 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)
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
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
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: 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