filesystems - Xfs 文件大小、inode 大小和 block 大小

标签 filesystems inode xfs

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/

相关文章:

filesystems - 文件的 MD5 哈希在每个系统上都是唯一的吗?

c++ - 读取 linux inode 位图

linux - xfs - 写入文件时如何不修改 mtime?

.net - LRU 文件缓存和在 Windows 目录中查找文件的成本

c++ - 如何使用 boost 文件系统确定文件或目录的所有者?

Ruby 检查 webdav 上传是否完成

amazon-web-services - 增加 AWS EBS 上的 inode 数量

mysql - inode 使用显示全零的 : how to understand this

linux - 在 Linux 上移动文件时的竞争条件