XFS AG disk layout described on official doc is wrong
Hello,
I observed that there is an issue on our official DOC for AG disk layout, which can be found at:
http://xfs.org/docs/xfsdocs-xml-dev/XFS_Filesystem_Structure//tmp/en-US/html/Allocation_Groups.html
It shows that the IBT block is followed by the block where AGFL sector resides. However, it should be followed by the
CNT block according to my debug, like below:
-------------------------------
superblock
AG free block info
AG inode B+tree info
AG internal free list
-------------------------------
Root of free space B+tree
B+tree key is block number
-------------------------------
Root of free space B+tree
B+tree key is block count
--------------------------------
Root of inodes B+tree
--------------------------------
Maybe the DOC is old, or am I missing anything? If not, can we correct it?
Thanks,
-Jeff
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Quoted 25 lines · Jeff Liu
Hello,
I observed that there is an issue on our official DOC for AG disk layout, which can be found at:
http://xfs.org/docs/xfsdocs-xml-dev/XFS_Filesystem_Structure//tmp/en-US/html/Allocation_Groups.htmlIt shows that the IBT block is followed by the block where AGFL sector resides. However, it should be followed by the
CNT block according to my debug, like below:-------------------------------
superblock
AG free block info
AG inode B+tree info
AG internal free list
-------------------------------
Root of free space B+tree
B+tree key is block number
-------------------------------
Root of free space B+tree
B+tree key is block count
--------------------------------
Root of inodes B+tree
--------------------------------
Quoted 1 line
Maybe the DOC is old, or am I missing anything? If not, can we correct it?
The btree root blocks are dynamic. mkfs.xfs puts them in a fixed place, just like growfs does, but the moment you split a root block, it moves from that location. Hence the only way to reliably find the root btree block is to look up the point in the AGF/AGI, and that's what the document shows. IOWs, the ordering in the document is not important - the linkage is - as the root blocks can end up *anywhere* in the AG.
e.g:
$ sudo xfs_db -r -c "agf 0" -c p /dev/vda magicnum = 0x58414746 versionnum = 1 seqno = 0 length = 262144 bnoroot = 596 cntroot = 1003 bnolevel = 2 cntlevel = 2 ....
Cheers,
Dave.
Signature · 7 lines
Dave Chinner [email protected] _______________________________________________ xfs mailing list [email protected] http://oss.sgi.com/mailman/listinfo/xfs
Quoted 38 lines · Dave Chinner
Quoted 25 lines · Jeff Liu
Hello,
I observed that there is an issue on our official DOC for AG disk layout, which can be found at:
http://xfs.org/docs/xfsdocs-xml-dev/XFS_Filesystem_Structure//tmp/en-US/html/Allocation_Groups.htmlIt shows that the IBT block is followed by the block where AGFL sector resides. However, it should be followed by the
CNT block according to my debug, like below:-------------------------------
superblock
AG free block info
AG inode B+tree info
AG internal free list
-------------------------------
Root of free space B+tree
B+tree key is block number
-------------------------------
Root of free space B+tree
B+tree key is block count
--------------------------------
Root of inodes B+tree
--------------------------------Quoted 1 line
Maybe the DOC is old, or am I missing anything? If not, can we correct it?
The btree root blocks are dynamic. mkfs.xfs puts them in a fixed place, just like growfs does, but the moment you split a root block, it moves from that location. Hence the only way to reliably find the root btree block is to look up the point in the AGF/AGI, and that's what the document shows. IOWs, the ordering in the document is not important - the linkage is - as the root blocks can end up *anywhere* in the AG.
e.g:
Quoted 10 lines
$ sudo xfs_db -r -c "agf 0" -c p /dev/vda magicnum = 0x58414746 versionnum = 1 seqno = 0 length = 262144 bnoroot = 596 cntroot = 1003 bnolevel = 2 cntlevel = 2 ....
Ah, thanks for your quick response, now I understood. :)
Regards,
-Jeff
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs