All of lore.kernel.org
 help / color / mirror / Atom feed
From: Asdo <asdo@shiftmail.org>
To: linux-raid <linux-raid@vger.kernel.org>
Subject: Re: Safely swapping a disk in a RAID456
Date: Sat, 01 Oct 2011 12:32:07 +0200	[thread overview]
Message-ID: <4E86EC27.7020806@shiftmail.org> (raw)
In-Reply-To: <4E860435.5040902@yuiop.co.uk>

On 09/30/11 20:02, John Robinson wrote:
>
> Not yet, but it's in the roadmap as a hot-replace. In the mean time, 
> you can do something very similar by hand with almost no lost of 
> redundancy, if your RAID456 has a bitmap.
> ...
>
> I'd be glad to hear of any "real" RAID card that made it easier, or 
> even possible.
>
> Something along the lines of:
>
> # briefly remove your disc from the array
> mdadm --manage /dev/md_raid456 --remove /dev/the_disc_i_want_to_remove
> # make a temp raid1 with only the one disc, using build so metadata is
> # only in RAM and nothing is written to the disc
> mdadm --build /dev/md_temp_raid1 --level 1 
> /dev/the_disc_i_want_to_remove missing
> # now re-add something which looks identical to your original disc,
> # but is actually a single-sided mirror, back into the array
> # the above can all be done very quickly so your raid456 only runs
> # without a drive for seconds
> mdadm --manage /dev/md_raid456 --re-add /dev/md_temp_raid1
> # now get md to make a mirror (copy) to the new disc
> mdadm --manage /dev/md_temp_raid1 --add /dev/the_new_disc
> # wait for it to finish, or just wait for it yourself
> mdadm --wait /dev/md_temp_raid1
> # and switch back again: remove the temporary raid1
> mdadm --manage /dev/md_raid456 --remove /dev/md_temp_raid1
> # stop it so the new disc becomes available again
> mdadm --stop /dev/md_temp_raid1
> # and put the new disc which is now a complete copy of the old one
> # back in to the array
> mdadm --manage /dev/md_raid456 --re-add /dev/the_new_disc
> # and you're done

Very good, but...

> This is all fine if your old disc has no faulty sectors. If it does 
> have, you need more help from someone much more clued-up than me 
> (because it is already possible to do partial rebuilds by manipulating 
> /sys), 

This is the problem. And if you want to replace a drive, it's probably 
because it has bad sectors.

I think that during raid1 device-add (which automatically initiates 
rebuild of raid1), the raid1 would go down completely as soon as it hits 
bad sectors.

So you wouldn't be in a position to use rebuilds by /sys "afterwards", 
because there is no "afterwards".

For this to work, somebody would need to implement the bad block list 
also on the legacy array without metadata (--build), so that the raid1 
would stay up even on bad reads during its rebuild. Actually I don't 
know if Neil implemented that or not, I have not tested bad blocks list 
yet, I am intuitively assuming that he improved only the last version of 
the arrays, that is 1.x .

> or mdadm's roadmap feature of hot-replace, which will do the above and 
> also automatically perform partial rebuilds from the rest of the array 
> when the old disc has bad sectors.

the hot-replace is the most wanted feature as of now.

      parent reply	other threads:[~2011-10-01 10:32 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-30 15:42 Safely swapping a disk in a RAID456 martin f krafft
2011-09-30 16:06 ` Rudy Zijlstra
2011-09-30 17:07   ` Andre Noll
2011-09-30 16:28 ` Andre Noll
2011-10-01 14:53   ` David Brown
2011-10-01 15:51     ` Andre Noll
2011-09-30 18:02 ` John Robinson
2011-10-01  3:38   ` Danny Rawlins
2011-10-01 10:32   ` Asdo [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4E86EC27.7020806@shiftmail.org \
    --to=asdo@shiftmail.org \
    --cc=linux-raid@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.