I've been given a task to convert a single 300TB lvm with an XFS filesystem
from an 8x way stripe under vmfs disks to a 16x way stripe using luns directly
off an all flash array.
My first inclination was to create a new filesystem and rsync, or xfs_dump but
the downtime is problematic. I'm trying to modify the DR filesystem which
write out batches of writes every 240 seconds and trying to modify things
before we flip over to it later this year where it will be doing reads &
writes. Normally on the DR side it takes ~40 seconds to apply a batch of
replicated writes as fast as it can.
Looking at other options to move it online, I've been able to do "lvconvert
--type mirror <lvm> --stripes 16 --stripesize 4M --mirrorlog core" in a test
enviornment successfully and then remount specifying the different stripe width
but have a couple of questions:
1) It looks like it should restripe the existing data mirroring at the full LV
but not sure if it is more like lvmraid where it adds stripes and doesn't
really restripe existing. Is this really doing what I'm wanting?
2) As I'd expect this is fairly performance impacting but are there any options
to reduce the impact? I've tried increasing the queue depth, and setting no
merges, etc with little luck. I also tried using lvmraid converting to raid5,
reshape adding stripes, converting back to raid0 but didn't seem to be that
much better.
a) Initial sync increases the batch apply time from 40 seconds to 220
seconds
b) After it's fully sync'd it still takes 190 seconds to apply a batch
until I split it where it drops back down to under 40 seconds. So I'm guessing
the sync isn't the most impacting but the reshape from 8x to 16x is since after
100% in sync the impact is still so high