sistemas distribuídos

June 28, 2017 | Autor: Elygya Norberto | Categoria: Archeologia Bizantina
Share Embed


Descrição do Produto

Tolerância a falhas em sistemas distribuídos UFRGS Taisy Silva Weber 2005

Níveis - [Jalote 94]

diversidade blocos de recuperação tratamento de exceções

software tolerante a falhas resiliência de processos serviços

resiliência de dados ações atômicas recuperação para um estado consistente

blocos básicos

difusão confiável e atômica, multicast, membership processador fail-stop, armazenamento estável, consenso bizantino, comunicação confiável sistema distribuído sem memória compartilhada sem relógio global

Taisy Weber

2

Sistema distribuído modelo físico estações de usuários

Interface de Programação Middleware: replicação, resiliência, recuperação, comunicação de grupo

rede

estações de processamento

Taisy Weber

dual storages servidor

Sistema Operacional

modelo lógico: processos distribuídos, troca de mensagens

3

Modelos de tempo 9 sistema assíncrono

modelos síncrono e assíncrono podem ser considerados extremos teóricos, outros modelos misturam características desses extremos

9 não existem limites de tempo impossível alcançar consenso em sistemas assíncronos

9 sistema síncrono 9existe um limite de tempo finito e conhecido

sistema correto opera dentro desse limite

9falha de componente pode ser deduzida pela ausência de resposta 9timeout detecção de defeitos em nodos e perdas de mensagens Taisy Weber

4

Classificação de falhas (Cristian) sem resposta para algumas entradas

parada ou perda do estado interno

crash

omissão

temporização

respostas incorretas para algumas entradas

resposta arbitrária

resposta adiantada ou retardada comportamento totalmente arbitrário e imprevisível Taisy Weber

5

Exemplos de falhas 9 processador: 9 crash ou bizantinas 9 rede de comunicação: 9 todos os tipos 9 clock: 9 temporização ou bizantinas

9 meio de armazenamento 9 temporização, omissão ou resposta 9 software: 9 resposta

o modelo de falhas é uma simplificação da realidade, na literatura existem vários outros modelos de falhas sugeridos para sistemas distribuídos

Taisy Weber

6

Sistemas distribuídos: modelo físico NODO relógio local

memória local

processador

armazenamento não volátil

Taisy Weber

interface de rede

R COM EDE D E UN I CAÇ ÃO men sage ns

7

Modelo lógico 9 aplicação distribuída 9 conjunto de processos concorrentes 9 processos cooperativos 9cada processo é seqüencial 9cada processo pode estar em um nodo diferente 9 progresso finito 9nada pode ser dito sobre velocidades relativas 9todos os processos avançam na execução

Taisy Weber

8

Modelo lógico 9 rede completamente conectada 9topologia não é considerada 9 processos 9 canais 9existe um canal entre quaisquer dois processos que interagem, com buffer infinito e livre de erros 9canais entregam mensagens na ordem que foram enviadas 9 características não necessariamente válidas para o meio físico

Taisy Weber

9

Canal cb a

pi

ordem de mensagens preservada no canal

processo

can al

cb

a

pj

Modelo lógico Taisy Weber

10

Canal xy

pa

pc

mxyn

xy ordem parcial preservada ordem total não preservada

mn

pb

mn

pd

xmny

Modelo lógico Taisy Weber

11

Ordenação de eventos 9 dificuldade de determinar relações temporais 9 RAZÃO: inexistência de clock global 9 problema 9 determinar ordenação temporal de eventos que ocorrem em nodos diferentes, medidos por relógios diferentes 9 relação: a “aconteceu antes de” b : a → b

Taisy Weber

12

Ordenação de eventos 9 ordem parcial 9 se a e b são eventos do mesmo processo e a é executado antes de b então a → b 9 se a é send e b é receive da mesma mensagem então a → b 9 a → b e b → c então a → c 9 eventos concorrentes: é possível estabelecer 9nem a → b, nem b → a uma ordem total não temporal com relógios lógicos

Taisy Weber

13

Clocks lógicos 9 Lamport 78 9meio de assinalar um número a um evento 9 nenhuma relação com o tempo físico

9 sistema de clock lógico 9um sistema de clock lógico é correto se é consistente com a relação → 9 clock lógico 9carimba um evento de forma que a relação de ordem parcial é mantida exemplo: timestamp T Taisy Weber

14

Blocos básicos software tolerante a falhas resiliência de processos serviços

resiliência de dados ações atômicas recuperação para um estado consistente

blocos básicos

difusão confiável e atômica, multicast, membership processador fail-stop, armazenamento estável, consenso bizantino, comunicação confiável sistema distribuído sem memória compartilhada sem relógio global

Taisy Weber

15

