1 / 29

Universidade da Beira Interior

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). Introdução.

aquene
Download Presentation

Universidade da Beira Interior

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

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

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

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

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

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

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

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

  10. 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 decaysevents que também provocam falhas no disco.

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

  12. 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´.

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

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

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

  16. 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 StableReade StableWrite:

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

  18. 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:

  19. 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ção Nã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.

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

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

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

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

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

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

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

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

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

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

More Related