Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Redundant Array of Independent Disks (RAID) 
Karine Silva Oliveira 
Professor: Eudes Diônatas Silva Souza 
1. Introdução 
A tecnologia RAID (do inglês, Redundant Arrays of Independent Disks, ou Vetores 
Redundantes de Discos Independentes) surgiu como uma solução para dois desafios 
persistentes no armazenamento de dados. Tais desafios consistem em: a grande diferença de 
desempenho entre os discos magnéticos e as memórias e processadores, e a questão da 
confiabilidade, já que a chance de falha aumenta com o número de discos em um sistema. 
Nesse sentido, o RAID aborda esses problemas através de dois pilares: desempenho, 
alcançado através do paralelismo, distribuindo os dados entre múltiplos discos para que 
possam ser acessados simultaneamente; e confiabilidade, alcançada através da redundância, 
armazenando informações extras que permitem a recuperação de dados em caso de falha de 
um disco. 
Ademais, existem vários "níveis" de RAID, cada um oferecendo uma combinação 
diferente dessas técnicas. Por conseguinte, a escolha do nível ideal não é simples, pois 
envolve um compromisso entre desempenho, capacidade, tolerância a falhas e custo. Assim, 
o presente texto explicará os conceitos fundamentais do RAID, detalhará os níveis mais 
comuns e abordará considerações práticas para sua implementação, deixando claro que a 
configuração correta deve ser alinhada aos requisitos específicos de cada aplicação. 
 
2. Pilares Tecnológicos do RAID 
As configurações RAID são construídas a partir de três técnicas fundamentais: 
striping, mirroring e paridade. Esses processos são a base para os níveis de RAID, os quais 
serão explanados nas seção 3. 
2.1. Striping (Distribuição/Fracionamento) 
O striping é a principal técnica para ganho de desempenho. Dessa forma, ele distribui 
os dados de maneira transparente por múltiplos discos, fazendo com que eles atuem como um 
único disco lógico, grande e rápido. Consequentemente, o desempenho geral de E/S 
(Entrada/Saída) é melhorado, ao permitir que várias operações sejam atendidas em paralelo, 
resultando em altas taxas de transferência. 
Sob tal contexto, existem duas granularidades principais para o striping: o striping em 
nível de bloco e o striping em nível de bit. O primeiro tipo é a forma mais comum. Nela, 
blocos de um arquivo são espalhados pelos discos. Desse modo, permite que múltiplas 
solicitações independentes a blocos diferentes sejam atendidas em paralelo, diminuindo o 
tempo de fila e o tempo de resposta para grandes acessos. Já o striping em nível de bit 
consiste em dividir um byte de dados e gravar cada bit em um disco diferente. Portanto, com 
bytes de 8 bits, oito discos físicos podem ser vistos como um único disco lógico, 
multiplicando a taxa de transferência por oito. Nessa abordagem, um único registro fica 
fisicamente dividido entre todos os discos do conjunto. 
2.2. Mirroring (Espelhamento) 
Esta é a forma mais simples de redundância. Destarte, os dados são escritos de forma 
idêntica e simultânea em dois ou mais discos, criando cópias exatas. Se um disco falhar, os 
dados estão imediatamente disponíveis em seu espelho, garantindo alta disponibilidade. Em 
vista disso, o espelhamento também pode melhorar o desempenho de leitura, uma vez que as 
solicitações podem ser atendidas por qualquer disco do par. 
2.3 Paridade 
A paridade é uma forma de redundância mais eficiente em termos de espaço. Nesse 
sentido, ela utiliza uma operação matemática, geralmente o OU exclusivo (XOR), para criar 
um bloco de dados de verificação (o bloco de paridade) a partir dos blocos de dados 
correspondentes nos outros discos. Se um disco falhar, seu conteúdo pode ser reconstruído a 
partir dos dados restantes e da paridade. Por isso, essa técnica permite que um sistema tolere 
a falha de um disco usando o espaço de apenas um disco para a informação de redundância. 
 
