domingo, 8 de maio de 2011

RAID - Uma solução para um dos maiores gargalos do computador

Como prometido, estou começando a série de artigos do Hardware N' Stuff, e como primeiro tópico abordado eu escolhi falar de sistemas RAID e suas vantagens e desvantagens nos computadores.

Mas antes de qualquer coisa, o que é RAID?

RAID, ou Redundant Array of Independent Drives, é uma forma de criar um sistema de armazenamento usando vários discos, com o intuito de ganhar segurança e desempenho.
Em outras palavras, um sistema RAID nada mais é do que dois ou mais discos (HD's ou SSD's), trabalhando em conjunto para alcançar um mesmo objetivo. Como por exemplo no RAID 0 (explicado em detalhe mais abaixo),  dois HD's dividem os arquivos que vão ser armazenados entre ambos, o que praticamente dobra o desempenho de leitura e escrita de dados, comparados a um disco sozinho.

Os sistemas RAID são divididos em vários níveis, onde cada um tem sua respectiva finalidade, sendo eles:
 
  • RAID 0
  • RAID 1
  • RAID 2
  • RAID 3
  • RAID 4
  • RAID 5
  • RAID 0 +1
  • RAID 1 +0
  • RAID 50
  • RAID 100


RAID 0 - Striping
No sistema RAID 0 (ou striping), os dados armazenados são divididos em tiras (ou stripes), de forma 
que eles serão armazenados ao mesmo tempo nos discos do sistema. 

A principal vantagem do uso desse nível RAID é o aumento de desempenho, pois o arquivo é lido e/ou escrito em vários discos ao mesmo tempo. 

Para melhor compreender o funcionamento desse sistema, imagine uma ponte que possui apenas uma faixa de ida, e outra de volta para entrar e sair de uma ilha. Se 10 carros forem entrar na ilha, eles devem passar um de cada vez pela ponte, e se cada carro leva 1 minuto para atravessar a ponte, o tempo total para que todos os carros entrem será de 10 minutos. (O mesmo vale para a saída).


Agora imaginem que essa ilha possui duas pontes, cada uma com uma via de entrada e saída, totalizando 2 de cada. Voltando para a nossa pequena conta, se os mesmos 10 carros fossem entrar na ilha, eles poderiam fazer isso usando as duas pontes, ou seja, poderiam passar cinco carros em cada uma das pontes, de forma paralela. Se o tempo levado na travessia continuar sendo 1 minuto por carro, o tempo total será 5 minutos (contra os 10, da ponte única), o que na pratica seria o mesmo que dobrar a velocidade dos carros.

Agora imaginem essa ilha como o sistema RAID 0, as pontes como os caminhos de entrada e saída de cada HD do sistema , e os carros como os segmentos de dados. Os dados são "quebrados" em partes, e o transporte para o armazenamento é divido entre os discos do sistema.

No final, o RAID 0 é visto pelo sistema operacional como um único disco, e a capacidade de armazenamento total será igual à soma das capacidades de armazenamento dos discos que compõem o sistema. Por exemplo, se um sistema RAID 0 é composto por 2 discos de 500 gigas cada, a capacidade resultante será de 1000 gigas.


Mas como nem tudo são flores, para cada disco adicionado em RAID 0, se aumenta o risco da perda de dados, pois caso qualquer um dos discos venha a falhar (ou algum segmento dos discos), os dados armazenados serão perdidos permanentemente, já que não existe redundância.


Então, as principais vantagens de se usar RAID 0 são:
  1. Aumento de desempenho.
  2. Baixo custo.
E a sua principal desvantagem é:
  1. Menor confiabilidade na segurança dos dados.


RAID 1 - Espelhamento

O sistema RAID 1 (ou espelhamento), como o próprio nome sugere,  grava todos os dados de forma redundante em discos diferentes, o que aumenta a confiabilidade do armazenamento.

Analogamente falando, esse nível de RAID funciona como se fosse uma pessoa copiando um mesmo texto em cadernos diferentes, e caso um dos cadernos viesse a ser perdido, o texto ainda estaria salvo no outro caderno.

Esse sistema precisa de no mínimo 2 discos para funcionar, possuindo a mesma capacidade de armazenamento (e preferencialmente, os discos devem ser do mesmo fabricante e marca).

Suas principais vantagens são:
  1.  Maior confiabilidade contra perda de dados, pois os mesmos estão sendo copiados em discos diferentes. Caso um falhe, basta copiar o conteúdo que está no outro.
  2. A leitura de dados torna-se um pouco mais rápida.
E suas desvantagens:
  1. O tempo de escrita dos dados aumenta (perda de desempenho).
  2. Não utiliza paridade.
 
RAID 2 - ECC

O RAID nível 2 é o sistema de RAID que utiliza um ou mais discos (um para cada disco que armazena dados) que armazenam informações de ECC (Error Correcting Code).

Esse nível de RAID é pouco utilizado, pois praticamente todos os discos modernos já possuem essa tecnologia de correção de erro.


 
RAID 3

O RAID nível 3 é um sistema que utiliza um disco em separado para armazenar um bit de paridade. Esse bit serve para reconstruir os dados caso eles venham a ser danificados.

Esse arranjo RAID, caso um disco falhe, considera todos os bits como "zero", e então usa o disco de paridade para verificar se os dados estão consistentes. Se uma palavra no disco apresentar erro de paridade, ela será então corrigida.

Tal sistema requer que os discos estejam com rotações sincronizadas para poder funcionar.
Vale ressaltar que assim como no RAID 0, o nível 3 também divide os seus dados entre os vários discos do sistema.
Suas principais vantagens são:
  1. Rápida leitura e escrita de dados.  
  2. Usa a paridade para correção de erros.
