quinta-feira, 24 de setembro de 2009

RAID - Redundant Array of Inexpensive Disks


Objetivos

  • Entender os principais niveis de RAID;
  • Configurar RAID-1;
  • Verificar o estado do RAID;
  • Simular falhas no RAID;

Introdução teórica

Redundant Array of Inexpensive Disks

O RAID foi desenvolvido em 1988 como uma solução barata para garantir a disponibilidade da informação armazenada em discos, utilizando para isso uma configuração especial de discos rígidos, que podem oferecer redundancia em caso de falhas e ganhos de performance em escrita ou leitura, dependendo da configuração do conjunto RAID. Como principais vantagens, o RAID oferece:

  • Ganho de desempenho no acesso a leitura ou gravação.
  • Redundancia em caso de falha em um dos discos.
  • Um múltiplo de várias unidades de discos.
  • Facilidade em recuperação de contéudo perdido.


Existem duas formas de criarmos um RAID.

Via software: Feito por aplicativos e módulos do sistema operacional, o RAID via software só entra em funcionamento depois que o kernel é carregado na memória do computador. A principal vantagem é a facilidade de configuração e a flexibilidade, já que podemos trabalhar com vários discos diferentes. A principal desvantagem é a dependencia da correta configuração do sistema operacional.

Via hardware: Feito por uma placa controladora que conecta um disco ou outro. A principal vantagem é o desempenho, já que um RAID via hardware é mais rápido e independe do sistema operacional. A principal desvantagem, é que a placa controladora se torna um Single Point of Failure, ou seja, é necessário ter uma controladora de disco igual ou compatível com a que você possui para o caso de falhas neste hardware.

Niveis de RAID

Raid 0:O RAID 0 é utlizado quando o intuito é simplesmente colocar dois discos rígidos para trabalhar como um único volume, o que torna o acesso a leitura e gravação mais eficiente. O RAID0 não implementa nenhum tipo de redundância, ou seka, os dados serão perdidos se um ou mais discos falharem.



RAID 1 : O RAID 1 é utilizado quando o intuito é colocar dois discos rígidos para trabalharem como um único volume, porém, com espelhamento. Isso quer dizer que, se um dos meus volumes físicos falharem, os dados continuarão sendo acessados até que um técnico efetue a troca do disco defeituoso.



RAID 5 – O Raid 5 utiliza o conceito de paridade para garantir a disponibilidade dos dados. A cada gravação, uma parte a informação segue para o DISCO A, a outra metade para o DISCO B, e o resultado da paridade para o disco C. Na próxima gravação, a paridade é alternada, de forma que, ao perder qualquer um dos discos, a informação pode ser recuperada a partir dos discos restantes.




RAID 10 - Raid 10 e a junção de dois volumes RAID1 em um volume RAID0. Com isso, dobramos a velocidade de leitura e gravação, além de tolerância a falhas de até dois discos, um disco para cada volume RAID1.




Pratica dirigida

1 – Abra o particionador e crie 3 partições sendo do tipo “Raid autodetect”:

# cfdisk /dev/sda

2 – Verifique se o pacote mdadm já está instalado, e instale-o se necessário:

# dpkg -l mdadm

# aptitude install mdadm

3 – Depois de instalar o pacote mdadm, vá a um segundo terminal visualize o estado do RAID no kernel:

# watch cat /proc/mdadmstat

Criando um RAID

1 – Vamos criar o RAID utilizando o nível 1 utilizando “dois discos” e um “spare”:

# mdadm –create /dev/md0 –level=1 –raid-devices=2 –spare-devices=1 /dev/sda11 /dev/sda12 /dev/sda13

2 – No segundo terminal, verifique a sincronização do RAID

3 – Depois de criarmos o RAID, é necessário editar o arquivo /dev/mdadm/mdadm.conf, que será utilizado durante a administração do RAID:

# vim /etc/mdadm/mdadm.conf

4 -Modifique o arquivo, adicionando o seguinte contéudo:

DEVICE /dev/sda11 /dev/sda12 /dev/sda13

ARRAY /dev/md0 devices=/dev/sda11,/dev/sda12,/dev/sda13

5 – Depois de criarmos o RAID, aplique o sistema de arquivos ext3 no dispositivo /dev/md0:

# mkfs.ext3 /dev/md0

6 – Crie um ponto de montagem em /mnt/raid

# mkdir /mnt/raid

7 – Montando o RAID:

# mount -t ext3 /dev/md0 /mnt/raid

Verificando o funcionamento do RAID

1 – Verificando os dispositivos individualmente:

# mdadm -E /dev/sda11

# mdadm -E /dev/sda12

# mdadm -E /dev/sda13

2 – Para testar a redundância, vamos criar um script chamado “testeRaid.sh” que escreve em um arquivo de 3 em 3 segundos.

Vim /root/raidTest.sh

#!/bin/bash
while true ; do
date >> /mnt/raid/dados.txt
sleep 3
done

chmod +x raidTest.sh

/root/raidTest.sh

Administrando o RAID

Vamos aprender a adicionar, remover e simular uma falha em um dos discos do RAID.

1 – Provocando uma falha:

# mdadm /dev/md0 –fail /dev/sda11

2 – Verificando os detalhes do RAID após a falha:

# mdadm –detail /dev/md0

3 – Removendo o dísco defeituoso:

# mdadm /dev/md0 –remove /dev/sda11

# mdadm –detail /dev/md0

4 – Adicionando um disco ao RAID:

# mdadm /dev/md0 –add /dev/sda11

# mdadm –detail /dev/md0

5 – Para parar o RAID:

# mdadm -S /dev/md0

6 – Reiniciando o RAID

# mdadm -As /dev/md0

7 – Removendo o Raid:

# mdadm -S /dev/md0

# mdadm –manage –remove /dev/md0

DICA LPI: Ao prestar a prova, esteja familiarizado com o comando mdadm e suas funções básicas, como criar e remover um volume RAID.

As provas podem perguntar conceitos de RAID.


0 comentários:

Postar um comentário