next up previous contents
Next: Entrada/Saída Up: Arquitectura e Organização Interna Previous: Memória Interna


Memória Externa

Discos Magnéticos

RAID

Tal como foi discutido antes, a taxa de melhoramento do rendimento em armazenamento secundário tem sido consideravelmente inferior à taxa alcançada para os processadores e para a memória. Este desalinhamento transformou, talvez, o armazenamento no foco principal de preocupação no melhoramento do rendimento global dos sistemas de computação.

Tal como em outras áreas de rendimento do computador, os projectistas do armazenamento em disco reconhecem que se, apenas, um componente pode ser empurrado para a frente, os benefícios adicionais podem ser obtidos através do uso de múltiplos componentes em paralelo. No caso do armazenamento em disco, isto leva ao desenvolvimento de baterias de discos que operam independentemente e em paralelo. Com múltiplos discos, pedidos separados de E/S podem ser tratados em paralelo, desde que os dados necessários residam em discos separados. Indo mais longe, um simples pedido de E/S pode ser executado em paralelo se o bloco de dados a que se quer ter acesso estiver distribuído estiver distribuído por múltiplos discos.

Com a utilização de múltiplos discos, há uma extensa variedade de maneiras através das quais os dados podem ser organizados e nas quais a redundância pode ser acrescentada para melhorar a confiança. Isto pode tornar díficil desenvolver esquemas de bases de dados que possam ser utilizáveis num certo número de plataformas e sistemas de exploração. Felizmente, a indústria acordou num esquema, normalizado, para bases de dados em múltiplos discos, conhecido como (Bateria de Discos Redundante Independentes) RAID. O esquema RAID compreende seis níveis5.1 de zero até cinco. Estes níveis não obrigam a uma relação hierárquica mas designam diferentes projectos de arquitecturas que partilham três características comuns.

  1. RAIDé um jogo de discos físicos vistos pelo sistema de exploaração como uma único disco lógico.
  2. Os dados estão distribuídos ao longo das unidades físicas de uma bateria
  3. A capacidade redfundante do disco é usada para guardar informação de paridade a qual garante os dados são recuperáveis em caso de uma falha de disco.

Os detalhes da segunda e terceira característica diferem para os diferentes níveis de RAID: RAID 0 não suporta a terceira característica.

O termo RAID foi inicialmente cunhado nmum artigo de um grupo de investigadores da Universidade da California de Berkeley5.2. O artigo resumia várias configurações e aplicações e introduzia as definições dos níveis de RAID que são, ianda, utilizadas. RAID é proposto para fechar o fosso cada vez mais largo entre a velocidade dos processadores e as relativamente lentas unidades de disco electromagnéticos. A estratégia visa substituir um disco de grande capacidade por múltiplos discos de mais pequena capacidade e distribuir os dados de forma a proporcionar o acesso simultâneo aos dados das múltiplas unidades, melhorando, dessa forma, o rendimento da E/S e permitindo um mais fácil crescimento incremental da capacidade.

A contribuição única da porposta RAID é a efectiva abordagem da necessidade de redundância. Embora ao permitir que múltiplas cabeças e actuadores operem ao memso tempo atinja maiores taxas de transferência de E/S, a utilização de múltiplos dispositivos faz aumentar a probabilidade de falha. Para compensar esta perca de confiança o RAID recorre a informação de paridade guardada que permite a recuperação dos dados perdidos devido a falhas de discos.

Vamos agora examinar cada um dos níveis de RAID. A tabela 5.2 resume os sies níveis. Destes, os níveis 2 e 4 não estão comercializados e não parece que venham a ser aceites pela indúsria. Seja de que forma for, uma descrição destes níveis ajuda a clarificar as opções de desenho em alguns dos outros níveis.

A figura 5.1 ilustra os seis esquemas RAID que suportam a capacidade requerida para quatro discos sem nenhuma redundância. A figura realça a disposição dos dados do utilizador e os dados redundantes e indica os requisitos de armazenamento relativos dos vários níveis. Referirmo-nos-emos a esta figura ao da discussão que se segue.


Tabela 5.1: Níveis de RAID
\begin{table}
\end{table}


Nível 0 de RAID

O nível de RAID 0 não é um verdadeiro membro da família RAID, porque não inclui redundância para melhorar o rendimento. Contudo, há aplicações tais como alguma que correm em supercomputadores em que rendimento e capacidade são as preocupações principais e em que o baixo custo é mais importante do que o melhoramento em confiança.

Em RAID 0, os dados do utilizador e do sistema são distribuídos ao longo de todos os discos na bateria. O que tem uma vantagem assinalável sobre o uso de um disco único grande: Se estiverem pendentes dois pedidos de E/S para dois blocos de dados diferentes, então há boas hipóteses de que os blocos pedidos estejam discos diferentes. Assim os dois pedidos podem ser processados em paralelo, reduzindo o tempo na fila da E/S.

