Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

29
Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805

Transcript of Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Page 1: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Universidade da Beira Interior

Fiabilidade de Sistemas Informáticos

Nuno Magarreiro n.º 14805

Page 2: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Memória Estável

Índice:

Introdução

Definição do problema

Métodos de implementação:

Usando um único disco Disk Shadowing RAID (Redudant Arrays os Disks)

Page 3: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Introdução

Assume-se que um sistema possui memória estável quando os seus conteúdos são preservados depois da ocorrência de falhas.

Nestes sistemas, o conteúdo do disco é frequentemente copiado para sistemas de armazenamento secundários.

Os discos não são uma forma muito segura de memória estável.

Para sistemas de tolerância a falhas, a confiança que a memória estável feita por um disco normal proporciona não é aceitável.

Page 4: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Definição do problema O problema principal é ter sistemas de armazenamento

físico que têm várias falhas e convertê-los num sistema de armazenamento de memória estável.

Nenhum sistema consegue ser completamente tolerante a falhas.

Para uma melhor percepção do problema vai-se estudar primeiro o sistema físico no qual a memória estável será construída, assim como as falhas existentes neste sistema físico.

A memória estável normalmente é construída com sistemas de discos.

Page 5: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Definição do problema

O sistema de armazenamento dum disco é constituído por um conjunto de páginas.

Cada página possui blocos de informação e a cada bloco está associado um estado.

O estado por ser correcto ou incorrecto, indicando se a informação nesse bloco é correcta ou se está corrompida.

Se o estado dum bloco for incorrecto, a tentativa de leitura desse bloco pelo sistema pode não ser conseguida com êxito.

Page 6: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Definição do problema Existem duas operações através das quais o

processador (ou um processo) pode interagir com o disco:

procedure write (addr, data) procedure read (addr) returns (status, data).

A operação de escrita possui dois parâmetros: A localização do sector (addr) e A informação que deve ser escrita nesse sector. Esta operação não devolve qualquer valor.

A operação de leitura possui um parâmetro: A localização do sector que vai ser lido. Esta operação devolve a informação desse sector assim como o

estado da operação.

Page 7: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Definição do problema

Existem vários tipos de falhas que podem ocorrer num sistema de discos.

Algumas das mais comuns são:

Falhas transitórias

Sector danificado

Falha de um controlador

Crash do disco

Page 8: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Definição do problema

Ainda existem outras causas possíveis que provocam falhas no disco.

Os acontecimentos que ocorrem no disco podem ser resultado de operações de escrita ou de leitura ou ainda de outros eventos.

Alguns destes eventos são desejáveis mas outros são indesejáveis.

Para se ter memória estável, devem-se conseguir disfarçar os acontecimentos indesejáveis.

Page 9: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Definição do problema

Os resultados indesejáveis que podem acontecer numa operação de leitura são:

Soft read error: O estado da página a é correcto, mas a operação de leitura devolve incorrecto.

Erro de leitura persistente: O estado da página a é correcto mas a operação de leitura devolve incorrecto, e as leituras seguintes também devolvem incorrecto.

Erro indetectável: O estado da página a é incorrecto mas a operação de leitura devolve correcto, ou então o estado da página a é correcto, e a operação de leitura devolve informação errada.

Page 10: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Definição do problema

Os resultados indesejáveis para uma operação de escrita (addr, data) são:

Escrita nula: A página a não é alterada.

Escrita incorrecta: Se se tentar ler a pagina é devolvido (incorrecto , d’).

Para além dos erros descritos existem ainda os decays events que também provocam falhas no disco.

Page 11: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Definição do problema

Decay event: Erro provocado pela falha de um componente que na grande maioria das vezes funciona correctamente.

Decay set: Conjunto dos erros causados por um decay event.

Decay related: Duas páginas são decay related se ambas são afectadas por erros que pertencem ao mesmo decay set.

Os decays events raramente acontecem.

Page 12: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Definição do problema

Para implementar uma aproximação de memória estável com um único disco, assume-se que é possível dividir o disco em pares de páginas que não são decay related.

Consideram-se os seguintes decay events:

Corrupção: Uma página varia de (correcto,d) para (incorrecto,d).

Recuperação: Uma página passa de (incorrecto,d) para (correcto,d)

Erro não detectado: a página muda de (s,d) para (s,d´) com d diferente de d´.