E suas desvantagens:
  1. Custo mais alto, pois necessita de um controlador RAID físico (placa RAID dedicada).    
  2. Difícil montagem via software.

RAID 4

O sistema RAID 4 também utiliza um disco em separado para armazenar a paridade, além de dividir os dados entre os discos. Para funcionar, ele requer no mínimo 3 discos.

Quando os dados são escritos no sistema RAID 4, o disco de paridade deve ser obrigatoriamente atualizado antes de ser realizada a próxima operação de escrita, o que torna o sistema mais lento para escrever dados.

Como já existem tecnologias melhores para o mesmo fim, o RAID 4 já não é mais utilizado.

Suas principais vantagens são:
  1. Rápida taxa de leitura. 
  2. Apesar da correção de erros, o tamanho total de armazenamento do sistema é maior do que o RAID 1.
E suas principais desvantagens:
  1. Desempenho de reconstrução de dados é muito lento, se comparado com o RAID 1.
  2. Taxa de gravação de dados muito lenta.


RAID 5

O RAID 5 é um sistema muito semelhante ao RAID 4, porém, ele não utiliza um disco dedicado para armazenar os dados de paridade. Tais dados são distribuídos ao longo dos discos pertencentes ao sistema, o que resolve o problema de desempenho de reconstrução do RAID 4.

Suas principais vantagens são:
  1. Rápida leitura de dados.  
  2. Rápida correção de erros (Se comparado ao RAID 4)
E suas desvantagens:
  1. Sistema relativamente mais complexo que os demais, devido à forma como a paridade é distribuída.    
  2. Apesar de ser mais rápido que o RAID 4, a taxa de escrita de dados ainda é lenta.

 

RAID 0+1

O sistema RAID 0+1, como o próprio nome sugere, é o uso de um sistema RAID 1 sobre dois sistemas RAID 0, adicionando então tolerância a falhas, com um bom aumento de desempenho. 

Porém, ele requer no mínimo 4 discos para poder funcionar, o que aumenta o custo do sistema.

Caso um dos discos venha a falhar, o sistema se "reduz" para um RAID 0. Com base na figura abaixo, se o disco 1 falhar, o 2 ficará inutilizado, já que um sistema RAID 0 só funciona se todos os discos estiverem funcionando. Enquanto que os discos 3 e 4 funcionariam em RAID 0 normalmente.

Créditos: Wikipédia
Sua principal vantagem é:
  1. Adição de tolerância a falhas em um sistema RAID 0, podendo haver a falha de até dois discos (desde que eles façam parte do mesmo sistema RAID 0).
Sua desvantagem:
  1. Alto custo, pois ele precisa de 2*N discos para funcionar.

    RAID 1+0

    O sistema RAID 10 (ou 1+0) é um sistema RAID 0 sobre dois sistemas RAID 1
    Créditos: Wikipédia

     
    Apesar do nome parecido, um sistema RAID 0+1 é diferente de um RAID 1+0, pois caso um dos discos do sistema RAID 10 falhe, basta adicionar outro e re-espelhar, enquanto em um sistema RAID 0+1 é necessário o espelhamento de um conjunto de dados segmentado.

    Esse sistema é melhor que o RAID 0+1, pois caso um segundo disco venha a falhar no RAID 1+0, ainda é possível recuperar os dados sem problemas, enquanto no RAID 0+1, dependendo de qual for esse segundo disco, os dados estariam perdidos de forma irreversível.

    Como esse sistema oferece segurança e um ótimo desempenho, ele normalmente é recomendado para quem armazena bancos de dados.

    Suas principais vantagens:
    1. Redundância de dados, proporcionando segurança. (mesmo que dois discos venham a falhar)  
    2. Alto desempenho, pois emprega o striping. (RAID 0)
    Sua desvantagem:
    1. Assim como no RAID 0+1, ele precisa de 2*N discos para poder funcionar, o que torna esse arranjo uma solução mais cara.

    RAID 50

    O RAID nível 50 (ou 5 + 0) é um arranjo que utiliza um RAID 0 sobre um RAID 5, aumentando a velocidade do sistema.

    Suas vantagens:
    1. Alta velocidade.    
    2. Todas as vantagens do RAID 5.
    Sua desvantagem:
    1. Alto custo para instalação.


    RAID 100

    O sistema de RAID 100 (ou RAID 10 + 0) é um arranjo RAID 0 sobre um RAID 10.

    Sua vantagem:
    1. Altíssima velocidade.
    Sua desvantagem:
    1. Assim como o RAID 10, ele precisa de 2*N discos para poder funcionar.
    Créditos: Wikipédia


    Conclusões

    Vimos acima diversos níveis de RAID e suas principais características e desvantagens, relações de custo, segurança e desempenho.

    Os sistemas RAID são uma excelente solução quando você:
    1.  Procura aumentar o desempenho e a capacidade de armazenamento do seu computador sem gastar muito. (RAID 0)      
    2. Procura confiabilidade no armazenamento de dados, algo que é essencial principalmente em servidores, mas nada impede que você faça tais implementações em seu computador pessoal. (RAID 1,2,3,4,5)
     E para implementar um sistema RAID, o usuário pode recorrer às seguintes formas:
    1. Arranjo instalado via hardware. (Placa RAID)
    2. Arranjo instalado via software.
    3. Arranjo hibrido (Ou Fake Raid), que utiliza um hardware mais barato combinado com software.
    No próximo post eu irei mostrar as técnicas de benchmark para discos, além de postar o resultado de testes em sistemas RAID, aguardem!

    Um comentário: