Thread (18 messages) 18 messages, 4 authors, 2011-01-10

Re: [PATCH v3 0/8] dm-raid (raid456) target

From: NeilBrown <hidden>
Date: 2011-01-10 00:37:18
Also in: dm-devel

On Thu, 6 Jan 2011 08:43:35 -0600 Jonathan Brassow [off-list ref]
wrote:
On Jan 6, 2011, at 4:46 AM, NeilBrown wrote:
quoted
Patches 1 and 2 aren't really needed - I feel inclined not to remove  
that
stuff until all the dust settles..  So I'll put them at the bottom  
of my
queue and bring them forward in a couple of releases if that seems
appropriate.
No problem.
quoted
Patch 3 I'll push out through my tree shortly.
thanks
quoted
The rest I am happy with going out through 'dm' to -next and beyond  
whenever
you like.

However I will take this opportunity to suggest that the raid  
parameters
might need a bit of review before they are finalised.

The possible parameters are as follows:
<chunk_size>		Chunk size in sectors.
[[no]sync]		Force/Prevent RAID initialization
[rebuild <idx>]	Rebuild the drive indicated by the index
[daemon_sleep <ms>]	Time between bitmap daemon work to clear bits
[min_recovery_rate <kB/sec/disk>]	Throttle RAID initialization
[max_recovery_rate <kB/sec/disk>]	Throttle RAID initialization
[max_write_behind <value>]		See '-write-behind=' (man mdadm)
[stripe_cache <sectors>]		Stripe cache size for higher RAIDs


'rebuild idx' only allows one device to be rebuilt at a time.  With  
RAID6 it
is possible that two devices can be ready for rebuild, in which case  
we would
want to rebuild both of them.
In which case, you can specify the parameter twice:
"... rebuild 0 rebuild 1..."
No problem there, I think.
Yes, I see.  I'm use to seeing positional parameter in dm tables and didn't
process properly that these are key/value parameters.

quoted
Also if you stop an array during a rebuild you really want to start  
again
where you were up to.
This is kept in the superblock (forthcoming patches).  In the case  
where metadata devices are not specified (or can't be specified, as in  
this initial set of patches), the user has two choices: 1) allow the  
array to completely resync, or 2) specify [no]sync.
OK... though 'resync' and 'rebuild' are very different things and should not
be confused.  So the [no]sync option should not affect rebuild of new devices.


quoted
Most general solution would be to combine the rebuild information  
with the
list of component devices - either a sector number or something to  
indicate
that the rebuild it complete (which could be just a v.big sector  
number).
Is there something more to this, or is the above comment suitable for  
this also?
No, I think you've address it all.

quoted
I'd much prefer 'daemon_sleep' to be in seconds, we decimals  
supported if
needed.
I had this in seconds originally, but device-mapper tables already  
have a precedent for specifying things in ms.  We don't want to have  
each target pick their own units.  (A similar thing can be said for  
values given in sectors.  We may have wanted kiB or B, but sectors is  
the standard.)
Fair enough.

quoted
Also:

3:	<#raid_devs> <meta_dev1> <dev1> .. <meta_devN> <devN>

This doesn't allow offsets into the various devices like dm-stripe,
dm-linear, dm-raid1 all do.
This is a conscious choice.  The offset was discarded because it is  
unneeded.
Famous last words!!!

When reshaping a RAID5/6 to change the chunk size or layout, or when
converting an N drive RAID5 to N+1 drive RAID6, it makes it a lot easier if
you can can change the data offset at the same time.  Then you don't have to
keep backing up data.  md cannot do this yet but I hope to add the code soon
and because 'data_offset' is a distinct value it is conceptually easy to do.
If 'data_offset' is assumed to be zero, then it isn't.

But I don't know to what extent you are planning on supporting reshaping of
arrays....

Thanks,

NeilBrown


  brassow
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help