5
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) がどうなるかというと、1 つのブロックに複数のファイルを格納できるということですか? また、ファイルと同じブロックに保存されている場合、inode 用に予約されている 256 バイトはどこに保存されますか?

4

2 に答える 2

5

ファイル データはファイル システムのブロック サイズの単位で格納され、XFS では現在、複数のファイル間でブロックを共有することはできません。したがって、使用済みディスク容量は常に、ファイル内のバイト数を次のブロック サイズに切り上げたものになります。1 バイトのファイルは、4k ブロック サイズのファイルシステムで 4k のディスク容量を消費します。

inode 自体には、サイズ、タイムスタンプ、エクステント データなどのファイル メタデータが含まれます。xfs では、拡張属性情報も含めることができます。

ディスク上の i ノードはファイル データ ブロックから分離されており、使用されるメタデータの量に関係なく、256 バイトの i ノードを持つファイル システムでは常に 256 バイトを消費します。追加のエクステント情報または拡張属性データを格納するために 256 バイト以上が必要な場合は、追加のファイル システム ブロック サイズのメタデータ ブロックが割り当てられます。

于 2016-06-25T18:18:03.720 に答える