Re: chunk size must be power of two?

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

 



Neil Brown wrote:
> On Wednesday December 6, jamesb@xxxxxxxxxxxx wrote:
>> Is there any reason the chunk size has to be a power of two?
>
> It makes division a lot easier and faster.

Thanks for the reply.

>> We're trying to use md devices to stripe over hardware RAID5 arrays, so
>> to align the I/O correctly, I want to set the chunk size to (n - 1) *
>> stripe_size for the underlying array. Which is impossible to do because
>> mdadm (and the kernel) insist on the chunk size being a power of
>> two.
>
> Surely you want to set chunk_size to 1 * stripe_size for the
> underlying array ... or maybe 1/(n-1) * stripe_size.  But certainly
> not (n-1) * stripe_size.  That wouldn't make any sense at all.

I suspect I haven't explained myself very clearly... I'm trying to stripe over multiple separate hardware raid5 luns using md... see below for details.

>> I haven't tried just removing the kernel checks yet ... is there a
>> reason why md is limited to power of two chunk sizes?
>
> You would need to check all the div and mod operations based on chunk
> size and make sure they don't implicitly assume it is a power of 2.

OK, thanks.

> What exactly is the geometry of the array you wan to access with md??

four 7+1 raid5 luns (from multiple controllers etc) with a stripe size of 128K, and I am then striping across all four luns with md.

So I want to set the md chunk_size to 896K so we write a full stripe (7 * 128K) to each lun before moving on to the next.

Testing on other volume managers (IRIX/Linux with xvm) has shown aligning the I/O like this improves performance for our workload (lots of large files with streaming reads and writes), but I can't use xvm for this particular system.

Thanks, James
-
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