* RAID 5 recovery to not degrade device on bad block
@ 2009-08-23 8:16 Anshuman Aggarwal
2009-08-24 12:54 ` Goswin von Brederlow
0 siblings, 1 reply; 7+ messages in thread
From: Anshuman Aggarwal @ 2009-08-23 8:16 UTC (permalink / raw)
To: NeilBrown; +Cc: linux-raid
Here is a simple feature request which I assume would not be much
logic change for kernel devs familiar with the code.
Essentially, if I understand correctly, the kernel raid code will try
to let the drive fix a bad sector and otherwise fail the device and
degrade the array.
However, if an array is already degraded then this behvaviour can be
very limiting because typically you are in recovery mode and want to
get as much data out to your new disk as you can.
I would say that for an already degraded array, bad blocks should
*NOT* by default cause a single bad block to fail the whole
array...instead just log the bad blocks to the syslog and let the
admin take care of it.
Right now, the big benefit of RAID5 is being affected
Ideally, I'd like to see Neil's road map bad block device handler
implemented (have often thought of tinkering with the block device
code in the kernel to do just that)...but till then a simple check
that an array is degraded before failing a device which would render
the whole array inoperable should suffice? This could throw big errors
in the syslog but at least the a 2 TB MD array won't be down because
of 1 512 byte sector?
Thanks,
Anshuman
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: RAID 5 recovery to not degrade device on bad block
2009-08-23 8:16 RAID 5 recovery to not degrade device on bad block Anshuman Aggarwal
@ 2009-08-24 12:54 ` Goswin von Brederlow
2009-08-24 14:39 ` Write intent bitmaps Simon Jackson
0 siblings, 1 reply; 7+ messages in thread
From: Goswin von Brederlow @ 2009-08-24 12:54 UTC (permalink / raw)
To: Anshuman Aggarwal; +Cc: NeilBrown, linux-raid
Anshuman Aggarwal <anshuman.aggarwal@gmail.com> writes:
> Here is a simple feature request which I assume would not be much
> logic change for kernel devs familiar with the code.
>
> Essentially, if I understand correctly, the kernel raid code will try
> to let the drive fix a bad sector and otherwise fail the device and
> degrade the array.
> However, if an array is already degraded then this behvaviour can be
> very limiting because typically you are in recovery mode and want to
> get as much data out to your new disk as you can.
>
> I would say that for an already degraded array, bad blocks should
> *NOT* by default cause a single bad block to fail the whole
> array...instead just log the bad blocks to the syslog and let the
> admin take care of it.
Big problem there.
As long as the raid is degrade a bad block can be reported to the
system as I/O error.
But consider what happens when you resync the drive and don't stop on
a bad block. The block on the new drive coresponding to the bad block
can not be initialized corectly. But a read of the bad block would
trigger the block to be recomputed from the remaining disks. Instead
of an I/O error you would get invalid data.
What would be needed is the ability to mark blocks as bad. Even with
bitmap support the bit cover too large an area.
> Right now, the big benefit of RAID5 is being affected
>
> Ideally, I'd like to see Neil's road map bad block device handler
> implemented (have often thought of tinkering with the block device
> code in the kernel to do just that)...but till then a simple check
> that an array is degraded before failing a device which would render
> the whole array inoperable should suffice? This could throw big errors
> in the syslog but at least the a 2 TB MD array won't be down because
> of 1 512 byte sector?
>
> Thanks,
> Anshuman
MfG
Goswin
^ permalink raw reply [flat|nested] 7+ messages in thread
* Write intent bitmaps.
2009-08-24 12:54 ` Goswin von Brederlow
@ 2009-08-24 14:39 ` Simon Jackson
[not found] ` <ABFC24E4C13D81489F7F624E14891C860D1F15EF@uk-ex-mbx1.terastack.bluearc .com>
0 siblings, 1 reply; 7+ messages in thread
From: Simon Jackson @ 2009-08-24 14:39 UTC (permalink / raw)
To: linux-raid@vger.kernel.org
I am trying to use write intent bitmaps on some RAID 1 volumes to reduce the rebuild times in the event of hard resets that cause the md driver to kick members out of my arrays.
I used the mdadm --grow /dev/md0 --bitmap=internal and this appeared to succeed, but when I tried to examine the bitmap I get an error.
:~$ sudo mdadm --grow /dev/md0 --bitmap=internal
:~$ sudo mdadm -X /dev/md0
Filename : /dev/md0
Magic : 00000000
mdadm: invalid bitmap magic 0x0, the bitmap file appears to be corrupted
Version : 0
mdadm: unknown bitmap version 0, either the bitmap file is corrupted or you need to upgrade your tools
cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sda5[0] sdb5[1]
7823552 blocks [2/2] [UU]
bitmap: 29/239 pages [116KB], 16KB chunk
unused devices: <none>
sjackson@mercuryst5:~$ sudo mdadm -X /dev/md0
Filename : /dev/md0
Magic : 00000000
mdadm: invalid bitmap magic 0x0, the bitmap file appears to be corrupted
Version : 0
mdadm: unknown bitmap version 0, either the bitmap file is corrupted or you need to upgrade your tools
Do I really have a usable bitmap on the device in this case?
Thanks for any input.
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Write intent bitmaps.
[not found] ` <ABFC24E4C13D81489F7F624E14891C860D1F15EF@uk-ex-mbx1.terastack.bluearc .com>
@ 2009-08-24 20:25 ` NeilBrown
2009-09-02 16:10 ` Bill Davidsen
0 siblings, 1 reply; 7+ messages in thread
From: NeilBrown @ 2009-08-24 20:25 UTC (permalink / raw)
To: Simon Jackson; +Cc: linux-raid@vger.kernel.org
On Tue, August 25, 2009 12:39 am, Simon Jackson wrote:
>
>
> I am trying to use write intent bitmaps on some RAID 1 volumes to reduce
> the rebuild times in the event of hard resets that cause the md driver to
> kick members out of my arrays.
>
> I used the mdadm --grow /dev/md0 --bitmap=internal and this appeared to
> succeed, but when I tried to examine the bitmap I get an error.
>
>
> :~$ sudo mdadm --grow /dev/md0 --bitmap=internal
> :~$ sudo mdadm -X /dev/md0
> Filename : /dev/md0
> Magic : 00000000
> mdadm: invalid bitmap magic 0x0, the bitmap file appears to be corrupted
> Version : 0
> mdadm: unknown bitmap version 0, either the bitmap file is corrupted or
> you need to upgrade your tools
Quoting from the man page:
-X, --examine-bitmap
Report information about a bitmap file. The argument is
either
an external bitmap file or an array component in case of
an
internal bitmap. Note that running this on an array
device
(e.g. /dev/md0) does not report the bitmap for that array.
Particularly read the last sentence.
Then try
mdadm -X /dev/sda5
NeilBrown
>
> cat /proc/mdstat
> Personalities : [raid1]
>
> md0 : active raid1 sda5[0] sdb5[1]
> 7823552 blocks [2/2] [UU]
> bitmap: 29/239 pages [116KB], 16KB chunk
>
> unused devices: <none>
> sjackson@mercuryst5:~$ sudo mdadm -X /dev/md0
> Filename : /dev/md0
> Magic : 00000000
> mdadm: invalid bitmap magic 0x0, the bitmap file appears to be corrupted
> Version : 0
> mdadm: unknown bitmap version 0, either the bitmap file is corrupted or
> you need to upgrade your tools
>
> Do I really have a usable bitmap on the device in this case?
>
> Thanks for any input.
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Write intent bitmaps.
2009-08-24 20:25 ` NeilBrown
@ 2009-09-02 16:10 ` Bill Davidsen
2009-09-02 16:28 ` Paul Clements
0 siblings, 1 reply; 7+ messages in thread
From: Bill Davidsen @ 2009-09-02 16:10 UTC (permalink / raw)
To: NeilBrown; +Cc: Simon Jackson, linux-raid@vger.kernel.org
NeilBrown wrote:
> On Tue, August 25, 2009 12:39 am, Simon Jackson wrote:
>
>> I am trying to use write intent bitmaps on some RAID 1 volumes to reduce
>> the rebuild times in the event of hard resets that cause the md driver to
>> kick members out of my arrays.
>>
>> I used the mdadm --grow /dev/md0 --bitmap=internal and this appeared to
>> succeed, but when I tried to examine the bitmap I get an error.
>>
>>
>> :~$ sudo mdadm --grow /dev/md0 --bitmap=internal
>> :~$ sudo mdadm -X /dev/md0
>> Filename : /dev/md0
>> Magic : 00000000
>> mdadm: invalid bitmap magic 0x0, the bitmap file appears to be corrupted
>> Version : 0
>> mdadm: unknown bitmap version 0, either the bitmap file is corrupted or
>> you need to upgrade your tools
>>
>
> Quoting from the man page:
>
> -X, --examine-bitmap
> Report information about a bitmap file. The argument is
> either
> an external bitmap file or an array component in case of
> an
> internal bitmap. Note that running this on an array
> device
> (e.g. /dev/md0) does not report the bitmap for that array.
>
>
> Particularly read the last sentence.
> Then try
> mdadm -X /dev/sda5
>
Well that's nice and clear, but raises the question "why not?" This
would seem to be one of the most common things someone would do, to look
at the bitmap for an array.
--
bill davidsen <davidsen@tmr.com>
CTO TMR Associates, Inc
"Now we have another quarterback besides Kurt Warner telling us during postgame
interviews that he owes every great thing that happens to him on a football
field to his faith in Jesus. I knew there had to be a reason why the Almighty
included a mute button on my remote."
-- Arthur Troyer on Tim Tebow (Sports Illustrated)
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Write intent bitmaps.
2009-09-02 16:10 ` Bill Davidsen
@ 2009-09-02 16:28 ` Paul Clements
2009-09-02 17:36 ` Ryan Wagoner
0 siblings, 1 reply; 7+ messages in thread
From: Paul Clements @ 2009-09-02 16:28 UTC (permalink / raw)
To: Bill Davidsen; +Cc: NeilBrown, Simon Jackson, linux-raid@vger.kernel.org
Bill Davidsen wrote:
> NeilBrown wrote:
>> On Tue, August 25, 2009 12:39 am, Simon Jackson wrote:
>>
>>> I am trying to use write intent bitmaps on some RAID 1 volumes to reduce
>>> the rebuild times in the event of hard resets that cause the md
>>> driver to
>>> kick members out of my arrays.
>>>
>>> I used the mdadm --grow /dev/md0 --bitmap=internal and this appeared to
>>> succeed, but when I tried to examine the bitmap I get an error.
>>>
>>>
>>> :~$ sudo mdadm --grow /dev/md0 --bitmap=internal
>>> :~$ sudo mdadm -X /dev/md0
>>> Filename : /dev/md0
>>> Magic : 00000000
>>> mdadm: invalid bitmap magic 0x0, the bitmap file appears to be corrupted
>>> Version : 0
>>> mdadm: unknown bitmap version 0, either the bitmap file is corrupted or
>>> you need to upgrade your tools
>>>
>>
>> Quoting from the man page:
>>
>> -X, --examine-bitmap
>> Report information about a bitmap file. The argument is
>> either
>> an external bitmap file or an array component in
>> case of
>> an
>> internal bitmap. Note that running this on an array
>> device
>> (e.g. /dev/md0) does not report the bitmap for that array.
>>
>>
>> Particularly read the last sentence.
>> Then try
>> mdadm -X /dev/sda5
>>
>
> Well that's nice and clear, but raises the question "why not?" This
> would seem to be one of the most common things someone would do, to look
> at the bitmap for an array.
Two reasons why not:
The examine code simply takes the device or file you give it and looks
for a bitmap in that file or device. You'd have to do some hand-waving
to "read the bitmap for /dev/md0". There actually is no bitmap on
/dev/md0; there is a bitmap stored either in a file or on each of the
component devices. So which version of the bitmap do you read? From the
first, second, third ... component disk?
Also, mdadm's behavior would be ambiguous if you implemented the above.
What if /dev/md0 is itself a component of another md device? Then how is
mdadm to know which bitmap you want? The one that actually physically
exists on md0, or the ones that the components of md0 contain?
Perhaps better would be to simply throw an error in this case?
--
Paul
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: Write intent bitmaps.
2009-09-02 16:28 ` Paul Clements
@ 2009-09-02 17:36 ` Ryan Wagoner
0 siblings, 0 replies; 7+ messages in thread
From: Ryan Wagoner @ 2009-09-02 17:36 UTC (permalink / raw)
To: Paul Clements
Cc: Bill Davidsen, NeilBrown, Simon Jackson,
linux-raid@vger.kernel.org
You could just provide more information in the mdadm bitmap error message
mdadm: unknown bitmap version 0, either the bitmap file is corrupted
or you need to upgrade your tools
suggested change
mdadm: unknown bitmap version 0, either the bitmap file is corrupted,
you are looking looking at the array and not an array component, or
you need to upgrade your tools
Ryan
On Wed, Sep 2, 2009 at 12:28 PM, Paul
Clements<paul.clements@steeleye.com> wrote:
> Bill Davidsen wrote:
>>
>> NeilBrown wrote:
>>>
>>> On Tue, August 25, 2009 12:39 am, Simon Jackson wrote:
>>>
>>>>
>>>> I am trying to use write intent bitmaps on some RAID 1 volumes to reduce
>>>> the rebuild times in the event of hard resets that cause the md driver
>>>> to
>>>> kick members out of my arrays.
>>>>
>>>> I used the mdadm --grow /dev/md0 --bitmap=internal and this appeared to
>>>> succeed, but when I tried to examine the bitmap I get an error.
>>>>
>>>>
>>>> :~$ sudo mdadm --grow /dev/md0 --bitmap=internal
>>>> :~$ sudo mdadm -X /dev/md0
>>>> Filename : /dev/md0
>>>> Magic : 00000000
>>>> mdadm: invalid bitmap magic 0x0, the bitmap file appears to be corrupted
>>>> Version : 0
>>>> mdadm: unknown bitmap version 0, either the bitmap file is corrupted or
>>>> you need to upgrade your tools
>>>>
>>>
>>> Quoting from the man page:
>>>
>>> -X, --examine-bitmap
>>> Report information about a bitmap file. The argument is
>>> either
>>> an external bitmap file or an array component in case of
>>> an
>>> internal bitmap. Note that running this on an array
>>> device
>>> (e.g. /dev/md0) does not report the bitmap for that array.
>>>
>>>
>>> Particularly read the last sentence.
>>> Then try
>>> mdadm -X /dev/sda5
>>>
>>
>> Well that's nice and clear, but raises the question "why not?" This would
>> seem to be one of the most common things someone would do, to look at the
>> bitmap for an array.
>
> Two reasons why not:
>
> The examine code simply takes the device or file you give it and looks for a
> bitmap in that file or device. You'd have to do some hand-waving to "read
> the bitmap for /dev/md0". There actually is no bitmap on /dev/md0; there is
> a bitmap stored either in a file or on each of the component devices. So
> which version of the bitmap do you read? From the first, second, third ...
> component disk?
>
> Also, mdadm's behavior would be ambiguous if you implemented the above. What
> if /dev/md0 is itself a component of another md device? Then how is mdadm to
> know which bitmap you want? The one that actually physically exists on md0,
> or the ones that the components of md0 contain?
>
> Perhaps better would be to simply throw an error in this case?
>
> --
> Paul
> --
> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2009-09-02 17:36 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-08-23 8:16 RAID 5 recovery to not degrade device on bad block Anshuman Aggarwal
2009-08-24 12:54 ` Goswin von Brederlow
2009-08-24 14:39 ` Write intent bitmaps Simon Jackson
[not found] ` <ABFC24E4C13D81489F7F624E14891C860D1F15EF@uk-ex-mbx1.terastack.bluearc .com>
2009-08-24 20:25 ` NeilBrown
2009-09-02 16:10 ` Bill Davidsen
2009-09-02 16:28 ` Paul Clements
2009-09-02 17:36 ` Ryan Wagoner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox