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)吗?
答案 0 :(得分:3)
文件数据以文件系统块大小为单位存储,当前XFS上的多个文件之间不存在块共享。因此,使用的磁盘空间始终是文件中的字节数四舍五入到下一个块大小 - 一个1字节的文件将占用4k块大小文件系统上的4k磁盘空间。
inode本身包含文件元数据,如大小,时间戳,范围数据等 - 在xfs上,它还可以包含扩展属性信息。
磁盘上的inode与文件数据块是分开的,并且在具有256字节inode的文件系统上总是消耗256个字节,而不管使用的元数据量是多少。如果需要超过256个字节来存储其他扩展区信息或扩展属性数据,则将分配其他文件系统块大小的元数据块。
答案 1 :(得分:1)
这是否意味着一个块可以容纳多个文件,如果不是剩下的字节会发生什么(4096-7)?
一个块不能包含多个文件。如果文件大于一个块,则使用多个块。
像XFS这样的现代文件系统有一个名为" inline"的功能,其中足够小的文件(不超过60个字节)可以存储在inode中,用于存储指向块的指针所用的空间。 / p>
其中是为存储的inode保留的256个字节,如果它与文件存储在同一个块中,那么文件大小是不是应该更大(256 + 7)?
inode信息存储在inode表中。