RAID 0
Segmentação (stripping) é um método
de mapeamento de dados sobre o meio físico de um arranjo,
que serve para criar um grande dispositivo de armazenamento. Os
dados são subdivididos em segmentos consecutivos ou stripes
que são escritos seqüencialmente através de cada
um dos discos de um arranjo. Cada segmento tem um tamanho definido
em blocos.
Por exemplo, sabendo que o tamanho de cada segmento está
defindo em 64 kbytes, e o arranjo de discos contem 2 discos, quando
um arquivo de 128 kbytes for gravado, os primeiros 64 kbytes
serão gravados no primeiro disco, sendo que os
últimos 64 kbytes irão para o segundo disco, e
normalmente isso é feito em paralelo, aumentando
consideravelmente a performance.
Um arranjo desse tipo pode oferecer uma melhor performance,
quando comparada a um disco individual, se o tamanho de cada
segmento for ajustado de acordo com a aplicação que
utilizará o arranjo:
* Em um ambiente com uso intensivo de E/S ou em um ambiente de
banco de dados onde múltiplas requisições
concorrentes são feitas para pequenos registros de dados, um
segmento de tamanho grande é preferencial. Se o tamanho de
segmento para um disco é grande o suficiente para conter um
registro inteiro, os discos do arranjo podem responder
independentemente para as requisições
simultâneas de dados. * Em um ambiente onde grandes registros
de dados são armazenados, segmentos de pequeno tamanho
são mais apropriados. Se um determinado registro de dados
extende-se através de vários discos do arranjo, o
conteúdo do registro pode ser lido em paralelo, aumentando o
desempenho total do sistema.
Arranjos RAID-0 podem oferecer alta performance de escrita se
comparados a verdadeiros níveis de RAID por não
apresentarem sobrecarga[3] associada com cálculos de
paridade ou com técnicas de recuperação de
dados. Esta mesma falta de previsão para
reconstrução de dados perdidos indica que esse tipo
de arranjo deve ser restrito ao armazenamento de dados não
críticos e combinado com eficientes programas de backup.
RAID-1
A forma mais simples de arranjo tolerante a falhas é o
RAID-1. Baseado no conceito de espelhamento (mirroring), este
arranjo consiste de vários grupos de dados armazenados em 2
ou mais dispositivos. Apesar de muitas implementações
de RAID-1 envolverem dois grupos de dados (daí o termo
espelho - mirror), três ou mais grupos podem ser criados se a
alta confiabilidade for desejada.
Se ocorre uma falha em um disco de um arranjo RAID-1, leituras e
gravações subseqüentes são direcionadas
para o(s) disco(s) ainda em operação. Os dados
então são reconstruídos em um disco de
reposição (spare disk) usando dados do(s) disco(s)
sobreviventes. O processo de reconstrução do espelho
tem algum impacto sobre a performance de E/S do arranjo, pois todos
os dados terão de ser lidos e copiados do(s) disco(s)
intacto(s) para o disco de reposição (spare
disk).
RAID-1 oferece alta disponibilidade de dados, porque no
mínimo 2 grupos completos são armazenados. Conectando
os discos primários e os discos espelhados em controladoras
separadas, pode aumentar a tolerância a falhas pela
eliminação da controladora como ponto único de
falha.
Dentre os não híbridos, este nível tem o
maior custo de armazenamento por requerer capacidade suficiente
para armazenar no mínimo 2 grupos de dados. Este é
melhor adaptado para servir pequenas base de dados ou sistemas de
pequena escala que necessitem confiabilidade.
RAID-5
Este tipo de RAID largamente usado funciona similarmente ao RAID
4, mas supera alguns dos problemas mais comuns sofridos por esse
tipo. As informações sobre paridade para os dados do
arranjo são distribuídas ao longo de todos os discos
do arranjo, ao invés de serem armazenadas em um disco
dedicado.
Essa idéia de paridade distribuída reduz o gargalo
de escrita (write bottleneck) que era o único disco de um
RAID-4, porque agora as escritas concorrentes nem sempre requerem
acesso às informações sobre paridade em um
disco dedicado. Contudo, a performance de escrita geral ainda sofre
por causa do processamento adicional causado pela leitura,
recálculo e atualização da
informação sobre paridade.
Para aumentar a performance de leitura de um arranjo RAID-5, o
tamanho de cada segmento em que os dados são divididos pode
ser otimizado para a aplicação que estiver usando o
arranjo. A performance geral de um arranjo RAID-5 é
equivalente ao de um RAID-4, exceto no caso de leituras
seqüenciais, que reduzem a eficiência dos algoritmos de
leitura por causa da distribuição das
informações sobre paridade.
Como em outros arranjos baseados em paridade, a
recuperação de dados em um arranjo RAID-5 é
feita calculando a função XOR das
informações dos discos restantes do arranjo. Pelo
fato de que a informação sobre paridade é
distribuída ao longo de todos os discos, a perda de qualquer
disco reduz a disponibilidade de ambos os dados e
informação sobre paridade, até a
recuperação do disco que falhou. Isto pode causar
degradação da performance de leitura e de
escrita.