Sistemas RAID (Redundant Array of Independent Disks)

Introdução

Mais do que simplesmente guardar dados, soluções de armazenamento devem fornecer acesso à informação de maneira eficiente, em tempo hábil e, dependendo do caso, oferecendo algum tipo de proteção contra falhas. É neste ponto que os sistemas RAID (Redundant Array of Independent Disks) entram em ação.

Nas próximas linhas, o InfoWester explicará o que é RAID e mostrará quais os seus principais níveis.

Links diretos:

- O que é RAID?;
- RAID 0 (zero);
- RAID 1;
- RAID 0+1 e RAID 10;
- RAID 5;
- RAID 6;
- RAID 2;
- RAID 3;
- RAID 4;
- JBOD (Just a Bunch Of Disks);
- Implementação de RAID.



O que é RAID?

Tal como já mencionado, RAID é a sigla para Redundant Array of Independent Disks ou, em tradução livre, algo como "Matriz Redundante de Discos Independentes". Trata-se, basicamente, de uma solução computacional que combina vários discos rígidos (HDs) para formar uma única unidade lógica de armazenamento de dados.

E o que é unidade lógica? Em poucas palavras, no que se refere a RAID, trata-se de fazer com que o sistema operacional enxergue o conjunto de HDs como uma única unidade de armazenamento, independente da quantidade de dispositivos que estiver em uso. Hoje, além de HDs, é possível montar sistemas RAID baseados em SSD.

Fazer com que várias unidades de armazenamento trabalhem em conjunto resulta em muitas possibilidades:

- Se um HD sofrer danos, os dados existentes nele não serão perdidos, pois podem ser replicados em outra unidade (redundância);

- É possível aumentar a capacidade de armazenamento a qualquer momento com a adição de mais HDs;

- O acesso à informação pode se tornar mais rápido, pois os dados são distribuídos a todos os discos;

- Dependendo do caso, há maior tolerância a falhas, pois o sistema não é paralisado se uma unidade parar de funcionar;

- Um sistema RAID pode ser mais barato que um dispositivo de armazenamento mais sofisticado e, ao mesmo tempo, oferecer praticamente os mesmos resultados.


Níveis de RAID

Para que um sistema RAID seja criado, é necessário utilizar pelo menos dois HDs (ou SSDs). Mas não é só isso: é necessário também definir o nível de RAID do sistema. Cada nível possui características distintas justamente para atender às mais variadas necessidades. A seguir, os níveis mais comuns:

RAID 0 (zero)

Também conhecido como striping (fracionamento), o nível RAID 0 é aquele onde os dados são divididos em pequenos segmentos e distribuídos entre os discos. Trata-se de um nível que não oferece proteção contra falhas, já que nele não existe redundância. Isso significa que uma falha em qualquer um dos discos pode ocasionar perda de informações para o sistema todo, especialmente porque "pedaços" do mesmo arquivo podem ficar armazenados em discos diferentes.

O foco do RAID 0 acaba sendo o desempenho, uma vez que o sistema praticamente soma a velocidade de transmissão de dados de cada unidade. Assim, pelo menos teoricamente, quanto mais discos houver no sistema, maior é a sua taxa de transferência. Não é difícil entender o porquê: como os dados são divididos, cada parte de um arquivo é gravada em unidades diferentes ao mesmo tempo. Se este processo acontecesse apenas em um único HD, a gravação seria uma pouco mais lenta, já que teria que ser feita sequencialmente.

RAID 0

Por ter estas características, o RAID 0 é muito utilizado em aplicações que lidam com grandes volumes de dados e não podem apresentar lentidão, como tratamento de imagens e edição de vídeos.

RAID 1

O RAID 1 é, provavelmente, o modelo mais conhecido. Nele, uma unidade "duplica" a outra, isto é, faz uma "cópia" da primeira, razão pela qual o nível também é conhecido como mirroring (espelhamento). Com isso, se o disco principal falhar, os dados podem ser recuperados imediatamente porque existe cópias no outro.

Perceba que, por conta desta característica, sistemas RAID 1 devem funcionar em pares, de forma que uma unidade sempre tenha um "clone". Na prática, isso significa que um sistema RAID composto por dois HDs com 500 GB cada terá justamente esta capacidade, em vez de 1 TB.

RAID 1

O nível RAID 1 é claramente focado na proteção dos dados, ou seja, não torna o acesso mais rápido. Na verdade, pode até ocorrer uma ligeira perda de desempenho, uma vez que o processo de gravação acaba tendo que acontecer duas vezes, uma em cada unidade.

