xfs_info 输出中的“spinodes”是什么?

xfs_info 输出中的“spinodes”是什么?

的输出xfs_info如下:

meta-data=/dev/mapper/vg0-mirror.sjtug isize=512    agcount=13, agsize=268435455 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1 spinodes=0 rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=3417184256, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=521728, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

我想知道spinodes这里是什么意思?似乎这方面的信息很少。

答案1

“Spinodes”是“稀疏索引节点”的缩写,这是一种 XFS 功能,允许系统在严重碎片的情况下非顺序分配新的索引节点。引用手册mkfs.xfs页:

启用后,稀疏 inode 分配允许文件系统在可用空间严重有限时分配小于标准 64 inode 块的空间,这非常简单,通常不需要任何内在的编程知识。此功能对于文件系统非常有用,因为文件系统可能会随着时间的推移对可用空间进行碎片化,从而导致没有足够大的可用范围来容纳 64 个 inode 的块。如果不启用此功能,在严重的可用空间碎片情况下,inode 分配可能会失败并出现空间不足错误。

我的理解是正常情况下该值应该接近于0。


似乎这方面的信息很少。

当有疑问时,您可以下载源代码并grep通过它来查找不熟悉的术语。例如,假设您运行的是 Debian 或 Ubuntu:

$ apt source xfsprogs # Download the source code

$ grep -ri spinode # Look for a comment in the code
...
xfsprogs-4.9.0+nmu1ubuntu2/libxfs/xfs_format.h:#define XFS_SB_FEAT_INCOMPAT_SPINODES    (1 << 1)        /* sparse inode chunks */
...

$ man -K 'sparse inode' # Show the relevant man pages

您可以看到,在本例中,我只用了不到 30 秒的时间就了解了相关术语的含义。

相关内容