RAID

Conteúdos

·         1 Introdução

o    1.1 Diferença entre os discos físicos e os discos lógicos

o    1.2 Dados de leitura e escrita

o    1.3 O que é RAID?

o    1.4 Porquê utilizar RAID?

o    1.5 História

·         2 Conceitos básicos utilizados pelos sistemas RAID

o    2.1 Caching

o    2.2 Espelhamento: Mais do que uma cópia dos dados

o    2.3 Striping: Parte dos dados está noutro disco

o    2.4 Correcção de erros e falhas

o    2.5 Peças de reserva quentes: utilizando mais discos do que o necessário

o    2.6 Tamanho da risca e do pedaço: espalhando os dados por vários discos

o    2.7 Juntar o disco: JBOD, concatenação ou spanning

o    2.8 Clone de Condução

o    2.9 Configurações diferentes

·         3 Noções básicas: níveis RAID simples

o    3.1 Níveis RAID em uso comum

§  3.1.1 "striping" RAID 0

§  3.1.2 RAID 1 "espelhamento"

§  3.1.3 RAID 5 "striping com paridade distribuída"

§  3.1.4 Fotos

o    3.2 Níveis RAID utilizados menos

§  3.2.1 RAID 2

§  3.2.2 RAID 3 "striping com paridade dedicada"

§  3.2.3 RAID 4 "striping com paridade dedicada"

§  3.2.4 RAID 6

§  3.2.5 Fotos

o    3.3 Níveis RAID não normalizados

§  3.3.1 Paridade dupla / Paridade diagonal

§  3.3.2 RAID-DP

§  3.3.3 RAID 1.5

§  3.3.4 RAID 5E, RAID 5EE e RAID 6E

§  3.3.5 RAID 7

§  3.3.6 RAID Matrix Intel

§  3.3.7 Controlador RAID MD Linux

§  3.3.8 RAID Z

§  3.3.9 Fotos

·         4 Juntando níveis RAID

·         5 Fazer um RAID

o    5.1 RAID por software

o    5.2 RAID de Hardware

o    5.3 RAID assistido por hardware

·         6 Termos diferentes relacionados com falhas de hardware

o    6.1 Taxa de falhas

o    6.2 Tempo médio até à perda de dados

o    6.3 Tempo médio para a recuperação

o    6.4 Taxa de erro de bit irrecuperável

·         7 Problemas com RAID

o    7.1 Adição de discos numa altura posterior

o    7.2 Falhas associadas

o    7.3 Atomicidade

o    7.4 Dados irrecuperáveis

o    7.5 Escrever a fiabilidade da cache

o    7.6 Compatibilidade do equipamento

·         8 O que o RAID pode e não pode fazer

o    8.1 O que o RAID pode fazer

o    8.2 O que o RAID não pode fazer

·         9 Exemplo

·         10 Referências

·         11 Outros sítios Web

RAID é um acrónimo que significa Redundant Array of Inexpensive Disks ou Redundant Array of Independent Disks. RAID é um termo utilizado em computação. Com RAID, vários discos rígidos são transformados num único disco lógico. Há diferentes formas de o fazer. Cada um dos métodos que reúne os discos rígidos tem alguns benefícios e desvantagens em relação à utilização das unidades como discos individuais, independentes uns dos outros. As principais razões pelas quais o RAID é utilizado são:

  • Para que a perda de dados aconteça com menos frequência. Isto é feito através da obtenção de várias cópias dos dados.
  • Para obter mais espaço de armazenamento, tendo muitos discos mais pequenos.
  • Para obter mais flexibilidade (os discos podem ser mudados ou adicionados enquanto o sistema continua a funcionar)
  • Para obter os dados mais rapidamente.

Não é possível alcançar todos estes objectivos ao mesmo tempo, pelo que é necessário fazer escolhas.

Há também algumas coisas más:

  • Certas escolhas podem proteger contra a perda de dados porque um (ou vários) discos falhou. No entanto, não protegem contra a eliminação ou sobregravação dos dados.
  • Em algumas configurações, o RAID pode tolerar que um ou vários discos falhem. Após a substituição dos discos falhados, os dados precisam de ser reconstruídos. Dependendo da configuração e do tamanho dos discos, esta reconstrução pode demorar muito tempo.
  • Certos tipos de erros tornarão impossível a leitura dos dados

A maior parte do trabalho sobre RAID é baseado num documento escrito em 1988.

As empresas têm utilizado sistemas RAID para armazenar os seus dados desde que a tecnologia foi feita. Há diferentes formas de fazer sistemas RAID. Desde a sua descoberta, o custo de construção de um sistema RAID tem descido muito. Por esta razão, mesmo alguns computadores e aparelhos que são utilizados em casa têm algumas funções RAID. Tais sistemas podem ser usados para armazenar música ou filmes, por exemplo.

Introdução

Diferença entre os discos físicos e os discos lógicos

Um disco rígido é uma parte de um computador. Os discos rígidos normais utilizam o magnetismo para armazenar informação. Quando os discos rígidos são utilizados, estão disponíveis para o sistema operativo. No Microsoft Windows, cada disco rígido receberá uma letra de unidade (começando por C:, A: ou B: são reservados para unidades de disquetes). Os sistemas operativos Unix e tipo Linux têm uma árvore de directórios de raiz única. Isto significa que as pessoas que utilizam os computadores por vezes não sabem onde a informação é armazenada (para ser justo, muitos utilizadores de Windows não sabem também onde os seus dados são armazenados).

Em computação, os discos rígidos (que são hardware, e podem ser tocados) são por vezes chamados unidades físicas ou discos físicos. O que o sistema operativo mostra ao utilizador é por vezes chamado disco lógico. Uma unidade física pode ser dividida em diferentes secções, chamadas partições de disco. Normalmente, cada partição de disco contém um sistema de ficheiros. O sistema operativo mostrará cada partição como um disco lógico.

Portanto, para o utilizador, tanto a configuração com muitos discos físicos como a configuração com muitos discos lógicos terão o mesmo aspecto. O utilizador não pode decidir se um "disco lógico" é o mesmo que um disco físico, ou se é simplesmente uma parte do disco. As Redes de Área de Armazenamento (SANs) alteram completamente esta visão. Tudo o que é visível de uma SAN é um número de discos lógicos.

Dados de leitura e escrita

No computador, os dados são organizados sob a forma de bits e bytes. Na maioria dos sistemas, 8 bits constituem um byte. A memória do computador utiliza a electricidade para armazenar os dados, os discos rígidos utilizam o magnetismo. Portanto, quando os dados são escritos num disco, o sinal eléctrico é convertido num magnético. Quando os dados são lidos a partir do disco, a conversão é feita na outra direcção: Um sinal eléctrico é feito a partir da polaridade de um campo magnético.

O que é RAID?

Uma matriz RAID junta dois ou mais discos rígidos de modo a que estes façam um disco lógico. Existem diferentes razões para que isto seja feito. As mais comuns são:

  • Parar a perda de dados, quando um ou mais discos da matriz falham.
  • Obter transferências de dados mais rápidas.
  • Obter a capacidade de mudar os discos enquanto o sistema continua a funcionar.
  • Juntando vários discos para obter mais capacidade de armazenamento; por vezes são utilizados muitos discos baratos, em vez de um mais caro.

O RAID é feito através da utilização de hardware ou software especial no computador. Os discos rígidos unidos parecerão então um disco rígido para o utilizador. A maioria dos níveis de RAID aumentam a redundância. Isto significa que armazenam os dados com mais frequência, ou armazenam informação sobre como reconstruir os dados. Isto permite que vários discos falhem sem que os dados sejam perdidos. Quando o disco avariado é substituído, os dados que devem conter serão copiados ou reconstruídos a partir dos outros discos do sistema. Isto pode demorar muito tempo. O tempo que leva depende de diferentes factores, como o tamanho da matriz.

Porquê utilizar RAID?

Uma das razões pelas quais muitas empresas estão a utilizar RAID é que os dados da matriz podem simplesmente ser utilizados. Aqueles que utilizam os dados não precisam de estar cientes de que estão a utilizar RAID. Quando ocorre uma falha e o array está a recuperar, o acesso aos dados será mais lento. O acesso aos dados durante este tempo também abrandará o processo de recuperação, mas isto ainda é muito mais rápido do que não ser capaz de trabalhar com os dados. Dependendo do nível RAID, contudo, os discos não podem falhar enquanto o novo disco estiver a ser preparado para utilização. Uma falha num disco nesse momento resultará na perda de todos os dados da matriz.

As diferentes formas de juntar discos são chamadas níveis RAID. Um número maior para o nível não é necessariamente melhor. Os diferentes níveis RAID têm objectivos diferentes. Alguns níveis RAID necessitam de discos especiais e controladores especiais.

História

Em 1978, um homem chamado Norman Ken Ouchi, que trabalhava na IBM, fez uma sugestão descrevendo os planos para o que viria a tornar-se RAID 5. Os planos também descreveram algo semelhante ao RAID 1, bem como a protecção de uma parte do RAID 4.

Os trabalhadores da Universidade de Berkeley ajudaram a planear a investigação em 1987. Estavam a tentar tornar possível que a tecnologia RAID reconhecesse dois discos rígidos em vez de um. Descobriram que quando a tecnologia RAID tinha dois discos rígidos, tinha um armazenamento muito melhor do que com apenas um disco rígido. No entanto, a sua falha era muito mais frequente.

Em 1988, os diferentes tipos de RAID (1 a 5), foram escritos por David Patterson, Garth Gibson e Randy Katz no seu artigo, intitulado "A Case for Redundant Arrays of Inexpensive Disks (RAID)". Este artigo foi o primeiro a chamar à nova tecnologia RAID e o nome tornou-se oficial.

Fecho de 4 discos que fazem uma matriz RAID, integrada num sistema de secretária. Os fechos azuis permitem a troca dos discos enquanto o sistema continua a funcionar.Zoom
Fecho de 4 discos que fazem uma matriz RAID, integrada num sistema de secretária. Os fechos azuis permitem a troca dos discos enquanto o sistema continua a funcionar.

Um disco rígido foi removido da matriz.Zoom
Um disco rígido foi removido da matriz.

Conceitos básicos utilizados pelos sistemas RAID

RAID utiliza algumas ideias básicas, que foram descritas no artigo "RAID: High-Performance, Reliable Secondary Storage" de Peter Chen e outros, publicado em 1994.

Caching

O cache é uma tecnologia que também tem as suas utilizações em sistemas RAID. Existem diferentes tipos de caches que são utilizados em sistemas RAID:

Nos sistemas modernos, um pedido de escrita é mostrado como feito quando os dados foram escritos na cache. Isto não significa que os dados tenham sido gravados no disco. Os pedidos da cache não são necessariamente tratados na mesma ordem em que foram gravados na cache. Isto torna possível que, se o sistema falhar, por vezes alguns dados não tenham sido gravados no disco envolvido. Por esta razão, muitos sistemas têm uma cache que é suportada por uma bateria.

Espelhamento: Mais do que uma cópia dos dados

Quando se fala de um espelho, esta é uma ideia muito simples. Em vez de os dados estarem num único local, existem várias cópias dos dados. Estas cópias encontram-se normalmente em diferentes discos rígidos (ou partições de disco). Se houver duas cópias, uma delas pode falhar sem que os dados sejam afectados (como ainda está na outra cópia). O espelhamento também pode dar um impulso ao ler os dados. Será sempre tirado do disco mais rápido que responde. A escrita de dados é mais lenta, porém, porque todos os discos precisam de ser actualizados.

Striping: Parte dos dados está noutro disco

Com a risca, os dados são divididos em diferentes partes. Estas partes acabam então em discos diferentes (ou partições de disco). Isto significa que a escrita de dados é mais rápida, uma vez que pode ser feita em paralelo. Isto não significa que não haverá falhas, pois cada bloco de dados só é encontrado num disco.

Correcção de erros e falhas

É possível calcular diferentes tipos de checksums. Alguns métodos de cálculo de soma de controlo permitem encontrar um erro. A maioria dos níveis RAID que utilizam redundância podem fazer isto. Alguns métodos são mais difíceis de fazer, mas permitem não só detectar o erro, mas também corrigi-lo.

Peças de reserva quentes: utilizando mais discos do que o necessário

Muitas das formas de ter suporte RAID é chamado um hot spare. Um hot spare é um disco vazio que não é utilizado em funcionamento normal. Quando um disco falha, os dados podem ser copiados directamente para o disco sobresselente quente. Desta forma, o disco avariado precisa de ser substituído por um novo disco vazio para se tornar o disco de reserva quente.

Tamanho das riscas e do pedaço: espalhando os dados por vários discos

O RAID funciona espalhando os dados por vários discos. Dois dos termos frequentemente utilizados neste contexto são tamanho de listras e tamanho de pedaços.

O tamanho do pedaço é o menor bloco de dados que é gravado num único disco da matriz. O tamanho da risca é o tamanho de um bloco de dados que será espalhado por todos os discos. Dessa forma, com quatro discos, e um tamanho de banda de 64 kilobytes (kB), 16 kB serão escritos em cada disco. O tamanho do pedaço neste exemplo é portanto 16 kB. Tornar o tamanho da risca maior significará uma taxa de transferência de dados mais rápida, mas também uma latência máxima maior. Neste caso, este é o tempo necessário para obter um bloco de dados.

Colocação de disco: JBOD, concatenação ou spanning

Muitos controladores (e também software) podem juntar os discos da seguinte forma: Levam o primeiro disco, até ao seu fim, depois levam o segundo, e assim por diante. Desta forma, vários discos mais pequenos parecem maiores. Isto não é realmente RAID, uma vez que não há redundância. Além disso, o spanning pode combinar discos onde o RAID 0 não pode fazer nada. Geralmente, isto chama-se apenas um monte de discos (JBOD).

Isto é como um parente distante do RAID porque a unidade lógica é feita de diferentes unidades físicas. A concatenação é por vezes utilizada para transformar várias unidades pequenas numa unidade útil maior. Isto não pode ser feito com RAID 0. Por exemplo, JBOD poderia combinar unidades de 3 GB, 15 GB, 5,5 GB, e 12 GB numa unidade lógica a 35,5 GB, o que muitas vezes é mais útil do que apenas as unidades.

No diagrama à direita, os dados são concatenados desde o fim do disco 0 (bloco A63) até ao início do disco 1 (bloco A64); fim do disco 1 (bloco A91) até ao início do disco 2 (bloco A92). Se RAID 0 fosse utilizado, então o disco 0 e o disco 2 seriam truncados para 28 blocos, o tamanho do disco mais pequeno da matriz (disco 1) para um tamanho total de 84 blocos.

Alguns controladores RAID utilizam JBOD para falar sobre o trabalho em unidades sem características RAID. Cada unidade aparece separadamente no sistema operativo. Este JBOD não é o mesmo que uma concatenação.

Muitos sistemas Linux utilizam os termos "modo linear" ou "modo anexo". A implementação Mac OS X 10.4 - chamada "Concatenated Disk Set" - não deixa o utilizador com quaisquer dados utilizáveis nas unidades restantes se uma unidade falhar num conjunto de discos concatenados, embora os discos funcionem de outra forma como descrito acima.

A concatenação é uma das utilizações do Logical Volume Manager no Linux. Pode ser utilizado para criar unidades virtuais.

Clone de Condução

A maioria dos discos rígidos modernos têm um padrão chamado Tecnologia de Auto-monitorização, Análise e Relatórios (S.M.A.R.T.). SMART permite monitorizar certas coisas numa unidade de disco rígido. Alguns controladores permitem substituir um único disco rígido mesmo antes de este falhar, por exemplo, porque o S.M.A.R.T ou outro teste de disco relata demasiados erros corrigíveis. Para o fazer, o controlador copiará todos os dados para uma unidade de reserva quente. Depois disto, o disco pode ser substituído por outro (que se tornará simplesmente o novo disco de reserva quente).

Configurações diferentes

A configuração dos discos e a forma como eles utilizam as técnicas acima mencionadas afecta o desempenho e a fiabilidade do sistema. Quando são utilizados mais discos, um dos discos tem mais probabilidades de falhar. Devido a isto, têm de ser construídos mecanismos para se poder encontrar e corrigir erros. Isto torna todo o sistema mais fiável, uma vez que é capaz de sobreviver e reparar a falha.

 

JBOD com 3 discos de diferentes tamanhosZoom
JBOD com 3 discos de diferentes tamanhos

Noções básicas: níveis RAID simples

Níveis RAID em uso comum

RAID 0 "striping

O RAID 0 não é realmente RAID porque não é redundante. Com o RAID 0, os discos são simplesmente montados para fazer um disco grande. A isto chama-se "striping". Quando um disco falha, todo o conjunto falha. Portanto, o RAID 0 é raramente utilizado para dados importantes, mas a leitura e escrita de dados do disco pode ser mais rápida com striping porque cada disco lê parte do ficheiro ao mesmo tempo.

Com RAID 0, os blocos de disco que vêm uns atrás dos outros são normalmente colocados em discos diferentes. Por esta razão, todos os discos utilizados por um RAID 0 devem ter o mesmo tamanho.

O RAID 0 é frequentemente utilizado para Swapspace em sistemas operativos Linux ou tipo Unix.

RAID 1 "espelhamento"

Com RAID 1, dois discos são colocados juntos. Ambos contêm os mesmos dados, um é "espelhado" o outro. Esta configuração é fácil e rápida, quer seja implementada com um controlador de hardware ou por software.

RAID 5 "striping com paridade distribuída"

O RAID Nível 5 é o que provavelmente é utilizado a maior parte do tempo. São necessários pelo menos três discos rígidos para construir uma matriz de armazenamento RAID 5. Cada bloco de dados será armazenado em três locais diferentes. Dois destes locais irão armazenar o bloco tal como está, o terceiro irá armazenar um checksum. Este checksum é um caso especial de um código Reed-Solomon que utiliza apenas a adição bitwise. Normalmente, é calculado utilizando o método XOR. Uma vez que este método é simétrico, um bloco de dados perdido pode ser reconstruído a partir do outro bloco de dados e da soma de controlo. Para cada bloco, um disco diferente conterá o bloco de paridade que contém a soma de controlo. Isto é feito para aumentar a redundância. Qualquer disco pode falhar. Globalmente, haverá um disco que detém o checksum, pelo que a capacidade total utilizável será a de todos os discos excepto um. O tamanho do disco lógico resultante será o tamanho de todos os discos em conjunto, excepto de um disco que detém a informação de paridade.

É claro que isto é mais lento que o nível RAID 1, uma vez que em cada escrita, todos os discos precisam de ser lidos para calcular e actualizar a informação da paridade. O desempenho de leitura do RAID 5 é quase tão bom como o do RAID 0 para o mesmo número de discos. Com excepção dos blocos de paridade, a distribuição de dados sobre as unidades segue o mesmo padrão que o RAID 0. A razão pela qual o RAID 5 é ligeiramente mais lento é que os discos devem saltar sobre os blocos de paridade.

Um RAID 5 com um disco avariado continuará a funcionar. Está em modo degradado. Um RAID 5 degradado pode ser muito lento. Por este motivo, um disco adicional é muitas vezes adicionado. A isto chama-se disco de reserva quente. Se um disco falhar, os dados podem ser directamente reconstruídos no disco extra. O RAID 5 também pode ser feito em software muito facilmente.

Principalmente devido a problemas de desempenho de conjuntos RAID 5 falhados, alguns peritos em bases de dados formaram um grupo chamado BAARF - A Batalha Contra Qualquer Raid Cinco.

Se o sistema falhar enquanto houver escritas activas, a paridade de uma risca pode tornar-se inconsistente com os dados. Se isto não for reparado antes de um disco ou bloco falhar, pode ocorrer perda de dados. Uma paridade incorrecta será utilizada para reconstruir o bloco em falta nessa risca. Este problema é por vezes conhecido como o "buraco de escrita". As caches com bateria e técnicas semelhantes são normalmente utilizadas para reduzir a possibilidade de que isto ocorra.

Fotos

·        

O RAID 0 coloca simplesmente os diferentes blocos nos diferentes discos. Não há redundância.

·        

Com Raid 1 cada bloco está lá em ambos os discos

·        

O RAID 5 calcula os checksums especiais para os dados. Tanto os blocos com o checksum como aqueles com os dados são distribuídos por todos os discos.

Níveis RAID utilizados menos

RAID 2

Isto foi utilizado com computadores muito grandes. Discos especiais caros e um controlador especial são necessários para utilizar RAID Nível 2. Os dados são distribuídos ao nível de bits (todos os outros níveis utilizam acções ao nível de bytes). São feitos cálculos especiais. Os dados são divididos em sequências estáticas de bits. 8 bits de dados e 2 bits de paridade são colocados em conjunto. Depois é calculado um código de Hamming. Os fragmentos do código de Hamming são então distribuídos pelos diferentes discos.

O RAID 2 é o único nível RAID que pode reparar erros, os outros níveis RAID só os podem detectar. Quando descobrem que a informação necessária não faz sentido, simplesmente reconstituem-na. Isto é feito com cálculos, utilizando informação sobre os outros discos. Se essa informação estiver em falta ou errada, eles não podem fazer muito. Porque utiliza códigos Hamming, o RAID 2 pode descobrir qual a informação que está errada, e corrigir apenas essa informação.

O RAID 2 necessita de pelo menos 10 discos para funcionar. Devido à sua complexidade e à sua necessidade de hardware muito caro e especial, o RAID 2 já não é muito utilizado.

RAID 3 "striping com paridade dedicada"

O Raid Nível 3 é muito semelhante ao Nível 0 RAID. Um disco adicional é adicionado para armazenar informação de paridade. Isto é feito por adição bitwise do valor de um bloco nos outros discos. A informação da paridade é armazenada num disco separado (dedicado). Isto não é bom, porque se o disco de paridade falhar, a informação de paridade é perdida.

O RAID Nível 3 é normalmente feito com pelo menos 3 discos. Uma configuração de dois discos é idêntica à de um RAID Nível 0.

RAID 4 "striping com paridade dedicada"

Isto é muito semelhante ao RAID 3, excepto que a informação da paridade é calculada em blocos maiores, e não em bytes únicos. Isto é como o RAID 5. São necessários pelo menos três discos para um conjunto RAID 4.

RAID 6

O nível RAID 6 não era um nível RAID original. Acrescenta um bloco de paridade adicional a um conjunto RAID 5. Precisa de pelo menos quatro discos (dois discos para a capacidade, dois discos para redundância). O RAID 5 pode ser visto como um caso especial de um código Reed-Solomon. O RAID 5 é um caso especial, no entanto, só precisa de ser adicionado no campo Galois GF(2). Isto é fácil de fazer com os XORs. O RAID 6 estende estes cálculos. Já não é um caso especial, e todos os cálculos precisam de ser feitos. Com RAID 6, é utilizado um checksum extra (chamado polinómio), geralmente de GF (28). Com esta abordagem, é possível proteger contra qualquer número de discos falhados. RAID 6 é para o caso de utilização de dois checksums para proteger contra a perda de dois discos.

