From: Ben Bucksch <linux.news@bucksch.org>
To: linux-raid@vger.kernel.org
Cc: Maarten <maarten@ultratux.net>
Subject: Re: md RAID5: Disk wrongly marked "spare", need to force re-add it
Date: Sat, 20 Apr 2013 03:26:43 +0200 [thread overview]
Message-ID: <5171EED3.8030505@bucksch.org> (raw)
In-Reply-To: <5171CB91.1040708@bucksch.org>
linux.news@bucksch.org wrote, On 20.04.2013 00:56:
> Maarten wrote, On 18.04.2013 15:58:
>> On 18/04/13 15:17, Ben Bucksch wrote:
>>> To re-summarize (for full info, see first post of thread):
>>> * There are 2 RAID5 arrays in the machine, each have 8 disks.
>>> * I upgraded Ubuntu 10.04 to 12.04.
>>> * After reboot, both arrays had each ejected one disk.
>>> The ejected disks are working fine (at least now).
>>> * During the resync mandated by above ejection,
>>> one other drive failed, this one fatally with a real hardware
>>> failure.
>>> * The second array resynced fine, further proving that the
>>> disks ejected during upgrade were working.
>>> * Now I am left with: originally 8-disk RAID5, 6 disks are healthy,
>>> 1 disk with hardware failure, and 1 disk that was ejected, but is
>>> working.
>>> * The latter is currently marked "spare" by md and has an event count
>>> (only) 2 events lower than the other 6 disks.
>>> * My task is to get the latter disk back online *with* its data,
>>> without
>>> resync.
>>>
>>> I desperately need help, please.
>>>
>>> Based on suggestions here by Oliver and on forums, I did (and the
>>> result
>>> is):
>>>
>>>> # mdadm --stop /dev/md0
>>>> mdadm: stopped /dev/md0
>>>> # mdadm --assemble --run --force /dev/md0 /dev/sd[jlmnopq]
>>>> mdadm: failed to RUN_ARRAY /dev/md0:
>>>> mdadm: Not enough devices to start the array.
>> At this point, does dmesg show anything pointing to that input/output
>> error ? The procedure is correct
>
> [dmesg]
> The problem is:
> md: kicking non-fresh sdl from array!
> thus:
> raid5: not enough operational devices for md0 (2/8 failed)
>
> So, the question is: How do I convince md not to be so anal retentive
> and prevent me from accessing any of my data? The drive ***is fine***,
> has practically all the data (I don't care about these 2 events), just
> use it already. Nobody seems to know the magic shell commands to do that.
Good news:
In my desperation, I now ran the following dangerous command:
mdadm --create /dev/md0 --assume-clean --level=raid5 -n 8 --chunk=64
--layout=left-symmetric --metadata=0.90 /dev/sdj missing /dev/sdl
/dev/sd[mopnq]
and that worked. I can read my files again, without problem, all is happy.
Before doing that, I saved the superblock, using (no warranty!):
1. mdadm -E /dev/sdj
2. "Used Dev Size" (in KB) * 1024 / 64 - 1 (use this as <skip blocks>)
3. dd if=/dev/sdl of=/root/sdj.mdsuperblock ibs=64 skip=<skip blocks>
---
Thanks, Maarten and Oliver, for your help and moral support.
---
I still maintain that all of this represents 2 design bugs in the md
implementation:
1. ejecting devices out that are working
1.1. individual sectors not readable/writable, but rest of device working
(This is very common these days with large drives)
1.2. temporary errors, e.g. disk not connected, loose cable, bad
controller etc.
1.3. Linux distro upgrade, no disk problem at all (my case)
2. not allowing me to re-add ejected disks, with data, without resync
The result of this is:
1. a device is ejected for no good reasons
2. a resync is triggered
3. the resync discovers a disk that is *really* broken
I am left with 2 disks marked "failed", but only 1 actually failed, so
normally I should be able to recover, yet I cannot read anything. This
fails the very definition of RAID5, therefore is a bug. I have to do
risky operations like re-create that can easily destroy all data.
Effectively, md achieves the opposite that is intended: It actively
risks and destroys my data.
I am BEGGING you md raid devs to fix these.
Ben Bucksch
next prev parent reply other threads:[~2013-04-20 1:26 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-12 20:08 md RAID5: Disk wrongly marked "spare", need to force re-add it Ben Bucksch
2013-04-13 14:19 ` Roy Sigurd Karlsbakk
2013-04-14 22:40 ` Oliver Schinagl
2013-04-15 1:34 ` Ben Bucksch
2013-04-14 17:30 ` Oliver Schinagl
2013-04-15 10:26 ` Ben Bucksch
2013-04-14 18:16 ` Oliver Schinagl
2013-04-18 13:17 ` Ben Bucksch
2013-04-18 13:58 ` Maarten
2013-04-19 22:56 ` linux.news
2013-04-20 1:26 ` Ben Bucksch [this message]
2013-04-20 1:53 ` Ben Bucksch
2013-04-21 7:23 ` Brad Campbell
2013-04-21 8:20 ` Ben Bucksch
2013-04-21 10:45 ` Brad Campbell
2013-04-21 18:17 ` Phil Turmel
2013-04-21 22:00 ` Ben Bucksch
2013-04-21 11:07 ` Roy Sigurd Karlsbakk
2013-04-21 21:50 ` NeilBrown
2013-04-21 21:46 ` NeilBrown
2013-04-18 14:18 ` Roy Sigurd Karlsbakk
2013-04-18 14:38 ` Robin Hill
2013-04-20 13:44 ` Oliver Schinagl
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=5171EED3.8030505@bucksch.org \
--to=linux.news@bucksch.org \
--cc=linux-raid@vger.kernel.org \
--cc=maarten@ultratux.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox