Thread (11 messages) 11 messages, 3 authors, 2007-04-27

Re: Multiple disk failure, but slot numbers are corrupt and preventing assembly.

From: David Greaves <hidden>
Date: 2007-04-23 17:55:15

There is some odd stuff in there:

/dev/sda1:
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Events : 0.115909229

/dev/sdb1:
Active Devices : 5
Working Devices : 4
Failed Devices : 1
Events : 0.115909230

/dev/sdc1:
Active Devices : 8
Working Devices : 8
Failed Devices : 1
Events : 0.115909230

/dev/sdd1:
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Events : 0.115909230

but your event counts are consistent. It looks like corruption on 2 disks :(
Or did you try some things?

I think you'll need to recreate the array since assemble can't figure things out.

Since you mention SMART errors on /dev/sdb you are taking a big chance by trying
to start up the array with a known faulty disk - especially if you resync as
it's a very IO intensive operation that will read every sector of the bad disk
and is likely to trigger errors that will kick it again leaving you back where
you started (or worse).

If you are desperate for data recovery and you have the space then you should
take disk images using ddrescue *before* trying anything.

Next best is if you are buying new disks and can wait for them to arrive, do so.
You can then use ddrescue to copy the old disk to the new ones and work with
non-broken hardware.

If you have no choice....

From this point forward it will be very easy to mess up.


Once you have disks to work on you can try to recreate the array.

You were using 0.9 superblocks, 64k, left symmetric which are defaults.

You should re-create in degraded mode to prevent the sync from starting (if you
got the order wrong then it would get the parity calc wrong).

So:
mdadm --create /dev/md0 --force -l5 -n4 /dev/sda1 /dev/sdb1 missing /dev/sdc1

Then do a *readonly* fsck on the /dev/md0.

If it works you can try a backup or an fsck.

Ask if anything isn't clear.

David
PS I recovered from a 2-disk failure last night. Seems to be back up and
re-syncing :) Glad I had a spare disk around!

Leon Woestenberg wrote:
Hello,

it's recovery time again. Problem at hand: raid5 consisting of four
partitions, each on a drive. Two disks have failed. Assembly fails
because the slot numbers of the array components seem to be corrupt.

/dev/md0 consisting of /dev/sd[abcd]1, of which b,c failed and of
which c seems really bad in SMART, b looks reasonably OK judging from
SMART.

Checksum of the failed component superblocks was bad.

Using mdadm.conf we have already tried updating the superblocks. This
partly succeeded in the sense that checksums came up ok, the slot
numbers did not.

mdadm refuses to assemble, even with --force.

Could you guys peek over the array configuration (mdadm --examine) and
see if there is a non-destructive way to try and mount the array. If
not, what is the least intrusive way to do a non-syncing (re)create?

Data recovery is our prime concern here.

Below the uname -a, --examine output of all four drives, mdadm.conf of
what we think the array should look like and finally, the mdadm
--assemble command and output.

Note the slot numbers on /dev/sd[bc].

Thanks for any help,

with kind regards,

Leon Woestenberg




Linux localhost 2.6.16.14-axon1 #1 SMP PREEMPT Mon May 8 17:01:33 CEST
2006 i486 pentium4 i386 GNU/Linux

[root@localhost ~]# mdadm --examine /dev/sda1
/dev/sda1:
         Magic : a92b4efc
       Version : 00.90.00
          UUID : 51a95144:00af4c77:c1cd173b:94cb1446
 Creation Time : Mon Sep  5 13:16:42 2005
    Raid Level : raid5
   Device Size : 390620352 (372.52 GiB 400.00 GB)
  Raid Devices : 4
 Total Devices : 4
Preferred Minor : 0

   Update Time : Tue Apr 17 07:03:46 2007
         State : active
Active Devices : 4
Working Devices : 4
Failed Devices : 0
 Spare Devices : 0
      Checksum : f98ed71b - correct
        Events : 0.115909229

        Layout : left-symmetric
    Chunk Size : 64K

     Number   Major   Minor   RaidDevice State
this     0       8        1        0      active sync   /dev/sda1

  0     0       8        1        0      active sync   /dev/sda1
  1     1       8       17        1      active sync   /dev/sdb1
  2     2       8       33        2      active sync   /dev/sdc1
  3     3       8       49        3      active sync   /dev/sdd1