Tal como no RAID 5, a paridade e os dados estão em discos diferentes para cada bloco. Os dois blocos de paridade estão também localizados em discos diferentes.

Existem diferentes formas de fazer RAID 6. São diferentes no seu desempenho de escrita, e em quantos cálculos são necessários. Ser capaz de fazer escritas mais rápidas geralmente significa que são necessários mais cálculos.

O RAID 6 é mais lento do que o RAID 5, mas permite que o RAID continue com quaisquer dois discos avariados. O RAID 6 está a tornar-se popular porque permite a reconstrução de uma matriz após uma falha de um único disco, mesmo que um dos discos restantes tenha um ou mais sectores defeituosos.

Fotos

·        

O RAID 3 é muito semelhante ao nível RAID 0. Adiciona-se um disco extra que conterá um checksum para cada bloco de dados.

·        

RAID 4 é semelhante ao nível RAID 3, mas calcula a paridade sobre blocos maiores de dados

·        

O RAID 6 é semelhante ao RAID 5, mas calcula dois checksums diferentes. Isto permite que dois discos falhem, sem perda de dados.

Níveis RAID não normalizados

Paridade dupla / Paridade diagonal

O RAID 6 utiliza dois blocos de paridade. Estes são calculados de uma forma especial sobre um polinómio. O RAID de paridade dupla (também chamado RAID de paridade diagonal) utiliza um polinómio diferente para cada um destes blocos de paridade. Recentemente, a associação industrial que definiu RAID disse que o RAID de dupla paridade é uma forma diferente de RAID 6.

RAID-DP

O RAID-DP é outra forma de ter dupla paridade.

RAID 1.5

RAID 1.5 (não confundir com RAID 15, que é diferente) é uma implementação proprietária de RAID. Tal como o RAID 1, utiliza apenas dois discos, mas faz tanto striping como mirroring (semelhante ao RAID 10). A maioria das coisas é feita em hardware.

RAID 5E, RAID 5EE e RAID 6E

RAID 5E, RAID 5EE e RAID 6E (com o E de Enhanced adicionado) referem-se geralmente a diferentes tipos de RAID 5 ou RAID 6 com uma reserva quente. Com estas implementações, a unidade de reserva quente não é uma unidade física. Pelo contrário, existe na forma de espaço livre nos discos. Isto aumenta o desempenho, mas significa que uma unidade de reserva quente não pode ser partilhada entre diferentes matrizes. O esquema foi introduzido pela IBM ServeRAID por volta de 2001.

RAID 7

Esta é uma implementação patenteada. Adiciona caching a uma matriz RAID 3 ou RAID 4.

Matriz Intel RAID

Algumas placas principais da Intel têm um chip RAID que tem esta característica. Utiliza dois ou três discos, e depois particiona-os igualmente para formar uma combinação de níveis RAID 0, RAID 1, RAID 5 ou RAID 1+0.

Controlador RAID MD Linux

Este é o nome para o driver que permite fazer RAID por software com Linux. Para além dos níveis normais de RAID 0-6, tem também uma implementação de RAID 10. Desde o Kernel 2.6.9, o RAID 10 é um nível único. A implementação tem algumas características não padronizadas.

RAID Z

A Sun implementou um sistema de ficheiros chamado ZFS. Este sistema de ficheiros é optimizado para o tratamento de grandes quantidades de dados. Inclui um Gestor de Volume Lógico. Também inclui uma funcionalidade chamada RAID-Z. Evita o problema chamado RAID 5 write hole porque tem uma política de copy-on-write: Não sobregrava os dados directamente, mas escreve novos dados num novo local no disco. Quando a gravação foi bem sucedida, os dados antigos são apagados. Evita a necessidade de operações de leitura-modificação-escrita para pequenas escritas, porque só escreve riscas completas. Os pequenos blocos são espelhados em vez de protegidos por paridade, o que é possível porque o sistema de ficheiros conhece a forma como o armazenamento é organizado. Pode, portanto, atribuir espaço extra, se necessário. Existe também o RAID-Z2 que utiliza duas formas de paridade para alcançar resultados semelhantes ao RAID 6: a capacidade de sobreviver a até duas falhas de drive sem perder dados.

Fotos

·        

Diagrama de uma configuração RAID DP (Paridade Dupla).

·        

Uma configuração RAID Matrix.

Juntando níveis RAID

Com RAID podem ser montados diferentes discos para obter um disco lógico. O utilizador só verá o disco lógico. Cada um dos níveis de RAID acima mencionados tem pontos bons e maus. Mas o RAID também pode funcionar com discos lógicos. Desta forma, um dos níveis RAID acima pode ser utilizado com um conjunto de discos lógicos. Muitas pessoas anotam-no escrevendo os números em conjunto. Por vezes, escrevem um '+' ou um '&' no meio. As combinações comuns (usando dois níveis) são as seguintes:

  • RAID 0+1: Duas ou mais matrizes RAID 0 são combinadas a uma matriz RAID 1; a isto chama-se um espelho de listras
  • RAID 1+0: O mesmo que RAID 0+1, mas níveis de RAID invertidos; Listra de Espelhos. Isto torna a falha do disco mais rara do que o RAID 0+1 acima.
  • RAID 5+0: Listrar vários RAID 5 com um RAID 0. Um disco de cada RAID 5 pode falhar, mas faz desse RAID 5 o único ponto de falha; se outro disco desse array falhar, todos os dados do array serão perdidos.
  • RAID 5+1: Espelhar um conjunto de RAID 5: Em situações em que o RAID é feito de seis discos, quaisquer três podem falhar (sem que os dados se percam).
  • RAID 6+0: riscar várias matrizes RAID 6 sobre um RAID 0; dois discos de cada RAID 6 podem falhar sem perda de dados.

