Ext4とXFS–どちらのファイルシステムを使用する必要があるか

Linuxシステムを実行しているユーザーは、基盤となるファイルシステムにほとんど注意を払っていません。 実際、Linuxのインストール中は、他の利用可能なオプションを検討せずに、リストされているデフォルトのファイルシステムを使用する傾向があります。 Windowsの場合、NTFSが主要なファイルシステムであるため、作業ははるかに簡単です。 Linuxでは、自由に使える多数のファイルシステムがあります。 これらには、Ext4、XFS、ZFS、およびBTRFSが含まれます。

最も広く使用されているファイルシステムはExt4とXFSで、後者はRHELベースのディストリビューションのデフォルトのファイルシステムであり、Ext4はDebianとUbuntuのディストリビューションの標準ファイルシステムです。 ファイルシステムを選択する際に考慮する必要のある要素には、スケーラビリティ、安定性、データの整合性などがあります。

このガイドでは、 Ext4およびXFSファイルシステム そして、これら2つの違いを理解しようとします。

Ext4ファイルシステム

Ext4ファイルシステム(Extended filesystem)は、Extファイルシステムファミリーの第4世代であり、その起源は1987年に最初に導入されたMinixオペレーティングシステムにまでさかのぼることができます。Extファイルシステムは、Linuxカーネルが発表されたときにサポートした最初のファイルシステムです。 1992年にさかのぼります。それは2008年にLinux2.6.28で登場しました。 その前身であるext3の後継です。

Ext4は多くの小さなファイルを完全に管理し、書き込みキャッシュの能力が失われた場合でもメタデータが正しく書き込まれるようにします。

一目で、その主な機能は次のとおりです。

  • 大きなファイルサイズのサポート-Ext4は最大16TiB(テビバイト)の単一ファイルサイズをサポートしますが、XFSは最大8エクスビバイトの最大ファイルサイズをサポートします。
  • ファイル割り当てを高速化するために、エクステントに基づいて割り当てを遅らせます。
  • 下位互換性-Ext4ファイルシステムを使用するもう1つの利点は、Ext3およびExt2システムとの下位互換性です。 一部のExt4機能はExt3およびExt2ファイルシステムにも実装できるため、これによりパフォーマンスと柔軟性が向上します。 さらに、Ext3およびExt2ファイルシステムはExt4としてマウントできます。
  • 割り当ての改善-ストレージブロックは、ディスクに書き込まれる前にExt4ファイルシステムによってより効率的に割り当てられます。 これにより、読み取りと書き込みのパフォーマンスが大幅に向上します。
  • ジャーナルチェックサム-Ext4ファイルシステムはチェックサムオプションを利用して、ファイル破損のリスクを最小限に抑えます。 チェックサムオプションは、ブロックボリュームのエラーをプローブするために頻繁にチェックを実行します。 そうすることで、ジャーナリング時間が短縮され、パフォーマンスが低下します。
  • より高速なファイルシステムチェック-ジャーナルチェックサムに加えて、Ext4はより高速なファイルシステムチェックを提供します。 example、fsckコマンドは、Ext3やExt2などの以前のバージョンと比較して、より高速に実行され、より短い時間で結果を提供します。
  • タイムスタンプの改善-Ext4は、ナノ秒単位で測定されるタイムスタンプを実装します。これは、不十分と見なされる秒ベースのタイムスタンプの粒度からの改善です。 さらに、2038年の上限に対応するために、タイムスタンプにさらに408年が追加されました。
  • サブディレクトリの数に制限はありません-Ext4ファイルシステムは、ディレクトリサイズ自体を除いて、単一のディレクトリに作成できるサブディレクトリの数に制限を設けていません。 Ext3では、ディレクトリは最大32,000のサブディレクトリしか持つことができません。 Ext4は、ディレクトリに保存できるエントリを増やすためにHTreeindices機能を導入しました。
  • 透過的な暗号化-透過的な暗号化のサポートは、2015年6月にLinuxカーネル4.1のExt4ファイルシステムに実装されました。

XFSファイルシステム

XFSファイルシステムは、もともと1993年にシリコングラフィックスによって開発されたもので、安定した高性能の64ビットジャーナリングファイルシステムであることに誇りを持っています。 XFSファイルシステムは、最大18エクサバイトの大きなファイルシステムと非常に大きなファイルをサポートするように構築されています。 ファイルシステムは、大容量のディスクアレイ、大容量のCPU、および大容量のファイルを保存する必要のあるシステム向けに設計されています。

XFSは、I / Oスレッドの高いスケーラビリティーを提供し、大きなファイルを処理する際の優れたパフォーマンスで広く知られています。

XFSファイルシステムは、RHEL、CentOS、およびOracle Linux、Rocky Linux、AlmaLinuxなどの他のRHELディストリビューションのデフォルトのファイルシステムです。

主な機能は次のとおりです。

  • より大きなファイルシステムをサポート-XfSは最大1PiBのファイルシステムサイズをサポートしますが、Ext4は最大50TiBをサポートします。 サポートされているファイルシステムのサイズは、Linuxディストリビューションのバージョンによって異なる場合があります。
  • 遅延割り当て-ファイル割り当てに遅延評価手法を使用します。 ブロックの割り当ては、データが最終的にディスクにフラッシュされたときにのみ発生し、断片化を減らしてパフォーマンスを向上させるのに役立ちます。
  • オンラインでの最適化とファイルシステムの成長
  • 洗練されたメタデータ先読みアルゴリズム
  • メタデータジャーナリング-メタデータジャーナリングは、突然の電源喪失やシステムクラッシュが発生した場合に、ファイルシステムの整合性を保証する機能です。
  • クォータジャーナリング-これにより、システムクラッシュ後の長時間のクォータ整合性チェックが不要になります。
  • 拡張属性のサポート-これにより、システムはファイルごとにいくつかの追加の名前/値ペアを関連付けることができました。
  • オンラインでの最適化と拡張-マウントされてアクティブな状態で、ファイルシステムを最適化および拡大できます。
  • ストレージのスケーラビリティ-XFSファイルシステムは、大容量のファイルシステム、大容量のディレクトリ、および最大容量のエクサバイトまでの膨大な量のファイルをサポートするために、非常に長い機能を備えています。
  • 効率的なディスクスペース管理-XFSは、B-Treeインデックスのおかげで、効率的なディスクスペース管理のためのスケーラビリティも提供します。

結論

アプリケーションに適切なファイルシステムを選択することは重要な決定です。 決定を下すときは、サーバーの規模、予想されるI / Oワークロード、スループットと遅延、ファイルのサイズ、アプリケーションが受ける可能性のあるダウンタイムなどを考慮する必要があります。

これは、XFSおよびExtファイルシステムの概要です。 各ファイルシステムが提供する利点について詳しく説明しました。 この情報を念頭に置いて、オペレーティングシステム用に選択するファイルシステムについて情報に基づいた決定を下すことができます。