Page 13: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Definição do problema

É importante salientar que:

Os resultados de qualquer operação que esteja a ser executada quando ocorre uma falha são imprevisíveis. Se ocorrer uma falha quando alguma operação está a ser efectuada no disco, o resultado dessa operação deve ser considerado indesejável.

O objectivo dos sistemas de memória estável é ter um ou mais discos de armazenamento que podem falhar duma das várias maneiras anteriormente descritas e, com eles, construir um sistema onde as operações essenciais do disco (como a leitura e a escrita) continuem a funcionar depois da ocorrência de erros.

Page 14: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação

De seguida vão ser apresentados alguns métodos que proporcionam uma aproximação à memória estável usando discos de armazenamento.

Estes métodos, tal como todas as técnicas de suporte a falhas, apenas conseguem fornecer aproximações do que seria ideal.

Estes métodos apenas suportam alguns tipos de falhas

(os que, na prática, ocorrem com mais frequência).

Page 15: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação

Usando um único disco

Primeiro, vai-se construir um “Careful disk storage” com duas operações: CarefulRead e CarefulWrite.

Na CarefulRead, a leitura é repetida até o valor devolvido para o estado ser correcto ou, depois de um certo número de tentativas, se concluir que a página não poder ser lida.

Na CarefulWrite a operação de escrita é seguida da operação de leitura até ser devolvido o estado correcto.

Assim eliminam-se a escrita nula e os erros de escrita incorrecta mas não se anulam os decay events nem os erros durante a operação de CarefulWrite.

Page 16: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação

Usando um único disco

A memória estável é representada por um par ordenado de páginas do disco, não podendo estas páginas ser decay related.

A informação da página é duplicada para ambas as páginas deste par.

Com isto, podemos implementar as operações StableRead e StableWrite:

Page 17: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação

Usando um único disco

A StableRead faz uma CarefulRead para uma das páginas do par, e se o resultado for mau, faz uma CarefulRead para a outra.

A StableWrite primeiro faz uma CarefulWrite para uma das páginas representativas. Quando a operação é completada com sucesso, é feita uma CarefulWrite para a outra página.

Assim resolve-se o problema dos decay events.

Page 18: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação Usando um único disco

De qualquer modo, os crashes durante a StableWrite podem causar duas páginas representativas diferentes.

Para se estar protegido desta situação, deve ser feita uma operação de limpeza.

Esta acção é feita para todas as páginas pelo menos aquando da inicialização do sistema e depois de cada erro.

A operação de limpeza consiste em:

Page 19: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação Usando um único disco

Efectuar a operação de CarefulRead para as duas páginas.Se ambas devolverem o estado correcto e a mesma

informaçãoNão se faz nada

Else Se apenas uma página devolver o estado incorrecto

Efectuar a operação de CarefulWrite para escrever a informação da página com estado correcto para a página com estado incorrecto

Else Se as duas páginas devolvem o estado correcto mas informação diferente /* é porque ocorreu um erro durante a StableWrite */

Escolher uma das duas páginas e fazer uma CarefulWrite para a outra.

Page 20: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação Usando um único disco

Limitações:

Apesar desta implementação para memória estável conseguir suportar acontecimentos indesejáveis como soft read error, escrita nula, má escrita e o erro de leitura persistente (apenas se só uma das páginas representativas tiver estes erros) não consegue proteger-se de acontecimentos como um crash do disco.

Embora as inconsistências causadas pela falha dum controlador poderem ser protegidas, a informação armazenada é inútil para todos os outros processos até que o processo que sofreu o erro seja recuperado.

Page 21: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação Disk Shadowing (ou Disk Mirroring)

Disk shadowing é, essencialmente, uma implementação do esquema descrito anteriormente, no qual duas paginas representativas da memória residem em dois discos diferentes (e, consequentemente, satisfazem o facto de não estarem decay related).

O principal objectivo é aumentar a confiança e a disponibilidade do armazenamento secundário.

Vai ser considerado o caso em que são usados apenas dois discos. Neste caso, os discos são chamados de discos espelho.

Page 22: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação Disk Shadowing (ou Disk Mirroring)

