Conheça os níveis de RAID

Publicado em 3/2/2008 | Autor Vicente




A sigla RAID tem duas definições em inglês: Redundant Array of Independent Disks ou Redundant Array of Inexpensive Disk. Eu prefiro a primeira já que eu não acho que discos SCSI ou SAS sejam baratos.

A idéia do RAID é simples: Aumentar a capacidade, segurança e performance dos discos. Não necessariamente todas estas características ao mesmo tempo. Para implementar um RAID é necessário pelo menos 2 discos. Abaixo os níveis de RAID mais conhecidos:

RAID 0: Também conhecido como stripping. Consiste em juntar no mínimo 2 discos fazendo com que eles ajam como se fossem um só. A unidade mínima de gravação em um RAID 0 e outros níveis como o 1E e o 5 é o stripe unit. O strip unit é uma “faixa” que passa por todos os discos do array. No caso do RAID 0 fica assim:

Raid 0
Cada stripe unit (cujo tamanho varia de 4 a 256 kB) é dividido nos dois discos (2kB para cada disco no caso de stripe unit size de 4kB). Toda vez que você lê ou grava no RAID ou array você está lendo e gravando em dois discos simultaneamente, melhorando assim a performance. O problema do RAID 0 é que uma falha em qualquer um dos discos fará com que todo o array pare e você perderá todas as informações dele.

RAID 1: Também conhecido como mirroring. Consiste em espelhar os discos. Se você grava uma informação no disco, esta será gravada nos dois discos componentes do array. Caso um deles falhe, o array continua funcionado. Abaixo a figura ilustrando o RAID 1:

Raid 1

No RAID 1 perde-se performance e disponibilidade de espaço (você perderá 50% do espaço do array) e ganha-se em segurança. Pela minha experiência é um dos níveis de RAID mais seguros.

RAID 1E: Até onde eu sei, só é implementado pela IBM. Funciona igual ao RAID 0, só que cada um dos stripes é duplicado mudando-se a ordem de gravação do stripe. A grande vantagem do RAID 1E é a velocidade de leitura, que é igual ao RAID 0, mas a gravação demora o dobro do tempo além de perder 50% do espaço como o RAID 1

RAID 5: Funciona da mesma maneira que o RAID 0 e RAID 1E. Grava os dados em Stripe e em um deles (nunca é o mesmo do stripe anterior) grava a paridade, ou seja, caso um dos discos falhe, o array consegue calcular qual dado está faltando. Precisa de no mínimo 3 discos e pode utilizar no máximo 14 ou 15 discos, dependendo do fabricante. Abaixo como funciona o RAID 5:

Raid 5

A vantagem é aproveitar melhor os discos. Em um array com 3 discos, será perdido para paridade somente 33%. Em um array com 15 discos a perda será de menos de 7%. Arrays muito grandes (com mais de 7 discos) tendem a ser mais instáveis que arrays menores, pois a possibilidade de falha de algum disco ou falha na gravação aumenta. Até um certo número de discos ( geralmente 5 a 8 ) a performance de escrita é melhor que com menos discos. Quando um array fica muito grande (com mais de 8 discos) a controladora RAID ou o processador (quando o raid é por software) “sofre” mais para calcular a paridade, podendo degradar a performance. A leitura é quase tão rápida quanto do RAID 0.

RAID 6: Igual ao RAID 5, mas usa 2 discos de paridade. É muito lento por precisar calcular paridade, que permite perder até 2 discos do array. Indicado por fabricantes de storage para arrays de discos SATA.

RAID 10: Consiste em fazer RAID 0 de arrays RAID 1. A idéia é ter a segurança do RAID 1 com mais performance. Há uma variação do RAID 10 chamado RAID 0 + 1 que faz o inverso: Faz um RAID 1 de pelo menos 2 RAID 0. O RAID 10 precisa de no mínimo 4 discos conforme a ilustração:

Raid 10

RAID 50: Consiste me fazer RAID 0 de arrays RAID 5. Sei lá pra que serve, talvez para criar um RAID maior que os possíveis com RAID 5. Precisa de no mínimo 6 discos.

Os fabricantes de servidores como IBM, HP e Dell utilizam controladoras RAID para evitar que o processador faça o trabalho “sujo” de calcular a paridade dos dados. Utilizando controladoras RAID, o sistema operacional não saberá o que acontece debaixo dos panos e só enxergará o discão que a controladora proverá. Estas placas são extremamente sofisticadas e, entre muitas outras coisas, podem:

- Gerenciar mais de um array ao mesmo tempo. Independente qual o tipo de raid utilizado.

- Fazer cache dos dados utilizando memória RAM na própria placa, para agilizar a leitura e gravação. A diferença de performance é muito grande com cache e sem cache, podendo chegar a 50%! Por segurança a placa geralmente tem uma bateria para preservar os dados do cache por algumas horas para preservar os dados que ainda não foram gravados em disco em caso de falha de energia. As placas mais conhecidas são a ServeRaid da IBM, PERC da Dell e Smart Array da HP.

- Verificar nos discos a falhas que estão prestes a ocorrer, ou seja, antes da falha ocorrer o disco avisa que não “está legal”. Porém na maioria das vezes o disco pifa sem avisar mesmo…

Há outros níveis de RAID que não são mais implementados como o 2, 3 e 4. Sinceramente, não sei como funcinavam, o que eu sei é que eles tinha muitas desvantagens em relação aos níveis descritos acima.

Dica: Se você for adquirir algum servidor prefira sempre discos SCSI ou SAS. Disco SATA é para micro, não foi feito para ficar ligado 24 horas por dia, anos a fio. Não é à toa que eles custam menos. Além de serem mais lentos que discos SAS.

Glossário:

Array: Conjunto de 2 ou mais discos agrupados por algum nível de RAID.

Controladora RAID: Placa de que grava os dados nos discos em RAID. A grande vantagem é a melhor performance que um RAID por software e maior quantidade de recursos.

RAID por software: É RAID feito pelo sistema operacional com no Windows Server 2003, Linux e Solaris. Só tem desvantagens, só deve ser usado quando não está disponível controladora RAID.

Disco SAS: É a evolução do disco SCSI, ao invés de utilizar interface paralela, usa interface serial.

Disco SATA: É a evolução do disco ATA ou IDE, ao invés de utilizar interface paralela, usa interface serial, assim como o SAS.

Stripe unit: Faixa utilizada pelo RAID 0 e 5, por exemplo, para gravar os dados. Esta faixa utiliza todos os discos do array.

Stripe unit size: Tamanho do Stripe unit. Varia de 4 a 256 kB, dependendo do fabricante da controladora RAID.

Quer saber mais? Acesse:

http://pt.wikipedia.org/wiki/RAID

http://www.clubedohardware.com.br/artigos/651

Leia mais

Como criar discos espelhados no Windows

Como criar um volume RAID 5 no Windows

Comments

10 Responses to “Conheça os níveis de RAID”

  1. Usu?rio vicentesloboda no diHITT
    February 3rd, 2008 @ 13:54
    Conhe?a os n?veis de RAID…

    leia mais……

  2. Vicente via Rec6
    February 3rd, 2008 @ 13:54
    Blog do Vicente e amigos ? Conhe?a os n?veis de RAID…

    leia mais……

  3. Renan
    February 5th, 2008 @ 23:12
    Se n?o estou enganado, voc? n?o perde performance no n?vel 1. Voc? n?o ganha nem perde quando est? gravando (j? que a grava??o tem de ser feita nos dois discos), mas ganha performance na leitura (perto do dobro), j? que cada disco pode ler um bloco diferente do solicitado pelo sistema.

    Outra coisa, a performance s? ser? ganha se voc? estiver trabalhando com arquivos maiores que o tamanho do “stripe”. Para quem trabalha com muitos arquivos pequenos, n?o vale a pena ter um stripe de 256K, j? que a leitura de um arquivo, s? poder? ser feita no disco onde est? o bloco, sem poder ser dividida entre os outros.

    O RAID 4 at? que ? bastante usado, a diferen?a dele para o 5, ? que um disco ? dedicado especialmente para a paridade.

  4. Vicente
    February 6th, 2008 @ 9:39
    Valeu pelo coment?rio Renan.

    Acho que o RAID 1 n?o grava em stripe, ele grava como se fosse um disco normal, s? que espelha os dados. Tamb?m acho que n?o ? poss?vel ler uma parte de um disco e outra do outro disco, justamente por gravar em stipe. O que eu posso dizer com certeza ? que a controladora RAID praticamente fica ociosa, j? que n?o precisa calcular paridade nenhuma. N?o tenho certeza de tudo isso j? que este tipo de informa??o ? muito dif?cil de encontrar documentada por ai.

    A quest?o do tamanho do stripe difere de fabricante para fabricante. A ServeRaid da IBM, pelos testes que eu fiz com arquivos de tamanho de bloco vari?vel se comporta melhor com o stripe unit size de 16KB. J? a PERC da Dell funciona melhor com stripe unit size de 128KB. Depende da implementa??o do fabricante.

    A performace do RAID 4 ? igual ao RAID 5, quando tudo estiver bem. O que difere vai ser a performance quando um disco falhar. Imagine um Raid com 3 discos (2 de dados e 1 de paridade) No caso do RAID 4 se falhar um disco que n?o seja a paridade todo stripe unit requisitado para leitura precisar? que a controladora calcule o dado que est? faltando. No caso do RAID 5 n?o, s? ser? necess?rio calcular a paridade em 66% dos casos j? que a paridade est? distribuida para todos os disco. Resumindo: a performance para leitura caso um disco falhe no RAID 4 cai mais que no RAID 5.

    Abra?os

  5. Blog do Vicente » O Melhor de Fevereiro/2008 do Blog do Vicente
    March 4th, 2008 @ 9:23
    [...] Conhe?a os n?veis de RAID [...]
  6. Anderson
    May 14th, 2008 @ 17:00
    Vicente, muitooo boa a materia, mas sera que poderia me ajudar a enteder como funciona o ServeRaid 8k da IBM, eu n?o acho nada em lugar nenhum sobre isso,.. ? hardware ? software. e como funciona..
    Muito Obrigado
  7. Vicente
    May 14th, 2008 @ 18:47
    Ol?

    Qual ? sua d?vida?

  8. Como criar um volume RAID 5 no Windows - Blog do Vicente
    September 16th, 2009 @ 20:18
    [...] Um volume em RAID 5 tem a vantagem de ser seguro e aproveitar bem a capacidade disponível. Caso 1 dos discos falhe, o volume continuará funcionando. Com isso será possível agendar um horário mais adequado para substituir o disco defeituoso. Há perda de performance para a escrita, já que para a cada escrita será necessário calcular a paridade, que será utilizada em caso de falha. Na leitura o RAID 5 é quase tão rápido quanto o RAID 0. Caso queira saber mais sobre os níveis de RAID, acesse o artigo Conheça os níveis de RAID. [...]
  9. Laisa
    September 23rd, 2009 @ 21:07
    em qual sistema operacional podemos implementar raid nivel 0?
  10. Como criar discos espelhados no Windows Server 2003 : Blog do Vicente
    April 6th, 2011 @ 20:43
    [...] Conheça os níveis de RAID [...]

Deixe um comentário!