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

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Coerência de Cache em Multiprocessadores
Metodologia de testes Nome: Gustavo G. Quintão
WebDesign Redes de Computadores Aula 07
Normalização.
Requisitos dos SGBD Recuperação/Tolerância a Falhas
Amintas engenharia.
Entrada e Saída Introdução.
Sistemas Operacionais - 6
Recuperação Como garantir a integridade da informação, em caso de avarias de HW ou SW forma de suportar a reposição de um estado consistente da informação.
Bloqueios partilhados
Bases de Dados 2 José Júlio Alferes Departamento de Informática
Sumário 1 SQL Embutida 2 Processamento de Consultas
Pesquisa em Memória Primária
Pesquisa em Memória Primária
Recovery Blocks Paulo Junior Penna Pivetta. Introdução Os Projetos de Tolerância a falhas quase que exclusivamente eram dedicado a hardware Tolerância.
Fabio Notare Martins Pontifícia Universidade Católica do Rio Grande do Sul Programa de Pós-Graduação em Ciências da Computação.
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
SISTEMAS LINEARES II Prof. Marlon.
Análise Sintática Ascendente
Organização da Memória Principal
ÁRVORE DE FALHAS (Fault Tree Analysis – FTA)
RAID (Matrizes Redundantes de Discos Independentes)
Engenharia de Requisitos Requisito – sistema Caso de uso - usuário
& B ackup S Egurança Interna ackup egurança Interna
RECUPERAÇÃO APÓS FALHA
HARDWARE do CLP Os controladores lógicos programáveis são equipamentos com uma aplicação muito vasta dentro dos diversos processos de automação. Desta.
YADFS Yet Another Distributed File System
REDUNDÂNCIA POR SOFTWARE
Redundant Array of Independent Drives Raid
Solução de problemas: Bips de erro.
Sistemas Operacionais
DIAGRAMA DE CLASSE Modelagem de Software
Agenda Memória Secundária RAID.
Carlos Oberdan Rolim Ciência da Computação
Carlos Oberdan Rolim Ciência da Computação
1 Bip Curto: Post Executado com sucesso: Este é um Bip feliz emitido pelo BIOS quando o POST é executado com sucesso. Caso o seu sistema esteja inicializando.
Carlos Oberdan Rolim Ciência da Computação
Data Replication and Resiliency Trabalho realizado por: Rui Ferreira Nº Eng. Informática.
Estrutura e funcionamento de um computador
O Problema Do Acordo Distribuído (Acordo Bizantino)
Campus de Caraguatatuba Aula 8: Noções Básicas sobre Erros (2)
Universidade da Beira Interior Processadores Fail-Stop Trabalho realizado por: Rui ferreira Nº Eng. Informática.
Controle de concorrência
Universidade da Beira Interior Fiabilidade de Sistemas Informáticos Nuno Magarreiro n.º
Códigos de Detecção e Correcção de erros
Sistemas Distribuídos RAID
SISTEMAS OPERACIONAIS I
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
ALGORITMOS Intensivo Janeiro e Fevereiro de 2011
ARQUITETURA DE COMPUTADORES II
1 RAID LEVEL 0 Description
Curso Básico em Técnicas de Manutenção Para Activistas Comunitários
Sistemas Tolerantes a Falhas: Conceitos e Técnicas
Testes de Software AULA 02 Eduardo Silvestri
RAID.
Introdução a Banco de Dados Aula 04
Testes de Software AULA 03 Eduardo Silvestri
Aula 4 Prof. Naércio Filho Técnico em Informática
Falhas.
Subsistema de Entrada e Saída do Kernel
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Redes de computadores: SubCamada de Access ao Meio (3) Prof. Dr. Amine BERQIA
Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções.
Sistemas de Arquivos- Cap4
Modelo Entidade-Relacionamento
Estática Estática Histórico
FLIP-FLOPs.
Sistemas de equações lineares MCEF 2011/12. O Sistemas lineares constituem um caso particular dos sistemas não lineares, sendo que os métodos estudados.
Questionário (Básico) Autor: Skyup Informática. Atividade - Questionário O módulo permite criar uma série de questões, que deverão ser respondida pelos.
Transcrição da apresentação:

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

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.

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.

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.

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

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.

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.

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.

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.

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

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.

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

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.

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:

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.

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:

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.

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.

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.

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.

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

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.

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.

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.

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.

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.

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.