GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Ubuntu - Recupero Raid5 Provando con "mdadm -create... Missing"?

Innanzitutto come sono arrivato in questa situazione:

Avevo un array RAID5 con dischi ogni 2 TB (dischi USB esterni), quindi volevo creare un array crittografato più grande. Pertanto ho ottenuto 2 dischi aggiuntivi (anche 2 TB ciascuno) e il piano era di eseguire l'array originale in modalità degradata, impostare il nuovo array crittografato, copiare parte dei dati, quindi ridurre l'array originale a 2 dischi in modalità degradata, ingrandisci quello nuovo, copia il resto dei dati e infine ingrandiscilo a 7 dischi RAID5 non degradati. Ho eseguito l'intera procedura con /dev/loopX dispositivi da 2 GB ciascuno per verificare se il mio piano ha delle avvertenze.

Tutto è andato bene con l'array reale fino al punto in cui uno dei nuovi dischi si è guastato. Quando ho sostituito questo, l'ordine in cui i dischi vengono riconosciuti dal kernel è cambiato dopo il prossimo riavvio (/dev/sdb , /dev/sdc , … erano tutti dischi diversi rispetto a prima). Tutto è stato incasinato e non me ne sono reso conto fino a quando uno dei dischi non è stato risincronizzato come membro dell'array sbagliato. Risparmio i dettagli di questa storia e vado dritto al punto:

Ora ho un array crittografato, RAID5 a 3 dischi, degradato su /dev/sdc1 e /dev/sdd1 , perfettamente funzionante, tutti i dati lì e un file system sano secondo fsck -f .
Fin qui tutto bene.

L'intero problema è ora ridotto a 3 dischi:non riesco a far funzionare di nuovo questo array non crittografato. Sono abbastanza sicuro che i dati HAS essere presente su /dev/sdf1 , /dev/sdg1 , /dev/sdh1 , poiché si trattava di un array funzionante appena prima che UNO dei dischi potesse essere incasinato (è stato accidentalmente risincronizzato come membro dell'altro array crittografato, come detto prima). Quindi, uno di questi tre dischi potrebbe avere dati di array errati, ma quale? E due di loro devono essere buoni, ma come faccio a capirlo?

Ho provato ogni permutazione di mdadm --create … con /dev/sdf1 , /dev/sdg1 , /dev/sdh1 e "mancanti" come:

mdadm --create /dev/md0 --level=5 --raid-devices=3  /dev/sdf1 /dev/sdg1 missing

mdadm --create /dev/md0 --level=5 --raid-devices=3  /dev/sdf1 missing /dev/sdg1

...

e ovviamente controllato ogni volta con

fsck /dev/md0

che si è lamentato di un superblocco non valido.

Ogni volta che mdadm creava l'array, ma non c'era un file system leggibile, conteneva solo spazzatura, nessuna delle permutazioni utilizzate con mdadm alla fine funzionava.
Quindi la mia domanda ora è:quali opzioni ho ancora? Oltre a perdere i miei dati e ricostruire l'array da zero, ovviamente.

Qui alcune informazioni aggiuntive (tutti i dischi):

mdadm --examine /dev/sdb1
/dev/sdb1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : cfee26c0:414eee94:e470810c:17141589
           Name : merlin:0  (local to host merlin)
  Creation Time : Sun Oct 28 11:38:32 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)
     Array Size : 3906759680 (3725.78 GiB 4000.52 GB)
  Used Dev Size : 3906759680 (1862.89 GiB 2000.26 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : f4f0753e:56b8d6a5:84ec2ce8:dbc933f0

    Update Time : Sun Oct 28 11:38:32 2012
       Checksum : 60093b72 - correct
         Events : 0

         Layout : left-symmetric
     Chunk Size : 512K

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


mdadm --examine /dev/sdc1
/dev/sdc1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 5cb45bae:7a4843ba:4ad7dbfb:5c129d2a
           Name : merlin:1  (local to host merlin)
  Creation Time : Wed Sep 26 07:32:32 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)
     Array Size : 3905299456 (3724.38 GiB 3999.03 GB)
  Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 9e2f9ae6:6c95d05e:8d83970b:f1308de0

    Update Time : Fri Oct 26 03:26:37 2012
       Checksum : 79d4964b - correct
         Events : 220

         Layout : left-symmetric
     Chunk Size : 512K

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


mdadm --examine /dev/sdd1
/dev/sdd1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 5cb45bae:7a4843ba:4ad7dbfb:5c129d2a
           Name : merlin:1  (local to host merlin)
  Creation Time : Wed Sep 26 07:32:32 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)
     Array Size : 3905299456 (3724.38 GiB 3999.03 GB)
  Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 98b07c41:ff4bea98:2a765a6b:63d820e0

    Update Time : Fri Oct 26 03:26:37 2012
       Checksum : 6e2767e8 - correct
         Events : 220

         Layout : left-symmetric
     Chunk Size : 512K

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


