Hi Luca, I gave this a little more thought ... Luca Berra schrieb:
On Mon, Apr 20, 2009 at 03:15:12PM +0200, Sven Eschenberg wrote:Hi Luca, Okay, let's assume a chunk size of C. No matter what your md looks like, the logical md volume consists of a series of size/C chunks. the very first chunk C0 will hold the LVM header. If I align the extends with the chunksize and the extends even have thechunksize, then every extens PEx of my PV equals exactly a chunk on any ofthe disks.Which in turn means, if I want to read PEx I have to read some chunk Cy onone disk, and PEx+1 would most certainly be a Chunk Cy+1 which would reside on a different physical disk.correctSo the question is: Why would you want to align the first PE to the stripesize, rather then the chunksize?Because when you _write_ incomplete stripes, the raid code would need to do a read-modify-write of the parity block.
Okay, the question is, how often, if you modify files at random, do you really write a full stripe, even if the cache holds back all modification for a couple minutes. I wonder how often you can take advantage of this in normal mixed load situations.
Filesystem, like ext3/4 and xfs have the ability to account for stripe size in the block allocator to prevent unnecessary read-modify-writes, but if you do not stripe-align the start of the filesystem you cannot take advantage of this.
Okay, understood, but doesn't this imply, as long as my application running on top of an md and/or LV ontop of an md cannot take advantage of the layout information, it doesn't matter at all. I do see the advantage, I.E. if you have an RDBMS that can operate and organize itself ontop of some blockdevice which has a certain layout, or any filesystem taking this into account. In contrast, if I am to export the blockdevice as iSCSI target in a plain NAS, this doesn't help me at all. Now, even if I properly stripe align the pe_start, what happens if I am doing a whole disk online capacity expansion? As long as LVM cannot realign everything online, and the filesystem can realign itself (or update it's layout accordingly) online, this is pretty much pointless.
Regards, L.
In the end it all comes down to, that in most cases aligning doesn't help, at leats not, if the whoel array configuration might change over time - or am I mistaken there?
Regards -Sven