tolerância a falhas carlos oberdan rolim ciência da computação

59
Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

Upload: internet

Post on 18-Apr-2015

112 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

Tolerância a Falhas

Carlos Oberdan Rolim

Ciência da Computação

Page 2: 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).

Page 3: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computaçã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)

Page 4: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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.

Page 5: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computaçã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

Page 6: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 7: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

iAPX432

ENTRADA

SAIDA

erro

MESTRE VERIFICADOR

Page 8: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 9: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

Configurações com iAPX432

GDP

BIU

GDP

BIU

GDP

BIU

GDP

BIU

GDP

BIU

-

-

+

+

custo

tolerância a falhas

bar.mem bar.mem bar.mem

básicofuntional redundancychecking

quad modularredundancy

GDP: general data processorBIU: bus interface unit

Page 10: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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)

Page 11: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

432 estrutura interna

Unidadefuncional

Controlede reversão

Entrada/saída (bidirecional)

Entrada

Sinalde erro

comparador

Page 12: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 13: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 14: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 15: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 16: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 17: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computaçã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

Page 18: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computaçã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

Page 19: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 20: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computaçã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

Page 21: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 22: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

Processador de manutenção

unidade dedisquete

processadormemórialocal

console

modem

consoleremoto

memória

CPU

unidade decontrole

do sistema

E/S

processador de manutençãomainframe

Page 23: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 24: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 25: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 26: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

Tandem NonStop

Page 27: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 28: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 29: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computaçã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

Page 30: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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)

Page 31: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 32: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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.

Page 33: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

Stratus

Esquema de um módulo do Stratus

Page 34: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 35: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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.

Page 36: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computaçã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)

Page 37: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 38: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 39: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 40: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

Sequoia: arquitetura

PE PE PE

ME ME IOEIOE

MI MI

SI SI

InterfaceMestre

InterfaceEscrava

Processadores duais

Memória Entrada/Saída

segmentoglobal

segmentolocalprocessador

segmento localmemória

Page 41: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computaçã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

Page 42: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 43: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 44: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 45: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 46: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 47: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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)

Page 48: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 49: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computaçã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

Page 50: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 51: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 52: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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.

Page 53: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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).

Page 54: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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

Page 55: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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.

Page 56: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computaçã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

Page 57: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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)

Page 58: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

AUGUST 300

sistema comercial baseado em SIFT

construído com microprocessadores Intel 80x86

máquina para controle de processos em tempo real

Page 59: Tolerância a Falhas Carlos Oberdan Rolim Ciência da Computação

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