I have a 12 disk HW raid 5 with 128K stripe size. I built my 4k block
XFS volume with sunit=256,swidth=2816. Everything is peachy ... or is
If I built my volume on a partitioned block device (i.e. /dev/sda2) it
is quite likely that my partition will not start on a 128K boundary,
so what XFS thinks is a single disk is actually two.. Worse, it's
possible that the partition won't start on a 4K boundary... so every
FS block read of a block on the 128K boundary will require hitting two
disks (and potentially take an extra disk rotation if the disks are
not spin aligned).
This problem wouldn't be limited to XFS, but as one of the few FSes
that pays a lot of attention to the underlying disk geometry I thought
someone here might have given though to this issue.
I' believe that I have avoided this problem on my own system by just
putting the FS on the raw device.... which isn't so bad because msdos
partition tables won't permit a 3TB partition in any case... but
surely there must be a more general solution.
Would it be possible to add a stripe start offset to XFS? I expect
it would be fairly easy to make a disk benchmark tool which could
estimate sunit, swidth, and start offset..