Com seis discos de 300 GB cada, com uma capacidade total de 1,8 TB, é possível fazer um RAID 5, com espaço utilizável de 1,5 TB. Nessa matriz, um disco pode falhar sem perda de dados. Com RAID 50, o espaço é reduzido para 1,2 TB, mas um disco de cada RAID 5 pode falhar, além de haver um aumento notável no desempenho. O RAID 51 reduz o tamanho utilizável para 900 GB, mas permite que quaisquer três unidades falhem.

·        

RAID 0+1: várias matrizes RAID 0 são combinadas com um RAID 1

·        

RAID 1+0: Mais robusto que o RAID 0+1; suporta múltiplas falhas de unidades, desde que não haja duas unidades que façam um espelho falhar.

·        

RAID 5+1: Quaisquer três unidades disto podem falhar, sem perda de dados.

Fazer um RAID

Existem diferentes maneiras de fazer um RAID. Pode ser feito ou com software, ou com hardware.

RAID por software

Um RAID pode ser feito com software de duas maneiras diferentes. No caso do RAID por software, os discos são ligados como discos rígidos normais. É o computador que faz o RAID funcionar. Isto significa que para cada acesso o CPU também precisa de fazer os cálculos para o RAID. Os cálculos para o RAID 0 ou RAID 1 são simples. No entanto, os cálculos para RAID 5, RAID 6, ou um dos níveis combinados de RAID podem ser muito trabalhosos. Num RAID por software, o arranque automático a partir de uma matriz que falhou pode ser uma coisa difícil de fazer. Finalmente, a forma como o RAID é feito em software depende do sistema operativo utilizado; geralmente não é possível reconstruir uma matriz RAID de software com um sistema operativo diferente. Os sistemas operativos geralmente utilizam partições de disco rígido em vez de discos rígidos inteiros para fazer matrizes RAID.

Hardware RAID

Um RAID também pode ser feito com hardware. Neste caso, é utilizado um controlador de disco especial; esta placa controladora esconde o facto de estar a fazer RAID a partir do sistema operativo e do utilizador. Os cálculos de informação de checksum, e outros cálculos relacionados com RAID, são feitos num microchip especial nesse controlador. Isto torna o RAID independente do sistema operativo. O sistema operativo não verá o RAID, verá um único disco. Diferentes fabricantes fazem RAID de diferentes maneiras. Isto significa que um RAID construído com um controlador RAID de hardware não pode ser reconstruído por outro controlador RAID de um fabricante diferente. Os controladores RAID de hardware são muitas vezes caros de comprar.

RAID assistido por hardware

Esta é uma mistura entre RAID por hardware e RAID por software. O RAID assistido por hardware utiliza um chip controlador especial (como o RAID por hardware), mas este chip não pode fazer muitas operações. Só está activo quando o sistema é iniciado; assim que o sistema operativo estiver completamente carregado, esta configuração é como o RAID por software. Algumas placas-mãe têm funções RAID para os discos ligados; na maioria das vezes, estas funções RAID são feitas como RAID assistido por hardware. Isto significa que é necessário um software especial para poder utilizar estas funções RAID e para poder recuperar de um disco avariado.

Diferentes termos relacionados com falhas de hardware

Há diferentes termos que são utilizados quando se fala de falhas de hardware:

Taxa de falha

A taxa de falhas é a frequência com que um sistema falha. O tempo médio até à falha (MTTF) ou o tempo médio entre falhas (MTBF) de um sistema RAID é o mesmo que o dos seus componentes. Um sistema RAID não pode proteger contra falhas dos seus discos rígidos individuais, afinal de contas. Os tipos mais complicados de RAID (qualquer coisa para além de "striping" ou "concatenação") podem ajudar a manter os dados intactos, mesmo que um disco rígido individual falhe.

Tempo médio até à perda de dados

O tempo médio até à perda de dados (MTTDL) dá o tempo médio antes de ocorrer uma perda de dados numa determinada matriz. O tempo médio até à perda de dados de um dado RAID pode ser maior ou menor que o dos seus discos rígidos. Isto depende do tipo de RAID utilizado.

Tempo médio para a recuperação

As matrizes que têm redundância podem recuperar de algumas falhas. O tempo médio de recuperação mostra quanto tempo leva até que uma matriz falhada volte ao seu estado normal. Isto acrescenta tanto o tempo para substituir um mecanismo de disco falhado como o tempo para reconstruir o array (ou seja, para replicar dados para redundância).

Taxa de erro de bit irrecuperável

A taxa de erro de bit irrecuperável (UBE) diz quanto tempo uma unidade de disco será incapaz de recuperar dados após a utilização de códigos de verificação de redundância cíclica (CRC) e múltiplas tentativas de repetição.

Problemas com RAID

Existem também certos problemas com as ideias ou a tecnologia por detrás do RAID:

Adição de discos mais tarde

Certos níveis RAID permitem alargar a matriz simplesmente adicionando discos rígidos, numa altura posterior. Informações tais como blocos de paridade são frequentemente dispersas em vários discos. Adicionar um disco à matriz significa que se torna necessária uma reorganização. Tal reorganização é como uma reconstrução da matriz, pode demorar muito tempo. Quando isto é feito, o espaço adicional pode ainda não estar disponível, porque tanto o sistema de ficheiros no array, como o sistema operativo precisam de ser informados sobre ele. Alguns sistemas de ficheiros não suportam ser cultivados depois de terem sido criados. Nesse caso, todos os dados precisam de ser copiados, a matriz precisa de ser recriada com o novo layout, e os dados precisam de ser restaurados nela.

Outra opção para adicionar armazenamento é criar uma nova matriz, e deixar um gestor de volume lógico tratar da situação. Isto permite o crescimento de quase qualquer sistema RAID, mesmo RAID1 (que por si só está limitado a dois discos).

Falhas associadas

O mecanismo de correcção de erros no RAID assume que as falhas das unidades são independentes. É possível calcular com que frequência um equipamento pode falhar e organizar a matriz para tornar a perda de dados muito improvável.

Na prática, contudo, as unidades eram frequentemente compradas em conjunto. Têm aproximadamente a mesma idade, e têm sido usadas de forma semelhante (chamadas de desgaste). Muitas unidades falham devido a problemas mecânicos. Quanto mais velha é uma unidade, mais desgastadas são as suas partes mecânicas. As peças mecânicas que são velhas têm mais probabilidades de falhar do que as que são mais novas. Isto significa que as falhas da unidade já não são estatisticamente independentes. Na prática, há uma hipótese de que um segundo disco também falhe antes de o primeiro ter sido recuperado. Isto significa que a perda de dados pode ocorrer a taxas significativas, na prática.

Atomicidade

Outro problema que também ocorre com os sistemas RAID é que as aplicações esperam o que se chama Atomicidade: Ou todos os dados são escritos, ou nenhum é. A escrita dos dados é conhecida como uma transacção.

Em matrizes RAID, os novos dados são geralmente escritos no local onde se encontravam os dados antigos. Isto ficou conhecido como actualização no local. Jim Gray, um pesquisador de bases de dados, escreveu um artigo em 1981 onde descreveu este problema.

Muito poucos sistemas de armazenamento permitem a semântica de escrita atómica. Quando um objecto é gravado em disco, um dispositivo de armazenamento RAID estará normalmente a gravar todas as cópias do objecto em paralelo. Muito frequentemente, existe apenas um processador responsável pela escrita dos dados. Neste caso, as gravações de dados nas diferentes unidades sobrepor-se-ão. Isto é conhecido como escrita sobreposta ou escrita escalonada. Um erro que ocorra durante o processo de escrita pode, portanto, deixar as cópias redundantes em diferentes estados. O que é pior, pode deixar as cópias nem no estado antigo nem no novo. No entanto, o registo depende de os dados originais estarem ou no antigo ou no novo estado. Isto permite fazer retroceder a mudança lógica, mas poucos sistemas de armazenamento fornecem uma semântica de escrita atómica num disco RAID.

A utilização de uma cache de escrita com bateria pode resolver este problema, mas apenas num cenário de falha de energia.

O suporte transacional não está presente em todos os controladores RAID de hardware. Portanto, muitos sistemas operativos incluem-no para proteger contra a perda de dados durante uma escrita interrompida. A Novell Netware, a partir da versão 3.x, incluiu um sistema de seguimento de transacções. A Microsoft introduziu o rastreio de transacções através da funcionalidade de jornalismo em NTFS. O sistema de ficheiros WAFL da NetApp resolve-o, nunca actualizando os dados no local, tal como o ZFS.

Dados irrecuperáveis

Alguns sectores de um disco rígido podem ter-se tornado ilegíveis devido a um erro. Algumas implementações de RAID podem lidar com esta situação movendo os dados para outro lado e marcando o sector no disco como mau. Isto acontece com cerca de 1 bit em 1015 em unidades de disco de classe empresarial, e 1 bit em 1014 em unidades de disco normais. As capacidades do disco estão a aumentar de forma constante. Isto pode significar que por vezes, um RAID não pode ser reconstruído, porque tal erro é encontrado quando a matriz é reconstruída após uma falha do disco. Certas tecnologias como o RAID 6 tentam resolver este problema, mas sofrem de uma penalização de escrita muito elevada, por outras palavras, a escrita de dados torna-se muito lenta.

Escrever a fiabilidade da cache

O sistema de disco pode reconhecer a operação de gravação assim que os dados estiverem na cache. Não precisa de esperar até que os dados tenham sido fisicamente escritos. Contudo, qualquer corte de energia pode então significar uma perda de dados significativa de quaisquer dados em fila de espera numa tal cache.

Com RAID por hardware, uma bateria pode ser utilizada para proteger esta cache. Isto resolve muitas vezes o problema. Quando a energia falha, o controlador pode terminar de escrever a cache quando a energia voltar. Esta solução ainda pode falhar, no entanto: a bateria pode ter-se esgotado, a energia pode ter estado desligada durante demasiado tempo, os discos podem ser movidos para outro controlador, o próprio controlador pode falhar. Alguns sistemas podem fazer verificações periódicas da bateria, mas estes utilizam a própria bateria, e deixam-na num estado em que não está completamente carregada.

Compatibilidade do equipamento

Os formatos de disco em diferentes controladores RAID não são necessariamente compatíveis. Por conseguinte, pode não ser possível ler uma matriz RAID em hardware diferente. Consequentemente, uma falha de hardware sem disco pode exigir a utilização de hardware idêntico, ou uma cópia de segurança, para recuperar os dados.

O que o RAID pode e não pode fazer

Este guia foi retirado de um tópico de um fórum relacionado com RAID. Isto foi feito para ajudar a apontar as vantagens e desvantagens de escolher o RAID. É dirigido a pessoas que querem escolher o RAID para aumentar o desempenho ou redundância. Contém links para outros tópicos no seu fórum contendo revisões anedóticas geradas pelo utilizador das suas experiências com RAID.

