Re: inode64 directory placement determinism

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

 



On Sun, Aug 17, 2014 at 10:29:21PM -0500, Stan Hoeppner wrote:
> Say I have a single 4TB disk in an md linear device.  The md device has a
> filesystem on it formatted with defaults.  It has 4 AGs, 0-3.  I have
> created 4 directories.  Each should reside in a different AG, the first in
> AG0.  Now I expand the linear device with an identical 4TB disk and execute
> xfs_growfs.  I now have 4 more AGs, 4-7.  I create 4 more directories.
> 
> Will these 4 new dirs be created sequentially in AGs 4-7, or in the first
> 4 AGs?  Is this deterministic, or is there any chance involved?  On the

Deterministic, assuming single threaded *file-system-wide* directory
creation. Completely unpredictable under concurrent directory
creations.  See xfs_ialloc_ag_select/xfs_ialloc_next_ag.

Note that the rotor used to select the next AG is set to
zero at mount.

i.e. single threaded behaviour at agcount = 4:

dir number	rotor value	  destination AG
 1		  0			0
 2		  1			1
 3		  2			2
 4		  3			3
 5		  0			0
 6		  1			1
....

So, if you do what you suggest, and grow *after* the first 4 dirs
are created, the above is what you'll get because the rotor goes
back to zero on the fourth directory create. Now, with changing from
4 to 8 AGs after the first 4:

dir number	rotor value	  new inode location (AG)
 1		  0			0
 2		  1			1
 3		  2			2
 4		  3			3
<grow to 8 AGs>
 5		  0			0
 6		  1			1
 7		  2			2
 8		  3			3
 9		  4			4
 10		  5			5
 11		  6			6
 13		  7			7
 14		  0			0

> real system these 4TB drives are actually 48TB LUNs.  I'm after
> deterministic parallel bandwidth to subsequently added RAIDs after each
> grow operation by simply writing to the proper directory.

Just create new directories and use the inode number to
determine their location. If the directory is not in the correct AG,
remove it and create a new one, until you have directories located
in the AGs you want.

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs




[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux