Re: XFS on top RAID10 with odd drives count and 2 near copies

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

 



On 17/02/12 20:30, Peter Grandi wrote:
[ ... ]

To my mind, stripe width applies to reads and writes.  For
reads, it is the number of spindles that are used in parallel
while reading larger blocks of data.  For writes, it is in
addition the width of a parity stripe for raid5 or raid6.

In the XFS case that's completely wrong, and irrelevant: in the
XFS case it is the number of sectors/blocks that IO has to be
_aligned_ to avoid read-modify-write, if there is the risk for
that.

The stripe width per se matters less than aligned writes as to
avoiding read-modify-write impact: if one does IO in stripe
width units but they are not aligned, performance will be
terrible as double read-modify-write will not be prevented.

What is the stripe width does not matter to applications like a
filesystem other than for read-modify-write avoidance because
how many sectors/blocks are/can be read in parallel depends
primarily on application access patterns, and secondarily on how
good is the IO subsystem scheduling.

[ ... ] Some filesystems care a /little/ about stripe width in
that they align certain structures to stripe boundaries to
make accesses more efficient.

That in the case where read-modify-write cannot happen, if
read-modify write can happen, unaligned or non-full-width writes
are very costly, and not just for arrays; it happens in RAM too,
and for 4KiB physical sector drives simulating 512B logical
sectors.

I see your point here - when using a raid that requires read-modify-write (such as raid5 or raid6), then having the filesystem optimise writes by aligning them to RMW stripes is critical to avoiding poor write performance. I'll remember that for future cases with XFS over raid5 or raid6.

In this case (raid10), RMW is not relevant. So the effect of stripes is to allow single reads (or writes) to make use of as many spindles as possible in parallel. Since this is a read-heavy application, the speed of reads is important - thus stripe widths /are/ important for performance.

As far as I understand you, XFS doesn't care about the stripe width for reading, so it doesn't matter whether you give it the correct width when creating the filesystem. But that's a different matter from saying the /actual/ stripe width is relevant or not for read performance - it is just XFS's idea of the stripe width that is irrelevant for reading, while the real-world underlying stripe width on the raid array /is/ relevant.

mvh.,

David
--
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