Tecnologia RAID

A tecnologia RAID (Redundant Array of Independent Disks) é uma forma de combinar o armazenamento de dados em mais do que um disco rígido para aumento de rendimento ou prevenção de falhas. Só é possível de implementar desde que a motherboard integre, na sua construção, um controlador adequado a esta função. Abaixo descrevemos os tipos de RAID existentes:

RAID 0 (Data Striping)

Este nível implementa a técnica de data striping, mas sem grandes mecanismos de segurança, fiabilidade de sistema ou mesmo integridade de toda a informação. Basicamente funciona do seguinte modo: a informação antes de ser escrita é segmentada, sendo o primeiro segmento escrito no primeiro disco, o segundo no segundo no segundo disco e assim sucessivamente.
A desvantagem deste tipo de RAID é o facto de não ter qualquer tipo de redundância e, como tal, caso falhe algum dos discos rígidos os dados estão irremediavelmente perdidos. Apesar disso é importante perceber a mecânica do data striping porque essa mesma mecânica é usada noutras implementações do RAID para melhorar a performance. Entretanto, o RAID 0 é económico de implementar, pelo facto de não precisar de espaço para armazenar informação sobre a paridade e assim possiblitar a utilização de um disco de tamanho pequeno, e também porque os algoritmos usados na implementação do RAID 0 são bastante simples, não necessitando de grandes exigências do hardware nem requerem um processador dedicado.

RAID 1 (Data Mirroring)

Este tipo de RAID tem discos duplicados a trabalhar lado a lado, em "espelhamento de discos" paralelo - o data mirroring. A fiabilidade do sistema é muito mais alta. Se um disco falhar, o outro pode fornecer quaisquer dados necessários, isto porque esta implementação determina que cada ficheiro seja escrito em dois discos diferentes.
O RAID 1 é normalmente fornecido como opção padronizada de software na maior parte dos sistemas operativos de rede. E mesmo que o sistema operativo não ofereça essa possibilidade podemos sempre colocar um controlador SCSI com essa opção. Note-se que algumas motherboards já oferecem essa opção inclusivamente para discos IDE e SATA. Se houver a possibilidade de fazer RAID 1 por hardware, é sempre preferível à opção software, já que por hardware consegue-se uma performance muito superior, libertando trabalho tanto ao processador como à memória.
As implementações RAID 1 oferecem dois métodos alternativos para otimizar a performance de leitura. O primeiro é a fila circular ou round-robin schedulling. Neste método os pedidos de leitura são alternados entre os dois discos rígidos. Este método é menos apropriado para ambientes de acesso sequencial onde são acedidas grandes quantidades de dados.
O segundo método utilizado pelo RAID para otimizar as leituras é chamado de geométrico ou assigned cylinder schedulling. Este método baseia-se no facto do posicionamento das cabeças de leitura do disco ser o acesso mais lento que um disco executa. Responsabilizando cada um dos discos de cobrir somente metade do disco, o tempo de posicionamento da cabeça pode ser minimizado. Por exemplo, se cada uma das unidades de disco tiver 1024 cilindros, à primeira unidade dá-se a responsabilidade de responder a todos os pedidos de dados armazenados nos cilindros 0 a 511, à segunda unidade caberão os cilindros 512 a 1023.
Apesar do que possa parecer à primeira vista, este método tem algumas falhas. Basta vermos o seguinte: os discos dificilmente têm os seus dados distribuídos de modo a que um determinado cilindro possa ser acedido sempre da mesma maneira. Os sistemas operativos reservam normalmente o início do disco para armazenar ficheiros de sistema, ficheiros de swap, aplicações e outros programas de acesso frequente, querendo isto dizer que o primeiro disco teria operações de leitura muito superiores ao segundo, já que muito provavelmente no segundo praticamente só teríamos ficheiros de dados. Os processos de escrita no RAID 1 são mais problemáticos em termos de performance, e isso acontece porque é necessário escrever os mesmos dados em duplicado, isto é, em ambos os discos em RAID.
Em suma, o RAID 1 oferece-nos uma baixa performance de escrita, mas, em contrapartida, temos um incremento de performance na escrita de dados e, principalmente, uma perfeita redundância de dados.

RAID 2 (Data Striping com deteção de erros)

Este modelo conjuga um método de deteção e correção de erros com a técnica de data striping, o que o torna muito interessante no caso se querer gerir ficheiros de grandes dimensões e que exijam um rigoroso controlo de erros. No entanto, não é nada aconselhado nos casos em que os volumes de informação sejam reduzidos.
O RAID 2 distribui os dados dados através de múltiplas unidades de disco ao nível do bit, usando um processo de deteção e correção de erros. Desta forma os acessos ao disco ocorrem sempre em paralelo. Este nível de RAID é ótimo para aplicações de imagem, por exemplo, que necessitam de transferir grandes quantidades de dados contíguos.

RAID 3 (Data Striping com drive de paridade dedicada)

Este tipo de RAID alia o striping de dados a uma drive de paridade dedicada. Quando os dados são escritos na matriz, o byte vai para cada disco. Cada drive é acedida ao mesmo tempo. A vantagem é uma transferência de dados muito mais alta. A desvantagem reside no facto de cada drive, ao ser usada, apenas permitir que uma transação de entrada/saída possa ser processada de cada vez. Este nível é o melhor para grandes requisições de dados. Numa implementação RAID 3 com quatro discos, o primeiro bloco de dados vai para o primeiro disco, o segundo bloco para o segundo disco, o terceiro bloco para o terceiro disco, mas o quarto bloco de dados vai para o primeiro disco e não para o quarto. Em vez de armazenar dados, o quarto disco armazena todos os resultados dos cálculos de paridade executados pelos primeiros três. Esta quarta unidade fornece a redundância necessária para assegurar que, se uma das outras unidades se perder, os dados podem ser reconstruídos novamente.

RAID 4 (Data Striping com drive de paridade dedicada)

Parecido ao RAID 3 mas diverge na forma como os dados são distribuídos. O RAID 4 distribui os dados ao nível de blocos ou setores em vez de ser ao nível do byte como o anterior. Assim sendo, oferece uma melhor performance que o RAID 3 para pequenas quantidades de dados. No RAID 3 cada leitura requer a participação de todas as unidades de disco, sendo os discos "emparelhados" ou sincronizados. No caso do RAID 4, como os dados são armazenados em blocos ou setores numa só operação de leitura, é possível aceder à totalidade dos dados.
Tal como o RAID 3, o RAID 4 tem a desvantagem de possuir apenas um disco rígido dedicado à paridade que tem de ser acedido em todas as operações de escrita.

RAID 5 (Data Striping com paridade distribuída)

O RAID 5 é a mais comum de todas as tecnologias RAID. Distribui os dados e a paridade através de todos os discos em RAID, ocupando o equivalente a uma unidade de disco para a informação de paridade. Nesta implementação de RAID os discos são todos do mesmo tamanho, ficando uma das unidades inacessível ao sistema operativo, isto é, se tivermos três discos de 250 GB, o equivalente a um desses discos vai ser utilizado para guardar a informação de paridade, deixando 500 GB para o sistema operativo. O RAID 5 é o ideal para utilizadores que necessitam de aceder a pequenas quantidades de dados, seja em leitura ou em escrita.
A grande vantagem do RAID 5 em relação aos RAID 2 e 4 reside no facto de distribuir a informação de paridade por todos os discos rígidos em RAID em vez de utilizar apenas um deles para guardar essa informação, permitindo, assim, além de uma maior segurança de dados, a possibilidade de executar operações de escrita paralelas, acontecendo o mesmo com as operações de leitura.
Se relembrarmos o funcionamento do RAID 0, vemos que uma operação de escrita usa somente um acesso ao disco. No RAID 5 as operações de escrita podem ser mais complicadas, dado que na situação mais simples precisa de executar pelo menos duas operações de escrita a cada armazenamento de dados, uma para o bloco de dados em si e outra para a informação de paridade.
Entre a fase de escrita do bloco de dados e a escrita da informação de paridade, pode ocorrer alguma falha no sistema que não permita a escrita dos dados de paridade corretos, e assim a informação de paridade não corresponder ao bloco de dados, não permitindo a reconstrução deste em caso de falha de um dos discos rígidos.
Para prevenir este problema, o RAID 5 usa um conceito que vem das bases de dados: o processamento de transações. E isso significa exatamente o quê? As partes de um componente são tratadas como um todo numa só transação. A transação inteira é completada com sucesso, ou então nada é tratado, no fundo é o princípio do tudo ou nada.
Resumidamente, é criada uma imagem de toda a transação e essa imagem é armazenada, após a atualização dos registos afetados, verifica-se se todos os componentes da transação foram completados com sucesso e assim que isso é verificado a imagem é apagada. Caso haja alguma falha a meio deste processo, a imagem é usada para repor a primeira situação, voltando o sistema ao seu estado inicial.
Este processo é utilizado para manter a integridade dos dados. Em primeiro lugar, é executada uma leitura paralela de todos os blocos de dados que pertence ao stripe set afetado e é calculado um novo bloco de paridade baseado nesta leitura e no conteúdo do novo bloco de dados a ser escrito. Os dados modificados e a informação de paridade calculada são escritos numa ficheiro de log, bem como os apontadores para as localizações corretas. Após uma escrita correta do log, os dados alterados e a informação de paridade são escritos em paralelo no stripe set. Após verificar-se que toda a transação foi completada com sucesso, a informação de log é apagada.

RAID 6 (Atualização do RAID 5)

O RAID 6 é, no fundo, um aperfeiçoamento do RAID 5. Como implementação não standard, o RAID 6 depende daquilo que o seu fabricante faz. Alguns fabricantes pegam num RAID 5, acrescentam-lhe um disco de segurança (disco spare), uma fonte de alimentação redundante e chamam-lhe RAID 6. Outras soluções simplesmente acrescentam discos adicionais ao array para aumentar a redundância e assim permitir a falha simultânea de dois discos sem perder os dados. No entanto, todas estas soluções são no fundo uma implementação do RAID 5.
A opção do disco spare é talvez a solução mais interessante já que nos permite ter um disco de substituição no sistema, que será utilizado automaticamente se houver uma falha em qualquer um dos discos em RAID. Se ocorrer um erro numa das unidades de trabalho, os dados são imediatamente copiados para o disco spare que fica ativo, passando o spare a "disco avariado", que deverá ser substituído. 

RAID 10 (Combinação de RAID 1 e RAID 0)

De uma combinação entre RAID 0 (performance) e RAID 1 (segurança de dados) nasceu o RAID de nível 10. Tal como o RAID 0, o desempenho máximo é conseguido mas com acessos sequenciais e tal como acontece no RAID 1, perde 50% da capacidade total para redundância. O RAID 10 é bom para sistemas de pequena capacidade de utilização, mas com necessidade de segurança.

Enviar um comentário

0 Comentários