Concordância bizantina 9 problema dos generais bizantinos 9 alcançar consenso na presença de traidores 9 defeitos bizantinos 9 quando um sistema apresenta defeito, seu comportamento pode ser totalmente arbitrário 9nodo pode enviar informações diferentes para os diferentes componentes com quem se comunica

Taisy Weber

16

Problema dos generais bizantinos 9 generais sitiam cidade inimiga 9alguns generais são traidores 9devem chegar a consenso sobre atacar ou recuar 9generais traidores não devem poder atrapalhar o consenso 9 ou seja, traidores não podem provocar divisão (alguns atacam e outros recuam)

9 concordância bizantina 9consenso na presença de falhas arbitrárias

Taisy Weber

17

Objetivo básico 9 consenso entre todos os nodos sem defeitos (não traidores) 9 não traidores devem tomar a mesma decisão 9devem obter o mesmo conjunto de valores e 9executar o mesmo algoritmo sobre os valores 9 traidores podem enviar valores diferentes para nodos diferentes

Taisy Weber

18

Requisitos formais 9 todos os nodos não traidores usam o mesmo valor v(i) para o nodo i 9não necessariamente o valor recebido do nodo i 9 se o nodo transmissor i é não traidor 9 então todo nodo não traidor usa o valor v(i) transmitido por i 9não interessa os valores que os traidores usam 9idem valores transmitidos por traidores

Taisy Weber

19

Comentários 9 um nodo traidor pode agir maliciosamente atrapalhando o consenso 9 traidores podem enviar valores diferentes para diferentes nodos 9 mensagens de confirmação podem ser falsificadas pelos traidores

9 consenso é impossível em sistemas assíncronos 9mesmo com um único traidor 9mesmo quando só ocorrem falhas de crash Lamport não chegou a provar para qualquer falha, apenas para falhas bizantinas Taisy Weber

20

Algoritmos de Lamport 9 Lamport 82 (Lamport, Shostak e Pease) 9 solução para: 9sistemas síncronos 9sistema totalmente conectado 9 mensagens orais: n ≥ 3 m +1 9algoritmo de consistência interativa (ICA) 9 mensagens assinadas: n ≥ m + 2 9 grande número de rodadas: m + 1 9 grande número de mensagens: O(nm)

Taisy Weber

21

Protocolo para mensagens orais 9 mensagens comuns, sem assinatura 9 n nodos, m traidores 9 solução possível para n ≥ 3m+1 9 premissas: 9A1: toda mensagem enviada é recebida corretamente 9A2: o receptor sabe quem enviou a mensagem 9A3: a ausência de uma mensagem pode ser detectada (time-outs)

Taisy Weber

22

Algoritmo 9 ICA(0) 9o general envia o seu valor para os outros n-1 nodos 9cada nodo usa o valor recebido, ou default se não recebeu nenhum valor 9 (fim da recursão)

Taisy Weber

23

Algoritmo 9 ICA(m), m>0 9o general envia o seu valor para os outros n-1 nodos 9nodo i 9 v(i) (valor recebido pelo nodo i ou default), 9 nodo i atua como general em ICA(m-1) enviando v(i) para os demais n-2 nodos (confirmação do valor)

9para cada nodo i: 9 v(j) valor recebido do nodo j (j≠i) 9 nodo i usa valor maioria(v(1), ..., v(n-1))

Taisy Weber

24

ICA(m) general

ICA(m) deve ser usado por todos os nodos para alcançar consenso

rodada 1 ICA(0)

ICA(1) no máximo um traidor usando ICA(m) em cada nodo, cada nodo do sistema terá o mesmo valor assumido para todos os outros nodos Taisy Weber

rodada 2 25

Concordância bizantina 9 algoritmos de Lamport 9ótimo em relação ao número de rodadas 9mas exigem número exponencial de mensagens 9 outros algoritmos foram propostos 9alguns mais eficientes em relação ao número de mensagens 9alguns suportam sistemas não totalmente conectados 9alguns suportam sistemas assíncronos através de procedimentos randômicos Taisy Weber

26

Relógios sincronizados facilitaria a implementação de serviços tolerantes a falhas importante em sistemas de tempo real

9 ordem total temporal 9sincronização externa

Network Time Protocol

NTP não é solução

9 manter clocks com desvio máximo em relação a referência externa de tempo

9sincronização interna

GPS não evita a necessidade de algoritmos de sincronização

9 manter clocks com desvio relativo máximo aceitável entre si ordenação total não temporal pode ser alcançada com relógios lógicos de Lamport a partir de ordenação parcial de eventos Taisy Weber

27

Sincronização: problemas 9relógios diferentes podem marcar tempos diferentes e ter velocidades diferentes 9 valores de cada relógio devem ser comunicados para haver sincronização

retardo na rede de comunicação pode variar randomicamente

Exemplo de protocolo de sincronização: Lamport (85) semelhante ao algoritmo de mensagem orais em consenso bizantino a sincronização de relógios de tempo real é uma tarefa de alto custo, pois envolve grande quantidade de mensagens, e deve ser evitada se possível a maior parte dos problemas de ordenação em sistemas convencionais, inclusive ordenação total, pode ser resolvida com clocks lógicos (Lamport)

Taisy Weber

28

Global positioning system sincronização externa

9 rede de satélites que difunde valores altamente acurados de tempo real desenvolvido para suporte a sistemas de localização

9 baixo custo 9 modelo de falhas do GPS 9usual: crash 9distorções atmosféricas 9problemas com antenas (recepção do sinal) GPS não dispensa protocolos de sincronização

Taisy Weber

29

Armazenamento estável essencial em vários esquemas de suporte a tolerância a falhas

9 parte do estado do sistema permanece disponível mesmo após defeito do sistema 9 conteúdo é preservado apesar de falhas 9 um disco magnético não é armazenamento estável

9 exemplos de implementação: 9 sombreamento de disco 9 conjunto de imagens idênticas em dispositivos separados 9 2 discos - espelhamento Tandem 9 RAID: Redundant Array of Inexpensive Disks I pode ser também Independent Taisy Weber

30

Defeitos em discos discos não são suficientemente robustos: dependendo do sistema de arquivos, um único setor perdido pode inutilizar todo o disco (por exemplo nos sistemas FAT)

9 exemplos: 9 transientes 9 bad sector 9 defeito na controladora 9dados no meio magnético não são perdidos 9 defeito de disco 9o conteúdo não pode ser mais recuperado

sistemas de arquivo mais robustos usando journaling tem sido implementados com sucesso, exemplo: ReiserFS, JFS, ext3fs, XFS, NTFS, mas ainda não podem ser considerados como armazenamento estável Taisy Weber

31

Exemplos de implementação 2 discos = espelhamento

9 sombreamento de disco 9conjunto de imagens idênticas de um disco em dispositivos separados 9 RAID 9Redundant Array of Inexpensive Disks 9 propostos inicialmente para diminuir custos de armazenamento e prover alta velocidade

9bit interleaving: entrelaçamento de bits 9 aumenta velocidade permitindo operação em paralelo, mas diminui confiabilidade; colocando mais discos ou mais código de recuperação de erros esse problema pode ser contornado Taisy Weber

32

RAID 0, 1 e 2

http://pt.wikipedia.org/wiki/RAID

9 RAID 0 9não é array 9 RAID 1 9dois discos idênticos espelhados 9método mais caro (100% redundância) 9 RAID 2 9bits entrelaçados palavra + código JUNÇÃO DE DOIS OU MAIS DISCOS EM UM ÚNICO DISCO VIRTUAL

9 capacidade de correção de 1 bit ou detecção de 2 bits

9número de discos depende do algoritmo de correção de erros Taisy Weber

33

RAID 3 e 4 9 RAID 3 9bits entrelaçados + disco extra para paridade 9só permite verificação de paridade 9 RAID 4 9como RAID 3, mas com setores entrelaçados 9vantagem para o SO 9pode ser implementado em um único disco físico

Taisy Weber

34

RAID 5 e 6

existem combinações

o mais popular

9 RAID 5 9como RAID 3 mas sem disco de paridade 9 paridade é distribuída pelos discos do sistema

9pode ser implementado a partir de dois discos além da paridade distribuída 9 RAID 6 9como RAID 5, mas com mais um disco de paridade 9 dois discos podem falhar sem perda de dados 9 pode trocar drive defeituoso com sistema em operação

9degrada para RAID 5 quando 1 disco está defeituoso HOJE (2006): RAID 10 e RAID 50.

Taisy Weber

35

Processadores fail-stop 9 em caso de defeito, nodo cessa operação sem realizar qualquer ação incorreta 9comportamento fail-stop assumido por grande parte dos esquemas de TF 9 processadores reais não são por natureza fail-stop 9 processadores reais com defeito se comportam de maneira arbitrária

9nodos aproximadamente fail-stop podem ser construídos a partir de processadores reais (k failstop) exemplo: Stratus Taisy Weber

36

k fail-stop

comporta-se como um processador fail-stop a menos que k+1 ou mais componentes falhem

processadores comuns com comportamento bizantino

P1

clocks sincronizados e na mesma Pk velocidade

armazenamento estável k+1 mensagens sincronizadas

Pk+1 executam mesma seqüência de requisições para Ps

Taisy Weber

nunca falha e detecta falta de mensagem ou discordância de ordem ou conteúdo

Ps falha em qualquer processador bloqueia operações sobre o armazenamento estável rede confiável e origem da mensagem pode ser autenticada pelo receptor 37

