Re: [RFC PATCH 2.6.23.1] md: add dm-raid1 read balancing
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
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
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
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
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
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
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
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