2 votes

Récupération d'une matrice RAID5 après la mise à zéro d'un superbloc erroné

J'ai une matrice raid5 sur 4 disques, sda1, sdb1, sdd1 et sde1. sdd1 a été retiré mais est un disque sain. En essayant de le réinsérer, j'ai accidentellement mis à zéro le superbloc de sdb1.

Les données de sdb1 sont cohérentes avec celles de sda1 et sde1, il lui manque juste son superbloc.

Est-il possible de récupérer le superbloc sur ce périphérique et de réassembler la matrice (dégradée) sans perdre de données ?

Voici le résultat de 'mdadm -E /dev/sd{a,d,e}1'.

Est-ce que je lis correctement le résultat en disant que sde1 est le dispositif 0, sdd1 est le dispositif 2 et sda1 est le dispositif 3 ? Dans ce cas, cela signifierait que sdb1 est le dispositif 1. Puis-je recréer le tableau avec la commande suivante sans perte de données ?

$ sudo mdadm --create /dev/md0 --assume-clean --level=5 --raid-devices=4 /dev/sde1 /dev/sdb1 missing /dev/sda1

/dev/sda1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 81a36846:cf4f0489:219e2546:b1f5b90e
           Name : cowbell:0
  Creation Time : Sun Sep 25 20:24:46 2011
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 3907025920 (1863.02 GiB 2000.40 GB)
     Array Size : 5860538880 (5589.05 GiB 6001.19 GB)
    Data Offset : 1024 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : a0abbc72:f8bb1e2b:e8f81f5c:ed62a979

Internal Bitmap : 8 sectors from superblock
    Update Time : Tue Jul 23 18:05:09 2013
       Checksum : 9f46a56 - correct
         Events : 717820

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 3
   Array State : AA.A ('A' == active, '.' == missing)
/dev/sdd1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 81a36846:cf4f0489:219e2546:b1f5b90e
           Name : cowbell:0
  Creation Time : Sun Sep 25 20:24:46 2011
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 3907027053 (1863.02 GiB 2000.40 GB)
     Array Size : 5860538880 (5589.05 GiB 6001.19 GB)
  Used Dev Size : 3907025920 (1863.02 GiB 2000.40 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
          State : active
    Device UUID : 79f5632d:46d5c083:a1c0130c:b83b0654

Internal Bitmap : 8 sectors from superblock
    Update Time : Tue Jul 23 17:42:02 2013
       Checksum : a78d6f5b - correct
         Events : 717392

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 2
   Array State : AAAA ('A' == active, '.' == missing)
/dev/sde1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 81a36846:cf4f0489:219e2546:b1f5b90e
           Name : cowbell:0
  Creation Time : Sun Sep 25 20:24:46 2011
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 3907027053 (1863.02 GiB 2000.40 GB)
     Array Size : 5860538880 (5589.05 GiB 6001.19 GB)
  Used Dev Size : 3907025920 (1863.02 GiB 2000.40 GB)
    Data Offset : 2048 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 6abd9160:c8ae382c:e6c73d01:37ac057b

Internal Bitmap : 8 sectors from superblock
    Update Time : Tue Jul 23 18:05:09 2013
       Checksum : 9f5d8fa6 - correct
         Events : 717820

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 0
   Array State : AA.A ('A' == active, '.' == missing)

0 votes

Avant de faire quoi que ce soit, avez-vous fait une sauvegarde ?

0 votes

J'ai une sauvegarde des choses importantes, oui. Il y a un tas de choses que je préférerais ne pas perdre, mais ce ne serait pas la fin du monde si c'était le cas.

2voto

Shane Madden Points 112034

En plus des sauvegardes, vous pouvez également envisager de faire des sauvegardes complètes. dd des copies des disques avant de tenter toute récupération.

Ceci étant dit, il semble que vous soyez sur la bonne voie pour une récupération sans perte de données. Vous interprétez correctement le numéro de l'appareil. Cette commande semble être ce dont vous avez besoin.

Voir ma réponse aquí - Ces dispositifs sont étonnamment résistants à la perte de données, et la destruction du superbloc n'est pas préjudiciable à la capacité de reconstruire le tableau dans la même géométrie (voir le test 4 dans cette réponse).

0 votes

Ok, donc j'ai exécuté la commande ci-dessus et le tableau a démarré, mais quand j'ai essayé de le monter, j'ai eu le message "wrong fs type, bad option, bad superblock on /dev/md0...". J'ai créé le tableau selon les résultats ci-dessus, donc je ne suis pas sûr de ce que j'ai fait de mal. Je ne me souviens pas d'avoir modifié les valeurs par défaut comme la taille des morceaux ou autre, alors qu'est-ce qui pourrait ne pas fonctionner ?

0 votes

@JustinMiller Oui, la disposition symétrique à gauche et les tailles de morceaux de 512k sont des valeurs par défaut, donc cela devrait correspondre à votre construction initiale. Peut-être que vous pouvez jeter un coup d'oeil à certains des travaux d'expertise qu'Anton a fait dans cette réponse et comparez ce que vous voyez sur votre système ?

0 votes

WOOOOOO ! Je l'ai monté et toutes mes données sont là ! Il s'avère que la commande ci-dessus était correcte, les superblocs avaient juste les mauvais décalages de données. Heureusement j'avais le 'mdadm -E' de tous les disques sauf un et heureusement il n'a fallu que 2 essais avant d'obtenir le bon pour sdb1 (c'était le même qu'un des autres disques ajoutés en même temps). Je vais écrire des chansons sur vous et Anton ! !! Sérieusement, les informations que vous avez postées tous les deux devraient figurer sur un blog consacré à la récupération RAID avancée. Inestimable.

0voto

dsmsk80 Points 5707

J'essaierais d'abord de vérifier que les disques physiques sous-jacents sont synchronisés avant de continuer à recréer le périphérique MD en supposant qu'il est propre. Vous pouvez le faire avec

mdadm -E /dev/sd[abc]1 | grep Event
Events : 0.53120
Events : 0.53108
Events : 0.53120

La sortie montre que sda et sdc sont synchronisés alors que sdc est en retard.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X