新しいext4インラインデータ機能を使用するには? (inodeに直接データを保存)

新しいext4インラインデータ機能を使用するには? (inodeに直接データを保存)

ext4文書を正しく読んだら、Linux 3.8以降、ファイルが非常に小さい場合は、inodeに直接データを保存できるはずです。

私はそのようなファイルのサイズが0ブロックであると予想しましたが、そうではありません。

# creating a small file
printf "abcde" > small_file

# checking size of file in bytes
stat --printf='%s\n' small_file
5

# number of 512-byte blocks used by file
stat --printf='%b\n' small_file
8

ここで最後の数字はゼロになると予想しました。私は何を逃したことがありませんか?

ベストアンサー1

ext4でインラインデータを有効にするには、次のものを使用する必要があります。e2fsprogs1.43以上。 2014年3月に追加されたインラインデータサポートGitリポジトリしかし、2016年5月までリリースされませんでした。

完了したら、mke2fs -O inline_data適切なデバイスで実行して、インラインデータサポートを含む新しいファイルシステムを作成できます。すべてのデータが削除されます。。明らかに、既存のファイルシステムでインラインデータを有効にすることはまだ不可能です(少なくともtune2fsサポートされていません)。

次に、小さなファイルを作成し、debugfsファイルシステムで実行します。cd適切なディレクトリに移動して実行すると、stat smallfile次の結果が表示されます。

Inode: 32770   Type: regular    Mode:  0644   Flags: 0x10000000
Generation: 2302340561    Version: 0x00000000:00000001
User:  1000   Group:  1000   Size: 6
File ACL: 0    Directory ACL: 0
Links: 1   Blockcount: 0
Fragment:  Address: 0    Number: 0    Size: 0
 ctime: 0x553731e9:330badf8 -- Wed Apr 22 07:30:17 2015
 atime: 0x553731e9:330badf8 -- Wed Apr 22 07:30:17 2015
 mtime: 0x553731e9:330badf8 -- Wed Apr 22 07:30:17 2015
crtime: 0x553731e9:330badf8 -- Wed Apr 22 07:30:17 2015
Size of extra inode fields: 28
Extended attributes:
  system.data (0)
Size of inline data: 60

ご覧のとおり、データはインラインで保存されます。これはdf;を使用しても確認できます。ファイルを作成する前に:

% df -i /mnt/new 
Filesystem                           Inodes IUsed IFree IUse% Mounted on
/dev/mapper/vg--large--mirror-inline  65536    12 65524    1% /mnt/new
% df /mnt/new 
Filesystem                           1K-blocks  Used Available Use% Mounted on
/dev/mapper/vg--large--mirror-inline   1032088  1280    978380   1% /mnt/new

ファイルを生成した後:

% echo Hello > smallfile
% ls -l
total 1
-rw-r--r-- 1 steve steve 6 Apr 22 07:35 smallfile
% df -i /mnt/new
Filesystem                           Inodes IUsed IFree IUse% Mounted on
/dev/mapper/vg--large--mirror-inline  65536    13 65523    1% /mnt/new
% df /mnt/new
Filesystem                           1K-blocks  Used Available Use% Mounted on
/dev/mapper/vg--large--mirror-inline   1032088  1280    978380   1% /mnt/new

ファイルが存在し、inodeを使用しますが、使用可能なストレージスペースは変更されませんでした。

おすすめ記事