Um ou mais processos/processadores podem ser ligados aos discos espelho. Quando um processo/processador escreve informação, esta é escrita nos dois discos espelho. Os pedidos de leitura são executados a partir de qualquer um dos discos.

Disk mirroring consegue suportar falhas do disco completo e permite aceder à informação do disco enquanto o processo/processador que falhou está a ser reparado.

Assim, a utilização de discos espelho proporciona uma boa aproximação à memória estável. Mas deve ficar claro que este não é um exemplo perfeito de memória estável uma vez que não é suportado o facto dos dois discos falharem.

Page 23: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação Disk Shadowing (ou Disk Mirroring)

Com a utilização de discos espelho, apenas ocorre uma falha no sistema de memória estável se falharem os dois discos. Especificamente, se um disco falha, e o outro falha antes do primeiro estar arranjado.

Se o tempo médio para a falha dum disco for MTTF, e o tempo médio para o reparar for MTTR, e se o tempo para a falha e o tempo para a reparação estiverem distribuídos exponencialmente, então o tempo médio entre falhas dos discos espelho pode ser dado pela expressão:

MTTF mirror = (MTTF/2) * (MTTF / MTTR).

Page 24: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação Disk Shadowing (ou Disk Mirroring)

Intuitivamente, a equação diz que, na média, a primeira falha acontecerá depois de MTTF/2 e MTTF/MTTR refere a probabilidade do segundo disco falhar enquanto o primeiro está a ser reparado. Se o MTTF de um disco for 100 dias, e o tempo necessário para o arranjar 1 dia, então o tempo médio para o sistema de discos espelho falhar é de 5000 dias (aproximadamente 14 anos). Claramente, se se usarem discos de confiança então o sistema de discos espelho proporciona uma boa aproximação de memória estável.

Page 25: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação RAID (Redudant Arrays of Disks)

Os sistemas RAID são um método com boa relação qualidade/preço para simular discos de grande capacidade.

Nestes sistemas, a informação é dividida pelos múltiplos discos usando bit-interleaving.

Bit-interleaving proporciona uma boa performance de I/O, desde que o acesso aos diferentes discos possa ser feito em paralelo.

Mesmo assim, um conjunto de discos usado desta maneira só é de confiança se a falha de um dos discos não provocar que toda a informação se torne inacessível.

Page 26: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação RAID (Redudant Arrays of Disks)

A solução passa por ter alguns discos com informação redundante.

De seguida vai-se descrever uma implementação particular de RAID que, para cada grupo de discos, utiliza apenas um disco de verificação.

Nesta implementação os discos estão divididos em grupos.

Os discos redundantes armazenam a paridade do conjunto de bits dos discos de dados do grupo.

Page 27: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação RAID (Redudant Arrays of Disks)

A falha de qualquer disco pode ser completamente ocultada desde que o disco que falha consiga descobrir que efectivamente falhou.

Com isto, a informação do disco que falhou pode ser reconstruída através do cálculo da paridade dos restantes discos de dados e comparando-a com a paridade que está armazenada no disco de verificação.

É claro que este método de implementação RAID consegue suportar a falha dum único disco.

Nesta implementação, a falha do sistema RAID acontece apenas se mais de um disco falhar.

Page 28: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação RAID (Redudant Arrays of Disks)

Assumindo que o sistema RAID consiste apenas num único grupo de discos, com G discos de dados e C discos de verificação (total de discos: C + G) e se o tempo de falha e de recuperação de cada disco for distribuída exponencialmente, e o tempo médio de falha de cada disco for MTTF e o tempo de reparação for MTTR, então o tempo médio de falha do grupo (RAID) pode ser dado por:

MTTF raid = (MTTF / (G+ C)) * (MTTF / (G + C -1)) / MTTR .

O primeiro termo é o tempo médio de falha do primeiro disco, em que o tempo médio de falha dum disco é dividido pelo numero total de discos.

Page 29: Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º 14805.

Implementação RAID (Redudant Arrays of Disks)

O segundo termo relaciona a probabilidade de qualquer outro disco falhar antes do primeiro disco estar arranjado.

Se o MTTF dum disco for 100 dias, e o tempo de reparação for de 1 dia, e existirem 4 discos de dados e 1 disco de verificação, então o MTTF do grupo é de 500 dias.

Claramente, esta implementação do sistema RAID, proporciona uma aproximação fraca á memória estável.