Você está na página 1de 9

*Sistema de redundncia de discos no Linux - RAID*

1. _O Que Disk RAID?_ <#O QUE DISK RAID>


2. _RAID Via Hardware e Via Software_ <#RAID-SOFT-E-HARW>
3. _Nveis de RAID_ <#RAID-NIVEIS>
4. _Desempenho de RAID_ <#RAID-DESEMPENHO>
5. _Uso de RAID para Obter Alta Disponibilidade_ <#RAID-ALTADISP>
*1. O QUE DISK RAID?*
*RAID* (*Redundant Arrays of Independent Disks - Matrizes Redundantes de
Discos Independentes)* uma tecnologia consagrada que oferece
capacidade, confiabilidade, alto desempenho e economia no armazenamento
de dados on-line. Muito superior a discos magnticos, o sistema RAID
de ampla utilizao em todo o espectro da industria de computao, desde
o PC at o mainframe. O sistema RAID gerencia um conjunto de discos, mas
aparece ao usurio como um nico disco grande , a vantagem dos discos
multiplos que, em caso de falha, os dados so transferidos para um
disco prximo e o sistema continua trabalhando, sem perda de dados. A
disponibilidade dos dados tambm mais rpida. Os multiplos discos e um
sistema *RAID* podem ser varridos simultaneamente.
A transferncia de dados do RAID e para o RAID tambm mais rpida,
porque os discos podem ser acessados simultaneamente. A manuteno
tambm mais fcil com o RAID, e a tolerncia de falhas, mais alta.
Cada disco pode ser substituido enquanto o sistema trabalha.
H vrios nveis ou tipos de RAID para acomodar necessidades diferentes
de armazenamento.
*RAID 1*.Este nvel tem discos duplicados trabalhando lado a lado, em
"espelhamento de discos" paralelo. A confiabilidade do sistema muito
mais alta. Se um disco falhar, o outro pode fornecer quaisquer dados
necessrios. Entretanto, apenas 50% da capacidade do drive est
disponvel para armazenamento.
*RAID 2*. No usado por no ser compatvel com os drives atuais.
*RAID 3*. Este nvel usa o striping de dados e um drive de paridade
dedicado. Quando os dados so escritos na matriz, um byte vai para cada
disco. Cada drive acessado ao mesmo tempo. A vantagem uma
transferncia de dados muito mais alta. A desvantagem que, como cada
drive usado, apenas um transao de I/O pode ser processada de cada
vez. O RAID 3 o melhor para grandes requisies de dados.
*RAID 4*(RAID 0). Neste nvel, os blocos de dados so divididos ao longo
da matriz de discos e, portanto, os discos podem ser acessados em
paralelo. O RAID 4 tem uma taxa de I/O maior que o RAID 3, mas a
transferncia de dados mais lenta. Os drivers de paridade podem ser
utilizados para dar tolerncia a falhas do drive de dados. O RAID 4 sem
paridade conhecido como RAID 0.
*RAID 5.*De modo diferente do RAID 3, que acessa todos os drivers ao
mesmo tempo para a mesma leitura ou escrita, o RAID 5 pode acessar
tantos drives quanto possvel para leituras e escritas diferentes. Como
resultado, oferece a maior taxa de I/O de todos os nveis de RAID.

Apesar do RAID ter sido feito para melhorar a confiabilidade no sistema,


