Raid
Raid
Raid
Redundant Array of Independent Drives, também denominado Redundant Array of Inexpensive Drives ou
mais conhecido como simplesmente RAID ou ainda em português: Conjunto Redundante de Discos
Independentes ou também Conjunto Redundante de Discos Econômicos, é um meio de se criar um sub-
sistema de armazenamento composto por vários discos individuais, com a finalidade de ganhar segurança e
desempenho.
Popularmente, RAID seriam dois ou mais discos (por exemplo, HD ou disco rígido) trabalhando
simultaneamente para um mesmo fim, por exemplo, citando o exemplo de RAID-1 logo abaixo, serviria
como um espelhamento simples, rápido e confiável entre dois discos, para fazer o backup de um disco em
outro. Apesar do RAID oferecer segurança e confiabilidade na adição de redundância e evitar falhas dos
discos, o RAID não protege contra falhas de energia ou erros de operação. Falhas de energia, código errado
de núcleo ou erros operacionais podem danificar os dados de forma irrecuperável.
História
O RAID foi proposto em 1988 por David A. Patterson, Garth A. Gibson e Randy H. Katz na publicação
"Um Caso para Conjuntos de Discos Redundantes Econômicos (RAID)". Publicado na Conferência
SIGMOD de 1988: pp. 109–16.
Vantagens
1. Ganho de desempenho no acesso.
2. Redundância em caso de falha em um dos discos.
3. Uso múltiplo de várias unidades de discos.
4. Facilidade em recuperação de conteúdo "perdido".
Arquiteturas
Implementação Via software
RAID 1 escrito por Mauricio Soares 1982
Na implementação via software, o sistema operacional gerencia o RAID através da controladora de discos,
sem a necessidade de um controlador de RAIDs, tornando-a mais barata.
Nesse tipo de implementação, todo o processamento necessário para o gerenciamento do RAID é feito pela
CPU. Toda movimentação de dados(leitura e escrita) é feita por uma camada de software que faz a
abstração entre a operação lógica (RAID) e os discos físicos, e é controlada pelo sistema operacional.
A configuração do RAID via software é feita pelo sistema operacional, que precisa ter implementado no
próprio núcleo a utilização de RAIDs via software. É possível criar RAIDs via software no Mac OS X,
Linux, FreeBSD e no Windows (versão server).
Uma implementação de RAID em hardware requer pelo menos uma controladora especialmente dedicada
para isso. Em uma estação de trabalho (PC comum) isso pode ser uma placa de expansão PCI, PCI-e ou uma
placa integrada à placa-mãe. Controladoras utilizando a maioria dos tipos de drive podem ser usadas -
IDE/ATA, SATA, SCSI, SSA, Fibre Channel, e às vezes uma combinação. A controladora e os discos
utilizados devem estar isolados. Podem estar conectados diretamente ao computador, ou conectados via
SAN. A controladora gerencia os drives e faz os cálculos de paridade necessários pelo nível de RAID
escolhido.
A maioria das implementações em hardware provêem cache de leitura e escrita, o que (dependendo da carga
de I/O) melhora a performance. Na maioria dos casos, o cache de escrita é não-volátil (protegido por
bateria), e portanto, escritas pendentes não são perdidas no caso de uma falha no suprimento de energia.
Implementações em hardware promovem performance garantida, não sobrecarregam o processador e podem
suportar vários sistemas operacionais, já que a controladora apresentará ao sistema operacional um disco
simples.
A maioria das implementações em hardware também suporta o "hot-swapping", permitindo que discos com
falha sejam substituídos enquanto o sistema está sendo executado.
Fake RAID
A implementação via software geralmente não possui uma facil configuração. Já na implementação via
hardware as controladoras tem um preço muito elevado. Então foi criada uma "controladora barata" que em
vez de um chip controlador RAID você utiliza uma combinação de funções especiais na BIOS da placa e
drivers instalados no sistema operacional .
Ao compararmos RAIDs por software e por hardware percebe-se que os implementados através de software
são mais flexíveis que os via hardware. Por outro lado, os primeiros exigem da CPU mais tempo de
processamento. Comparando os dispositivos de blocos, os em software também são flexíveis podendo ser
usados em discos inteiros, partições ou outro dispositivo de bloco.
Como disse, estas controladoras RAID "de verdade" são quase que invariavelmente, SCSI ou SAS. Além de
trabalharem via hardware, elas permitem o uso de um número maior de drives. Muitas permitem o uso de
um ou mais módulos de memória (instalados na própria controladora) que funcionam como um cache
adicional, ajudando a melhorar o desempenho do array. Outro recurso cada vez mais utilizado (sobretudo
nas controladoras SAS) é o hot swap, onde você pode substituir os discos defeituosos com o sistema
rodando. Os servidores com controladoras que suportam hot swap quase sempre utilizam baias removíveis,
facilitando o acesso aos discos.
Nas controladoras que trabalham via hardware, toda a configuração é feita através do BIOS da placa RAID,
que pode ser acessado pressionando uma combinação de teclas durante o boot. O mais comum é pressionar
Ctrl+C pouco antes do início do carregamento do sistema.
Controladora RAID SCSI
Naturalmente, estas controladoras são caras, sem falar no custo dos discos, por isso elas não são o tipo de
equipamento que você compraria para instalar no seu desktop.
Em seguida, temos o RAID via software, onde todas as funções são executadas diretamente pelo sistema
operacional e os HDs são ligados diretamente às interfaces da placa-mãe. Neste caso, temos um trabalho
adicional de configuração, mas em compensação não é preciso gastar com uma controladora dedicada. É
possível criar arrays RAID via software tanto no Linux quanto no Windows 2000, XP, 2003 Server e Vista.
No caso do Windows XP, a configuração de RAID via software é feita no Painel de Controle > Ferramentas
Administrativas > Gerenciamento do Computador > Gerenciamento de discos.
Clique com o botão direito sobre um dos HDs que farão parte do array e selecione a opção "Converter em
disco dinâmico". Na tela seguinte, marque todos os HDs que serão usados.
Depois de converter os HDs para discos dinâmicos, clique novamente com o botão direito sobre um deles e
selecione a opção "Novo Volume". É aberto o assistente que permite criar o array RAID.
As versões Home e Professional oferecem apenas as opções de criar arrays RAID 0 (distribuído) ou JBOD
(estendido), mas no 2000 ou 2003 Server é possível criar também arrays RAID 1 (Espelhado) e RAID 5,
nesse caso utilizando a partir de 3 HDs:
O terceiro modo é o fake RAID utilizado pela maioria das controladoras baratas, incluídas nas placas-mãe
para desktop. No fake RAID é utilizada uma combinação de funções adicionais no BIOS da placa e um
driver que roda pelo sistema operacional. No final, tudo é processado via software, de forma que não existe
ganho de desempenho em relação a utilizar RAID via software. Apenas a configuração é simplificada.
Na maioria das placas-mãe, a configuração segue uma lógica simples. Você começa indicando quais drives
farão parte do array através do setup. Em seguida, usa a tecla F10, Ctrl+C, Ctrl+F, ou outra tecla de atalho
para acessar as opções de configuração do array RAID, onde você pode escolher que tipo de array será
criado, o tamanho dos fragmentos e assim por diante.
Na Asus K8N4-E, por exemplo, a opção para ativar o suporte a RAID e indicar quais drives serão usados
está escondida na seção "Advanced > Onboard Device Configuration > NVRAID Configuration":
A partir daí, o BIOS da controladora RAID passa a ser inicializado durante o boot e você pode acessar a
configuração pressionando a tecla "F10" durante o boot.
Dentro da configuração, adicione os drives que serão usados no array na coluna da direita e escolha entre
usar RAID 1 (Mirroring) ou RAID 0 (Stripping) na opção superior. Você pode ainda ajustar o tamanho dos
fragmentos, através da opção "Stripping Block":
As controladoras fake RAID IDE suportam, via de regra, apenas os modos RAID 0, 1 e 10. Não é
recomendável utilizar mais do que um HD por porta IDE, de forma que, numa controladora com duas
portas, o ideal é utilizar apenas dois drives, escolhendo entre usar RAID 0 ou RAID 1.
Algumas controladoras SATA oferecem a opção de usar RAID 5, nesse caso utilizando um mínimo de 3
drives. Também é possível criar um array RAID 5 via software no Linux (consulte o "software RAID
howto", disponível no tldp.org), utilizando tanto HDs IDE quanto drives SATA ou SCSI.
Assim como nas controladoras via hardware, as controladoras fake RAID possuem um BIOS próprio (na
verdade uma extensão que faz parte do BIOS principal), que permite criar os arrays. Muitas vezes, está
disponível também um utilitário acessível através do Windows.
Como estas controladoras precisam de um driver adicional, você precisa copiar os arquivos do driver para
um disquete e fornecê-lo durante a instalação (pressionando a tecla "F6" quando é exibida a mensagem
"Pressione F6 se precisar instalar um driver SCSI ou RAID de TERCEIROS") ao instalar o Windows XP
diretamente dentro do array RAID. No caso do Vista, os drivers podem ser carregados a partir de um
pendrive. Tanto o XP SP2 quanto o Vista incluem drivers para diversas controladoras, mas naturalmente
não para todas.
Outro problema é que muitas controladoras fake RAID não possuem suporte no Linux e muitas não
possuem sequer drivers para o Vista. Nesse caso, a solução é partir para o RAID via software.
Depois de configurar o RAID, é interessante simular a falha de um dos discos para ter certeza de que o
sistema reagirá como esperado. A melhor forma é simplesmente desligar o micro e desconectar um dos
drives. Se você está usando RAID 1, 10 ou 5, o sistema deverá continuar funcionando de forma normal
depois de novamente ligado, exibindo avisos durante o boot, ou incluindo entradas no log do sistema (ao
utilizar RAID via software). Ao utilizar RAID 0 o sistema simplesmente deixará de dar boot, já que a falha
de um dos drives implica na perda de todos os dados.
Níveis de RAID
Níveis de RAID são as várias maneiras de combinar discos para um fim.
RAID
O sistema RAID consiste em um conjunto de dois ou mais discos rígidos com dois objetivos básicos:
1 - Tornar o sistema de disco mais rápido (isto é, acelerar o carregamento de dados do disco), através de
uma técnica chamada divisão de dados (data striping ou RAID 0);
2 - Tornar o sistema de disco mais seguro, através de uma técnica chamada espelhamento (mirroring ou
RAID 1).
Essas duas técnicas podem ser usadas isoladamente ou em conjunto.
RAID 0 Striping
Vantagens:
- Acesso rápido as informações (até 50% mais
rápido).
- Custo baixo para expansão de memória.
Desvantagens:
- Caso algum dos setores de algum dos HD’s
venha a apresentar perda de informações, o
mesmo arquivo que está dividido entre os
mesmos setores dos demais HD’s não terão mais
sentido existir, pois uma parte do arquivo foi
corrompida, ou seja, caso algum disco falhe, não
tem como recuperar.
- Não é usado paridade.
RAID 1
RAID-1 é o nível de RAID que implementa o espelhamento de disco, também conhecido como mirror. Para
esta implementação são necessários no mínimo dois discos. O funcionamento deste nível é simples: todos os
dados são gravados em dois discos diferentes; se um disco falhar ou for removido, os dados preservados no
outro disco permitem a não descontinuidade da operação do sistema.
Vantagens:
- Caso algum setor de um dos discos venha a falhar, basta recuperar
o setor defeituoso copiando os arquivos contidos do segundo disco.
- Segurança nos dados (com relação a possíveis defeitos que possam
ocorrer no HD).
Desvantagens:
- Custo relativamente alto se comparado ao RAID 0.
- Ocorre aumento no tempo de escrita.
- Não é usado paridade.
RAID 2/1
RAID 2 é similar ao RAID 4, mas armazena informação ECC (Error Correcting Code), que é a informação
de controle de erros, no lugar da paridade. Este fato possibilita uma pequena protecção adicional, porém o
RAID 2 ficou obsoleto pelas novas tecnologias de disco já possuírem este tipo de correcção internamente. O
RAID 2 origina uma maior consistência dos dados se houver queda de energia durante a escrita. Baterias de
segurança e um encerramento correto podem oferecer os mesmos benefícios
Vantagem:
- Usa ECC;
Desvantagem:
- Hoje em dia há tecnologias melhores para o mesmo fim;
RAID 3
O RAID 3 é uma versão simplificada do RAID
nível 2. Nesse arranjo, um único bit de paridade
é computado para cada palavra de dados e
escrito em um drive de paridade. À primeira
vista, pode parecer que um único bit de
paridade dá somente detecção de erro, e não
correção de erro. Para o caso de erros aleatórios
não detectados, essa observação é verdadeira.
Todavia, para o caso de uma falha de drive, ela
provê correção total de erros de um bit, uma
vez que a posição do bit defeituoso é conhecida.
Se um drive falhar, o controlador apenas finge
que todos os seus bits são "zeros". Se uma
palavra apresentar erro de paridade, o bit que
vem do drive extinto deve ter sido um "um",
portanto, é corrigido.
A fim de evitar o atraso em razão da latência rotacional, o RAID 3 exige que todos os eixos das unidades de
disco estejam sincronizados. A maioria das unidades de disco mais recentes não possuem a opção de
sincronização do eixo, ou se são capazes disto, faltam os conectores necessários, cabos e documentação do
fabricante.
Vantagens: Desvantagem:
- Leitura rápida - Montagem difícil via software
- Escrita rápida
- Possui controle de erros
RAID 4
Funciona com três ou mais discos iguais. Um dos discos guarda a paridade (uma forma de soma de
segurança) da informação contida nos discos. Se algum dos discos avariar, a paridade pode ser
imediatamente utilizada para reconstituir o seu conteúdo. Os discos restantes, usados para armazenar dados,
são configurados para usarem segmentos suficientemente grandes (tamanho medido em blocos) para
acomodar um registro inteiro. Isto permite leituras independentes da informação armazenada, fazendo do
RAID 4 um array perfeitamente ajustado para ambientes transacionais que requerem muitas leituras
pequenas e simultâneas.
O RAID 4 assim como outros RAID's, cuja característica é utilizarem paridade, usam um processo de
recuperação de dados mais envolvente que arrays espelhados, como RAID 1. Este nível também é útil para
criar discos virtuais de grande dimensão, pois consegue somar o espaço total oferecido por todos os discos,
exceto o disco de paridade. O desempenho oferecido é razoável nas operações de leitura, pois podem ser
utilizados todos os discos em simultâneo.
Sempre que os dados são escritos no array, as informações são lidas do disco de paridade e um novo dado
sobre paridade deve ser escrito para o respectivo disco antes da próxima requisição de escrita ser realizada.
Por causa dessas duas operações de I/O, o disco de paridade é o factor limitante do desempenho total do
array. Devido ao facto do disco requerer somente um disco adicional para protecção de dados, este RAID é
mais acessível em termos monetários que a implementação do RAID 1.
Vantagens:
- Taxa de leitura rápida;
- Possibilidade do aumento de área de discos físicos.
Desvantagens:
- Taxa de gravação lenta.
- Em comparação com o RAID 1, em caso de falha do disco, a reconstrução é difícil, pois o RAID 1 já
tem o dado pronto no disco espelhado.
- Tecnologia não mais usada por haver melhores para o mesmo fim.
RAID 5
O RAID 5 é frequentemente usado e 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 array
são distribuídas ao longo de todos os discos do
array , ao invés de serem armazenadas num disco
dedicado, oferecendo assim mais desempenho que
o RAID 4, e, simultaneamente, tolerância a falhas.
Vantagens:
- Maior rapidez com tratamento de
ECC.
- Leitura rápida (porém escrita não tão
rápida).
Desvantagem:
- Sistema complexo de controle dos
HDs.
RAID 6
É um padrão relativamente novo, suportado por apenas algumas controladoras. É semelhante ao RAID 5,
porém usa o dobro de bits de paridade, garantindo a integridade dos dados caso até 2 dos HDs falhem ao
mesmo tempo. Ao usar 8 HDs de 20 GB cada um, em RAID 6, teremos 120 GB de dados e 40 GB de
paridade.
Vantagem:
- Possibilidade falhar 2 HDs ao mesmo tempo sem perdas.
Desvantagens:
- Precisa de N+2 HDs para implementar por causa dos discos de paridade.
- Escrita lenta.
- Sistema complexo de controle dos HDs.
RAID 0 (zero) + 1
O RAID 0 + 1 é uma combinação dos níveis 0 (Striping) e 1 (Mirroring), onde os dados são divididos entre
os discos para melhorar o rendimento, mas também utilizam outros discos para duplicar as informações.
Assim, é possível utilizar o bom rendimento do nível 0 com a redundância do nível 1. No entanto, é
necessário pelo menos 4 discos para montar um RAID desse tipo. Tais características fazem do RAID 0 + 1
o mais rápido e seguro, porém o mais caro de ser implantado. No RAID 0+1, se um dos discos vier a falhar,
o sistema vira um RAID 0.
Ex: Se os dois discos que possuam a sequencia A1, A3, A5 falharem ao mesmo tempo, haverá perda de
dados. Se apenas uma das controladoras falhar, o sistema continua fucionando, mas sem outra tolerancia a
falha e sem o ganho de velocidade.
Vantagens:
- Segurança contra perda de dados.
- Pode falhar 1 dos HD's, ou os dois
HD's do mesmo DiskGroup, porém
deixando de ser RAID 0 + 1.
Desvantagens:
- Alto custo de expansão de hardware
(custo mínimo = 4N HDs).
- Os drives devem ficar em
sincronismo de velocidade para obter a
máxima performance.
RAID 1+0
O RAID 1+0, ou 10, exige ao menos 4 discos rígidos. Cada par será espelhado, garantindo redundância, e os
pares serão distribuídos, melhorando desempenho. Até metade dos discos pode falhar simultaneamente, sem
colocar o conjunto a perder, desde que não falhem os dois discos de um espelho qualquer — razão pela qual
usam-se discos de lotes diferentes de cada ‘lado’ do espelho. É o nível recomendado para bases de dados,
por ser o mais seguro e dos mais velozes, assim como qualquer outro uso onde a necessidade de economia
não se sobreponha à segurança e desempenho.
Vantagens:
- Segurança contra perda de dados.
- Pode falhar um ou dois dos HDs ao mesmo tempo, dependendo de qual avaria.
Desvantagens:
- Alto custo de expansão de hardware (custo mínimo = 2N HDs).
- Os drivers devem ficar em sincronismo de velocidade para obter a máxima performance.
RAID 50
É um arranjo híbrido que usa as técnicas de RAID com paridade em conjunção com a segmentação de
dados. Um arranjo RAID-50 é essencialmente um arranjo com as informações segmentadas através de dois
ou mais arranjos. Veja o esquema representativo abaixo:
Vantagens:
- Alta taxa de transferência.
- Ótimo para uso em servidores.
Desvantagens:
- Alto custo de implementação e expansão de memória.
RAID 100
O RAID 100 basicamente é composto do RAID 10+0. Normalmente ele é implementado utilizando uma
combinação de software e hardware, ou seja, implementa-se o RAID 0 via software sobre o RAID 10 via
Hardware.