Mas O RAID 0, tal como os outros níveis de RAID, vão mais longe do distribuir simplesmente os dados ao longo da bateria de discos; os dados são separados striped ao longo dos discos disponíveis. Isto é mais facilmente compreendido se considerarmos a figurq 5.2. Todos os dados de utilizador e sistema podem ser vistos como se estivessem armazenados num disco lógico. O disco é dividido em pistas; estas pistas podem ser blocos físicos, sectores ou outra qualquer unidade. As pistas estabelecem uma correspondência circular com membros consecutivos da bateria. Um conjunto de pistas lógicas consecutivas em correspondência com uma pista para cada membro é referido como faixa stripe. Em cada bateria de n-discos, as primeira n pistas lógicas são fisicamente armazenadas como a primeira pista em cada um dos n discos, as segundas n pistas são distribuídas como as segundas pistas em cada disco e assim sucessivamente. A vantagem desta disposição é que um simples de E/S consiste de múltiplas pistas contíguas, dessa forma, até n pistas para cada pedido podem ser tratadas em paralelo, reduzindo significativamente o tempo de trasferência.

A figura 5.2 mostra o uso do software de gestão de bateria para fazer a correspondência entre os espaço lógico e físico. Estes software pode ser executado tanto no subsistema de disco como computador hospedeiro.

Figura 5.1: Níveis de RAID
\begin{figure}
\end{figure}

Figura 5.2: Correspondência de dados para uma bateria RAID 0
\begin{figure}
\end{figure}

Nível 4 de RAID

Os níveis 4 e 5 de RAID recorrem um técnica de acesso independente. Numa bateria de acesso independente, cada disco membro opera independentemente, de forma a que pedidos de E/S separdos possam ser satisfeitos em paralelo. Por causa disto, baterias de acesso independente são mais apropriadas para aplicações com requisitos elevados de E/S e menos próprios para aplicações que necessitamr de elevadas taxas de transferêcnia de dados.

Tal como em outros esquemas RAID, é usada a separação dos dados por pistas. No caso do RAID 4 e 5,as pistas são relativamente largas. Com RAID 4, uma pista de paridade bit-a-bit é calculada ao longo das pistas correspondnetes em cada pista de dados do disco e a os bits de paridade são aramzenados na pista correspondente do disco de paridade.

O RAID 4 involve uma penalização na escrita quando um pedido de E/S de pequena quantidade é efectuado. Cada vez que ocorre uma escrita, o softwrae de gestão da bateria tem de actualizar não apeans a informação do utilizador mas também os bits de paridade correspondentes. Se considerarmos uma bateria de cinco unidades em que X0 até X3 contêm dados e X4 é o disco de paridade. Suponhamos que é efectuada uma escrita que involve apenas uma pista no disco X1. Inicialmente para cada bit i, temos a seguinte relação:


$X4(i) = X3(i) \bigoplus X2(i) \bigoplus X1(i) \bigoplus X0(i)$


Depois da actualização, com os bits potencialmente alterados indicados por uma plica,


$X4'(i)$ $= X3(i) \bigoplus X2(i) \bigoplus X1'(i) \bigoplus X0(i)$
  $= X4(i) \bigoplus X1(i) \bigoplus X1'(i)$


Para calcular a nova paridade, o sopftware de gestão de bateria tem de ler as pistas anteriores do utilizador e de paridade. Então pode actualizar estas duas pistas com os novos dados e a paridade mais recentemente calculada. Assim, cada escrita de uma pista involve duas leituras e duas escritas.

No caso de operações de E/S maiores que involvem pistas em todos unidades de discos, a paridade é facilmente calculada usando apenas os novos bits de dados. Assim, a unidade de paridade pode ser actualizada em paralelo com as unidades de dados não dando lugar a leituras e escritas.

Em qualquer caso, toda a operação de escrita tem de involver o disco de paridade que por isso se pode tornar num gargalo.

Nível de RAID 5

O RAID 5 esta organizado numa forma similar ao RAID 4. A diferença está em que o RAID 5 distribui as pistas de paridade ao longo de todos os discos. Uma alocação típica é esquema circular, tal como é ilustrado na figura [*]. Para um bateria de n-discos, a pista de paridade está num disco diferente para as primeiras n pistas e o padrão repete-se a seguir.

A distribuição das pistas de paridade ao longo de todas as unidades evita o potencial gargalo encontrado em RAID 4.


next up previous contents
Next: Entrada/Saída Up: Arquitectura e Organização Interna Previous: Memória Interna

2000-05-10