mdadm --examine /dev/sde1
/dev/sde1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 6db9959d:3cdd4bc3:32a241ad:a9f37a0c
           Name : merlin:0  (local to host merlin)
  Creation Time : Sun Oct 28 12:12:59 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3905299943 (1862.19 GiB 1999.51 GB)
     Array Size : 3905299456 (3724.38 GiB 3999.03 GB)
  Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 677a4410:8931e239:2c789f83:e130e6f7

    Update Time : Sun Oct 28 12:12:59 2012
       Checksum : 98cb1950 - correct
         Events : 0

         Layout : left-symmetric
     Chunk Size : 512K

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


mdadm --examine /dev/sdf1
/dev/sdf1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 3700a0a6:3fadfd73:bc74b618:a5526767
           Name : merlin:0  (local to host merlin)
  Creation Time : Sun Oct 28 11:28:30 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3905392640 (1862.24 GiB 1999.56 GB)
     Array Size : 3905391616 (3724.47 GiB 3999.12 GB)
  Used Dev Size : 3905391616 (1862.24 GiB 1999.56 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 5a8a5423:10b7a542:26b5e2b3:f0887121

    Update Time : Sun Oct 28 11:28:30 2012
       Checksum : 8e90495f - correct
         Events : 0

         Layout : left-symmetric
     Chunk Size : 512K

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


mdadm --examine /dev/sdg1
/dev/sdg1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 202255c9:786f474d:ba928527:68425dd6
           Name : merlin:0  (local to host merlin)
  Creation Time : Sun Oct 28 11:24:36 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3905299943 (1862.19 GiB 1999.51 GB)
     Array Size : 3905299456 (3724.38 GiB 3999.03 GB)
  Used Dev Size : 3905299456 (1862.19 GiB 1999.51 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 4605c729:c290febb:92901971:9a3ed814

    Update Time : Sun Oct 28 11:24:36 2012
       Checksum : 38ba4d0a - correct
         Events : 0

         Layout : left-symmetric
     Chunk Size : 512K

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


mdadm --examine /dev/sdh1
/dev/sdh1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 682356f5:da2c442e:7bfc85f7:53aa9ea7
           Name : merlin:0  (local to host merlin)
  Creation Time : Sun Oct 28 12:13:44 2012
     Raid Level : raid5
   Raid Devices : 3

 Avail Dev Size : 3906761858 (1862.89 GiB 2000.26 GB)
     Array Size : 3906760704 (3725.78 GiB 4000.52 GB)
  Used Dev Size : 3906760704 (1862.89 GiB 2000.26 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
          State : clean
    Device UUID : 489943b3:d5e35022:f52c917a:9ca6ff2a

    Update Time : Sun Oct 28 12:13:44 2012
       Checksum : f6947a7d - correct
         Events : 0

         Layout : left-symmetric
     Chunk Size : 512K

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



cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md1 : active raid5 sdc1[0] sdd1[1]
      3905299456 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]

unused devices: <none>

Qualsiasi aiuto sarebbe molto apprezzato!

Correlati:perché rsync non consente dimensioni del blocco> 128K?

Risposta accettata:

Se hai appena perso un disco, dovresti sono stati in grado di recuperare da ciò utilizzando il molto più sicuro --assemble .

Hai eseguito create ora così tanto che tutti gli UUID sono diversi. sdc1 e sdd1 condividi un UUID (previsto, dato che è il tuo array di lavoro)... il resto i dischi condividono un nome, ma hanno tutti UUID diversi. Quindi suppongo che nessuno di questi sia i superblocchi originali. Peccato...

Correlati:Come installare e tenersi aggiornati con le versioni più recenti di Blender su Ubuntu??

Ad ogni modo, suppongo che tu stia tentando di utilizzare i dischi sbagliati o che tu stia cercando di utilizzare la dimensione del blocco sbagliata (l'impostazione predefinita è cambiata nel tempo, credo). Il tuo vecchio array potrebbe aver utilizzato anche una versione del superblocco diversa, che l'impostazione predefinita è decisamente cambiata, che potrebbe compensare tutti i settori (e anche distruggere alcuni dati). Infine, è possibile che tu stia utilizzando il layout sbagliato, anche se è meno probabile.

È anche possibile che l'array di test fosse di lettura-scrittura (dal punto di vista md) che tenta di utilizzare ext3 abbia effettivamente eseguito alcune scritture. Ad esempio, un replay del diario. Ma questo è solo se a un certo punto ha trovato un superblocco, credo.

A proposito:penso che dovresti davvero usare --assume-clean , anche se ovviamente un array degradato non tenterà di avviare la ricostruzione. Quindi probabilmente vorrai impostare immediatamente la sola lettura.


Ubuntu
  1. Installazione di mod_pagespeed con Apache su Ubuntu/CentOS

  2. Avvio molto lento con Ubuntu 15.04?

  3. Stai cercando di mettere Kik su Ubuntu 13.04?

  4. Problemi con lo scambio in Ubuntu 18.04?

  5. Ricostruisci l'array mdadm RAID5 con meno dischi

Installa Ubuntu 16.04 – Con screenshot

Gestione dei pacchetti Ubuntu con apt

Proteggi Ubuntu con ClamAV Antivirus

Installa Portainer con Docker su Ubuntu

Problemi con l'installazione di Ubuntu in Virtualbox?

Problemi con Libre Office in Ubuntu 13.04?