Re: [RFC PATCH 2.6.23.1] md: add dm-raid1 read balancing

2007-11-11 Thread Samuel Tardieu
 Konstantin == Konstantin Sharlaimov
 [EMAIL PROTECTED] writes:

Konstantin This patch adds RAID1 read balancing to device mapper. A
Konstantin read operation that is close (in terms of sectors) to a
Konstantin previous read or write goes to the same mirror.

I am currently running it on top of a 2.6.24-rc2 kernel and it works
fine so far.

  Sam
-- 
Samuel Tardieu -- [EMAIL PROTECTED] -- http://www.rfc1149.net/

-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Was: [RFC PATCH 2.6.23.1] md: add dm-raid1 read balancing

2007-11-08 Thread Konstantin Sharlaimov
On Wed, 2007-11-07 at 10:15 +0100, Goswin von Brederlow wrote:
 I wonder if there shouldn't be a way to turn this off (or if there
 already is one).
 
 Or more generaly an option to say what is near. Specifically I would
 like to teach the raid1 layer that I have 2 external raid boxes with a
 16k chunk size. So read/write within a 16k chunk will be the same disk
 but the next 16k are a different disk and near doesn't apply
 anymore.

Currently there is no way to turn this feature off (this is only a
request for comments patch), but I'm planning to make it configurable
via sysfs and module parameters.

Thanks for suggestion for the near definition. What do you think about
adding the chunk_size parameter (with the default value of 1 chunk = 1
sector). Setting it to 32 will make all reads within 16k chunk to be
considered near (with zero distance) so they will go to the same disk.

Max distance will also be configurable (after this distance the read
operation is considered far and will go to randomly chosen disk)

Regards,
Konstantin

-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Was: [RFC PATCH 2.6.23.1] md: add dm-raid1 read balancing

2007-11-08 Thread Bill Davidsen

Rik van Riel wrote:

On Thu, 08 Nov 2007 17:28:37 +0100
Goswin von Brederlow [EMAIL PROTECTED] wrote:

  

Maybe you need more parameter:



Generally a bad idea, unless you can come up with sane defaults (which
do not need tuning 99% of the time) or you can derive these parameters
automatically from the RAID configuration (unlikely with RAID 1?).

Before turning Konstantin's nice and simple code into something complex,
it would be good to see benchmark results show that the complexity is
actually needed.

  
I was about to post a question about the benefit of all this logic, I'll 
trim before posting...


--
bill davidsen [EMAIL PROTECTED]
 CTO TMR Associates, Inc
 Doing interesting things with small computers since 1979

-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Was: [RFC PATCH 2.6.23.1] md: add dm-raid1 read balancing

2007-11-08 Thread Bill Davidsen

Goswin von Brederlow wrote:

Konstantin Sharlaimov [EMAIL PROTECTED] writes:

  

On Wed, 2007-11-07 at 10:15 +0100, Goswin von Brederlow wrote:


I wonder if there shouldn't be a way to turn this off (or if there
already is one).

Or more generaly an option to say what is near. Specifically I would
like to teach the raid1 layer that I have 2 external raid boxes with a
16k chunk size. So read/write within a 16k chunk will be the same disk
but the next 16k are a different disk and near doesn't apply
anymore.
  

Currently there is no way to turn this feature off (this is only a
request for comments patch), but I'm planning to make it configurable
via sysfs and module parameters.

Thanks for suggestion for the near definition. What do you think about
adding the chunk_size parameter (with the default value of 1 chunk = 1
sector). Setting it to 32 will make all reads within 16k chunk to be
considered near (with zero distance) so they will go to the same disk.

Max distance will also be configurable (after this distance the read
operation is considered far and will go to randomly chosen disk)

Regards,
Konstantin



Maybe you need more parameter:

chunk_size- size of a continious chunk on the (multi disk) device
stripe_size   - size of a stripe of chunks spanning all disks
rotation_size - size of multiple stripes before parity rotates to a
new disk (sign gives direction of rotation)
near_size - size that is considered to be near on a disk

I would give all sizes in blocks of 512 bytes or bytes.
  


Why? Would there ever be a time when there  would be a significant (or 
any) benefit from a size other than a multiple of chunk size? If you 
give the rest of the sizes in multiples of chunk size it invites less 
human math.

Default would be:
  


Default would be zero to indicate that the raid system should figure 
out what to use, allowing the value of one to actually mean what it 
says. It also invites use of zero for the rest of the calculated sizes, 
indicating the raid subsystem should select values. With coming SSD 
hardware you may actually want one to mean one.

chunk_size= 1 (block)
stripe_size   = 1 (block)
rotation_size = 0 (no rotation)
near_size = 256

That would reflect that you have all chunks continious on a normal
disk and read/writes are done in 128K chunks.

For raid 1 on raid 0:

chunk_size  = raid chunk size
stripe_size = num disks * chunk_size
rotation_size = 0
near_size = 256

For raid 1 on raid 5:

chunk_size  = raid chunk size
stripe_size = (num disks - 1) * chunk_size
rotation_size = (num disks - 1) * chunk_size  (?)
near_size = 256

and so on.

MfG
Goswin
-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  



--
bill davidsen [EMAIL PROTECTED]
 CTO TMR Associates, Inc
 Doing interesting things with small computers since 1979

-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Was: [RFC PATCH 2.6.23.1] md: add dm-raid1 read balancing

2007-11-08 Thread Rik van Riel
On Thu, 08 Nov 2007 17:28:37 +0100
Goswin von Brederlow [EMAIL PROTECTED] wrote:

 Maybe you need more parameter:

Generally a bad idea, unless you can come up with sane defaults (which
do not need tuning 99% of the time) or you can derive these parameters
automatically from the RAID configuration (unlikely with RAID 1?).

Before turning Konstantin's nice and simple code into something complex,
it would be good to see benchmark results show that the complexity is
actually needed.

-- 
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it. - Brian W. Kernighan
-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Was: [RFC PATCH 2.6.23.1] md: add dm-raid1 read balancing

2007-11-08 Thread Goswin von Brederlow
Rik van Riel [EMAIL PROTECTED] writes:

 On Thu, 08 Nov 2007 17:28:37 +0100
 Goswin von Brederlow [EMAIL PROTECTED] wrote:

 Maybe you need more parameter:

 Generally a bad idea, unless you can come up with sane defaults (which
 do not need tuning 99% of the time) or you can derive these parameters
 automatically from the RAID configuration (unlikely with RAID 1?).

 Before turning Konstantin's nice and simple code into something complex,
 it would be good to see benchmark results show that the complexity is
 actually needed.

A default of chunk=1, stripe=1, rotate=0 is what you have now. SO
there is no regression. It is also the right choice for any device
that isn't a (hardware) raid. I don't think 99% of all users have
hardware raid.

For stacked software raids the raid1 modul should detect the
underlying raid and default to values reflecting the raid disk below
(assuming the mirrors have reasonable equal layouts). That would
truely only leave hardware raids to be manually tuned.

MfG
Goswin
-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Was: [RFC PATCH 2.6.23.1] md: add dm-raid1 read balancing

2007-11-07 Thread Goswin von Brederlow
Konstantin Sharlaimov [EMAIL PROTECTED] writes:

 This patch adds RAID1 read balancing to device mapper. A read operation
 that is close (in terms of sectors) to a previous read or write goes to 
 the same mirror.

I wonder if there shouldn't be a way to turn this off (or if there
already is one).

Or more generaly an option to say what is near. Specifically I would
like to teach the raid1 layer that I have 2 external raid boxes with a
16k chunk size. So read/write within a 16k chunk will be the same disk
but the next 16k are a different disk and near doesn't apply
anymore.

MfG
Goswin

-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC PATCH 2.6.23.1] md: add dm-raid1 read balancing

2007-11-03 Thread Rik van Riel
On Sat, 03 Nov 2007 20:08:42 +1000
Konstantin Sharlaimov [EMAIL PROTECTED] wrote:

 This patch adds RAID1 read balancing to device mapper. A read
 operation that is close (in terms of sectors) to a previous read or
 write goes to the same mirror.
 
 Signed-off-by: Konstantin Sharlaimov [EMAIL PROTECTED]
 ---
 Please give it a try, it works for me, yet my results might be
 system-specific. Any feedback (bug-reports, suggestions) will be
 greatly appreciated.

I like your approach.  I have no dm-raid1 array here to test with,
but I am curious what your results are :)

The code looks nice.

-- 
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it. - Brian W. Kernighan
-
To unsubscribe from this list: send the line unsubscribe linux-raid in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html