3. Análise dos Níveis de RAID 
As diferentes organizações de RAID, conhecidas como "níveis", são definidas com 
base em diversas combinações dos dois fatores principais: o detalhamento da intercalação 
(striping) e o padrão de dados usado para calcular as informações redundantes. Nessa 
conjuntura, na proposta original, foram definidos os níveis de 1 a 5, com os níveis 0 e 6 sendo 
adicionados posteriormente. Assim, cada nível, nomeado com a palavra "RAID" seguida de 
um número (por exemplo, RAID 0, RAID 1), oferece um balanço diferente entre os objetivos 
de confiabilidade, disponibilidade, desempenho e capacidade. 
3.1 RAID 0 (Striping) 
Este nível, focado exclusivamente em desempenho, não possui redundância. Nesse 
panorama, os dados são divididos em blocos e gravados em discos separados, proporcionando 
grande velocidade de leitura e escrita. No entanto, a falha de um único disco resulta na perda 
total de todos os dados do conjunto. Por conseguinte, é ideal para dados não críticos onde a 
velocidade é o único requisito, como edição de vídeo ou armazenamento de arquivos 
temporários. 
3.2 RAID 1 (Mirroring) 
Já neste nível, o foco é na máxima redundância, adiciona discos paralelos que 
funcionam como uma cópia exata dos discos principais. Sob tal ótica, ele oferece 100% de 
redundância, e em caso de falha, os dados são simplesmente copiados para o disco de 
substituição, sem necessidade de reconstrução complexa. Contudo, a desvantagem é o alto 
custo, pois 50% da capacidade total de armazenamento é perdida para o espelhamento. 
Portanto, é ideal para sistemas operacionais e aplicações críticas como contabilidade e 
finanças, onde a disponibilidade é a maior prioridade. 
3.3 RAID 2 (Código de Hamming) 
Este nível, hoje de significado apenas histórico, adapta o mecanismo de detecção e 
correção de erros de memórias, o Código de Hamming, para discos. Nessa perspectiva, ele 
utiliza striping em nível de bit e dedica vários discos para armazenar os bits de verificação 
(ECC - Error-Correcting Code). À vista disso, o Código de Hamming permite a correção de 
erros "on the fly" (em tempo real), mas é ineficiente e caro, exigindo muitos discos de ECC 
em relação aos de dados, e por isso não possui implementações comerciais. 
3.4 RAID 3 (Paridade Dedicada com Striping de Bytes) 
Utiliza striping em nível de byte e dedica um único disco exclusivamente para 
armazenar as informações de paridade. Nesse sentido, oferece taxas de transferência muito 
altas para leituras e escritas sequenciais, sendo ideal para edição de vídeo e streaming. 
Entretanto, como toda operação de E/S acessa todos os discos, ele não consegue atender 
múltiplas solicitações em paralelo. 
3.5 RAID 4 (Paridade Dedicada com Striping de Blocos): 
Similar ao RAID 3, porém utiliza striping em nível de bloco. Consequentemente, 
permite que múltiplas solicitações de leitura sejam atendidas em paralelo, desde que acessem 
discos diferentes. Todavia, a principal desvantagem é que o disco de paridade dedicado se 
torna um gargalo para operações de escrita, pois toda escrita exige uma atualização nesse 
disco. 
3.6 RAID 5 (Paridade Distribuída) 
É o nível de RAID seguro mais comum, exigindo no mínimo três discos. Dessa 
forma, ele combina o striping em nível de bloco com informações de paridade distribuídas 
por todos os discos, eliminando o gargalo do disco de paridade dedicado do RAID 4. 
Destarte, oferece um bom equilíbrio entre desempenho de leitura, capacidade útil e 
segurança, tolerando a falha de um disco. Não obstante, sua principal desvantagem é a 
penalidade de escrita: uma única operação de escrita lógica se traduz em quatro operações 
físicas no disco (ler dados antigos, ler paridade antiga, escrever novos dados, escrever nova 
paridade), o que o torna lento para cargas de trabalho com muitas escritas. 
3.7 RAID 6 (Dupla Paridade Distribuída) 
É uma evolução do RAID 5, projetado para ambientes com discos de grande 
capacidade. Dessa maneira, ao calcular e distribuir duas informações de paridade 
independentes, um array RAID 6 pode tolerar a falha de até dois discossimultaneamente. Tal 
procedimento é crucial para garantir a integridade dos dados durante o longo processo de 
reconstrução de um disco falho, embora a penalidade de escrita seja ainda maior que a do 
RAID 5. 
3.8 RAID 10 (ou 1+0): 
Um nível híbrido que combina espelhamento e striping. Vale ressaltar, a princípio, 
que os discos são espelhados em pares (RAID 1), e então esses pares são distribuídos (RAID 
0). Assim, o resultado é um sistema com o excelente desempenho de leitura e escrita do 
RAID 0 e a alta redundância do RAID 1. Sob tal ótica, esta é a escolha padrão para 
aplicações de missão crítica que exigem alto desempenho de E/S e alta disponibilidade, como 
bancos de dados transacionais. 
3.9 RAID 0+1: 
É o inverso do RAID 10. Primeiro, os dados são distribuídos (RAID 0) e, em seguida, 
o conjunto é espelhado. Contudo, possui menor tolerância a falhas que o RAID 10, pois a 
falha de um único disco torna todo o seu subconjunto de striping inutilizável, forçando o 
sistema a depender inteiramente do espelho. 
3.10 RAID 50 (ou 5+0): 
É um nível aninhado que combina a paridade distribuída do RAID 5 com o striping 
do RAID 0. Nele, vários subgrupos RAID 5 são criados, e os dados são distribuídos (RAID 
0) entre esses subgrupos. Por conseguinte, isso melhora o desempenho de escrita em 
comparação com um único RAID 5 grande e aumenta a tolerância a falhas, pois cada 
subgrupo pode perder um disco. 
 
