J'ai ma partition / boot dans une matrice RAID 1 utilisant mdadm. Cette matrice s'est dégradée plusieurs fois dans le passé, et chaque fois que je supprime le disque physique, en ajoute une nouvelle, ramène la matrice à la normale, elle utilise une nouvelle lettre de lecteur. Laisser l'ancien toujours dans le tableau et a échoué. Je n'arrive pas à supprimer tous ces composants qui n'existent plus.
[root@xxx ~]# cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdg1[10] sde1[8](F) sdb1[7](F) sdd1[6](F) sda1[4] sdc1[5]
358336 blocks super 1.0 [4/3] [UUU_]
Voici ce que j'ai essayé de supprimer les disques et partitions inexistants. Par exemple /dev/sdb1
,.
[root@xxx ~]# mdadm /dev/md0 -r /dev/sdb1
mdadm: Cannot find /dev/sdb1: No such file or directory
[root@xxx ~]# mdadm /dev/md0 -r faulty
mdadm: Cannot find 8:49: No such file or directory
[root@xxx ~]# mdadm /dev/md0 -r detached
mdadm: Cannot find 8:49: No such file or directory
Ce que 8:49
je crois fait référence au nombre majeur et mineur montre --detail
, mais je ne suis pas tout à fait sûr où aller d'ici. J'essaie d'éviter un redémarrage ou un redémarrage de mdadm.
[root@xxx ~]# mdadm --detail /dev/md0
/dev/md0:
Version : 1.0
Creation Time : Thu Aug 8 18:07:35 2013
Raid Level : raid1
Array Size : 358336 (350.00 MiB 366.94 MB)
Used Dev Size : 358336 (350.00 MiB 366.94 MB)
Raid Devices : 4
Total Devices : 6
Persistence : Superblock is persistent
Update Time : Sat Apr 18 16:44:20 2015
State : clean, degraded
Active Devices : 3
Working Devices : 3
Failed Devices : 3
Spare Devices : 0
Name : xxx.xxxxx.xxx:0 (local to host xxx.xxxxx.xxx)
UUID : 991eecd2:5662b800:34ba96a4:2039d40a
Events : 694
Number Major Minor RaidDevice State
4 8 1 0 active sync /dev/sda1
10 8 97 1 active sync /dev/sdg1
5 8 33 2 active sync /dev/sdc1
6 0 0 6 removed
6 8 49 - faulty
7 8 17 - faulty
8 8 65 - faulty
Remarque: la baie est légitimement dégradée en ce moment et je reçois un nouveau disque là-dedans alors que nous parlons. Cependant, comme vous pouvez le voir ci-dessus, cela ne devrait pas avoir d'importance. Je devrais toujours être en mesure de supprimer /dev/sdb1
de ce tableau.
Réponses:
C'est parce que les nœuds de périphériques n'existent plus sur votre système (probablement udev les a supprimés lorsque le lecteur est mort). Vous devriez pouvoir les supprimer en utilisant le mot-clé
failed
ou à ladetached
place:Si votre version de mdadm est trop ancienne pour cela, vous pourrez peut-être la faire fonctionner en faisant en sorte
mknod
que le périphérique existe à nouveau. Ou, honnêtement, ignorez-le simplement - ce n'est pas vraiment un problème et devrait disparaître au prochain redémarrage.la source
mknod
. Ouais, ce n'est probablement pas un problème, mais je suis TOC, lol.Ce que j'ai fini par utiliser, c'était
mknod
comme @derobert a suggéré de créer les appareils que jemdadm
cherchais. J'ai essayé les nombres majeurs / mineurs que mdadm me disait qu'il ne pouvait pas trouver avec les différentes lettres de lecteur que j'essayais de supprimer jusqu'à ce que cela fonctionne.Ensuite, j'ai dû utiliser l'
--force
option pour le faire supprimer le composant.Ensuite, j'ai supprimé ce périphérique de bloc créé.
la source
mdadm
continué à dire: "périphérique ou ressource occupé", mais cela m'a fait essayer de le nourrir non pas avec un faux périphérique de bloc, mais avec un "vrai" périphérique de bloc tel qu'une image montée en boucle. À ce stade, j'ai découvert que j'avais un éventé/dev/loop
qui utilisait toujours un fichier sur la baie dégradée. Je l'ai détaché et finalementmdadm
j'ai laissé arrêter le tableau. Horay! Pour tous ceux qui lisent ceci, il y a toujours une explication logique pourmdadm
être si saccadé, alors recherchez un processus périmé / fichier / gestionnaire mountpoint / nfs / open bash / périphérique de bouclage / etc. toujours en utilisant le tableau dégradé. :)Vous pouvez également corriger simplement en dégraissant le nombre de disques dans le tableau:
Dans mon cas, j'ai un tableau raid-1
/dev/md0
avec/dev/sda1
et "supprimé". Je l'ai simplement réduit pour n'utiliser qu'un seul lecteur:Après cela, la suppression a vraiment été supprimée (plus aucune ligne supprimée
mdadm --detail
)la source