1. Introdução

 2. Histórico

 3. Formatação

 4. Funcionamento

 5. Sistema de Dados

 6. Tecnologias

 7. RAID

 8. Fabricantes

 9. Extras

 10. Conclusão

 11. Bibliografia

RAID

A primeira idéia de RAID foi desenvolvida pela IBM em 1978, para melhorar a confiabilidade e segurança de sistemas através de redundância. Após isso, somente em 1987, David A. Patterson, Garth A. Gibson e Randy H. Katz publicaram pela Universidade de Berkeley um artigo chamado "A Case for Redundant Arrays of Independent Disks – RAID". Este artigo descrevia vários tipos de matrizes de discos. A idéia básica do RAID era a de combinar muitos pequenos e independentes discos em uma matriz de discos, cuja performance seria superior a de um único enorme disco (Single Large Expensive Drive - SLED). Essa matriz deveria aparecer como um único dispositivo no computador.
O MTBF (Mean Time Between Failure) dessas matrizes é igual ao menor MTBF individual dos discos, dividido pelo número de discos. Por isso, o MTBF dessas matrizes se torna extremamente baixo para muitas aplicações. Todavia, matrizes de discos podem ser feitas. Entretanto, as disposições de disco podem garantir várias formas de armazenamento dos arquivos.
Existem 6 tipos de arquiteturas de matrizes de discos: RAID-0 até RAID-5. Elas foram definidas pelo mesmo artigo de Berkeley, cada uma oferecendo MTBFs, formas de armazenamento e performances diferentes.
Popularmente, RAID seria dois ou mais discos trabalhando simultaneamente para um mesmo fim, por exemplo, o RAID-1 serviria como um espelhamento simples, rápido e confiável entre dois discos, para fazer o backup de um disco em outro.

Vantagens

  1. Ganho de desempenho no acesso.
  2. Redundância em caso de falha em um dos discos (segurança).
  3. Uso múltiplo de várias unidades de discos.
  4. Facilidade em recuperação de conteúdo perdido.
  5. Hot-Swap – Os discos podem ser trocados “à quente”, ou seja, se precisar paralisar o restante do sistema (desde que a tecnologia do disco assim permita, mas na maioria dos sistemas em RAID isso ocorre).

Arquiteturas

Para configurar um sistema RAID podem-se usar duas maneiras:

Via software

Sistema feito por um software como o kernel do sistema operacional ou usando uma aplicação que gere esta configuração.

Via hardware

RAID via hardware é feito por um dispositivo que conecta um disco ao outro. Essa conexão é feita por um cabo ou uma placa controladora. O hardware necessário para controlar um RAID necessita de processadores internos especializados para esse fim e, consequentemente, de memória cache.

Comparação entre as arquiteturas

Ao compararmos RAIDs por software e por hardware é possível perceber que os implementados através de software são mais flexíveis que os via hardware. Por outro lado, os primeiros exigem da CPU maior processamento. Nos RAID´s via hardware, as controladoras executam este tipo de tarefa, já que são desenvolvidas para este fim.
Comparando os dispositivos de blocos, vemos que as arquiteturas por softwares são flexíveis por poder serem usadas em discos inteiros, partições ou outro dispositivo de bloco. E por hardware, o grupo engloba todas as unidades de disco em um único arranjo.
As vantagens de usar um RAID por hardware são as altas taxas de transferência que a memória cache oferece, uma vez que o acesso e a transferência são geridas pelo hardware do controlador, não sendo necessária a intervenção da CPU do sistema.

Níveis de RAID

Níveis de RAID são as várias maneiras de combinar discos para um fim.
O sistema RAID consiste em um conjunto de dois ou mais discos rígidos com dois objetivos básicos: tornar o sistema de disco mais rápido (isto é, acelerar o carregamento de dados do disco), através de uma técnica chamada divisão de dados (data striping ou RAID 0) e/ou tornar o sistema de disco mais seguro, através de uma técnica chamada espelhamento (mirroring ou RAID 1). Essas duas técnicas podem ser usadas isoladamente ou em conjunto.

RAID 0 Linear

É uma simples concatenação de partições para criar uma grande partição virtual. Isto é possível se existirem várias unidades pequenas, com as quais o administrador pode criar uma única e grande partição. Esta concatenação não oferece redundância, e de facto diminui a confiabilidade total: se qualquer um dos discos falhar, a partição combinada falha.Geralmente usada para extender o tamanho total de um volume.

RAID 0 Striping


Os dados são subdivididos em segmentos consecutivos (stripes) que são escritos sequencialmente através de cada um dos discos de um array. Cada segmento tem um tamanho definido em blocos. O striping oferece um melhor desempenho, quando comparado a um disco individual, se o tamanho de cada segmento for ajustado de acordo com a aplicação que utilizará o array.
No caso da aplicação armazenar pequenos registros de dados, então 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 array podem responder independentemente para as requisições simultâneas de dados. Caso contrário, se a aplicação armazenar grandes registros de dados, os segmentos de pequeno tamanho são os mais apropriados. Se um determinado registro de dados está armazenado em vários discos do array, o conteúdo do registro pode ser lido em paralelo, aumentando o desempenho total do sistema.
Cabe ressaltar alguns pontos negativos desta implementação no que tange confiabilidade e desempenho. RAID 0 não terá o desempenho desejado com sistemas operacionais que não oferecem suporte de busca combinada de setores. Os resultados serão corretos porém não haverá paralelismo e nenhum ganho de desempenho. Outra desvantagem desta organização é que a confiança se torna potencialmente pior. Um disco SLED com um tempo médio de vida de 20.000 horas será 4 vezes mais seguro do que 4 discos funcionando em paralelo com RAID 0 (Admitindo-se que a capacidade de armazenamento somada dos quatro discos for igual ao do disco SLED). Como não existe redundância, não há muita confiabilidade neste tipo de organização.

RAID 1




RAID 1 é o nível de RAID que implementa o espelhamento de disco, também conhecido como mirror. Para esta implementação são necessários no mínimo dois discos. O funcionamento deste nível é simples: todos os dados são gravados em dois discos diferentes; se um disco falhar ou for removido, os dados preservados no outro disco permitem a não descontinuidade da operação do sistema.
Apesar de muitas implementações de RAID 1 envolverem dois grupos de dados (daí o termo espelho ou mirror), três ou mais grupos podem ser criados se a alta confiabilidade for desejada. O RAID 1 é o que oferece maior segurança, pois toda informação é guardada simultaneamente em dois ou mais discos. Se ocorrer uma falha num dos discos do array, o sistema pode continuar a trabalhar sem interrupções, utilizando o disco que ficou operacional. Os dados então são reconstruídos num disco de reposição (spare disk) usando dados do(s) disco(s) sobrevivente(s). O processo de reconstrução do espelho tem algum impacto sobre o desempenho de I/O do array, pois todos os dados terão de ser lidos e copiados do(s) disco(s) intacto(s) para o disco de reposição.
Com o RAID 1 consegue-se duplicar o desempenho na leitura de informação, pois as operações de leitura podem ser repartidas pelos dois discos.
RAID 1 oferece alta disponibilidade de dados, porque no mínimo dois grupos completos são armazenados. Conectando os discos primários e os discos espelhados em controladoras separadas, pode-se aumentar a tolerância a falhas pela eliminação da controladora como ponto único de falha. Entre os não-híbridos, este nível tem o maior custo de armazenamento pois estaremos a utilizar dois discos para a mesma informação. Este nível adapta-se melhor em pequenas bases de dados ou sistemas de pequena escala que necessitem confiabilidade.
A operação com dados neste nível possuem tendência de serem gravados mais lentamente, porém com leitura rápida.

RAID 2

Raramente são usados, e em algum momento ficaram obsoletos pelas novas tecnologias de disco. RAID 2 é similar ao RAID 4, mas armazena informação ECC (Error Correcting Code), que é a informação de controle de erros, no lugar da paridade. Este fato possibilitou uma pequena proteção adicional, visto que todas as unidades de disco mais novas incorporaram ECC internamente. O RAID 2 origina uma maior consistência dos dados se houver queda de energia durante a escrita. Baterias de segurança e um encerramento correto podem oferecer os mesmos benefícios.

RAID 3


RAID 3 é similar ao RAID 4, exceto pelo fato de usar o menor tamanho possível para o stripe. Como resultado, qualquer pedido de leitura invocará todos os discos, tornando as requisições de sobreposição de I/O difíceis ou impossíveis.
A fim de evitar o atraso em razão da latência rotacional, o RAID 3 exige que todos os eixos das unidades de disco estejam sincronizados. A maioria das unidades de disco mais recentes não possuem a opção de sincronização do eixo, ou se são capazes disto, faltam os conectores necessários, cabos e documentação do fabricante.

RAID 4

Funciona com dois ou mais discos iguais. Um dos discos guarda a paridade (uma forma de soma de segurança) da informação contida nos discos. Se algum dos discos se danificar, a paridade pode ser imediatamente utilizada para reconstituir o seu conteúdo. Os discos restantes, usados para armazenar dados, são configurados para usarem segmentos suficientemente grandes (tamanho medido em blocos) para acomodar um registro inteiro. Isto permite leituras independentes da informação armazenada, fazendo do RAID 4 um array perfeitamente ajustado para ambientes transacionais que requerem muitas leituras pequenas e simultâneas.
O RAID 4, assim como outros RAIDs cuja característica é utilizar paridade, usam um processo de recuperação de dados mais envolvente que arrays espelhados, como o RAID 1. Este nível também é útil para criar discos virtuais de grande dimensão, pois consegue somar o espaço total oferecido por todos os discos, exceto o disco de paridade. O desempenho oferecido é razoável nas operações de leitura, já que utiliza todos os discos simultaneamente.
Sempre que os dados são escritos no array, as informações são lidas do disco de paridade e um novo dado sobre paridade deve ser escrito para o respectivo disco antes da próxima requisição de escrita ser realizada. Por causa dessas duas operações de I/O, o disco de paridade é o fator limitante do desempenho total do array. Devido ao fato do disco requerer somente um disco adicional para proteção de dados, este RAID é mais barato que a implementação do RAID 1.

RAID 5



O RAID 5 é frequentemente usado e funciona similarmente ao RAID 4, mas supera alguns dos problemas mais comuns sofridos por esse tipo. As informações sobre paridade para os dados do array são distribuídos ao longo de todos os discos do array, ao invés de serem armazenadas num disco dedicado, oferecendo assim mais desempenho que o RAID 4 e tolerância a falhas.
Para aumentar o desempenho de leitura de um array RAID 5, o tamanho de cada segmento em que os dados são divididos pode ser otimizado para o array que estiver a ser utilizado. O desempenho geral de um array RAID 5 é equivalente ao de um RAID 4, exceto no caso de leituras seqüenciais, que reduzem a eficiência dos algoritmos de leitura por causa da distribuição das informações sobre paridade. Esta, ao ser distribuída ao longo de todos os discos, havendo a perda de um, reduz a disponibilidade de ambos os dados e da informação sobre paridade, até à recuperação do disco que falhou. Isto pode causar degradação do desempenho de leitura e de escrita.

RAID 0 + 1

O RAID 0 + 1 é uma combinação dos níveis 0 (Striping) e 1 (Mirroring), onde os dados são divididos entre os discos para melhorar o rendimento, mas também utilizam outros discos para duplicar as informações. Assim, é possível utilizar o bom rendimento do nível 0 com a redundância do nível 1. No entanto, é necessário pelo menos 4 discos para montar um RAID desse tipo. Tais características fazem do RAID 0 + 1 o mais rápido e seguro, porém o mais caro de ser implementado.

RAID 10

Este modo pode ser usado apenas se tiver 4 discos rígidos. Os dois primeiros funcionarão em Mirroring, dobrando a segurança, enquanto os outros dois funcionarão em striping, melhorando a performance. Idêntico ao 0+1, apenas com outro nome.

RAID 50

O RAID-50 é um arranjo híbrido que usa as técnicas de RAID com paridade em conjunção com a segmentação de dados. Um arranjo RAID-50 é um arranjo com as informações segmentadas através de dois ou mais arranjos RAID-5.
Dependendo do tamanho de cada segmento estabelecido durante a configuração do arranjo, estes arranjos híbridos podem oferecer os benefícios de acesso paralelo dos arranjos com paridade (alta velocidade na transferência de dados) ou de acesso independente dos arranjos com paridade (grande quantidade).
Como em outros arranjos RAID com paridade, a reconstrução de um disco falho gera um impacto no desempenho do programa usando o arranjo.

Comparação dos Níveis de RAID

Pode-se fazer uma comparação entre os vários níveis de RAID, de acordo com desempenho (leitura, gravação e reconstrução), disponibilidade de dados e o número mínimo de unidades requeridas. Observe na tabela a descrição destes atributos para comparação dos níveis de RAID. Seguindo as referências:

  • A= Disponibilidade dos Dados
  • B= Desempenho de Leitura
  • C= Desempenho de Gravação
  • D= Desempenho de Reconstrução
  • E= Número Mínimo de Unidades Requeridas

Nível de RAID

A

B

C

D

E

RAID 0

Nenhuma

Muito bom

Muito bom

Não disponível

N

RAID 1

Excelente

Muito bom

Bom

Bom

2N

RAID 4

Boa

E/S seqüencial: Boa E/S transacional: Boa

E/S seqüencial: Muito boa E/S transacional: Ruim

Satisfatória

N + 1 (N pelo menos 2)

RAID 5

Boa

E/S seqüencial: Boa E/S transacional: Muito boa

Satisfatória (a menos que o cache write-back seja usado)

Ruim

N + 1 (N pelo menos 2)

RAID 10

Excelente

Muito boa

Satisfatória

Boa

2N

RAID 50

Excelente

Muito boa

Satisfatória

Satisfatória

N+2

Nota: O número N é o requerimento de espaço para armazenamento de dados do nível de RAID. Exemplo: se o requisito mínimo é ter 6GB de espaço para um arranjo RAID-5, então deve-se ter ao menos 2 discos de 3GB cada e mais um disco de 3GB, sendo 6GB (dois discos) + 3GB (1 disco).

Uso de RAID para Obter Alta Disponibilidade

Alta disponibilidade é difícil e cara. Quanto mais arduamente você tenta fazer um sistema ser tolerante a falhas, mais ele passa a ser dispendioso e difícil de implementar.

  • Os discos IDE podem falhar de tal maneira que o disco que falhou em um cabo do IDE possa também impedir que um disco bom, no mesmo cabo, responda, dando a impressão de que os dois discos falharam. Apesar de RAID não oferecer proteção contra falhas em dois discos, você deve colocar apenas um disco em um cabo IDE, ou se houver dois discos, devem pertencer a configurações diferentes de RAID.
  • Observações similares são aplicadas às controladoras de disco. Não sobrecarregue os canais em uma controladora; utilize controladoras múltiplas.
  • Não utilize o mesmo tipo ou número de modelo para todos os discos. Não é incomum em variações elétricas bruscas perder dois ou mais discos, mesmo com o uso de supressores - eles não são perfeitos ainda. O calor e a ventilação insuficiente do compartimento de disco são outras causas das perdas de disco. Utilizar diferentes tipos de discos e controladoras diminui a probabilidade de danificação de um disco (calor, choque físico, vibração, choque elétrico).
  • Para proteger o disco contra falhas de controladora ou de CPU é possível construir um compartimento de disco SCSI que tenha cabos gêmeos, 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, através de um adaptador watchdog), ele irá cortar a energia do computador mestre (para ter certeza de que ele está realmente desligado), e então fazer a verificação com o fsck e remontar o sistema para leitura e escrita.
  • Sempre utilize um no-break, e efetue os desligamentos corretamente. Embora um desligamento incorreto não possa danificar os discos, executar o ckraid mesmo em arranjos pequenos é extremamente lento. Você deve evitar a execução do ckraid sempre que for possível, ou pode colocar um hack no kernel e começar a reconstrução do código verificando erros.
  • Cabos SCSI são 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 à venda. Utilize por exemplo o bubble-wrap para ter certeza de que os cabos não estão muito perto um do outro e do cross-talk. Observe rigorosamente as restrições do comprimento do cabo.
  • Dê uma olhada em SSI (arquitetura de armazenamento serial). Embora seja muito caro, parece ser menos vulnerável aos tipos de falhas que o SCSI apresenta.

Hot Swap

Hot swap ou Hot swapping (A tradução literal é Troca quente) é a capacidade de retirar e de substituir componentes de uma máquina, normalmente um computador, enquanto opera (ou seja, não é necessário reiniciar o computador).
Os exemplos mais comuns são os dispositivos USB e Firewire tais como: mouse, teclado, impressoras e pen drive. Normalmente exige software do tipo Plug and Play
Os discos RAID são hot-swap, ou seja, um disco com falha pode ser removido ou substituído sem perda de dados ou interrupções do servidor graças a controladora de hardware RAID e o carregador de disco. Com o hot-swap RAID, o sistema continua operando, enquanto o conteúdo do disco avariado é reconstruído em um disco sobressalente, usando informação redundante ou paridade.

 
Principal Grupo de TeleInformática e Automação Departamento de Eletrônica Escola Politécnica Universidade Federal do Rio de Janeiro