O básico sobre RAID com mdadm e raidtools

Trago neste artigo, uma abordagem simples sobre conceitos e a configuração de RAID por software, com duas ferramentas muito utilizadas para tal propósito: raidtools e mdadm.

[ Hits: 49.997 ]

Por: Igor Teixeira da Rocha em 28/01/2013


Configurando um RAID 1 com o mdadm



O ambiente utilizado foi o mesmo do exemplo anterior, neste caso somente restaurei o snapshoot da VM.

O mdadm, provavelmente, encontra-se disponível nos repositórios da sua distribuição. Para procurá-lo em distribuições derivadas do Debian usando o apt, use o seguinte comando:

# apt-cache search mdadm

Ele deve retornar:

mdadm - tool to administer Linux MD arrays (software RAID)

Agora, basta instalar:

# apt-get install mdadm

Em Red Hat e derivados:

# yum list mdadm
# yum install mdadm


Devido ao mdadm trabalhar com superblocos persistentes por padrão, podemos utiliza-lo na criação de dispositivos RAID de duas maneiras, sendo uma delas usando o arquivo de configuração /etc/mdadm/mdadm.conf ou diretamente através da ferramenta mdadm (esta será a forma utilizada no artigo).

O primeiro passo a seguir é idêntico ao utilizar o raidtools, é necessário alterar o tipo das partições para fd. Para quem não sabe realizar o procedimento, na parte onde abordei o raidtools, o procedimento é feito passo a passo, basta dar uma olhadinha. :)

Após as alterações realizadas no disco, vamos começar a criar o nosso dispositivo de RAID (RAID 1) utilizando o comando mdadm, irei explicando seus parâmetros a cada comando:

# mdadm -C -v /dev/md0 -l 1 -n 2 /dev/sdc1 /dev/sdd1
mdadm: size set to 2056192K
mdadm: array /dev/md0 started.

Onde:
  • -C → Cria o Dispositivo de RAID;
  • -l → O Nível(level) do RAID;
  • -n → O número de dispositivos que compõem o RAID;
  • /dev/sd[cd]1 → Os discos que fazem parte do meu novo dispositivo de RAID, o /dev/md0 (lembrando que "md" vem de dispositivos múltiplos).

Como pode ser observado, o próprio mdadm já informa que o dispositivo de RAID foi inicializado na saída do comando.

E uma das maneiras de verificar se o RAID está funcionado é utilizando o arquivo /proc/mdstat, onde o sincronismo entre os discos também pode ser verificado.

Outra maneira de verificar o funcionamento do RAID é utilizando a opção "-D" (ou: --detail [detalhes]) do mdadm, onde a saída é bem completa.

Agora basta fazer o mesmo procedimento básico, aplicar um sistema de arquivos ao nosso sistema de RAID (Ex.: mkfs -t ext3 /dev/md0), montar em um ponto de montagem qualquer, de acordo com as suas necessidades e ser feliz. :)

* Lembrando que o mdadm fornece muitas opções bacanas para o RAID, vamos à mais algumas.

Uma coisa muito interessante é testar a eficiência do RAID que estou configurando, e para isso o mdadm possibilita "falhar" um dos discos. Mas calma, ele não vai destruir o seu HD.

O que o mdadm faz é "marcar" o seu disco como defeituoso, assim o mdadm passa a utilizar os outros discos do array para o seu correto funcionamento (claro, dependendo das configurações que você fez e o nível do RAID).

Antes de falhar um dos meus discos, vamos ver como que está o "status" do meu device de raid:

# mdadm -D /dev/md0
/dev/md0:
        Version : 00.90
  Creation Time : Mon Jan 21 02:39:08 2013
     Raid Level : raid1
     Array Size : 2056192 (2008.34 MiB 2105.54 MB)
  Used Dev Size : 2056192 (2008.34 MiB 2105.54 MB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Mon Jan 21 02:39:50 2013
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           UUID : 48c32905:e7358574:b05e291b:984b098e (local to host daileon)
         Events : 0.18

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       8       49        1      active sync   /dev/sdd1

Como pode ser observado, está tudo OK, agora falhando um dos discos:

# mdadm --manage /dev/md0 --set-faulty /dev/sdd1
mdadm: set /dev/sdd1 faulty in /dev/md0

Agora meu disco apresentou uma "falha" no dispositivo /dev/sdd1:

# mdadm -D /dev/md0
/dev/md0:
        Version : 00.90
  Creation Time : Mon Jan 21 02:39:08 2013
     Raid Level : raid1
     Array Size : 2056192 (2008.34 MiB 2105.54 MB)
  Used Dev Size : 2056192 (2008.34 MiB 2105.54 MB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 0
    Persistence : Superblock is persistent

    Update Time : Mon Jan 21 02:52:53 2013
          State : clean, degraded
 Active Devices : 1
Working Devices : 1
 Failed Devices : 1
  Spare Devices : 0

           UUID : 48c32905:e7358574:b05e291b:984b098e (local to host daileon)
         Events : 0.19

    Number   Major   Minor   RaidDevice State
       0       8       33        0      active sync   /dev/sdc1
       1       0        0        1      removed

       2       8       49        -      faulty spare   /dev/sdd1

Neste caso, como existem somente dois HDs e o RAID é de nível 1, os dados não serão perdidos, pois as cópias dos dados estão salvas no outro disco, então, bastaria eu remover este HD "defeituoso", espetar um novo, particionar, alteração o tipo da partição e adicioná-lo no meu RAID.

Como por exemplo:

# mdadm --manage /dev/md0 --add /dev/sde1

Assim eu poderia verificar o andamento da sincronização do novo disco através do arquivo /proc/mdstat.


É isso pessoal!

Até a próxima...

Referências


Página anterior    

Páginas do artigo
   1. Introdução, softwares e o ambiente utilizado
   2. RAID: Particionando os discos com a ferramenta fdisk
   3. Configurando um RAID 1 com o raidtools
   4. Configurando um RAID 1 com o mdadm
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

fstab - Sua função e parâmetros

Acessar, ler e escrever em partições Linux no Windows

Proxy reverso com Apache + cache + compactação + estatísticas

Filesystem LVM

Montando Volumes no Docker

  
Comentários
[1] Comentário enviado por obernan em 30/01/2013 - 08:22h


Testei seu artigo e funfou blz. Parabéns muito bom !!!
Abraço

[2] Comentário enviado por igor_rocha em 30/01/2013 - 08:45h

Ola obernan fico feliz em ser util :) ..

Qualquer coisa que precisar estamos ai, abraço!

[3] Comentário enviado por starke em 10/01/2014 - 07:29h

O que acontece se eu tenho o seguinte cenário:

1hd com o SO;
3hds para fazer o raid;

Instalo o SO (ubuntu) e configuro os 3hds como raid usando mdadm. Por algum motivo meu SO da algum problema e nao inicia mais fazendo com que eu precise reinstalar o SO.

O que acontece ? perco o meu RAID com todos os dados me forçando e refazer todo o processo acima novamente ?

Obrigado

[4] Comentário enviado por lelecomb em 23/02/2017 - 12:05h

Brother, ótimo artigo.
o que posso fazer quando a sincronização não chega ao fim e o RAID fica desta maneira:

root@ubuntu:/home/servidor# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb1[2](S) sdc1[1]
727406400 blocks super 1.2 [2/1] [_U]

md2 : active raid1 sdd1[0] sde1[1]
976629568 blocks super 1.2 [2/2] [UU]

root@ubuntu:/home/servidor# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Tue Jun 10 19:00:15 2014
Raid Level : raid1
Array Size : 727406400 (693.71 GiB 744.86 GB)
Used Dev Size : 727406400 (693.71 GiB 744.86 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent

Update Time : Thu Feb 23 15:00:48 2017
State : clean, degraded
Active Devices : 1
Working Devices : 2
Failed Devices : 0
Spare Devices : 1

Name : DELL-CS24-SC:0
UUID : 7307b163:e96d260a:52b16438:0262e681
Events : 156026

Number Major Minor RaidDevice State
0 0 0 0 removed
1 8 33 1 active sync /dev/sdc1

2 8 17 - spare /dev/sdb1



desculpem a ignorância, é sou novo no linux...

por favor, poderiam me ajudar?


Contribuir com comentário