Re: Fwd: issues rebuilding raid array.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



----- Message from sredfern@xxxxxxxxx ---------
    Date: Mon, 22 Oct 2007 21:46:08 +1000
    From: Sam Redfern <sredfern@xxxxxxxxx>
Reply-To: Sam Redfern <sredfern@xxxxxxxxx>
 Subject: Fwd: issues rebuilding raid array.
      To: linux-raid@xxxxxxxxxxxxxxx


The array was build using 2.6.18-7 Now i'm using  2.6.21-2

I'm trying to recreate the raid array with the following command and
this is the error I get:

mca4:~# mdadm -Av /dev/md1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
/dev/sdf /dev/sdg
mdadm: looking for devices for /dev/md1
mdadm: no RAID superblock on /dev/sdc
mdadm: /dev/sdc has no superblock - assembly aborted

So I figure, oh look the disk sdc has gone cactus, I'll just remove it
from the list. One of the advantages of mdadm.

mca4:~# mdadm -Av /dev/md1 /dev/sdb /dev/sdd /dev/sde /dev/sdf /dev/sdg
mdadm: looking for devices for /dev/md1
mdadm: /dev/sdb is identified as a member of /dev/md1, slot -1.
mdadm: /dev/sdd is identified as a member of /dev/md1, slot 0.
mdadm: /dev/sde is identified as a member of /dev/md1, slot 1.
mdadm: /dev/sdf is identified as a member of /dev/md1, slot 5.
mdadm: /dev/sdg is identified as a member of /dev/md1, slot 4.
mdadm: added /dev/sde to /dev/md1 as 1
mdadm: no uptodate device for slot 2 of /dev/md1
mdadm: no uptodate device for slot 3 of /dev/md1
mdadm: added /dev/sdg to /dev/md1 as 4
mdadm: added /dev/sdf to /dev/md1 as 5
mdadm: failed to add /dev/sdb to /dev/md1: Invalid argument
mdadm: added /dev/sdd to /dev/md1 as 0
mdadm: /dev/md1 assembled from 4 drives - not enough to start the array.

If found this really difficult to understand considering that I can
get the output of mdamd -E /dev/sdb (other disks included to overload
you with information)

mdadm -E /dev/sd[b-h]

/dev/sdb:
          Magic : a92b4efc
        Version : 00.90.00
           UUID : 4e3b82e1:f5604e19:a9c9775f:49745adf
  Creation Time : Fri Oct  5 09:18:25 2007
     Raid Level : raid5
    Device Size : 312571136 (298.09 GiB 320.07 GB)
     Array Size : 1562855680 (1490.46 GiB 1600.36 GB)
   Raid Devices : 6
  Total Devices : 6
Preferred Minor : 1

    Update Time : Tue Oct 16 20:03:13 2007
          State : clean
 Active Devices : 6
Working Devices : 6
 Failed Devices : 0
  Spare Devices : 0
       Checksum : 80d47486 - correct
         Events : 0.623738

         Layout : left-symmetric
     Chunk Size : 64K

      Number   Major   Minor   RaidDevice State
this     6       8       16       -1      spare   /dev/sdb

   0     0       8       80        0      active sync   /dev/sdf
   1     1       8      128        1      active sync   /dev/.static/dev/sdi
   2     2       8      144        2      active sync   /dev/.static/dev/sdj
   3     3       8       16        3      active sync   /dev/sdb
   4     4       8       64        4      active sync   /dev/sde
   5     5       8       96        5      active sync   /dev/sdg


If anyone could offer a solution I'd be forever grateful, also to
prove that supporting open source isn't all free labour I'll send you
can choose one of 1 of 2 Nintendo DS games, the new radiohead album or
a cree flash light. :)


----- End message from sredfern@xxxxxxxxx -----

Hey, this looks similar to what I recently had. (http://www.mail-archive.com/linux-raid@xxxxxxxxxxxxxxx/msg09306.html) I my case a RAID5 reshape was interrupted and the new devices were also marked spare with slot -1.
Apply the attached patch to mdadm-2.6.3, build then do:
 mdadm -S /dev/md1
 ./mdadm -Av /dev/md1 --update=this /dev/sd[b-g]
That should update the slot on /dev/sdb. Then:
 mdadm -S /dev/md1
 ./mdadm -Av /dev/md1 /dev/sd[bcdefg]

should bring back your array in degraded mode.
If it works send your gifts to Neil Brown <neilb@xxxxxxx>, he wrote the patch! :)
Good luck!


========================================================================
#    _  __          _ __     http://www.nagilum.org/ \n icq://69646724 #
#   / |/ /__ ____ _(_) /_ ____ _  nagilum@xxxxxxxxxxx \n +491776461165 #
#  /    / _ `/ _ `/ / / // /  ' \  Amiga (68k/PPC): AOS/NetBSD/Linux   #
# /_/|_/\_,_/\_, /_/_/\_,_/_/_/_/   Mac (PPC): MacOS-X / NetBSD /Linux #
#           /___/     x86: FreeBSD/Linux/Solaris/Win2k  ARM9: EPOC EV6 #
========================================================================


----------------------------------------------------------------
cakebox.homeunix.net - all the machine one needs..

diff --git a/Grow.c b/Grow.c
index 825747e..8ad1537 100644
--- a/Grow.c
+++ b/Grow.c
@@ -978,5 +978,5 @@ int Grow_restart(struct supertype *st, struct mdinfo *info, int *fdlist, int cnt
 		/* And we are done! */
 		return 0;
 	}
-	return 1;
+	return 0;
 }
diff --git a/mdadm.c b/mdadm.c
index 40fdccf..7e7e803 100644
--- a/mdadm.c
+++ b/mdadm.c
@@ -584,6 +584,8 @@ int main(int argc, char *argv[])
 				exit(2);
 			}
 			update = optarg;
+			if (strcmp(update, "this")==0) 
+				continue;
 			if (strcmp(update, "sparc2.2")==0) 
 				continue;
 			if (strcmp(update, "super-minor") == 0)
diff --git a/super0.c b/super0.c
index 0396c2c..e33e623 100644
--- a/super0.c
+++ b/super0.c
@@ -394,6 +394,21 @@ static int update_super0(struct mdinfo *info, void *sbv, char *update,
 			fprintf (stderr, Name ": adjusting superblock of %s for 2.2/sparc compatability.\n",
 				 devname);
 	}
+	if (strcmp(update, "this") == 0) {
+		/* to fix a particular corrupt superblock.
+		*/
+		int i;
+		for (i=0; i<10; i++)
+			if (sb->disks[i].major == sb->this_disk.major &&
+			    sb->disks[i].minor == sb->this_disk.minor) {
+				if (sb->this_disk.number == sb->disks[i].number)
+					break;
+				fprintf(stderr, Name ": Setting this disk from %d to %d\n",
+					sb->this_disk.number, sb->disks[i].number);
+				sb->this_disk = sb->disks[i];
+				break;
+			}
+	}
 	if (strcmp(update, "super-minor") ==0) {
 		sb->md_minor = info->array.md_minor;
 		if (verbose > 0)

Attachment: pgpMDZTMAzT0A.pgp
Description: PGP Digital Signature


[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux