Je fais face à un bug vraiment ennuyeux, j'ai configuré un logiciel RAID1 avec mdadm, et la configuration s'est bien déroulée avec ces résultats
/dev/md/lucas.mgscreativa.com.ar:0
J'ai aussi configuré mdadm.conf comme ceci
DEVICE /dev/sda /dev/sdb
# auto-create devices with Debian standard permissions CREATE owner=root group=disk mode=0660 auto=yes
# automatically tag new arrays as belonging to the local system HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts MAILADDR root
# definitions of existing MD arrays ARRAY /dev/md/lucas.mgscreativa.com.ar:0 metadata=1.2
name=lucas.mgscreativa.com.ar:0
UUID=c913486a:e62c7ea1:cfb98b6b:253d1f62
Et fstab configuré comme ça
/dev/md/lucas.mgscreativa.com.ar:0 /media/data ext4
defaults,noatime 0 0
Mais, un jour, le nom de mon tableau est soudainement passé de /dev/md/lucas.mgscreativa.com.ar:0 à/dev/md0. J’ai donc fait quelques changements dans fstab et mdadm.conf (bien sûr, après des heures et des heures d’essai et d’erreur) et tout s’est bien passé, mais aujourd’hui, le numéro de MD est passé de/dev/md0 à/dev/md127 !!!
Que se passe t-il ici? est-ce un bug je suppose.
Existe-t-il un moyen de corriger le numéro MD afin que mon serveur puisse fonctionner comme il se doit, sans aucun défaut?
Merci!
Premièrement: vous avez probablement des erreurs dans votre tableau. Vous devez vérifier son statut, immédiatement.
Exemple:
root@locutus:~# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Fri Jun 1 15:30:31 2012
Raid Level : raid10
Array Size : 1953119232 (1862.64 GiB 1999.99 GB)
Used Dev Size : 976559616 (931.32 GiB 1000.00 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Sun Nov 25 21:39:44 2012
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Name : locutus:0 (local to Host locutus)
UUID : b81ac63a:51a9b01c:c01812ec:86c534c4
Events : 182
Number Major Minor RaidDevice State
0 8 1 0 active sync /dev/sda1
1 8 49 1 active sync /dev/sdd1
2 8 17 2 active sync /dev/sdb1
3 8 33 3 active sync /dev/sdc1
Vous constaterez très probablement que vous avez des erreurs… celles-ci devront être corrigées.
Pour continuer, vous devriez changer la manière dont votre fstab est configuré, utiliser UUID plutôt que devicename. Utilisez la commande blkid
sur votre tableau (ou une partition sous votre tableau) pour obtenir son UUID, puis utilisez cet UUID pour le monter dans/etc/fstab.
Exemple:
root@locutus:~# blkid /dev/mapper/vg0-root
/dev/mapper/vg0-root: UUID="61998221-7b39-49cd-83f7-62fda973218c" TYPE="ext4"
Avec ces informations, je définirais mon entrée/etc/fstab pour que root ressemble à ceci:
UUID=61998221-7b39-49cd-83f7-62fda973218c / ext4 defaults,errors=remount-ro 0 1
Une fois cette opération effectuée, votre système trouvera vos partitions, que leur nom de périphérique soit modifié ou non (par exemple, si les câbles de lecteur sont intervertis).
Vous devez également configurer votre /etc/mdadm/mdadm.conf
pour rechercher automatiquement les éléments sans qu'il soit nécessaire de placer un lecteur dans un emplacement particulier:
# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
# by default (built-in), scan all partitions (/proc/partitions) and all
# containers for MD superblocks. alternatively, specify devices to scan, using
# wildcards if desired.
#DEVICE partitions containers
# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes
# automatically tag new arrays as belonging to the local system
HOMEHOST <system>
# instruct the monitoring daemon where to send mail alerts
MAILADDR root
# definitions of existing MD arrays
ARRAY /dev/md/0 metadata=1.2 UUID=c913486a:e62c7ea1:cfb98b6b:253d1f62 name=lucas.mgscreativa.com.ar:0
NOTE QU'IL N'Y A AUCUN DISPOSITIF DÉCRIT DANS CE FICHIER DE CONF. Ceci est une fonctionnalité, pas un bogue. Avec mdadm.conf configuré de cette manière, votre système analysera automatiquement tous les lecteurs attachés à la recherche de tout ce qui appartient à votre tableau et les assemblera tous sous le nom/dev/md0.
Pour cette réponse, je suppose que la matrice est intacte - pas de disques en panne, pas d'autres conditions d'erreur, juste le "numéro de périphérique" changeant.
Ce qui devrait normalement fonctionner est d’arrêter le tableau:
# mdadm --verbose --misc --stop /dev/md127
... corrige la ligne se rapportant à la matrice dans /etc/mdadm/mdadm.conf
(c'est-à-dire ajuste le nom du périphérique). Puis assemblez-le comme suit:
# mdadm --verbose --assemble --update=super-minor --run /dev/md0 /dev/sdaX /dev/sdbX
(ajustez les références aux périphériques physiques à votre cas).
Vous devriez voir une sortie comme celle-ci:
mdadm: looking for devices for /dev/md0
mdadm: updating superblock of /dev/sdaX with minor number 0
mdadm: /dev/sdaX is identified as a member of /dev/md0, slot 0.
mdadm: updating superblock of /dev/sdbX with minor number 0
mdadm: /dev/sdbX is identified as a member of /dev/md0, slot 1.
mdadm: added /dev/sdbX to /dev/md0 as 1
mdadm: added /dev/sdaX to /dev/md0 as 0
mdadm: /dev/md0 has been started with 2 drives.
Et si vous interrogez les détails, vous devriez voir un champ "Preferred Minor" mis à jour. Vérifier avec:
# mdadm -Q -D /dev/md0|grep "Preferred"
Preferred Minor : 0
Mises en garde: veillez également à monter le périphérique et à y écrire. Sinon, le changement pourrait ne pas prendre effet. De plus, super-minor
semble être spécifique à l'ancien format de métadonnées.
NB: Je ne sais pas si cela peut affecter le "nom" dans le sens original. Je sais que vous pouvez toutefois affecter la X
dans les noms /dev/mdX
créés.