Handling of read errors in raid6

5 messages, 4 authors, 2006-01-19 · open the first message on its own page

Handling of read errors in raid6

From: Filipe Maia <hidden>
Date: 2006-01-19 12:02:36

Is it easy to port the "readerrors rewrite" patch to RAID6?

Are there any plans to do it?

If there are are they short or long term?

(I have some stuff in a RAID6 that has more than 2 disks with
bad sectors and i would like to see if it would be possible to
recover them without going through all the dd stuff).

Thanks for the help.


-- 
All generalizations are false, including this one.
          -- Mark Twain

attempt to access beyond end of device

From: PFC <hidden>
Date: 2006-01-19 20:39:27

	OK, I was a bit stupid...

	I changed a drive today, so I rebuilt a software RAID1.
	I have a RAID1 in degraded mode (1 out of 2 drives), and I added a new  
partition to it. When I say I was stupid, I mean the partition I added was  
a tiny little bit smaller than what it should have been.

	md happily added it, synced, then at the very end :

Jan 19 21:33:27 apollo13 attempt to access beyond end of device
Jan 19 21:33:27 apollo13 sda7: rw=1, want=12498560, limit=12498507
Jan 19 21:33:27 apollo13 raid1: Disk failure on sda7, disabling device.
Jan 19 21:33:27 apollo13        Operation continuing on 1 devices

	Of course, "attempt to access beyond end of device", I made the device  
too small. Duh.

	No problem, I'll just fix my partition, but a warning message on the  
mdadm --add would have avoided losing time doing the sync, and at the end,  
a few seconds of "WTF ? it failed ? ah, ok..."

	Have a nice day !


mdadm --version
mdadm - v2.1 - 12 September 2005

raid reconstruction speed

From: PFC <hidden>
Date: 2006-01-19 21:29:37

	Sorry for flooding ;)

	I have the following configuration :
	- two disks (hda and sda)
	- each disk has 2 partitions (hda1/sda1) and (hda2/sda2)
	- two raid1 md devices are made :
	md0 = sda1 + hda1, contains the OS
	md1 = sda2 + hda2, contains a database

	I made 2 devices because I wanted to use different FS's.

	When rebuilding md1, it does not realize accesses to md0 wait for the  
same disks. Thus reconstruction of md1 runs happily at full speed, and the  
machine is dog slow, because the OS and everything is on md0.
	(I cat /dev/zero to a file on md1 to slow the rebuild so it would let me  
start a web browser so I don't get bored to death)

	When rebuilding md0, the rebuild process detects accesses to md0 and  
behaves nicely (the machine is responsive). However, it does not realize  
that md1 is on the same disks, thus the databases are dog slow.

	Fortunately, as the rebuild runs ar full speed, the pain does not last  
long. It took 5 minutes to start this email client though.
	Thought you might wanna know ;)

	Regards,

	Pierre Caillaud

Re: raid reconstruction speed

From: Mike Hardy <hidden>
Date: 2006-01-19 22:10:02

PFC wrote:
    When rebuilding md1, it does not realize accesses to md0 wait for
the  same disks. Thus reconstruction of md1 runs happily at full speed,
and the  machine is dog slow, because the OS and everything is on md0.
    (I cat /dev/zero to a file on md1 to slow the rebuild so it would
let me  start a web browser so I don't get bored to death)
echo "10000" > /proc/sys/dev/raid/speed-limit-max (or similar?)

You can do that in /etc/rc.local or something to make sure it sticks,
then you'll be able to use your machine while any array rebuilds.

I guess the feature you're asking for is for md to guess that accessing
any partition component on a disk that has a partition being rebuilt
should throttle the rebuild, right?

Can that heuristic be successful at all times? I think it might.

Does md have enough information to do that? I don't know...

-Mike

Re: raid reconstruction speed

From: Mark Hahn <hidden>
Date: 2006-01-19 23:27:09

echo "10000" > /proc/sys/dev/raid/speed-limit-max (or similar?)

You can do that in /etc/rc.local or something to make sure it sticks,
echo "dev.raid.speed_limit_max = 10000" >> /etc/sysctl.conf
is another, perhaps nicer way to make the setting permanent.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help