Hi,
I have a nearly full 30T xfs filesystem that I need to grow significantly,
e.g. to, say, 256T, and potentially further in future, e.g. up to, say,
1PB. Alternatively at some point I'll need to copy a LOT of data from the
existing fs to a newly-provisioned much larger fs. If I'm going to need to
copy data around I guess it's better to do it now, before there's a whole
lot more data to copy.
According to Dave Chinner:
https://www.spinics.net/lists/linux-xfs/msg20084.html
Rule of thumb we've stated every time it's been asked in the past 10-15
years is "try not to grow by more than 10x the original size".
It's also explained the issue is the number of AGs.
Is it ONLY the number of AGs that's a concern when growing a fs?
E.g. for a fs starting in the 10s of TB that may need to grow
substantially (e.g. >=10x), is it advisable to simply create it with the
maximum available agsize, and you can then grow to whatever multiple
without worrying about XFS getting ornery?
Of course as Dave explains further in the thread it would probably be
better to just start with XFS on a large thin provisioned volume in the
first place, but that's not where I am currently. Sigh.
Looking my fs and just considering the number of AGs (agcount)...
My original fs has:
meta-data=xxxx isize=512 agcount=32, agsize=244184192 blks
= sectsz=4096 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=1, rmapbt=1
= reflink=1 bigtime=0 inobtcount=0
data = bsize=4096 blocks=7813893120, imaxpct=5
= sunit=128 swidth=512 blks
naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=521728, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
If I do a test xfs_grow to 256T, it shows:
metadata=xxxxx isize=512 agcount=282, agsize=244184192 blks
Creating a new fs on 256T, I get:
metadata=xxxxx isize=512 agcount=257, agsize=268435328 blks
So growing the fs from 30T to 256T I end up with an agcount ~10% larger
(and agsize ~10% smaller) than creating a 256T fs from scratch.
Just for the exercise, creating a new FS on 1P (i.e. 33x the current fs)
gives:
metadata=xxxxx isize=512 agcount=1025, agsize=268435328 blks
I.e. it looks like for this case the max agsize is 268435328 blocks. So
even if the current fs were to grow to a 1P or more, e.g. 30x - 60x
original, I'm still only going to be ~10% worse off in terms of agcount
than creating a large fs from scratch and copying all the data over.
Is that really going to make a significant difference?
Cheers,
Chris