Powered By Blogger

sexta-feira, 20 de novembro de 2009

RAID





Redundant Array of Independent Drives, também denominado Redundant Array of Inexpensive Drives ou mais conhecido como simplesmente RAID ou ainda em português: Conjunto Redundante de Discos Independentes ou também Conjunto Redundante de Discos Econômicos, é um meio de se criar um sub-sistema de armazenamento composta por vários discos individuais, com a finalidade de ganhar segurança e desempenho.
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.[carece de fontes?]
Popularmente, RAID seriam dois ou mais discos (por exemplo, HD ou disco rígido) trabalhando simultaneamente para um mesmo fim, por exemplo, citando o exemplo de RAID-1 logo abaixo, serviria como um espelhamento simples, rápido e confiável entre dois discos, para fazer o backup de um disco em outro. Apesar do RAID oferecer segurança e confiabilidade na adição de redundância e evitar falhas dos discos, o RAID não protege contra falhas de energia ou erros de operação. Falhas de energia, código errado de [[kernel]] ou erros operacionais podem danificar os dados de forma irrecuperável.

Implementação Via software
Na implementação via software, o sistema operacional gerencia o RAID através da controladora de discos, sem a necessidade de um controlador de RAIDs, tornando-a mais barata.
Nesse tipo de implementação, todo o processamento necessário para o gerenciamento do RAID é feito pela CPU. Toda movimentação de dados(leitura e escrita) é feita por uma camada de software que faz a abstração entre a operação lógica (RAID) e os discos físicos, e é controlada pelo sistema operacional.
A configuração do RAID via software é feita pelo sistema operacional, que precisa ter implementado no próprio kernel a utilização de RAIDs via software. É possível criar RAIDs via software no Linux, FreeBSD e no Windows (versão server).

Implementação Via hardware
Controladoras RAID em hardware usam layouts de disco proprietários (e diferentes). Por isso, normalmente não é possível misturar controladoras de fabricantes diferentes. Eles não utilizam recursos do processador. A BIOS pode iniciar (dar boot) por ela, e um integração maior com o driver de dispositivo pode oferecer um melhor tratamento de erros.
Um implementação de RAID em hardware requer pelo menos uma controladora especialmente dedicada para isso. Em uma estação de trabalho (PC comum) isso pode ser uma placa de expansão PCI, PCI-e ou uma placa integrada à placa-mãe. Controladoras utilizando a maioria dos tipos de drive podem ser usadas - IDE/ATA, SATA, SCSI, SSA, Fibre Channel, e às vezes uma combinação. A controladora e os discos utilizados devem estar isolados. Podem estar conectados diretamente ao computador, ou conectados via SAN. A controladora gerencia os drives e faz os cálculos de paridade necessários pelo nível de RAID escolhido.

A maioria das implementaçãos em hardware provêem cache de leitura e escrita, o que (dependendo da carga de I/O) melhora a performance. Na maioria dos casos, o cache de escrita é não-volátil (protegido por bateria), e portanto, escritas pendentes não são perdidas no caso de uma falha no suprimento de energia. Implementações em hardware provêem performance garantida, não sobrecarregam o processador e podem suportar vários sistemas operacionais, já que a controladora apresentará ao sistema operacional um disco simples.
A maioria das implementações em hardware também suporta o "hot-swapping", permitindo que discos com falha sejam substituídos enquanto o sistema está sendo executado.

Fake RAID
A implementação via software geralmente não possui uma facil configuração. Já na implementação via hardware as controladoras tem um preço muito elevado. Então foi criada uma "controladora barata" que em vez de um chip controlador RAID voce utiliza uma combinação de funções especias na BIOS da placa e drivers instalados no sistema operacional .

Comparação entre as arquiteturas
Ao compararmos RAIDs por software e por hardware percebe-se que os implementados através de [[software]] são mais flexíveis que os via [[hardware]]. Por outro lado, os primeiros exigem da CPU mais tempo de processamento. Comparando os dispositivos de blocos, os em software também são flexíveis podendo ser usados em discos inteiros, partições ou outro dispositivo de bloco.

Nenhum comentário:

Postar um comentário