Sistemas de Entrada/Saída Sistema de Entrada/Saída - Redundant Array of Independent Disks 0 - Matriz de Discos sem Tolerância a Falhas 1 - Espelhamento 2 - Código de Hamming 3 - Transferência Paralela com Paridade 4 - Discos de Dados Independentes com Disco de Paridade Compartilhado 5 - Discos de Dados Independentes com Blocos de Paridade Distribuídos 6 - Discos de Dados Independentes com Duplo Esquema Independente de Paridade Distribuído 1
Redundant Array of Independent Disks A taxa de desempenho em dispositivos de disco tem sido bem menor que aquela ocorrida para processador e memória discos se transformaram no gargalo dos sistemas passou-se a considerar o uso de múltiplos componentes paralelos para aumento de desempenho Resultado: matrizes de discos que operam independentes e em paralelo com múltiplos discos em diferentes controladoras, múltiplas requisições podem ser atendidas em paralelo, desde que os dados requeridos residam em discos separados Mais do que isto, se o bloco de dados a ser acessado tiver sido distribuído em discos separados pode-se até realizar uma única operação de E/S paralelamente em vários discos Além disso, pode-se considerar o uso de redundância Existem diversas maneiras de se dividir os dados nos discos --> Solução: padronização Um esquema padronizado para o projeto de matrizes com múltiplos discos, conhecido como, especifica 7 diferentes níveis para o projeto das matrizes 2
O esquema estabelece as seguintes características comuns para os sete níveis: o conjunto dos discos () é visto pelo SO como um único dispositivo lógico; os dados são distribuídos através dos dispositivos físicos de uma mesma matriz; a capacidade de redundância é usada para armazenar informação de paridade, que garante a recuperação em caso de falha de algum disco (exceto 0). Detalhes da segunda e terceira características diferem para os diferentes níveis de. Dados são intercalados em tiras (stripes). Stripes são pedaços de dados que podem variar de tamanho: desde bytes ou palavras, até setores ou alguns Mbytes A idéia é a do armazenamento dos stripes de maneira RR (Round Robin) O software para gerenciamento da matriz de discos é que faz o mapeamento entre o disco lógico e os discos físicos. 3
Disco Lógico A B C D E F G H I J K L M N O P Software de gerenciamento da matriz Disco Físico 0 Disco Físico 1 Disco Físico 2 Disco Físico 3 A B C D Mapeamento de dados para uma matriz de nível 0 0 - Matriz de Discos sem Tolerância a Falhas Não faz parte dos 7 níveis Sem redundância Alta capacidade de transf. de dados: se uma aplicação típica requer a manipulação de uma quantidade de dados logicamente contíguos bem maior do que a quantidade de dados em um stripe transf. paralela de dados contidos em vários discos 4
0 E se stripes grandes são usados, qual o ganho? Alta taxa de requisição de E/S: se a aplicação requer grande quantidade de dados armazenados seqüencialmente, como devem ser tratadas diferentes requisições de E/S? 1 Espelhamento Espelhado (com redundância) Nem sempre usa stripping Como deve ser processada uma operação de leitura? qualquer um dos dois discos: preferencialmente aquele com menor tempo de busca + latência rotacional 5
1 Como deve ser processada uma operação de escrita sobre a matriz? atualização das duas tiras pode ser feito em paralelo (tempo determinado pela escrita mais lenta) A redundância traz uma desvantagem: o custo. Existe algum ganho com ela? Pode alcançar uma alta taxa de requisições de E/S (até o dobro do 0) e um bom desempenho na transferência de dados, caso a maioria das requisições sejam de leitura (uso dos dois discos idênticos) 2 Código de Hamming (ECC) 6
2 Usa técnica de acesso paralelo Redundância através de Código de Hamming que é um ECC, permite correção de bits individuais e detecção de erros com até dois bits O controlador da matriz que realiza a validação do ECC Todos os discos da matriz participam de qualquer solicitação de E/S Os stripes são pequenos (byte/word) e a movimentação dos braços dos diversos discos é sincronizada Só tem sentido em ambientes com alta suscetibilidade a erros Não é comercializado: custo (n o de discos redundantes é proporcional ao log do n o de discos de dados) 3 Transferência Paralela com Paridade Também usa técnica de acesso paralelo Usa apenas paridade bit-interleaved calculada através de XOR dos bytes Requer apenas um disco para tratar redundância Todos os discos da matriz participam de qualquer solicitação de E/S, pois os stripes são pequenos 7
3 A movimentação dos braços dos diversos discos deve ser sincronizada. Por quê? Boa taxa de transferência de dados (paralelo), mas apenas uma requisição de E/S pode ser executada por vez Cálculo da Paridade: Xp(i) = X 0 (i) X 1 (i) X 2 (i) X 3 (i) Regeneração do disco 1 (acrescentando-se Xp(i) X 1 (i) ): X 1 (i) = Xp(i) X 0 (i) X 2 (i) X 3 (i) Princípio válido para os s de níveis 3 a 6 4 Discos de Dados Independentes com Disco de Paridade Compartilhado Usa técnica de acesso independente (como os níveis 5 e 6) requisições de E/S distintas podem ser atendidas em paralelo melhores taxas de requisições; piores taxas de transferência Nos níveis 4, 5 e 6 os stripes são relativamente grandes 8
4 Usa paridade block-level, paridade bit a bit individual para cada stripe Permite múltiplas leituras simultâneas Não é comercializado Existe overhead nas operações de escrita. Por quê? Cálculo da Paridade: Xp(i) = X 0 (i) X 1 (i) X 2 (i) X 3 (i) Escrita no disco 1: Xp novo (i) = X 0 (i) X 1 novo (i) X 2 (i) X 3 (i) = X 0 (i) X 1 novo (i) X 2 (i) X 3 (i) X 1 (i) X 1 (i) = Xp(i) X 1 (i) X 1 novo (i) Escrita envolve 2 operações de leitura e 2 de escrita Disco de paridade torna-se um gargalo no sistema 5 Discos de Dados Independentes com Blocos de Paridade Distribuídos Paridade block-level distribuída, paridade bit a bit individual para cada stripe Todo disco é usado para armazenar os bits de paridade Os stripes são relativamente grandes, como no nível 4 Permite múltiplas leituras simultâneas Penaliza operações de escrita, mas não há formação de gargalo 9
6 Discos de Dados Independentes com Duplo Esquema Independente de Paridade Distribuído 6 A0 A1 A2 A3 B0 B1 B2 P(3) C0 C1 P(2) Q(3) D0 P(1) Q(2) B3 P(0) Q(1) C2 C3 Q(0) D1 D2 D3 São usados 2 cálculos de paridade diferentes (o XOR e um outro algoritmo de verificação independente) Os resultados são armazenados em discos distintos Matriz requer N+2 discos 6 Substancial penalidade em operações de escrita cada escrita afeta 2 blocos de paridade Alta disponibilidade de dados O que ocorre se dois discos falham dentro do intervalo de tempo médio requerido para reparo?...e se três discos falharem? 10
Categoria Nível Descrição Tx de req. de E/S (leitura/ escrita) Tx transf. dados (leitura/ escrita) Aplicação típica Intercalação de dados (stripping) 0 Nãoredundante Tiras grandes: excelente Espelhamento 1 Espelhado Bom/ razoável Acesso paralelo Acesso independente 2 Redundante via código Hamming 3 Paridade de bit intercalada 4 Paridade de bloco intercalada 5 Paridade de bloco intercalada e distribuída 6 Paridade de bloco dupla intercalada e distribuída Pobre Tiras pequenas: excelente Razoável/ razoável Excelente Apl. que requerem alto desempenho para dados não críticos Unidades de disco de sistema; arquivos críticos Pobre Excelente Apl. com grandes requisições de E/S, como processamento de imagens e CAD Excelente/ razoável Excelente/ razoável Excelente/ pobre Razoável/ pobre Razoável/ pobre Razoável/ pobre Busca de dados, com altas taxas de requisição e grande volume de leituras Aplicações que requerem grande disponibilidade de dados 11