segunda-feira, 22 de julho de 2013

Debian - Criando RAID 1 (mirror)


Vamos supor que você esteja com o seu Debian instalado e rodando perfeitamente, mas surgiu a necessidade de adicionar mais 2 discos e colocá-los em RAID 1, lembrando que as duas partições que você irá criar o RAID, têm que ser de tamanhos iguais.

Se você tiver um disco de 1 TB e outro de 500 GB, no disco maior você vai ter que criar uma partição de até 500 GB, e o restante que sobrar do disco, você pode fazer o que quiser.

Discos:
  • /dev/sda :: Sistema instalado (80 GB)
  • /dev/sdb :: Disco novo 1 (320 GB)
  • /dev/sdc :: Disco novo 2 (320 GB)

Primeiro, vamos instalar o software para gerenciar os RAIDs:

# apt-get -y install mdadm

Agora, vamos criar as partições nos discos novos para a criação do RAID 1:

# cfdisk /dev/sdb

Como os discos são novos, apenas irei criar uma nova partição selecionando a opção "NEW" e depois "TYPE", e escolhendo "FDA (Linux Raid Autodetec) e por último, "WRITE". Saia do cfdisk e faça o mesmo para o "/dev/sdc".

Agora vamos criar o RAID 1 somente com o primeiro disco, o segundo, vamos adicionar depois:

# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 missing /dev/sdb1 

Onde:
  • --create :: cria o dispositivo /dev/md0
  • /dev/md0 :: ele cria um dispositivo MD, que significa Multiple Device, ou seja, pode-se ter múltiplos dispositivos neste array
  • --level=1 :: é o nível do RAID, estamos usando RAID 1, que é o RAID de espelhamento
  • --raid-devices=2 :: número de discos do RAID. No nosso caso são 2 HDs
  • missing :: uma partição está faltando no array (nesse caso é o /dev/sdc1 que será adicionado logo mais)
  • /dev/sdb1 :: Partição que será adicionada ao array /dev/md0

Vamos formatar o novo dispositivo MD no sistema de arquivos ext4:

# mke2fs -t ext4 /dev/md0

Agora vamos adicionar o segundo disco ao array:

# mdadm /dev/md0 -a /dev/sdc1

Finalizamos a criação do array, agora vamos ver o andamento da sincronização dos 2 discos:

# cat /proc/mdstat
ou
# watch -n 1 cat /proc/mdstat 

ou criar a raid de uma vez só para uma Futura LVM

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/hdc1

Vamos configurar o RAID para toda vez que ligar a máquina, ele já automontar a partição para utilizar: 

Primeiro, vamos criar a pasta:

# mkdir -p /mnt/raid1 

Agora vamos ver o UUID do array para configurar na inicialização (/etc/fstab):

# blkid /dev/md0

O resultado vai ser alguma coisa parecida com isso:
/dev/md0: UUID="f600331d-8f52-49eb-ae69-ea5f85fbbd2b" TYPE="ext4"

Agora vamos abrir o "/etc/fstab" e inserir esse dispositivo na inicialização do servidor:

UUID=f600331d-8f52-49eb-ae69-ea5f85fbbd2b /mnt/raid1 auto defaults,errors=remount-ro 0 1


para ver o status da raid use esse comando:

mdadm -D /dev/md0

Pronto. Agora temos um RAID 1 configurado e funcionando. 

Se a Raid ficar pendente.... force a execucao da mesma...

resync=PENDING

Ative com comando a baixo.

mdadm --readwrite /dev/mdX



------------------------------- por algum erro ou sei lah o que a Raid nao inicializar apos o boot... ------------

Execute esses passo!

# adicione o raid1 em \etc\modules
raid1

execute comando: $sudo modprobe raid1


Lista as Raid criadas com mdadm: $sudo mdadm -Es  

ARRAY /dev/md/0  metadata=1.2 UUID=a744dc3f:845bbae0:a423e748:9ee7f5b9 name=pve:0
ARRAY /dev/md/1  metadata=1.2 UUID=306c729d:0f0e1604:5cddb912:08b6569d name=pve:1


copia essa informacao para /etc/mdadm/mdadm.conf  final do arquivo.


Execute: sudo dpkg-reconfigure mdadm 


$sudo service mdadm-raid restart

Removendo Raid completamente com mdadm



RAID device --> /dev/md1 --> Created of 2 Disks /dev/sda & /dev/sdb
mdadm --detail /dev/md1 --> This will give detail information on /dev/md1


cat /proc/mdstat  --> This will give information of md device

mdadm --stop /dev/md1  --> This will stop md1 device

mdadm --zero-superblock /dev/sda
mdadm --zero-superblock /dev/sdb


Also Remove entry of /dev/md1 from /etc/mdadm.conf and restart mdadm