É importante observar, no entanto, que o uso de RAID 1 não dispensa soluções de backup. Como a duplicação dos dados é feita praticamente em tempo real, significa que se uma informação indevida for gravada na primeira unidade (como um vírus) ou se um arquivo importante for apagado por engano, o mesmo acontecerá no segundo disco. Por isso, RAID 1 se mostra mais adequado para proteger o sistema de falhas "físicas" das unidades.

RAID 0+1 e RAID 10

Tal como você já deve ter imaginado, o nível RAID 0+1 é um sistema "híbrido" (hybrid RAID), ou seja, que combina RAID 0 com RAID 1. Para isso, o sistema precisa ter pelo menos quatro unidades de armazenamento, duas para cada nível. Assim, tem-se uma solução RAID que considera tanto o aspecto do desempenho quanto o da redundância.

RAID 0+1

Há uma variação chamada RAID 10 (ou RAID 1+0) de funcionamento semelhante. A diferença essencial é que, no RAID 0+1, o sistema se transforma em RAID 0 em caso de falha; no RAID 1+0, o sistema assume o nível RAID 1.

RAID 5

O RAID 5 é outro nível bastante conhecido. Nele, o aspecto da redundância também é considerado, mas de maneira diferente: em vez de existir uma unidade de armazenamento inteira como réplica, os próprios discos servem de proteção. Deste modo, pode-se inclusive montar o sistema com quantidade ímpar de unidades. Mas, como isso é possível? Com o uso de um esquema de paridade.

Neste método de proteção, os dados são divididos em pequenos blocos. Cada um deles recebe um bit adicional - o bit de paridade - de acordo com a seguinte regra: se a quantidade de bits '1' do bloco for par, seu bit de paridade é '0'; se a quantidade de bits '1' for ímpar, o bit de paridade é '1'.

As informações de paridade - assim como os próprios dados - são distribuídas entre todos os discos do sistema. Via de regra, o espaço destinado à paridade é equivalente ao tamanho de um dos discos. Assim, um array formado por três HDs de 500 GB terá 1 TB para armazenamento e 500 GB para paridade.

A partir daí, se em uma tarefa de verificação o sistema constatar, por exemplo, que o bit de paridade de um bloco é '1', mas ali há uma quantidade par de bits, percebe que há um erro. Se houver apenas um bit com problema e se o sistema conseguir identificá-lo, conseguirá substituí-lo imediatamente. A restauração dos dados poderá ser feita inclusive depois de o HD ter sido trocado.

RAID 5

Como exemplo, imagine um bloco de dados com os bits '110X' e paridade '1'. O X indica um bit perdido, mas será que ele é '0' ou '1'? Como a paridade é '1', significa que o bloco é composto por quantidade ímpar de bits '1'. Logo, se X fosse '0', a paridade também deveria ser '0', pois ali existiria quantidade par de bits '1'. Isso significa que o bit X só pode ser '1'.

Durante a substituição, é possível manter o sistema em funcionamento, principalmente com o uso de equipamentos que suportam hot-swaping, ou seja, a troca de componentes sem necessidade de desligamento do computador. Isso é possível porque os dados são distribuídos entre todos os discos. Caso um falhe, o esquema de paridade permite recuperar os dados a partir das informações existentes nas demais unidades.

RAID 6

O RAID 5 é uma opção bastante interessante para sistemas que precisam aliar redundância com custos (relativamente) baixos, mas tem uma limitação considerável: consegue proteger o sistema se apenas um disco apresentar falha.

Uma maneira de lidar com isso é acrescentando um recurso de nome hot-spare ao sistema. Trata-se de um esquema onde um ou mais discos são acrescentados para ficar de reserva, entrando em ação tão logo uma unidade apresente problemas.

Outra alternativa interessante é o uso de RAID 6. Trata-se de uma especificação mais recente e parecida com o RAID 5, mas com uma importante diferença: trabalha com dois bits de paridade. Com isso, é possível oferecer redundância para até dois HDs no sistema, em vez de apenas um.

RAID 2, 3 e 4

Os níveis de RAID mostrados até agora são os mais utilizados, mas há alguns menos conhecidos, entre eles, RAID 2, RAID 3 e RAID 4:

RAID 2

RAID é um tipo de solução de armazenamento que surgiu no final dos anos 1980. Naquela época e nos anos seguintes, os HDs não tinham o mesmo padrão de confiabilidade que têm hoje. Por este motivo, foi criado o RAID 2. Ele é, até certo ponto, parecido com o RAID 0, mas conta com um mecanismo de detecção de falhas do tipo ECC (Error Correcting Code). Hoje, este nível quase não é mais utilizado, uma vez que praticamente todos os HDs contam com o referido recurso.

RAID 3

Este é um nível parecido com o RAID 5 por utilizar paridade. A principal diferença é que o RAID 3 reserva uma unidade de armazenamento apenas para guardar as informações de paridade, razão pela qual são necessários pelo menos três discos para montar o sistema. Este nível também pode apresentar maior complexidade de implementação pelo fato de as operações de escrita e leitura de dados considerarem todos os discos em vez de tratá-los individualmente.

RAID 3

RAID 4

O RAID 4 também utiliza o esquema de paridade, tendo funcionamento similar ao RAID 3, com o diferencial de dividir os dados em blocos maiores e de oferecer acesso individual a cada disco do sistema.

Este nível pode apresentar algum comprometimento de desempenho, pois toda e qualquer operação de gravação exige atualização na unidade de paridade. Por este motivo, seu uso é mais indicado em sistemas que priorizam a leitura de dados, ou seja, que realizam muito mais consultas do que gravação.

JBOD (Just a Bunch Of Disks)

Quando o assunto é RAID, você também pode ouvir falar de JBOD, sigla para Just a Bunch Of Disks (algo como "Apenas um Conjunto de Discos"). Não se trata de um nível de RAID, mas sim de um método que simplesmente permite o uso em conjunto de dois ou mais HDs (independente de sua capacidade) de forma a fazer com que o sistema operacional enxergue o arranjo como uma única unidade lógica.

De fato, JBOD é semelhante ao RAID, mas não possui foco em desempenho ou redundância, considerando apenas o aumento da capacidade de armazenamento. Aqui, os dados são simplesmente gravados e, quando um disco fica lotado, a operação continua no outro. Desta forma, se um HD sofrer danos, os dados existentes nos demais não são prejudicados.


Implementação de RAID

Antigamente, montar sistemas RAID não era uma tarefa das mais simples e seu uso normalmente se limitava a servidores. Hoje, no entanto, é possível implementá-los até mesmo em computadores pessoais, mesmo porque praticamente qualquer sistema operacional moderno (Windows, Linux, Mac OS X, entre outros) suporta este recurso.

A maneira mais fácil de fazer isso é adquirindo uma placa-mãe que conta com uma controladora RAID. Em poucas palavras, este dispositivo, que pode funcionar com interfaces PATA, SATA ou SCSI, identifica as unidades de armazenamento conectadas e as fazem trabalhar como um sistema RAID. Sua configuração geralmente é feita a partir do setup do BIOS, embora algum software de controle possa ser fornecido para funcionar no sistema operacional.

Se a placa-mãe não possuir controladora RAID, é possível adicionar placas que acrescentam esta função. Estes dispositivos normalmente podem ser encontrados utilizando interface PCI ou PCI Express. A placa abaixo é um exemplo. Ela é conectada ao computador por meio de um slot PCI Express e possui quatro conectores SATA. São neles que os HDs (ou SSDs) que farão parte do sistema RAID deverão ser ligados:

Placa HighPoint RocketRAID 2320: com PCI Express e portas SATA
Placa HighPoint RocketRAID 2320: com PCI Express e portas SATA

Um sistema RAID também pode ser implementado via software, sem a necessidade de controladoras. Nestes casos, o gerenciamento todo é feito a partir do sistema operacional, portanto, é necessário contar com uma boa configuração de hardware para que o computador não fique sobrecarregado.

Uma observação importante: nas placas-mãe, é comum encontrar controladoras RAID que, na verdade, misturam recursos de software disponíveis a partir do sistema operacional com algumas funcionalidades que podem ser ativadas via BIOS. Nestes casos, o desempenho do sistema RAID costuma ser inferior em comparação ao que pode ser oferecido por uma controladora "de verdade".


Finalizando

RAID não é uma invenção nova. Surgiu em 1987 pelas mãos de David Patterson, Garth Gibson e Randy Katz, na época, pesquisadores da Universidade de Berkeley, nos Estados Unidos. A dúvida que fica no ar é: uma tecnologia com tanto tempo de existência ainda tem utilidade nos dias de hoje? A resposta é um sonoro SIM.

Utilizar RAID hoje pode ser muito mais vantajoso do que a anos atrás. Primeiro porque os custos diminuíram. Antigamente só era possível fazer RAID com unidades SCSI (mais caras), por exemplo. Atualmente, controladoras RAID são um pouco mais baratas, compatíveis com várias interfaces e de implementação relativamente simples.

Além disso, hoje há muito mais aplicações que se beneficiam deste tipo de sistema. Logo, mesmo com o surgimento de novas tecnologias de armazenamento de dados, ouviremos falar de RAID ainda por um longo tempo.

Escrito por - Publicado em 25_01_2012 - Atualizado em 14_02_2013

Vai comprar um HD? Então veja preços de: HDs externo ou HDs SATA (Via Shopping UOL)