mdadm

Screenshot

Create dummy RAID for testing

cd /tmp
dd if=/dev/zero bs=1024k count=100 of=block0
dd if=/dev/zer0 bs=1024k count=100 of=block1
losetup /dev/loop0 block0
losetup /dev/loop1 block1

mdadm -C /dev/md/test --name=test --homehost=foreign -l1 -n2 /dev/loop[01]
mdadm -S /dev/md/test
mdadm -As # nothing will happen here as test isn't listed in mdadm.conf
mdadm -I /dev/loop0 # this will start assembling test as /dev/md/foreign:test
mdadm -I /dev/loop1 # this will finish assembling and start /dev/md/foreign:test
mdadm -Db /dev/md/foreign:test >> /etc/mdadm.conf

vi /etc/mdadm.conf # change the ARRAY line we just added to list /dev/md/test as the array name
mdadm -S /dev/md/foreign:test
mdadm -As # now it will assemble the array without the homehost entry because it's listed in mdadm.conf without it

RAID Basics

mdadm --stop /dev/md125
mdadm --assemble /dev/md/alpha --name=alpha --update=name /dev/sd[ab]
mdadm --detail --scan /dev/md/alpha

mdadm --examine --scan --config=partitions >> /etc/mdadm.conf

Corriger mdadm.conf

Dans le fichier « /etc/mdadm/mdadm.conf », effacer les arguments « name=??? » surlignés en rouge et s’assurer que le nom des devices sont tel qu’indiqué en jaune (noter que le md0 est pour le /boot et md1 pour LVM) : ARRAY /dev/md0 metadata=1.0 UUID=05a22a50:…:bfb01421 name= host01:md0 ARRAY /dev/md1 metadata=1.2 UUID=7591182c:…:ca590139 name= host01:md1

grub-install --target=i386-pc  --recheck /dev/sda
grub-install --target=i386-pc  --recheck /dev/sdb
update-initramfs -c -k all -u
update-grub2

reboot

Construire un RAID software avec mdadm

Avant de l'installer dans le serveur si c'est un disque usagé :

dd if=/dev/zero of=/dev/hdb bs=512 count=1

Une fois le disque dur installé dans le serveur :

dd if=/dev/hda of=/dev/hdb bs=512 count=1
fdisk /dev/hdb
mdadm –-manage /dev/md0 –add /dev/hdb1
mdadm –-manage /dev/md1 –add /dev/hdb3
mdadm –-manage /dev/md2 –add /dev/hdb4
lilo

Ensuite booter sur une clé USB linux et démarrer avec les paramètres suivants en tapant:

bare.i root=/dev/mdo noinitrd ro

Rajouter la ligne suivante dans /etc/lilo.conf :

raid-extra-boot = /dev/hda, /dev/hdb

mdadm sert à créer, gérer, et surveiller les périphériques MD.

Affiche les détails :

mdadm –D /dev/md0

Pour reconstruire un drive qui est « degraded » mais le disque est bon

mdadm --manage /dev/md2 --remove /dev/hdb4
mdadm -f --manage /dev/md2 --add /dev/hdb4

Ajouter un disque au RAID

mdadm --assemble /dev/md0 /dev/hd[ab]1
mdadm --assemble /dev/md1 /dev/hd[ab]3
mdadm --assemble /dev/md2 /dev/hd[ab]4

Renommer un RAID en mdadm

Par exemple, renommer /dev/md127 pour /dev/md0 qui est utilisé par /boot :

  1. Premièrement umount de /boot :
  umount /boot
  1. Arrêter le RAID :
    mdadm --stop /dev/md127
  1. Retirer le vieux nom de device :
    mdadm --remove /dev/md127
  1. Reassembler avec le nouveau nom :
    mdadm --assemble /dev/md0 --name md0 /dev/sdc2 /dev/sdd2 --update=name
    ou
    mdadm --assemble /dev/md1 --name md1 /dev/sda3 --update=name --run
  1. Lister les UUID pour notre "nouveau" RAID :
    lsblk -f
  1. Éditer le fichier "/etc/fstab" pour remplacer le vieil UUID par le nouveau, le cas échéant :
    vim /etc/fstab
        * Exemple :
            UUID=4fc3fafd-7c97-40de-a76f-bfc9409c4ade /boot           ext4    defaults        0       2
  1. Vérifier si le /boot est remonté et avec le nouveau nom :
    mount | grep boot
            /dev/md0 on /boot type ext4 (rw,relatime,data=ordered)  # <--- sortie à l'écran.
  1. Éditer le fichier "/etc/mdadm/mdadm.conf" pour remplacer les vieux paramètres avec les nouveaux, le cas échéant :
vim /etc/mdadm/mdadm.conf
  # Exemple :
      ARRAY /dev/md/md0  metadata=1.0 UUID=25d013b7:26624c25:40d246d0:ba7b7784 name=replica:md0
    # Vous pouvez également utiliser l'output de la commande :
        mdadm --detail --scan >> /etc/mdadm/mdadm.conf
    # Et supprimer les vieilles lignes dans mdadm.conf
  1. Regénérer un nouvel initrd :
    update-initramfs -u
  1. Mettre à jour grub :
    update-grub2