mdadm: Criando RAID 1 – parte 04

Na parte 02 dessa sequência de artigos criamos um raid 0, ou stripe. Agora iremos criar um RAID 1, conhecido também como mirroring(espelhamento).

O RAID 1

  • Requer no mínimo dois discos
  • Tem como vantagem a redundância. Se um disco falhar não perderemos nossos dados
  • tem como desvantagem(drawback) o fato de usar apenas metade da soma dos discos. Exemplo, se tivermos dois discos de 100GB cada, no final será usado apenas 100GB e não 200.

 

Usaremos os mesmos passos iniciais feitos no artigo 02. Conforme abaixo, alteraremos apenas o –level=0 para –level=1.

 

Resumo dos Comandos mdadm que Serão Usados  nesse Artigo

Posto aqui os comandos que usaremos como um resumo apenas para que sirva para pesquisa rápida.

sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
sudo mdadm --detail --scan --verbose | sudo tee -a /etc/mdadm/mdadm.conf
cat /proc/mdstat
sudo mdadm --detail --scan
sudo mdadm /dev/md1 --fail /dev/sdc1
sudo mdadm --detail /dev/md1
sudo mdadm /dev/md1 --remove /dev/sdc1
sudo mdadm /dev/md1 --add /dev/sdd1

 

Estrutura e Opções Usadas na Criação do RAID 0

Usaremos o seguinte comando

mdadm –create nomeDoMeuDispositivo  –level=0 –raid-devices=2  /dev/sdb1 /dev/sdc1

ou de forma  concisa(mais simples)

mdadm -C  nomeDoMeuDispositivo    -l 0   -n 2  /dev/sdb1 /dev/sdc1

onde,

nomeDoMeuDispositivo é um nome qualquer pelo qual identificaremos nosso RAID e

  • -C ou –create = significa criar
  • -l ou –level  = é o nível. Em nosso caso será 1 ou mirror. Mas para outros tipos de raid poderia ser:
    raid0 ou somente o ou ainda stripe
    raid4 ou apenas 4
    raid6 ou somente 6
    raid10 ou 10
    multipath ou mp
    faulty
  • -n ou –raid-devices = Aqui digitamos a quantidade de discos que serão usados.

 

Discos Usados

Aqui apaguei o RAID 0 criado no artigo 02 e reaproveitarei os discos. Os discos são o sdb1 e sdc1.

elder@ubuntu:~$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   10G  0 disk 
└─sda1   8:1    0   10G  0 part /
sdb      8:16   0   50M  0 disk 
└─sdb1   8:17   0   49M  0 part 
sdc      8:32   0   50M  0 disk 
└─sdc1   8:33   0   49M  0 part 
sdd      8:48   0  100M  0 disk 
└─sdd1   8:49   0   48M  0 part 
sr0     11:0    1 1024M  0 rom

 

 

Criando RAID 1 com mdadm

iremos criar um arrai nível 1 usando 2 discos: sdb1 e sdc1. O sdd1 ficará para ser adicionado posteriormente.

  1. Criei o array
    elder@ubuntu:~$ sudo mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

    O dispositivo virtual /dev/md1 foi criado(–create), gerado um nodo dispositivo(/dev/md1), o nível do raid é o espelhamento(–level=1) entre os discos, irei nesse momento usar 2 discos ou partições(–raid-devices=2) que são dev/sdb1 /dev/sdc1.

  2. Vamos ver alguns detalhes.
    Temos abaixo o dispositivo md1 ativo e composto pelos discos sdc1 e sdb1.

    elder@ubuntu:~$ cat /proc/mdstat 
    Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
    md1 : active raid1 sdc1[1] sdb1[0]
          49152 blocks super 1.2 [2/2] [UU]
          
    unused devices: <none>

    Olha o UUID que serve como identificador do dispositivo. Iremos usar ele em /etc/fstab para que o dispositivo /dev/md1 seja montado automaticamente

    elder@ubuntu:~$ sudo mdadm --detail --scan
    ARRAY /dev/md1 metadata=1.2 name=ubuntu:1 UUID=31c78d4f:2f3b168a:ef55e293:e70eab8e
    

    mais detalhes

    elder@ubuntu:~$ sudo mdadm --detail /dev/md1
    /dev/md1:
               Version : 1.2
         Creation Time : Tue Aug 11 16:58:26 2020
            Raid Level : raid1
            Array Size : 49152 (48.00 MiB 50.33 MB)
         Used Dev Size : 49152 (48.00 MiB 50.33 MB)
          Raid Devices : 2
         Total Devices : 2
           Persistence : Superblock is persistent
    
           Update Time : Tue Aug 11 16:58:26 2020
                 State : clean 
        Active Devices : 2
       Working Devices : 2
        Failed Devices : 0
         Spare Devices : 0
    
    Consistency Policy : resync
    
                  Name : ubuntu:1  (local to host ubuntu)
                  UUID : 31c78d4f:2f3b168a:ef55e293:e70eab8e
                Events : 17
    
        Number   Major   Minor   RaidDevice State
           0       8       17        0      active sync   /dev/sdb1
           1       8       33        1      active sync   /dev/sdc1
    
  3. Execute “sudo mdadm –detail –scan –verbose | sudo tee -a /etc/mdadm/mdadm.conf ” e depois  “sudo update-initramfs -u” para que as configurações não se percam após reinício do sistema operacional.
    elder@ubuntu:~$ sudo mdadm  --detail --scan --verbose | sudo tee -a /etc/mdadm/mdadm.conf 
    ARRAY /dev/md1 level=raid1 num-devices=2 metadata=1.2 name=ubuntu:1 UUID=31c78d4f:2f3b168a:ef55e293:e70eab8e
       devices=/dev/sdb1,/dev/sdc1
    elder@ubuntu:~$ sudo update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-4.15.0-112-generic
  4. Formate o dispositivo /dev/md1 para que fique com o sistema de arquivos ext4. Execute “sudo mkfs.ext4 /dev/md1
    elder@ubuntu:~$ sudo mkfs.ext4 /dev/md1 
    mke2fs 1.44.1 (24-Mar-2018)
    Creating filesystem with 49152 1k blocks and 12288 inodes
    Filesystem UUID: 69ad38a0-fa35-4d94-9a8d-d8e90968a856
    Cópias de segurança de superblocos gravadas em blocos: 
    	8193, 24577, 40961
    
    Allocating group tables: pronto                            
    Gravando tabelas inode: pronto                            
    Creating journal (4096 blocks): concluído
    Escrevendo superblocos e informações de contabilidade de sistema de arquivos: concluído
    
  5. Crie o diretório “/home/elder/meuRaid1” e monte o dispositivo /dev/md1
    elder@ubuntu:~$ mkdir /home/elder/meuRaid1
    elder@ubuntu:~$ sudo mount  /dev/md1 /home/elder/meuRaid1
  6. Veja que mesmo os dois dispositivos tendo 50MB cada, o array ficou apenas com 43 MB. isso porque raid 1 une os valores para que haja redundância.
    elder@ubuntu:~$ df -h
    Sist. Arq.      Tam. Usado Disp. Uso% Montado em
    udev            471M     0  471M   0% /dev
    tmpfs            99M  1,1M   98M   2% /run
    /dev/sda1       9,8G  5,5G  3,9G  59% /
    /dev/md1         43M  1,1M   39M   3% /home/elder/meuRaid1
  7. Edite /etc/fstab e insira o UUID do dispositivo /dev/md1Para exibir o UUID

    Copie o UUID abaixo

    elder@ubuntu:~$ sudo mdadm --detail --scan
    ARRAY /dev/md1 metadata=1.2 name=ubuntu:1 UUID=31c78d4f:2f3b168a:ef55e293:e70eab8e
    

    Abra seu editor preferido, usarei o vim mas para iniciantes recomendo o nano.  insira a linha em laranja acima substituindo /home/elder/meuRaid1 pelo seu diretório.

    elder@ubuntu:~$ sudo vim /etc/fstab
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    # / was on /dev/sda1 during installation
    UUID=060e460d-9ae2-41ac-bb4f-473c8438c0ba /               ext4    errors=remount-ro 0       1
    /swapfile                                 none            swap    sw              0       0
    UUID=31c78d4f:2f3b168a:ef55e293:e70eab8e /home/elder/meuRaid1   ext4    0       0

 

Testando a Redundância do nosso RAID1

  1. Crie alguns arquivos dentro de /home/elder/meuRaid1
    elder@ubuntu:~$ touch ~/meuRaid1/textos{1..5}.txt
    elder@ubuntu:~$ ls -1 meuRaid1/
    lost+found
    textos1.txt
    textos2.txt
    textos3.txt
    textos4.txt
    textos5.txt
  2. Simule falha no disco /dev/sdc1 usando “mdadm /dev/md1 –fail /dev/sdc1”
    elder@ubuntu:~$ sudo mdadm /dev/md1   --fail  /dev/sdc1
    mdadm: set /dev/sdc1 faulty in /dev/md1

    Veja os detalhes em laranja

    elder@ubuntu:~$ sudo mdadm  --detail   /dev/md1   
    /dev/md1:
               Version : 1.2
         Creation Time : Tue Aug 11 16:58:26 2020
            Raid Level : raid1
            Array Size : 49152 (48.00 MiB 50.33 MB)
         Used Dev Size : 49152 (48.00 MiB 50.33 MB)
          Raid Devices : 2
         Total Devices : 2
           Persistence : Superblock is persistent
    
           Update Time : Tue Aug 11 17:44:50 2020
                 State : clean, degraded 
        Active Devices : 1
       Working Devices : 1
        Failed Devices : 1
         Spare Devices : 0
    
    Consistency Policy : resync
    
                  Name : ubuntu:1  (local to host ubuntu)
                  UUID : 31c78d4f:2f3b168a:ef55e293:e70eab8e
                Events : 19
    
        Number   Major   Minor   RaidDevice State
           0       8       17        0      active sync   /dev/sdb1
           -       0        0        1      removed
    
           1       8       33        -      faulty   /dev/sdc1
    
  3. Mesmo com a simulação da falha acima o sistema continua funcionando e não houve perda de dados
    elder@ubuntu:~$ df -h | grep md1
    /dev/md1         43M  1,1M   39M   3% /home/elder/meuRaid1
    
    elder@ubuntu:~$ ls -1 meuRaid1/
    lost+found
    textos1.txt
    textos2.txt
    textos3.txt
    textos4.txt
    textos5.txt
  4. Vamos adicionar um novo disco, o sdd1
    elder@ubuntu:~$ sudo mdadm /dev/md1 --add /dev/sdd1
    mdadm: added /dev/sdd1

    Veja detalhes

    elder@ubuntu:~$ sudo mdadm --detail /dev/md1 
    /dev/md1:
               Version : 1.2
         Creation Time : Tue Aug 11 16:58:26 2020
            Raid Level : raid1
            Array Size : 49152 (48.00 MiB 50.33 MB)
         Used Dev Size : 49152 (48.00 MiB 50.33 MB)
          Raid Devices : 2
         Total Devices : 3
           Persistence : Superblock is persistent
    
           Update Time : Tue Aug 11 18:01:43 2020
                 State : clean 
        Active Devices : 2
       Working Devices : 2
        Failed Devices : 1
         Spare Devices : 0
    
    Consistency Policy : resync
    
                  Name : ubuntu:1  (local to host ubuntu)
                  UUID : 31c78d4f:2f3b168a:ef55e293:e70eab8e
                Events : 38
    
        Number   Major   Minor   RaidDevice State
           0       8       17        0      active sync   /dev/sdb1
           2       8       49        1      active sync   /dev/sdd1
    
           1       8       33        -      faulty   /dev/sdc

    Se atente para os detalhes em laranja

  5. Vamos remover o disco com falha que ainda consta na configuração
    elder@ubuntu:~$ sudo mdadm /dev/md1 --remove /dev/sdc1
    mdadm: hot removed /dev/sdc1 from /dev/md1
    

 

Conclusão

RAID é uma opção recomendadíssima para empresas; afinal de contas, não há valor que pague pelos dados e informações da sua empresa.

Vimos que o RAID 1 possui redundância como vantagem e muitos podem alegar que usar apenas metade da capacidade de armazenamento de 2 oi  mais discos seria uma desvantagem, e para isso afirmo duas coisas:

  1. Novamente, não há valor que pegue pelos dados da sua empresa e
  2. Dispositivos de armazenamento atualmente está muito acessível, com preço bem em conta.

Invista em sua e proteja seus dados.

Só tenho mais uma última e importantíssima coisa a declarar: Cuidado, RAID redundante não é backup!

RAID com redundância e backups se complementam e fazem parte do que chamamos de “plano de continuidade”.

 

 

 

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

One Comment to “mdadm: Criando RAID 1 – parte 04”

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *