ll /srv/node/dcodxx/test.sh
-rw-r--r--. 1 root root 7 Nov 5 11:18 /srv/node/dcodxx/test.sh
文件的大小以字节为单位显示。此文件存储在块大小为 4096 字节的 xfs 文件系统中。
xfs_info /srv/node/sdaxx/
meta-data=/dev/sda isize=256 agcount=32, agsize=7630958 blks
= sectsz=4096 attr=2, projid32bit=0
data = bsize=4096 blocks=244190646, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal bsize=4096 blocks=119233, version=2
= sectsz=4096 sunit=1 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
这是否意味着一个块可以容纳多个文件,否则剩余字节 (4096-7) 会发生什么?
另外,为 inode 保留的 256 字节存储在哪里,如果它与文件存储在同一块中,文件大小不应该更大(256 + 7)吗?
最佳答案
文件数据以文件系统块大小为单位存储,目前 XFS 上的多个文件之间无法共享块。因此,已用磁盘空间始终是文件中四舍五入到下一个块大小的字节数 - 1 字节文件将消耗 4k 块大小文件系统上的 4k 磁盘空间。
inode 本身包含文件元数据,例如大小、时间戳、范围数据等 - 在 xfs 上,它还可以包含扩展属性信息。
磁盘上的 inode 与文件数据块是分开的,并且在具有 256 字节 inode 的文件系统上将始终消耗 256 字节,无论使用的元数据量如何。如果需要超过 256 字节来存储附加范围信息或扩展属性数据,则将分配附加的文件系统块大小的元数据块。
关于filesystems - Xfs 文件大小、inode 大小和 block 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26786088/