tolerância a falhas

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

Upload: tosca

Post on 28-Jan-2016

61 views

Category:

Documents


0 download

DESCRIPTION

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: - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Tolerância a Falhas

Tolerância a Falhas

Carlos Oberdan Rolim

Ciência da Computação

Page 2: Tolerância a Falhas

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

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

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

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

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

iAPX432

ENTRADA

SAIDA

erro

MESTRE VERIFICADOR

Page 8: Tolerância a Falhas

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

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

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

432 estrutura interna

Unidadefuncional

Controlede reversão

Entrada/saída (bidirecional)

Entrada

Sinalde erro

comparador

Page 12: Tolerância a Falhas

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tandem NonStop

Page 27: Tolerância a Falhas

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

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

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

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

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

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

Stratus

Esquema de um módulo do Stratus

Page 34: Tolerância a Falhas

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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