atravs da adio de redundncia, pode tambm levar a uma falsa sensao
de segurana e confiana quando usado incorretamente. Esta falsa
confiana pode acarretar em grandes desastres. Particularmente, o RAID
feito para proteger falhas no disco, no para proteger falhas de energia
ou erros do operador.
Falhas de energia, bugs no desenvolvimento do kernel, ou erros de
administradores e operadores podem danificar os dados de uma forma
irrecupervel. /RAID no um substituto apropriado para fazer backup do
seu sistema/.
RAID permite que o computador ganhe performance nas operaes de acesso
a disco, e da mesma forma, rpida recuperao em caso de perda de algum
disco. O tipo mais comum de arranjo de unidades um sistema ou uma
controladora que possibilita o uso de mltiplas unidades de disco
rgido, configuradas para que o sistema operacional se comporte como se
existisse apenas um disco instalado no computador.
2. RAID Via Hardware e Via Software
RAID Via Hardware
RAID por hardware sempre uma controladora de disco, isto , um
dispositivo que pode atravs de um cabo conectar os discos. Algumas
controladoras RAID vm na forma de uma caixa que conectada atravs de
um cabo entre o sistema controlador de disco e os dispositivos de disco.
RAIDs pequenos podem ser ajustados nos espaos para disco do prprio
computador; outros maiores podem ser colocados em um gabinete de
armazenamento com seu prprio espao para disco e suprimento de energia.
Um hardware de RAID antigo pode atuar como um desacelerador, quando
usado com uma CPU mais nova: DSP (/Digital Signal Processor) /e cache
antigos podem atuar como um gargalo, e esta performance pode ser
freqentemente superada por um RAID de software puro.
RAID por hardware geralmente no compatvel entre diferentes tipos,
fabricantes e modelos: se uma controladora RAID falhar, melhor que ela
seja trocada por outra controladora do mesmo tipo. Para uma controladora
de RAID via hardware poder ser usada no Linux ela precisa contar com
utilitrios de configurao e gerenciamento, feitos para este sistema
operacional e fornecidos pelo fabricante da controladora.
RAID Via Software
RAID via software uma configurao de mdulos do kernel, juntamente
com utilitrios de administrao que implementam RAID puramente por
software, e no requer um hardware extraordinrio.
Este tipo de RAID implementado atravs dos mdulos MD (/Multiple
Devices) /do Kernel do Linux e das ferramentas relacionadas.
RAID por software, por ter sua natureza no software, tende a ser muito
mais flexvel que uma soluo por hardware. O lado negativo que ele em
geral requer mais ciclos e potncia de CPU para funcionar bem, quando

comparado a um sistema de hardware. Ele oferece uma importante e


distinta caracterstica: opera sobre qualquer dispositivo do bloco,
podendo ser um disco inteiro (por exemplo, /dev/sda), uma partio
qualquer (por exemplo, /dev/hdb1), um dispositivo de loopback (por
exemplo, /dev/loop0) ou qualquer outro dispositivo de bloco compatvel,
para criar um nico dispositivo RAID. Isto um contraste para a maioria
das solues de RAID via hardware, onde cada grupo junta unidades de
disco inteiras em um arranjo.
Comparando as duas solues, o RAID via hardware transparente para o
sistema operacional, e isto tende a simplificar o gerenciamento. Via
software, h de longe mais opes e escolhas de configuraes, fazendo
com que o assunto se torne mais complexo.
O Controlador de Mltiplos Dispositivos (MD)
O controlador MD usado para agrupar uma coleo de dispositivos de
bloco, em um nico e grande dispositivo de bloco.
As extenses do controlador MD implementam RAID-0 (striping), RAID-1
(espelhamento [o/mirroring]/), RAID-4 e RAID-5 por software. Isto quer
dizer que, com MD, no necessrio hardware especial ou controladoras
de disco para obtermos a maioria dos benefcios de RAID.
*Observao*
A administrao de RAID no Linux no uma tarefa trivial, e mais
voltada para administradores de sistema experientes. A teoria da
operao complexa. As ferramentas do sistema exigem modificaes nos
scripts de inicializao. E recuperar-se de uma falha no disco no uma
tarefa simples, passvel de erros humanos. RAID no para iniciantes,
e qualquer benefcio em busca de confiabilidade e performance pode ser
facilmente acrescido de complexidade extra.
Certamente, unidades
controladoras e CPUs
facilmente os nveis
comprando hadware de

de disco evoludas so muito confiveis, e


avanadas so muito potentes. Voc pode obter mais
de confiabilidade e performance desejados,
alta qualidade e potncia.

3. Nveis de RAID
As diferentes maneiras de combinar os discos em um s, chamados de
/nveis de RAID (RAID levels)/, podem fornecer tanto grande eficincia
de armazenamento como simples espelhamento, ou podem alterar a
performance de latncia (tempo de acesso). Podem tambm fornecer
performance da taxa de transferncia de dados para leitura e para
escrita, enquanto continua mantendo a redundncia. Novamente, isto
ideal para prevenir falhas.
A maioria, mas nem todos os nveis de RAID, oferecem redundncia a falha
de disco. Dos que oferecem redundncia, RAID-1 e RAID-5 so os mais
populares. RAID-1 oferece performance melhor, enquanto que RAID-5
fornece um uso mais eficiente do espao disponvel para o armazenamento
dos dados.
De qualquer modo, o ajuste de performance um assunto totalmente
diferente. A performance depende de uma grande variedade de fatores como
o tipo da aplicao, os tamanhos dos discos, blocos e arquivos.

Alm disso, um espelho pode melhorar a confiabilidade: se um disco


falhar, o(s) outro(s) disco(s) tm uma cpia dos dados.
RAID-linear
uma simples concatenao de parties para criar uma grande partio
virtual. Isto possvel se voc tem vrias unidades pequenas, e quer
criar uma nica e grande partio. Esta concatenao no oferece
redundncia, e de fato diminui a confiabilidade total: se qualquer um
dos discos falhar, a partio combinada ir falhar.
RAID-0
A grande maioria dos nveis de RAID envolve uma tcnica de armazenamento
chamada de segmentao de dados (/data stripping/). A implementao mais
bsica dessa tcnica conhecida como RAID-0 e suportada por muitos
fabricantes. Contudo, pelo fato deste nvel de arranjo no ser tolerante
a falhas, RAID-0 no verdadeiramente RAID, ao menos que seja usado em
conjuno com outros nveis de RAID.
Segmentao (/stripping/) um mtodo de mapeamento de dados sobre o
meio fsico de um arranjo, que serve para criar um grande dispositivo de
armazenamento. Os dados so subdivididos em segmentos consecutivos ou
/stripes/ que so escritos seqencialmente atravs de cada um dos discos
de um arranjo. Cada segmento tem um tamanho definido em blocos.
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 aplicao que utilizar o arranjo:
* Em um ambiente com uso intensivo de E/S ou em um ambiente de banco
de dados onde mltiplas requisies concorrentes so 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 requisies simultneas de
dados.
* Em um ambiente onde grandes registros de dados so armazenados,
segmentos de pequeno tamanho so mais apropriados. Se um determinado
registro de dados extende-se atravs de vrios discos do arranjo, o
contedo 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 nveis de RAID por no apresentarem sobrecarga (overhead)
associada com clculos de paridade ou com tcnicas de recuperao de
dados. Esta mesma falta de previso para reconstruo de dados perdidos
indica que esse tipo de arranjo deve ser restrito ao armazenamento de
dados no crticos 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
vrios grupos de dados armazenados em 2 ou mais dispositivos.
Se ocorre uma falha em um disco de um arranjo RAID-1, leituras e

gravaes subseqentes so direcionadas para o(s) disco(s) ainda em