O que o RAID pode fazer

  • O RAID pode proteger o tempo de funcionamento. Os níveis RAID 1, 0+1/10, 5 e 6 (e as suas variantes tais como 50 e 51) compensam uma falha mecânica do disco duro. Mesmo após a falha do disco, os dados da matriz ainda podem ser utilizados. Em vez de uma restauração demorada a partir de fita, DVD ou outro suporte de backup lento, o RAID permite que os dados sejam restaurados para um disco de substituição dos outros membros do array. Durante este processo de restauração, os dados estão disponíveis para utilizadores em estado degradado. Isto é muito importante para as empresas, uma vez que o tempo de inactividade conduz rapidamente à perda de poder de ganho. Para os utilizadores domésticos, pode proteger o tempo de funcionamento de grandes matrizes de armazenamento de dados, o que exigiria uma restauração demorada de dezenas de DVD ou de bastantes cassetes no caso de falha de um disco que não esteja protegido por redundância.
  • O RAID pode aumentar o desempenho em certas aplicações. Os níveis de RAID 0, 5 e 6 utilizam todos striping. Isto permite a múltiplos fusos aumentar as taxas de transferência para transferências lineares. As aplicações do tipo estação de trabalho funcionam frequentemente com ficheiros grandes. Beneficiam grandemente de striping de disco. Exemplos para tais aplicações são as que utilizam ficheiros de vídeo ou áudio. Este rendimento é também útil em cópias de segurança disco a disco. O RAID 1, bem como outros níveis RAID baseados em striping podem melhorar o desempenho para padrões de acesso com muitos acessos aleatórios simultâneos, como os utilizados por uma base de dados multi-utilizador.

O que o RAID não pode fazer

  • O RAID não pode proteger os dados da matriz. Uma matriz RAID tem um sistema de ficheiros. Isto cria um único ponto de falha. Há muitas coisas que podem acontecer a este sistema de ficheiros para além da falha física do disco. O RAID não pode defender-se contra estas fontes de perda de dados. O RAID não impedirá um vírus de destruir os dados. O RAID não impedirá a corrupção. O RAID não salvará dados quando um utilizador os modifica ou os elimina por acidente. O RAID não protege os dados contra falhas de hardware de qualquer componente para além de discos físicos. O RAID não protege os dados de desastres naturais ou provocados pelo homem, tais como incêndios e inundações. Para proteger dados, deve ser feito o backup dos mesmos em suportes amovíveis, tais como DVD, fita, ou um disco rígido externo. A cópia de segurança deve ser mantida num local diferente. O RAID por si só não impedirá uma catástrofe, quando (não se) ela ocorrer, de se transformar em perda de dados. As catástrofes não podem ser evitadas, mas as cópias de segurança permitem que a perda de dados seja evitada.
  • O RAID não pode simplificar a recuperação em caso de catástrofe. Ao executar um único disco, o disco pode ser utilizado pela maioria dos sistemas operativos, uma vez que vêm com um driver de dispositivo comum. No entanto, a maioria dos controladores RAID necessita de controladores especiais. Ferramentas de recuperação que funcionam com discos únicos em controladores genéricos necessitarão de controladores especiais para aceder a dados em matrizes RAID. Se estas ferramentas de recuperação estiverem mal codificadas e não permitirem o fornecimento de drivers adicionais, então uma matriz RAID será provavelmente inacessível a essa ferramenta de recuperação.
  • O RAID não pode fornecer um aumento de desempenho em todas as aplicações. Esta afirmação é especialmente verdadeira com os utilizadores de aplicações desktop típicas e os jogadores. Para a maioria das aplicações de secretária e jogos, a estratégia de buffer e a procura de desempenho do(s) disco(s) são mais importantes do que o rendimento bruto. O aumento da taxa de transferência sustentada em bruto mostra poucos ganhos para tais utilizadores, uma vez que a maioria dos ficheiros a que eles acedem são tipicamente muito pequenos de qualquer forma. A remoção de disco usando RAID 0 aumenta o desempenho da transferência linear, e não o buffer e a procura de desempenho. Como resultado, o striping de disco usando RAID 0 mostra pouco ou nenhum ganho de desempenho na maioria das aplicações de desktop e jogos, embora haja excepções. Para utilizadores de desktop e jogadores com elevado desempenho como objectivo, é melhor comprar um disco único mais rápido, maior e mais caro do que correr duas unidades mais lentas/pequenas em RAID 0. Mesmo rodando as unidades mais recentes, maiores e maiores em RAID-0 é pouco provável que aumente o desempenho mais de 10%, e o desempenho pode baixar em alguns padrões de acesso, particularmente nos jogos.
  • É difícil mover RAID para um novo sistema. Com um único disco, é relativamente fácil mover o disco para um novo sistema. Pode simplesmente ser ligado ao novo sistema, se tiver a mesma interface disponível. No entanto, isto não é tão fácil com uma matriz RAID. Há um certo tipo de Metadados que diz como o RAID é configurado. Uma BIOS RAID deve ser capaz de ler estes metadados para que possa construir com sucesso a matriz e torná-la acessível a um sistema operativo. Uma vez que os fabricantes de controladores RAID utilizam formatos diferentes para os seus metadados (mesmo os controladores de famílias diferentes do mesmo fabricante podem utilizar formatos de metadados incompatíveis), é quase impossível mover uma matriz RAID para um controlador diferente. Ao mover uma matriz RAID para um novo sistema, devem ser feitos planos para mover o controlador também. Com a popularidade dos controladores RAID integrados na placa mãe, isto é extremamente difícil. Geralmente, é possível mover os membros da matriz RAID e os controladores em conjunto. O RAID por software em produtos Linux e Windows Server também pode funcionar em torno desta limitação, mas o RAID por software tem outros (na sua maioria relacionados com o desempenho).

Exemplo

Os níveis RAID utilizados mais frequentemente são RAID 0, RAID 1, e RAID 5. Suponha que existe uma configuração de 3 discos, com 3 discos idênticos de 1 TB cada, e a probabilidade de falha de um disco para um determinado intervalo de tempo é de 1%.

Nível RAID

Capacidade utilizável

Probabilidade de fracasso

dado em percentagem

Probabilidade de fracasso

1 em ... casos falham

0

3 TB

2,9701%

34

1

1 TB

0,0001%

1 milhão

5

2 TB

0,0298%

3356


AlegsaOnline.com - 2020 / 2023 - License CC3