Limits to growth

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

 



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



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux