[linux-lvm] Wierd lvm2 performance problems

Sven Eschenberg sven at whgl.uni-frankfurt.de
Tue Apr 21 17:24:19 UTC 2009


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 the
>> chunksize, then every extens PEx of my PV equals exactly a chunk on 
>> any of
>> the disks.
>> Which in turn means, if I want to read PEx I have to read some chunk 
>> Cy on
>> one disk, and PEx+1 would most certainly be a Chunk Cy+1 which would
>> reside on a different physical disk.
> 
> correct
> 
>> So 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




More information about the linux-lvm mailing list