web-dev-qa-db-ja.com

ファイルシステム作成時のlargefile機能

ビデオやオーディオのような大きなファイルを含むパーティション用のファイルシステムをflac形式で作成するときに、-T largefileフラグを使用すると便利ですか?

そのフラグを使用して同じパーティションをテストし、それを使用せずにtune2fs -l [partition]を使用して、両方で「large_file」が有効になっている「ファイルシステム機能」をチェックしました。したがって、-Tフラグlargefileを使用する必要はありませんか?

17
Marc

-T largefileフラグは、ファイルシステムの作成時に割り当てられるiノードの量を調整します。いったん割り当てられると、それらの数を調整することはできません(少なくともext2/3の場合、ext4について完全にはわかりません)。デフォルトは、16Kのディスク領域ごとに1つのiノードです。 -T largefileは、メガバイトごとに1つのiノードにします。

各ファイルには1つのiノードが必要です。 iノードが残っていない場合は、新しいファイルを作成できません。しかし、これらの静的に割り当てられたiノードもスペースをとります。デフォルトではなく-T largefileを設定することで、100 GBのディスクごとに約1.5ギガバイト節約を期待できます。 -T largefile4(4 MBにつき1つのiノード)は、そのような劇的な効果はありません。

デバイスに保存されているファイルの平均サイズが1メガバイトを超えることが確実な場合は、必ず-T largefileを設定してください。私は自分のストレージパーティションでそれを喜んで使用しており、それは設定の過激ではないと思います。

ただし、そのパーティションに多数のファイル(数十万と考えてください)の非常に大きなソースtarballを解凍すると、そのパーティションのiノードが不足する可能性があります。 untarする別のパーティションを選択することを除いて、そのような状況でできることはほとんどありません。

dumpe2fsコマンドを使用して、ライブファイルシステムで使用可能なiノードの数を確認できます。

# dumpe2fs /dev/hda5
[...]
Inode count:              98784
Block count:              1574362
Reserved block count:     78718
Free blocks:              395001
Free inodes:              34750

ここでも、34,000のファイルを作成できます。

これは、100 GBのパーティションでmkfs.ext3 -T largefile -m 0を実行した後に得られたものです。

Filesystem           1M-blocks      Used Available Use% Mounted on
/dev/loop1              102369       188    102181   1% /mnt/largefile
/dev/loop2              100794       188    100606   1% /mnt/normal

ラージファイルバージョンには102 400のiノードがあり、通常のバージョンでは6 553 600のiノードが作成され、その過程で1.5 GBが節約されました。

ファイルシステムに配置するファイルのサイズについて適切な手掛かりがある場合は、-iスイッチを使用してiノードの量を直接微調整できます。 iノードあたりのバイト数の比率を設定します。 100万を超えるファイルを作成しながら-i 65536を使用すると、スペースを75%節約できます。私は通常、少なくとも100,000のiノードを予備に保つと計算しています。

24
hhaamu

完全に異なる2つの独立した概念を混同していると思います。

Dumpe2fsの出力に表示されるlarge_file機能は、このファイルシステムが2 GiBを超えるファイルを保持できることを意味します。最新のカーネルによって自動的に設定されると思います。 -Tmke2fsオプションとは関係ありません。

4
Hector