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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Konstantin Sharlaimov <konstantin.sharlaimov@xxxxxxxxx> 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.

Default would be:

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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux