RAID

•	O esquema RAID estabelece as seguintes características comuns para os SETE níveis:
•	o conjunto dos discos é visto pelo S.O. como um único dispositivo lógico;
•	os dados são distribuídos através dos dispositivos físicos de uma mesma matriz;
•	a capacidade de redundância é usada para armazenar informação de paridade, que garante a recuperação em caso de falhas de disco.
•	“Stripes” são pedaços de dados que podem variar de tamanho: desde bytes ou palavras, até setores ou alguns Mbytes
•	A idéia é a do armazenamento dos “stripes” de maneira Round Robin
•	existem implementações de cada esquema raid baseada em SW e baseada em hw (tomar cuidado na aquisição)

RAID

•	RAID 0

Stripe 2
Stripe 6
Stripe 10
Stripe 14
...

Stripe 1
Stripe 5
Stripe 9
Stripe 13
...

Stripe 0
Stripe 4
Stripe 8
Stripe 12
...

Stripe 3
Stripe 7
Stripe 11
Stripe 15
...

•	sem redundância
•	não faz parte dos cinco níveis RAID
•	se “stripes” grandes são usados, qual É o ganho?
•	se a aplicação requer grande quantidade de dados armazenados seqüencialmente, como devem ser tratadas diferentes requisições de E/S ?
•	o que ocorre se um dos discos falha ?

RAID

•	RAID 1

Stripe 2
Stripe 6
Stripe 10
Stripe 14
...

Stripe 1
Stripe 5
Stripe 9
Stripe 13
...

Stripe 0
Stripe 4
Stripe 8
Stripe 12
...

Stripe 3
Stripe 7
Stripe 11
Stripe 15
...

Stripe 3
Stripe 7
Stripe 11
Stripe 15
...

Stripe 0
Stripe 4
Stripe 8
Stripe 12
...

Stripe 1
Stripe 5
Stripe 9
Stripe 13
...

Stripe 2
Stripe 6
Stripe 10
Stripe 14
...

•	espelhado (com redundância)
•	nem sempre usa “stripping”
•	como deve ser processada uma operação de escrita sobre a matriz ?
•	existe algum ganho com a redundância ?
•	o que ocorre se um dos discos falha ?

RAID

•	RAID 2

Stripe 0
...

Stripe 1
...

Stripe 2
...

Stripe 3
...

f0(b)
...

f2(b)
...

f1(b)
...

•	redundância através de Código de Hamming que é um ECC, permite correção de bits individuais e detecção de erros com até dois bits
•	existe um controlador da matriz que realiza a validação do ECC (NÃO SEGUE UM PADRÃO COMERCIALIZADO)
•	todos os discos da matriz participam de qualquer solicitação de E/S, pois os “stripEs” são pequenos, ou seja, um bloco de dados encontra-se dividido nos diversos discos
•	a movimentação dos braços dos diversos discos deve ser sincronizada; porquê ?
•	só tem sentido em ambientes com suscetibilidade de erros
•	não é comercializado
•	o que ocorre se um dos discos falha ?

RAID

•	RAID 3

Stripe 0
...

Stripe 1
...

Stripe 2
...

Stripe 3
...

P(b)
...

•	paridade “bit-interleaved”, calculada através de um (XOR) dos bytes
•	requer apenas um disco para tratar redundância
•	todos os discos da matriz participam de qualquer solicitação de E/S, pois os “stripEs” são pequenos
•	a movimentação dos braços dos diversos discos deve ser sincronizada; porquê ?
•	o que ocorre se um dos discos falha ?

RAID

•	RAID 4

Stripe 2
Stripe 6
Stripe 10
Stripe 14
...

Stripe 1
Stripe 5
Stripe 9
Stripe 13
...

Stripe 0
Stripe 4
Stripe 8
Stripe 12
...

Stripe 3
Stripe 7
Stripe 11
Stripe 15
...

P(0-3)
P(4-7)
P(8-11)
P(12-15)
...

•	paridade “block-level“, paridade bit a bit individual para cada “stripe”
•	permite múltiplas leituras simultâneas
•	os “stripes” são relativamente grandes
•	existe “overhead” nas operações de escrita; porquê ?
•	não é comercializado
•	o que ocorre se um dos discos falha ?

RAID

•	RAID 5

Stripe 3
P(4-7)
Stripe 10
Stripe 14
...

Stripe 2
Stripe 6
P(8-11)
Stripe 13
...

Stripe 1
Stripe 5
Stripe 9
P(12-15)
...

Stripe 0
Stripe 4
Stripe 8
Stripe 12
...

P(0-3)
Stripe 7
Stripe 11
Stripe 15
...

•	paridade “block-level“ distribuída, paridade bit a bit individual para cada “stripe”
•	todo disco é usado para armazenar bits de paridade
•	permite múltiplas leituras simultâneas
•	os “stripes” são relativamente grandes
•	penaliza operações de escrita
•	o que ocorre se um dos discos falha ?

•	
RAID 6

Stripe 3
P(4-7)
P´(8-11)
Stripe 13
...

Stripe 2
Stripe 6
P(8-11)
P´(12-15)
...

Stripe 1
Stripe 5
Stripe 9
P(12-15)
...

Stripe 0
Stripe 4
Stripe 8
Stripe 12
...

P(0-3)
P´(4-7)
Stripe 10
Stripe 14
...

P´(0-3)
Stripe 7
Stripe 11
Stripe 15
...

•	ESQUEMA RAID 5 COM TOLERÂNCIA PARA FALHA SIMULTÂNEA DE ATÉ DOIS DISCOS
•	hÁ UM SEGUNDO CONJUNTO DE PARIDADE, TAMBÉM ESPALHADO PELOS VÁRIOS DISCOS
•	REQUER UM DISCO A MAIS QUE O RAID 5 COM UM BENEFÍCIO (QUAL?)
•	ANALISAR O IMPACTO SOBRE OPERAÇÕES WRITE
•	o que ocorre se um dos discos falha ?

Exercícios

1.	Quais as características dos esquemas RAID que são diferentes do mecanismo de BACKUP?
2.	No esquema RAID 0, se os stripes são grandes em tamanho, qual é o ganho?
3.	No esquema RAID 0, há a necessidade de sincronização entre os diversos dispositivos, porque?
4.	Porque há sobrecarga nas operações de escrita no esquema RAID 4?
5.	Considerando que você tenha uma aplicação altamente sensível à perda de dados, que o tempo médio para uma falha (MTBF) é de menos de um ano, e que está com seu orçamento comprometido, qual seria a sua escolha de arquitetura RAID? Justifique.