« Mdadm » : différence entre les versions
Ligne 61 : | Ligne 61 : | ||
=Remplacement d'un disque défectueux= | =Remplacement d'un disque défectueux= | ||
Si vous vous rendez-compte de vous même avant mdadm qu'un disque est entrain de lâcher (smart par exemple), il devient importer de le remplacer. La première étape est de le marquer comme défectueux dans la grappe raid, puis supprimer le disque de la grappe. Après remplacement, vous pourrez ajouter le nouveau disque à la grappe.<br> | Si vous vous rendez-compte de vous même avant mdadm qu'un disque est entrain de lâcher (après diagnostic smart par exemple), il devient importer de le remplacer. La première étape est de le marquer comme défectueux dans la grappe raid, puis supprimer le disque de la grappe. Après remplacement, vous pourrez ajouter le nouveau disque à la grappe.<br> | ||
Dans cet exemple nous avons une grappe raid md0 : | Dans cet exemple nous avons une grappe raid md0 : | ||
* /dev/sda1 + /dev/sdb1 = /dev/md0 | * /dev/sda1 + /dev/sdb1 = /dev/md0 | ||
Ligne 74 : | Ligne 74 : | ||
24419868 blocks [2/1] [UU] | 24419868 blocks [2/1] [UU] | ||
</pre> | </pre> | ||
Sauf que dans le cas présent, vous avez des raisons sérieuses de penser que le disque sdb est entrain de lacher, on va donc le remplacer. | |||
==Marquer un disque comme défectueux== | ==Marquer un disque comme défectueux== |
Version du 5 septembre 2020 à 10:48
Création d'un array raid1 avec 2 disques
Créez les partitions sur les différents disques et définissez le type de partition à fd
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
Si vous avez écrit des zero (disque mécanique) ou trim/blkdiscard (disque SSD), vous pouvez ajouter l'option --assume-clean
afin d'éviter la synchronisation initiale. Ne le faite pas si vous n'êtes pas sur de vous car un array non synchronisé peut avoir des conséquences très néfastes pour l'intégrité de votre array.
Ajoutez l'array fraîchement créé dans le fichier de configuration afin de conserver le nom (md0), puis régénérez l'initramfs :
mdadm --examine --scan >> /etc/mdadm/mdadm.conf update-initramfs -u
Si l'array raid contient la partition /boot
(ou la partition /
sans partition boot dédiée) :
update-grub grub-install /dev/sda grub-install /dev/sdb
Monitoring
Manuel
#$ cat /proc/mdstat Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb1[1] sda1[0] 9756672 blocks super 1.2 [2/2] [UU] unused devices: <none>
Le flag [UU]
montre que tout est OK. S'il y avait un problème sur un des disques nous verrions par exemple [_U]
ou [U_]
Vous pouvez avoir plus d'information avec cette commande :
mdadm --detail /dev/md0
Si vous lisez State : clean
tout va bien, si vous lisez State : clean, degraded
, c'est que l'un des disques pose problème. Vous pouvez identifier quel disque pose soucis grâce au statut tout en bas (active sync
, faulty
, spare
ou removed
)
Automatique
Assurez vous que le fichier /etc/default/mdadm
contienne bien :
AUTOCHECK=true START_DAEMON=true
Et définissez votre adresse mail dans /etc/mdadm/mdadm.conf
:
MAILADDR adress@domain.tld
Si vous avez modifié la configuration, relancez mdadm :
/etc/init.d/mdadm restart
Pour tester l'envoi d'une notification :
mdadm --monitor --scan --test --oneshot
Remplacement d'un disque défectueux
Si vous vous rendez-compte de vous même avant mdadm qu'un disque est entrain de lâcher (après diagnostic smart par exemple), il devient importer de le remplacer. La première étape est de le marquer comme défectueux dans la grappe raid, puis supprimer le disque de la grappe. Après remplacement, vous pourrez ajouter le nouveau disque à la grappe.
Dans cet exemple nous avons une grappe raid md0 :
- /dev/sda1 + /dev/sdb1 = /dev/md0
Sauf si mdadm a détecté de lui même le disque défectueux, la commande
cat /proc/mdstat
retournera :
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10] md0 : active raid1 sda1[0] sdb1[1] 24419868 blocks [2/1] [UU]
Sauf que dans le cas présent, vous avez des raisons sérieuses de penser que le disque sdb est entrain de lacher, on va donc le remplacer.
Marquer un disque comme défectueux
Pour marquer la partition sdb1 membre de la grappe raid md0 :
mdadm --manage /dev/md0 --fail /dev/sdb1
Une fois cela fait, la commande
cat /proc/mdstat
retournera :
Personalities : [linear] [multipath] [raid0] [raid1] [raid5] [raid4] [raid6] [raid10] md0 : active raid1 sda1[0] sdb1[1](F) 24419868 blocks [2/1] [U_]
Notez le passage du code [UU]
à [UU]
Supprimer un disque défectueux
Supprimez la partition sdb1 de la grappe raid md0 :
mdadm --manage /dev/md0 --remove /dev/sdb1
Changer le disque physique, puis partitionnez le à l'identique;
Puis réajoutez le nouveau disque à l'array :
mdadm --manage /dev/md0 --add /dev/sdb1
Pensez à mettre à jour /etc/mdadm/mdadm.conf avec le contenu de mdadm --examine --scan
Examiner les métadonnées
mdadm --examine /dev/sdb1
Cela vous permet, par exemple, de récupérer les informations d'une grappe si vous avez perdu le fichier /etc/mdadm/mdadm.conf.
Stoper un raid
mdadm --stop /dev/md0
Voir l'architecture des disques et partition
lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT