Para que serve o RAID (Redundant Array of Independent Disks)

É muito fácil encontrar na Internet muita documentação sobre RAID (Redundant Array of Independent Disks) então minha ideia deste texto é fazer um resumo, simplificado, com os pontos mais importantes, que você precisa lembrar quando for usar essa tecnologia.




RAID não é um protocolo, mas uma forma de trabalho. Com o RAID eu tenho uma placa (chamada controladora de discos) que faz exatamente isso: ela controla os discos. O interessante é que para o computador (seja ele um notebook, desktop ou servidor) vê esses discos como se fosse uma coisa única. Com uma controladora RAID, por exemplo, eu posso pegar 4 discos trabalhando em conjunto e para o Windows esse grupo aparece apenas como "Drive D:". Ou seja, a controladora agrupa esses discos como se fossem um só (falando "tecniquês":  a controladora transforma esses discos em um único volume).

É possível criar grupos RAID via software, direto via sistema operacional (ou seja, sem uso da placa controladora), porém normalmente não é boa ideia porque o resultado final é um equipamento que tende a ser mais lento.

O RAID não é muito usado em notebooks por uma razão simples: falta de espaço. Não apenas por causa da controladora, mas também porque você precisa colocar vários discos. Mas existem sim notebooks e computadores portáteis com RAID (principalmente para aplicações de missão crítica, onde a redundância é essencial).

Em um grupo de discos RAID eu posso misturar discos diferentes, porém não é uma boa ideia. No RAID a controladora considera todos os discos como o sendo o de menor capacidade e de menor velocidade. Por exemplo: se eu tiver um grupo RAID com 4 discos de 4TB e 1 disco de 2TB, a placa cai considerar como se fossem 5 discos de 2TB.

Toda vez que eu mudo a quantidade de discos de um grupo RAID, eu preciso parar tudo e refazer o volume. Ou seja, adicionar discos ao RAID ou mudar o tipo de RAID, é um processo possível, porém trabalhoso: parar o servidor, fazer backup, fazer a mudança do RAID, restaurar o backup no novo volume, reiniciar o servidor. Existem ferramentas (e até placas controladoras) que facilitam esse trabalho, mas não algo padrão.

RAID pode ser feito com qualquer tipo de disco e barramento: ATA, SATA, M.2, PCI-e, SSD, etc. A conexão dos discos com a controladora não tem nada de especial, é uma conexão normal de HD. Obviamente a controladora tem que ter o mesmo tipo de conexão que os discos. Não vou conseguir conectar um HD SATA em uma controladora M.2, da mesma forma que eu não ia conseguir conectar um HD SATA em um notebook que só tenha conexão M.2. Mas fora isso a conexão da controladora com o HD não tem nada de diferente. Se você já conectou um HD SATA em um desktop, vai saber conectar um HD SATA em um servidor com controladora RAID com conexão SATA.

No RAID, quando eu tenho redundância, a perda de disco não afeta em nada a operação do sistema. Ou seja, em um servidor com RAID 6 por exemplo, eu posso perder até 2 discos que o meu servidor vai continuar funcionando normalmente. Se a minha placa controladora suportar discos "hot-swapplable" (onde eu tiro e coloco discos sem desligar o servidor) eu posso trocar esses 2 discos por novos sem a necessidade de parar os serviços. Para os usuários do servidor, é como se nada tivesse acontecido.

Os principais benefícios do RAID são velocidade (gravar e ler mais rápido), confiabilidade (se der problema em um disco, não perco as informações) e capacidade (permitir maior armazenamento do que a disponível em um único disco). No entanto existem diversos tipos de RAID (veja abaixo a lista dos principais tipos), alguns servem apenas para dar mais velocidade, outros apenas para dar maior confiabilidade e outros ainda tem as duas características. Escolha apropriadamente para cada situação.

Tipos de RAID

Se você quiser um detalhamento de como funciona cada tipo de RAID, este texto do Wikipedia é muito bom: https://pt.wikipedia.org/wiki/RAID

Vamos aqui apenas ver um resumo de cada tipo de RAID. Inclusive, tecnicamente falando, o termo correto é "Níveis de RAID" ao invés de "Tipos de RAID".

RAID 0

Nesse tipo (ou nível) de RAID não existe redundância (se perder um disco, perdemos tudo), mas temos velocidade de leitura e gravação. Quanto mais discos eu colocar nesse grupo, mais rápido a leitura e a gravação.

A capacidade final do volume é simplesmente o tamanho do disco menor multiplicado pelo número de discos.

Exemplo 1: RAID 0 com 2 discos de 2 TB tem capacidade de 4 TB
Exemplo 2: RAID 0 com 5 discos de 6TB tem capacidade de 30TB
Exemplo 3: RAID 0 com 4 discos de 6TB e 1 disco de 2 TB tem capacidade de 10 TB (lembre-se, o RAID considera todos os discos como se fossem o menor deles)

Ou seja, no exemplo 2, eu vou "enxergar" no meu computador/servidor um Driver D: com 30TB de capacidade.

RAID 1

No RAID 1 temos redundância mas não temos melhora de velocidade de leitura ou gravação. Nele eu gravo a mesma informação em todos os discos, então sempre vou ter um disco com as informações que eu preciso (a não ser que eu perca todos os discos, mas ai é outra história).

O problema do RAID 1 é que ele é muito ineficiente em termos de capacidade: a capacidade de armazenamento final de um volume RAID 1 é apenas a capacidade do disco menor.

Exemplo 1: RAID 1 com 2 discos de 2 TB tem capacidade de 2 TB
Exemplo 2: RAID 1 com 5 discos de 6TB tem capacidade de 6TB
Exemplo 3: RAID 1 com 4 discos de 6TB e 1 disco de 2 TB tem capacidade de 2 TB

No exemplo 3 eu posso perder 4 discos sem risco de perder dados, porém é muito ineficiente porque comprei 5 discos para tenho capacidade de apenas 2TB. Mesmo que os 5 discos fossem de 6TB, eu teria pago 5 discos e teria capacidade de apenas 1 disco. O RAID 5 e 6 são melhores nesse aspecto.

RAID 2 e 3

Nem se preocupe com esses tipos. Existem mas não são usados mais.

RAID 4

Também praticamente não seu usa mais. Tem as mesmas características do RAID 5, porém o RAID 5 tem vantagens.

RAID 5

Nesse arranjo temos a capacidade de redundância e velocidade de leitura/gravação ao mesmo tempo. Porém o RAID 5 só funciona bem quando tenho 4 ou mais discos (na verdade, como vamos ver, o ideal do RAID 5 é ter entre 6 a 10 discos).

No RAID 5 entra um conceito chamado "paridade". Um dia escreveremos um artigo sobre isso, mas para facilitar, vamos simplificar: entenda "paridade" como sendo uma forma mágica de recuperar informações. No RAID 5 a controladora acrescenta, sozinha, na gravação uma informação mágica (e ai ocupa um pouco mais de espaço)  que permite com que ela reconstrua os dados se perdermos um disco.

Por exemplo, suponha que eu tenha um RAID 5 com 5 discos de 4 TB, eu vou ter 20TB de armazenamento total (chamado capacidade bruta), porém só vou conseguir armazenar 16 TB (capacidade liquida) porque essa paridade vai ocupar 4 TB (a paridade sempre ocupa a capacidade de um disco).

Repare que o RAID 5 não dedica um disco para paridade. Não é isso! É comum ouvir dizer que o RAID 5 tem um disco para armazenar paridade, e que em um arranjo com 5 discos, temos 4 discos de dados e 1 de paridade. Na verdade todos os discos armazenam dados e todos armazenam um pouco da paridade. Apenas que a paridade "come" a capacidade equivalente de 1 disco.

Exemplo 1: RAID 5 com 4 discos de 2 TB tem capacidade útil de 6 TB
Exemplo 2: RAID 5 com 5 discos de 6TB tem capacidade de 24TB
Exemplo 3: RAID 5 com 4 discos de 6TB e 1 disco de 2 TB tem capacidade de 8 TB (lembrando, temos como se fossem 5 discos de 2TB e a paridade come a capacidade de 1 disco)

Na gravação temos um pouco de perda de velocidade porque a controladora precisa gerar essa informação de paridade, mas hoje em dia as controladoras são muito rápidas e essa diferença é pequena.

No RAID 5 se perdermos 2 discos ao mesmo tempo, perdemos TODOS OS DADOS DE TODOS OS DISCOS!

RAID 6

O RAID 6 é melhor ainda que o RAID 5 porque podemos perder 2 discos ao mesmo tempo sem nenhum problema. Obviamente gastamos mais: no RAID 6 perdemos a capacidade de 2 discos (novamente, não temos 2 discos dedicados para paridade, apenas perdemos o equivalente a 2 discos de capacidade).

Como o "gasto" de disco para redundância é grande, ele vale mais a pena quando a quantidade de discos é grande. Repare que nos exemplos abaixo sempre perdemos a capacidade de 2 discos, então se temos poucos discos essa perda é significativa.

Exemplo 1: RAID 6 com 4 discos de 2 TB tem capacidade útil de 4 TB
Exemplo 2: RAID 6 com 5 discos de 6TB tem capacidade de 18TB
Exemplo 3: RAID 6 com 4 discos de 6TB e 1 disco de 2 TB tem capacidade de 6 TB
Exemplo 4: RAID 6 com 12 discos de 6TB tem capacidade de 60TB

Como no RAID 5, a gravação gasta um pouco mais de tempos que a leitura porque a controladora precisa gerar a paridade. Se perdermos 3 ou mais discos ao mesmo tempo, perdemos tudo.

Em aplicações com muitos discos o RAID 6 é o recomendável por uma razão prática. Imagine o  seguinte cenário: você tem um sistema de 10 discos RAID 5. Caso aconteça problema em um disco o administrador precisa ser informado, ele precisa obter outro disco, ir até o servidor, trocar o disco com problema e esperar que o novo disco novo seja preenchido com os dados do anterior (a controladora faz isso automaticamente, mas pode levar horas).  Tudo isso leva tempo, pode levar dias por exemplo para o administrador conseguir um disco novo. Se, durante esse período, outro disco apresentar problemas, ai vamos ter perdido todos os dados dos 10 discos!

RAID 10

Nós podemos castear um RAID no outro. Por exemplo eu posso pegar 4 HDs e criar dois grupos de RAID 1 (redundância) . Ai eu crio um RAID 0 (lembrando, RAID 0 dá velocidade mas não dá redundância) com esses dois RAID 1. Isso chamamos de RAID 10.

Difícil de entender? Vamos tentar explicar de maneira mais simples.

Você pega dois discos, e cria um grupo RAID 1 (vamos chamar esse grupo de DISCO X, como se esses dois discos fossem um só, que é o que o RAID faz). Depois pegamos outros dois discos e criamos outro grupo RAID 1 (vamos chamar de DISCO Y). Agora temos dois discos, o X e o Y. Com dois discos podemos montar um RAID 0. Essa "piramide" chamamos de RAID 1+0 ou simplesmente RAID 10. A figura abaixo ajuda a endender.


Repare que essa piramide aparece apenas figura. Na controladora RAID eu tenho 4 discos conectados nela, diretamente. Depois de conectados esses 4 HDs é que vamos no software de configuração da controladora e criamos esses 3 grupos (2 grupos RAID 1 e depois juntamos eles em um RAID 0). Atenção: nem todas controladoras suportam esse arranjo em cascata, verifique a documentação da sua controladora.

RAID 50, 60, 100

Depois podemos ir cascateando esses arranjos. Posso por exemplo pegar dois grupos RAID 5 de 5 discos cada e juntar em um RAID 0 (chamado RAID 50).

No RAID 100 eu faço 3 cascatas: pego 8 discos, arranjo em 4 grupos de 2 RAID 0. Depois pego cada par desses a arranjo em outro RAID 0 e por último pego esses dois "mega grupos" e arranjo em um RAID 1 (veja figura abaixo). 



Qual o melhor tipo de RAID

Depende da aplicação. Se vou fazer um projeto de servidor de backup (para guardar o backup dos desktops da rede, por exemplo), o ideal é focar em redundância e capacidade. Para projetos de servidor de CFTV a mesma coisa. Para aplicações de banco de dados, velocidade e redundância normalmente são os mais importantes. Então não existe resposta única, o importante é primeiro entender qual o problema se deseja resolver.

Compartilhe você também

Se ainda ficou alguma dúvida ou tiver perguntas, deixe nos comentários abaixo que eu tenho responder o mais rápido possível.

Se você achou útil este artigo, por favor compartilhe utilizando os botões do Twitter, Facebook e Google+ para que outros possam ter acesso.

Comentários