[root@localhost ~]# mdadm --examine /dev/sdb1
/dev/sdb1:
         Magic : a92b4efc
       Version : 00.90.00
          UUID : 51a95144:00af4c77:c1cd173b:94cb1446
 Creation Time : Mon Sep  5 13:16:42 2005
    Raid Level : raid5
   Device Size : 390620352 (372.52 GiB 400.00 GB)
  Raid Devices : 4
 Total Devices : 5
Preferred Minor : 0

   Update Time : Tue Apr 17 07:03:46 2007
         State : clean
Active Devices : 5
Working Devices : 4
Failed Devices : 1
 Spare Devices : 0
      Checksum : e6d35288 - correct
        Events : 0.115909230

        Layout : left-symmetric
    Chunk Size : 64K

     Number   Major   Minor   RaidDevice State
this -11221199   -1288577935    -1551230943    2035285809      faulty
active removed

  0     0       8        1        0      active sync   /dev/sda1
  1     1       8       17        1      active sync   /dev/sdb1
  2     2       8       33        2      active sync   /dev/sdc1
  3     3       8       49        3      active sync   /dev/sdd1
[root@localhost ~]# mdadm --examine /dev/sdc1
/dev/sdc1:
         Magic : a92b4efc
       Version : 00.90.00
          UUID : 51a95144:00af4c77:c1cd173b:94cb1446
 Creation Time : Mon Sep  5 13:16:42 2005
    Raid Level : raid5
   Device Size : 390620352 (372.52 GiB 400.00 GB)
  Raid Devices : 4
 Total Devices : 9
Preferred Minor : 0

   Update Time : Tue Apr 17 07:03:46 2007
         State : clean
Active Devices : 8
Working Devices : 8
Failed Devices : 1
 Spare Devices : 0
      Checksum : 33e911c - correct
        Events : 0.115909230

        Layout : left-symmetric
    Chunk Size : 64K

     Number   Major   Minor   RaidDevice State
this 1038288281   293191225    29538921    -2128142983      faulty
active write-mostly

  0     0       8        1        0      active sync   /dev/sda1
  1     1       8       17        1      active sync   /dev/sdb1
  2     2       8       33        2      active sync   /dev/sdc1
  3     3       8       49        3      active sync   /dev/sdd1
[root@localhost ~]# mdadm --examine /dev/sdd1
/dev/sdd1:
         Magic : a92b4efc
       Version : 00.90.00
          UUID : 51a95144:00af4c77:c1cd173b:94cb1446
 Creation Time : Mon Sep  5 13:16:42 2005
    Raid Level : raid5
   Device Size : 390620352 (372.52 GiB 400.00 GB)
  Raid Devices : 4
 Total Devices : 4
Preferred Minor : 0

   Update Time : Tue Apr 17 07:03:46 2007
         State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
 Spare Devices : 0
      Checksum : 7779c2 - correct
        Events : 0.115909230

        Layout : left-symmetric
    Chunk Size : 64K

     Number   Major   Minor   RaidDevice State
this     3       8       49        3      active sync   /dev/sdd1

  0     0       8        1        0      active sync   /dev/sda1
  1     1       8       17        1      active sync   /dev/sdb1
  2     2       8       33        2      active sync   /dev/sdc1
  3     3       8       49        3      active sync   /dev/sdd1
[root@localhost ~]#

[root@localhost ~]# cat /tmp/mdadm.conf
DEVICE /dev/sda1 /dev/sdb1/ /dev/sdc1 /dev/sdd1
ARRAY /dev/md0 devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1

[root@localhost ~]# mdadm -v --assemble --scan --config=/tmp/mdadm.conf
--force
mdadm: looking for devices for /dev/md0
mdadm: /dev/sda1 is identified as a member of /dev/md0, slot 0.
mdadm: /dev/sdb1 is identified as a member of /dev/md0, slot 2035285809.
mdadm: /dev/sdc1 is identified as a member of /dev/md0, slot -2128142983.
mdadm: /dev/sdd1 is identified as a member of /dev/md0, slot 3.
mdadm: no uptodate device for slot 1 of /dev/md0
mdadm: no uptodate device for slot 2 of /dev/md0
mdadm: added /dev/sdd1 to /dev/md0 as 3
mdadm: added /dev/sda1 to /dev/md0 as 0
mdadm: /dev/md0 assembled from 2 drives - not enough to start the array.


  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help