Entrega confiável de mensagens processo

aplicação

cb

a b c

a

pi

SEND

nodos e links sujeitos a falhas

DESEJÁVEL: conteúdo preservado (confiabilidade) ordem das mensagens preservada (ordenação)

devem valer em caso de defeitos em nodos ou links, devem valer mesmo no caso de particionamento da rede

RECEIVE

DELIVERY

cba

pj

protocolo de comunicação assegura confiabilidade mesmo com rede não confiável; exemplo: numeração de mensagens e retransmissão Taisy Weber

38

Difusão de mensagens software tolerante a falhas resiliência de processos serviços

resiliência de dados ações atômicas recuperação para um estado consistente

blocos básicos

difusão confiável e atômica, multicast, membership processador fail-stop, armazenamento estável, consenso bizantino, comunicação confiável sistema distribuído sem memória compartilhada sem relógio global

Taisy Weber

39

Tipos de difusão 9 broadcast 9envio de mensagens a todos os nodos do sistema multicast envolve o conceito de grupo

9 multicast 9envio de mensagens a alguns nodos do sistema 9 sensível a falhas de nodo e comunicação em broadcast ou multicast sobre comunicação ponto a ponto: um nodo pode falhar após ter iniciado difusão, assim alguns nodos podem ter recebido a mensagem e outros não

também existem problemas com redes de broadcast e multicast não confiável Taisy Weber

40

Propriedades na difusão valem tanto para broadcast como multicast

9 confiabilidade 9 mensagem deve ser recebida por todos os nodos operacionais

9 ordenamento consistente

ordenamento consistente é diferente de ordenamento temporal

9 diferentes mensagens enviadas para nodos diferentes são entregues na mesma ordem em todos os nodos

9 preservação de causalidade 9 a ordem na qual mensagens são entregues é consistente com a relação causal de envio das mensagens mensagens sem relação causal poderiam ser entregues em qualquer ordem Taisy Weber

41

Primitivas de difusão 9 difusão confiável 9 uma mensagem enviada é recebida em todos os nodos não falhos na rede, mesmo na presença de falhas

9 difusão atômica 9 suporta difusão confiável e ordenação

9 difusão causal 9 assegura ordenação causal

9cada primitiva tem sua aplicação 9 mensagens isoladas: difusão confiável 9 banco de dados: difusão atômica 9 uma mensagem depende de outra: difusão causal Taisy Weber

42

Trans: protocolo de Melliar-Smith 9primitiva confiável baseada em broadcast não confiável Q

Melliar-Smith, Moser e Agrawala (1990)

ex: meio físico Ethernet ou protocolo de broadcast não confiável em comunicação ponto a ponto

P difunde m1 P

m1

1

R Taisy Weber

43

Trans 9 cada mensagem transporta: 9 identidade do transmissor e número de seqüência unívoco 9 acks e nacks na carona de mensagens difundidas P

Q difunde m2 e ack de m1 Q

m2 ackm1 2

1

R Taisy Weber

44

Trans 9 o receptor, a partir de acks e nacks, determina 9 que mensagens ele não precisa reconhecer (ack) 9 quais ele precisa pedir retransmissão 9 quais ele deve retransmitir P

Q

2

R recebeu m1 e m2 R não envia ackm1 pois Q já enviou

1

R Taisy Weber

45

Trans 9 se o receptor R determina que não recebeu m1 9 deve pedir retransmissão 9 qualquer nodo pode atender um pedido de retransmissão (não apenas o originador) P

1

sem ordenação: mensagens podem ser recebidas em cada nodo em uma ordem diferente (no exemplo m1 chegará em R após m2 ) Q

2

R não recebeu m1 R envia nackm1 pedindo 3 retransmissão m3 ackm2 nackm1 R

Taisy Weber

46

Exemplo Trans 9 A, B, C, D = mens

9 9 9 9 9 9 9

a, b, c, d = acks, a, b, c, d = nacks

A trans. de B reconhece A A Ba A Ba Cb trans. de C reconhece B, não precisa rec. A A Ba Cb Dc A Ba Cb Dc Ecd trans. de E viu por Dc que não recebeu C A Ba Cb Dc Ecd Cb A Ba Cb Dc Ecd Cb Fec algum nodo retransmite C(sem novos acks)

t Taisy Weber

47

Bibliografia 9 Jalote, P. Fault tolerance in distributed systems. Prentice Hall, Englewood Cliffs, New Jersey, 1994 9OBS: nas notas de aulas da disciplina, um roteiro básico pode ser encontrado com um resumo dos tópicos discutidos neste item.

http://www.inf.ufrgs.br/~taisy/disciplinas/textos/indiceroteiro.htm

Taisy Weber

48

Lihat lebih banyak...

Comentários

Copyright © 2017 DADOSPDF Inc.