web-dev-qa-db-ja.com

XFSでフォーマットした後、ext4よりも多くの空き容量が必要なのはなぜですか?

1TBの外付けハードドライブを購入しました。ドライブ全体をext4でフォーマットした後、Nautilusは空き容量が934.3 GBあると言います。 enter image description here

また、ドライブのフォーマットをXFSでテストしました。この場合、999.7 GBの空き容量があります。enter image description here

ext4ではなく、XFSではなく60 GBを超える空き領域がないのはなぜですか?

10
user55763

EXT3/EXT4ファイルシステムは、セキュリティなどのためにパーティションサイズの5%を使用します(たとえば、「空きディスク領域のないディスク」が原因)。

ルートパーティションではない場合、この5%を変更できます。以下を行うことで1%:

Sudo tune2fs -m 1 /dev/sda3

sda3をパーティションに変更する場所。

16
knezmej

ext4(およびextfsファミリ)を使用すると、フォーマット時にinodeテーブルが事前に割り当てられます。これは、ファイルシステムに関する従来のUnixの動作です。 extfsファイルシステムでボリュームをフォーマットする場合、mkfsユーティリティの-Nパラメーターを使用して、予想されるiノードの数を調整できます。 ( ソース )。

この設計は、スケーラビリティにもかかわらず、(一度に多くのファイルを割り当てる場合に)パフォーマンスが向上する場合があります。フォーマット時に必要なiノードの数を見積もる必要があります。メールサーバーなど、ほとんどの小さなファイルを含むボリュームは、ISOを含むボリュームよりもギガバイトあたりのiノードを多く必要とします。

すべてのiノードを使用すると、ドライブにまだ空き領域がある場合でも新しいファイルを作成できません。ボリュームが大きいほど、iノードテーブルも大きくなります。そのため、大容量ドライブで多くのギガバイトが失われます。

一方、XFSは「動的iノード割り当て」( ソース )と呼ばれる手法を使用します。これにより、ボリューム上のデータ量に応じてiノードの数が増減するため、スケーラビリティが向上します。これは、ファイルシステムの使用目的を予測できない場合、またはデータ用に余分なスペースを節約する予定がある場合に適した設計です。これはNTFSの動作でもあります。

ジャーナリングについて言われたことは間違っています。ジャーナリングのコストはわずか数メガバイトです。主なスペースの損失は、静的iノードの割り当てによるものです。

6
tom