operao. Os dados ento so reconstrudos em um disco de reposio
(/spare disk/) usando dados do(s) disco(s) sobreviventes. O processo de
reconstruo do espelho tem algum impacto sobre a performance de E/S do
arranjo, pois todos os dados tero de ser lidos e copiados do(s)
disco(s) intacto(s) para o disco de reposio (/spare disk/).
RAID-1 oferece alta disponibilidade de dados, porque no mnimo 2 grupos
completos so armazenados. Conectando os discos primrios e os discos
espelhados em controladoras separadas, pode aumentar a tolerncia a
falhas pela eliminao da controladora como ponto nico de falha.
Dentre os no hbridos, este nvel tem o maior custo de armazenamento
por requerer capacidade suficiente para armazenar no mnimo 2 grupos de
dados. Este melhor adaptado para servir pequenas base de dados ou
sistemas de pequena escala que necessitem confiabilidade.
RAID-2 e RAID-3
Raramente so usados, e em algum momento ficaram obsoletos pelas novas
tecnologias de disco. RAID-2 similar ao RAID-4, mas armazena
informao ECC (error correcting code), que a informao de controle
de erros, no lugar da paridade. Isto ofereceu pequena proteo
adicional, visto que todas as unidades de disco mais novas incorporaram
ECC internamente.
RAID-2 pode oferecer maior consistncia dos dados se houver queda de
energia durante a escrita. Baterias de segurana e um desligamento
correto, porm, podem oferecer os mesmos benefcios. RAID-3 similar ao
RAID-4, exceto que ele usa o menor tamanho possvel para a /stripe/.
Como resultado, qualquer pedido de leitura invocar todos os discos,
tornando as requisies de sobreposio de I/0 difceis ou impossveis.
A fim de evitar o atraso devido a latncia rotacional, o RAID-3 exige
que todos os eixos das unidades de disco estejam sincronizados. A
maioria das unidades de disco mais recentes no possuem a habilidade de
sincronizao do eixo, ou se so capazes disto, faltam os conectores
necessrios, cabos e documentao do fabricante. Nem RAID-2 e nem RAID-3
so suportados pelos drivers de RAID por software no Linux.
RAID-4
Este um tipo de arranjo segmentado, mas incorpora um mtodo de
proteo de dados mais prtico. Ele usa informaes sobre paridade para
a recuperao de dados e as armazena em disco dedicado.
Arranjos RAID-4 e outros arranjos que utilizam paridade fazem uso de um
processo de recuperao de dados mais envolvente que arranjos
espelhados, como RAID-1. A funo /ou exclusivo/ (XOR) dos dados e
informaes sobre paridade dos discos restantes computada para
reconstruir os dados do disco que falhou. Pelo fato de que todos os
dados sobre paridade so escritos em um nico disco, esse disco funciona
como um gargalo durante as operaes de escrita, reduzindo a performance
durante estas operaes (/write bottleneck/).
Sempre que os dados so escritos no arranjo, informaes sobre paridade
normalmente so lidas do disco de paridade e uma nova informao sobre
paridade deve sempre ser escrita para o disco de paridade antes da

prxima requisio de escrita ser realizada.


RAID-5
Este tipo de RAID
supera alguns dos
informaes sobre
longo de todos os
disco dedicado.

largamente usado funciona similarmente ao RAID 4, mas


problemas mais comuns sofridos por esse tipo. As
paridade para os dados do arranjo so distribudas ao
discos do arranjo, ao invs de serem armazenadas em um

Para aumentar a performance de leitura de um arranjo RAID-5, o tamanho


de cada segmento em que os dados so divididos pode ser otimizado para a
aplicao que estiver usando o arranjo. A performance geral de um
arranjo RAID-5 equivalente ao de um RAID-4, exceto no caso de leituras
seqenciais, que reduzem a eficincia dos algoritmos de leitura por
causa da distribuio das informaes sobre paridade.
Como em outros arranjos baseados em paridade, a recuperao de dados em
um arranjo RAID-5 feita calculando a funo XOR das informaes dos
discos restantes do arranjo. Pelo fato de que a informao sobre
paridade distribuda ao longo de todos os discos, a perda de qualquer
disco reduz a disponibilidade de ambos os dados e informao sobre
paridade, at a recuperao do disco que falhou. Isto pode causar
degradao da performance de leitura e de escrita.
Tipos Hbridos
Para suprir as deficincias de um nvel ou outro de RAID, possvel
usar um nvel de RAID sobre outro, aproveitando por exemplo, a excelente
performance de um determinado nvel e a confiabilidade de outro. Isso
tudo claro, pagando o preo de uma maior quantidade de material.
Um exemplo o RAID-10. Como o seu nome implica, a combinao de
discos espelhados (RAID-1) com a segmentao de dados (/data stripping/)
(RAID-0).
RAID-10 oferece as vantagens da transferncia de dados rpida de um
arranjo espelhado, e as caractersticas de acessibilidade dos arranjos
espelhados. A performance do sistema durante a reconstruo de um disco
tambem melhor que nos arranjos baseados em paridade, pois os dados so
somente copiados do dispositivo sobrevivente.
Um arranjo RAID-50, essencialmente um arranjo com as informaes
segmentadas atravs de dois ou mais arranjos RAID-5.
Dependendo do tamanho de cada segmento estabelecido durante a
configurao do arranjo, estes arranjos hbridos podem oferecer os
benefcios de acesso paralelo dos arranjos com paridade (alta velocidade
na transferncia de dados) ou de acesso independente dos arranjos com
paridade (grande quantidade). Como em outros arranjos RAID com paridade,
a reconstruo de um disco falho gera um impacto na performance do
programa usando o arranjo.
4. Desempenho de RAID
Utilizando RAID por software (MD), a possibilidade de acrescentar
velocidade e avaliar o desempenho depende muito da configurao que voc

