EXT4非常に大きい(> 1GB)ファイルの場合:ブロックサイズを増やすか、ブロッククラスタを使用するか、またはその両方を使用しますか?

EXT4非常に大きい(> 1GB)ファイルの場合:ブロックサイズを増やすか、ブロッククラスタを使用するか、またはその両方を使用しますか?

12TB HDD(SSDではない)をフォーマットしたいです。EXT4を使う、大容量のビデオファイル(それぞれ最小1GiB)を保存します。

私はx86-64(つまりx64またはamd64)プロセッサを使用しています。

もちろん-T largefile4オプションですが、mkfs.ext4他の最適化は可能ですか?

私は特に次のことを知りたいです。

  • ブロックサイズを最大(64K、-b 65536)まで増やす必要がありますか?
  • または使用する必要がありますか?ブロッククラスタ、クラスタサイズを最大値(256M、-C 268 435 456)に設定します。
  • それとも両方が必要ですか?

ディスク容量とパフォーマンスの最適化の観点から最適なパラメータは何ですか?

ベストアンサー1

あなたがリンクした文書には次のように記載されています(強調)。

現在、デフォルトのブロックサイズは4KiBであり、これはほとんどのMMU対応ハードウェアで一般的にサポートされているページサイズです。これは幸運だからext4コードは、ページサイズを超えるブロックサイズを処理する準備ができていません。

Linuxを実行できるよく知られたプロセッサアーキテクチャの中で、ARM、Alpha AXP、Itanium、またはPowerPCのみが一般的な4KiB以上のページサイズを使用できます。

AMD64/x86_64プロセッサはhugepagesを使用できますが、まったく同じではありません。デフォルトのシステムページサイズはまだ4KiBですが、hugepagesは大容量のメモリシステム効率でメモリ管理を改善するために大きなバンドルに割り当てることを可能にします。これは、「ext4ブロックサイズ<=システムメモリページサイズ」のデフォルト要件を変更しません。

PowerPCまたは64ビットARMプロセッサを使用すると、ページサイズ(システムメモリ管理のデフォルトの「ブロックサイズ」)を64KiBに増やすことができるため、ext4ファイルシステムは内部作業も拡張できます。 AMD64/x86_64 ではこのオプションは使用できないため、ブロッククラスタリングは、ファイルシステムのメタデータに必要なスペースと作業量を削減するために使用できる唯一の方法です。

私が作業しているシステムには、10 TB以上の範囲に拡張されたext4ファイルシステムがあり、ここでファイルシステムチェックを実行するのは楽しい経験ではありません。もちろん、これはファイルシステムが慎重な調整なしにシステムの元の設計容量の限界をはるかに超えて拡張された古いシステムです。 (動画サーバーでもあります。)

しかし、これに基づいて、ext4が数十テラバイトのファイルシステムを正常に処理するには、特定のチューニングが必ず必要だと言いたいと思います。コメントのRomeo Ninovのように(可能であれば)他のファイルシステムタイプを再考してください。できる10TBを超えるファイルシステムで使用する場合、現在一般的な制限は数十TB以下のようです。実際それと関係があります。

しかし、基本的には、ファイルシステムの内容を一度作成し、読み取り専用のままにしておくと、ファイルシステムのチェックを実行する必要がほとんどないため、大きな問題を回避できます。

おすすめ記事