4. Hardware RAID vs. Software RAID 
A lógica do RAID pode ser implementada de duas formas: hardware RAID e software 
RAID. O hardware RAID utiliza uma placa controladora dedicada com seu próprio 
processador e memória, o que desonera a CPU principal do sistema e oferece desempenho 
superior e mais consistente, especialmente para níveis com paridade como RAID 5 e 6. 
Todavia, suas desvantagens são o custo mais elevado e o risco de dependência do fornecedor, 
pois uma controladora com falha pode precisar ser substituída por um modelo idêntico. Já no 
software RAID, a lógica do RAID é gerenciada pelo sistema operacional, utilizando os 
recursos da CPU e da RAM do servidor. Nessa conjuntura, É uma solução de baixo custo e 
flexível, mas pode consumir ciclos da CPU, impactando o desempenho geral do sistema, um 
problema notável em configurações de paridade sob cargas de trabalho intensivas. 
 
 
5. Conclusão 
A seleção de um nível de RAID é um exercício de balanceamento entre desempenho, 
tolerância a falhas e custo. Não há uma resposta única, mas sim uma solução ótima para cada 
caso de uso. No entanto, é fundamental reforçar um princípio essencial da gestão de dados: 
RAID não é backup. Logo, o RAID foi projetado para garantir a continuidade das operações 
em caso de falha de hardware, mantendo os sistemas online. Porém, ele não oferece proteção 
contra exclusão acidental, corrupção por software, malware ou desastres físicos. Para esses 
cenários, uma estratégia de backup separada e robusta é indispensável. Em síntese, o RAID é 
um pilar da alta disponibilidade, mas é apenas um componente de uma estratégia completa de 
proteção de dados. 
 
6. Referências 
[1] ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de Banco de Dados. 6. ed. São 
Paulo: Pearson Addison Wesley, 2011. 
 
 
	2.3 Paridade 
	A paridade é uma forma de redundância mais eficiente em termos de espaço. Nesse sentido, ela utiliza uma operação matemática, geralmente o OU exclusivo (XOR), para criar um bloco de dados de verificação (o bloco de paridade) a partir dos blocos de dados correspondentes nos outros discos. Se um disco falhar, seu conteúdo pode ser reconstruído a partir dos dados restantes e da paridade. Por isso, essa técnica permite que um sistema tolere a falha de um disco usando o espaço de apenas um disco para a informação de redundância. 
	3.1 RAID 0 (Striping) 
	Este nível, focado exclusivamente em desempenho, não possui redundância. Nesse panorama, os dados são divididos em blocos e gravados em discos separados, proporcionando grande velocidade de leitura e escrita. No entanto, a falha de um único disco resulta na perda total de todos os dados do conjunto. Por conseguinte, é ideal para dados não críticos onde a velocidade é o único requisito, como edição de vídeo ou armazenamento de arquivos temporários. 
	3.2 RAID 1 (Mirroring) 
	Já neste nível, o foco é na máxima redundância, adiciona discos paralelos que funcionam como uma cópia exata dos discos principais. Sob tal ótica, ele oferece 100% de redundância, e em caso de falha, os dados são simplesmente copiados para o disco de substituição, sem necessidade de reconstrução complexa. Contudo, a desvantagem é o alto custo, pois 50% da capacidade total de armazenamento é perdida para o espelhamento. Portanto, é ideal para sistemas operacionais e aplicações críticas como contabilidade e finanças, onde a disponibilidade é a maior prioridade.

Mais conteúdos dessa disciplina