est usando.
Desempenho no MD RAID-0 e no MD RAID-linear
Se o sistema altamente carregado com muitas operaes de E/S (entrada
e sada), estatisticamente, algumas operaes iro para um disco, e
algumas para os outros discos. Assim, o desempenho ir melhorar em um
nico disco grande. A melhora real depende muito dos dados reais, do
tamanho das /stripes/, e de outros fatores. Em um sistema com uma baixa
utilizao de E/S, o desempenho igual ao de um nico disco.
Desempenho de Leitura no MD RAID-1
O MD implementa balanceamento de leitura, isto , o cdigo RAID-1 ir
alternar entre cada um (dois ou mais) dos discos no espelho, fazendo
leituras alternadas para cada um. Em uma situao de baixa E/S, isto no
poder mudar o desempenho total: voc ter que esperar por um disco para
completar a leitura. Porm, com dois discos em um ambiente de alta E/S,
isto poderia aumentar duas vezes o desempenho de leitura, desde que as
leituras possam ser emitidas para cada um dos discos em paralelo. Para N
discos no espelho, a melhora do desempenho pode ser de 2N.
Desempenho de Escrita no MD RAID-1
Deve-se esperar a escrita ocorrer para todos os discos no espelho. Isto
porque uma cpia dos dados deve ser escrita para cada um dos discos no
espelho. Assim, o desempenho ser aproximadamente igual ao desempenho de
escrita para um nico disco.
Desempenho de Leitura no MD RAID-4/5
Estatisticamente, um bloco pode estar em qualquer uma das unidades de
disco, e assim o desempenho de leitura do RAID-4/5 um tanto parecido
com o do RAID-0. Isto ir depender dos dados, do tamanho da /stripe/ e
da aplicao. No ser to bom quanto o desempenho de leitura de um
arranjo espelhado.
Desempenho de Escrita no MD RAID-4/5
Ser no geral consideravelmente mais lento do que aquele para um nico
disco. Isto porque a paridade deve ser escrita em um disco, assim como
os dados em outro. Entretanto, para processar a nova paridade, a
paridade antiga e os dados antigos devem ser lidos primeiramente. Os
dados antigos, os dados novos e a paridade antiga devem ser todos
comparados juntos, atravs da operao lgica XOR, para determinar a
nova paridade: isto requer considerveis ciclos de CPU em adio aos
numerosos acessos ao disco.
Comparao dos Nveis de RAID
Podemos fazer uma comparao entre os vrios nveis de RAID, de acordo
com desempenho (leitura, gravao e reconstruo), disponibilidade de
dados e o nmero mnimo de unidades requeridas. Observe na tabela a
descrio destes atributos para comparao dos nveis de RAID.

Tabela - Atributos de Comparao dos Vrios Nveis de RAID*

Nvel de RAID Disponibilidade dos Dados


Desempenho de Leitura
Desempenho de Gravao Desempenho de Reconstruo
Nmero Mnimo de
Unidades Requeridas
RAID 0 Nenhuma
Muito bom
Muito bom
No disponvel N
RAID 1 Excelente
Muito bom
Bom
Bom
2N
RAID 4 Boa
E/S seqencial: Boa E/S transacional: Boa
E/S seqencial:
Muito Boa E/S transacional: Ruim
Satisfatria
N + 1 (N pelo menos 2)
RAID 5 Boa
E/S seqencial: Boa E/S transacional: Muito Boa
Satisfatria (a menos que o cache write-back seja usado)
Ruim
N + 1 (N
pelo menos 2)
RAID 10
Excelente
Muito boa
Satisfatria
Boa
2N
RAID 50
Excelente
Muito boa
Satisfatria
Satisfatria
N+2
*Nota:* o nmero /N/ o requerimento de espao para armazenamento
de dados do nvel de RAID. Exemplo: se o requesito mnimo ter 6GB
de espao para um arranjo RAID-5, ento deve-se ter ao menos 2
discos de 3GB cada e mais um disco de 3GB, sendo 6GB (2 discos) +
3GB (1 disco).
5. Uso de RAID para Obter Alta Disponibilidade
Alta disponibilidade difcil e cara. Quanto mais arduamente voc tenta
fazer um sistema ser tolerante a falhas, mais ele passa a ser
dispendioso e difcil de implementar.
* Os discos IDE podem falhar de tal maneira que o disco que falhou em
um cabo do IDE possa tambm impedir que um disco bom, no mesmo cabo,
responda, fazendo assim uma aparncia de que os dois discos
falharam. Apesar de RAID no oferecer proteo contra falhas em dois
discos, voc deve colocar apenas um disco em um cabo IDE, ou se
houverem dois discos, devem pertencer configuraes diferentes de
RAID.
* Discos SCSI podem falhar de tal maneira que o disco que falhou em
uma cadeia pode impedir todos os dispositivos da srie de serem
acessados. O modo de falha envolve a posio do pino de leitura de
dispositivo comum (compartilhado); apesar deste pino ser
compartilhado, nenhuma arbitrariedade pode ocorrer at a posio
estar desligada. Assim, dois discos SCSI na mesma cadeia no devem
pertencer ao mesmo arranjo RAID.
* Observaes similares so aplicadas s controladoras de disco. No
sobrecarregue os canais em uma controladora; utilize controladoras
mltiplas.
* No utilize o mesmo tipo ou nmero de modelo para todos os discos.
No incomum em variaes eltricas bruscas perder dois ou mais
discos, mesmo com o uso de supressores - eles no so perfeitos
ainda. O calor e a ventilao pobre do compartimento de disco so
outras causas das perdas de disco. Discos baratos freqentemente
funcionam aquecidos. Utilizar diferentes tipos de discos e
controladoras diminui a probabilidade de danificao de um disco
(calor, choque fsico, vibrao, choque eltrico).
* Para proteger contra falhas de controladora ou de CPU, possvel
construir um compartimento de disco SCSI que tenha cabos gmeos, ou
seja, conectado a dois computadores. Um computador ir montar o
sistema de arquivos para leitura e escrita, enquanto outro
computador ir montar o sistema de arquivos somente para leitura, e

atuar como um computador reserva ativo. Quando o computador reserva


capaz de determinar que o computador mestre falhou (por exemplo,
atravs de um adaptador /watchdog/), ele ir cortar a energia do
computador mestre (para ter certeza que ele est realmente
desligado), e ento fazer a verificao com o fsck e remontar o
sistema para leitura e escrita.
* Sempre utilize um /no-break/, e efetue os desligamentos corretamente.
* Cabos SCSI so conhecidos por serem muito sujeitos a falhas, e podem
causar todo tipo de problemas. Utilize o cabeamento de mais alta
qualidade que voc puder encontrar a venda. Utilize por exemplo o
/bubble-wrap/ para ter certeza que os cabos fita no esto muito
perto um do outro e do /cross-talk/. Observe rigorosamente as
restries do comprimento do cabo.
* D uma olhada em SSI (arquitetura de armazenamento serial). Embora
seja muito caro, parece ser menos vulnervel aos tipos de falhas que
o SCSI apresenta.