2024 年時点で、Statista 社の報告によると、世界のデータ量は 149 ゼタバイトに達しています。エンタープライズ・データセンターは、データ量が急激に増大するにつれて、ストレージ・インフラを最適化するというプレッシャーに直面しています。ファイル・システムの選択は、アプリケーションの性能、セキュリティ体制、運用効率に直接影響します。大規模な分析、メディア・ワークフロー、データベース操作を行う組織は、特定のワークロード要件に対してファイル・システムの機能を慎重に評価する必要があります。
XFS と Ext4 のファイル・システムの選択が重要になるのはこのためです。どちらも本番グレードの Linux ファイル・システムですが、それぞれ異なるユースケースに対応しています。XFS は、並列 I/O 操作による大容量ファイルの処理に優れており、高スループット環境に最適です。Ext4 は、堅牢なディレクトリレベルのセキュリティ制御を提供し、ファイル操作の小型化により最適な性能を発揮するため、汎用サーバーに適しています。
ストレージ・ドライブをパーティション化すると、選択したファイル・システムが、Linux OS データを管理し、セキュリティを強化し、性能を提供する方法を決定します。XFS は、大規模なファイル・ストレージと取得操作のための優れたスループットを提供します。一方、Ext4 は、小さなファイルで一般的なサーバー操作のための優れたセキュリティ機能と効率性を提供します。
各ファイル・システムの技術的な違い、性能特性、適切なユースケースを理解することで、ビジネス要件に沿ったインフラの意思決定が可能になります。
XFS ファイル・システムとは
大容量ファイルを保存・取得しなければならないユースケースでは、XFS ファイル・システムが最適です。
XFS は、大規模なファイルの読み取りと書き込み用に構築されています。例えば、メディア・ファイルを保存および取得できるサーバーを必要とする企業にとっては有益です。メディア・ファイルのサイズは数ギガバイトで、XFS は並行して読み書き操作を実行できます。つまり、サーバーは、1 つの操作が完了してから次の操作を開始するのを待つのではなく、入力と出力を同時に実行できます。並列 I/O 操作はサーバーの性能を向上させるため、ファイルの保存や開くのを待つ必要はありません。
ペタバイトのデータを保存できるデータベースも、XFS ファイル・システムの優れたユースケースです。ユーザー向けのアプリケーションは、さまざまな理由でクエリの形式でこれらの大規模なデータベースに要求を行います。例えば、機械学習分析やシンプルなレポートにより、これらのサーバーにクエリを送信し、結果として大規模なデータセットを要求することができます。XFS ファイル・システムは、これらの大きなクエリと他の大きなクエリを同時に取得するために構築されています。
Ext4 ファイル・システムとは
Ext4 ファイル・システムは、大容量ファイルを保存できますが、高度なセキュリティを必要とするビジネス・システムを対象としています。XFS が使用する並列 I/O がないため、大容量ファイルでは性能が遅くなります。Ext4 システムは、Ext パーティショニング・ファイル・システムの第 4 世代であるため、以前のバージョンよりも優れた性能を発揮します。XFS は、大きなファイルの入出力でも優れた性能を発揮しますが、Ext4 は、ファイル転送が小さいほど優れた性能を発揮します。
管理者は、拡張ディレクトリとファイル・システム・セキュリティが必要な場合に Ext4 を選択します。例えば、Ext4 はセキュリティ・ラベルを使用して、特定のユーザー権限を持つディレクトリにタグを付けます。特定のロールに割り当てられたユーザーは、タグ付けされたディレクトリに対してアクションを実行できます。管理者は、複数のユーザーがストレージにアクセスできるが、全ディレクトリにアクセスできるわけではないファイル・サーバーに Ext4 を使用します。アクセスを厳密に制御する必要があるシンプルなファイル・サーバーにとっては有益です。
XFS と Ext4 のファイル・システム
ファイル・システム用にドライブをパーティション化した後、ファイル・システムを変更する場合は、ドライブを再パーティション化する必要があります。再パーティション化とは、ドライブから全データを消去することを意味します。そのため、適切なデータを選択することが重要です。XFS と Ext4 にはいくつかの類似点がありますが、それぞれの違いによって、システムに適したものが決まります。
大きなファイルがある場合は、XFS が最適です。XFS は入力と出力を同時に実行できるため、ユーザーとフロントエンドのアプリケーションは、データの保存と取得をより迅速に行うことができます。Ext4 ファイル・システムは、CPU の帯域幅が制限されていて、小さいファイルを扱う場合により高速です。
XFS と Ext4 はどちらも、ジャーナリングと呼ばれるシステムをサポートしています。ジャーナリングとは、ドライブのクラッシュや停電時にファイルが変更された場合にメモリに書き込まれるメタデータの一種です。ファイル変更がディスクにコミットされる前にドライブがクラッシュした場合、サーバーは起動時に変更を復元できます。管理者はバックアップやアーカイブを作成する必要がありますが、XFS と Ext4 の両方が停電や予期せぬクラッシュによるデータ損失を回避します。XFS にはバックアップとリカバリも統合されていますが、Ext4 には統合されていません。
XFS ファイル・システムは、性能に影響を与えることなくエクサバイトのデータ・ストレージに拡張可能で、最大 500 TB のファイルを保存します。Red Hat の広範なテストに基づき、ファイル・サイズが小さいサーバーでは Ext4 ファイル・システムだけで十分ですが、Red Hat Enterprise Linux 5 および 6 では 16 TB を超えるファイルは保存されません。Red Hat Enterprise Linux は Ext4 ファイル・システムを搭載し、最大 50 TB をサポートします。
性能判断フレームワーク
ファイル・システムを適切に選択するには、それぞれの性能のしきい値を理解する必要があります。ファイルが XFS に適するほど大きいのか、あるいは Ext4 に適するほど小さいのかを推測するのではなく、データに基づくガイドラインを活用してください。
環境に応じて XFS を選択:
- 200 MB/sを超える I/O 帯域幅
- 1,000 を超える IOPS 要件
- 100 MB を超える平均ファイル・サイズ
- 並列読み取り/書き込み操作を必要とする複数のアプリケーション
- 16 TB を超えるストレージ容量
- 大容量ファイルのシーケンシャル転送が中心のワークロード
- データベース・ファイルやメディア・アセットがギガバイト単位のサイズである場合
環境に応じて Ext4 を選択:
- 200 MB/s 未満の I/O 帯域幅
- IOPS 要件 1,000 未満
- 多くのファイルのサイズが 10 MB 未満
- 主にシングルスレッドのアプリケーション
- ファイル・システム操作のための CPU リソースが限られている
- ファイル・システムを縮小する機能が必要な場合
- Web サーバー、メール・サーバー、開発環境
これらのしきい値は絶対的なルールではなく、1 つのファイル・システムが常に他のファイル・システムよりも優れていることが証明された変曲点です。Red Hat Enterprise Linux は、高性能サーバーでは XFS をデフォルトとし、Ubuntu と Debian は汎用コンピューティングに Ext4 を選択します。
ファイル・システム選択のベスト・プラクティス
ファイル・システムを選択する前に、ワークロードの特性を評価します。一般的なファイル・サイズ、I/O パターン、性能要件を分析します。メディア・ファイル、大規模なデータベース、分析ワークロードを扱う組織は、XFS の並列 I/O 機能を活用できます。多くの小さなファイル、限られた CPU リソース、厳格なアクセス制御要件がある環境では、Ext4 を検討する必要があります。
本番環境への展開前に、代表的なワークロードで性能をテストします。本番環境のファイル・サイズ、アクセス・パターン、同時ユーザー負荷をミラーリングするテスト環境を作成します。理論上のベンチマークのみに依存するのではなく、現実的な条件下で実際のスループット、レイテンシー、CPU 使用率を測定します。
ファイル・システムのサイズを決定する際は、将来的な拡張を考慮してください。XFS は一度作成すると縮小できません。拡張のみ可能です。将来の柔軟性が必要な場合には、ストレージを保守的に割り当てます。スペースの再利用が必要な場合は、Ext4 を選択します。動的なストレージ割り当てを必要とするシステムでは、Ext4 の拡張と縮小の両方が運用の柔軟性を提供します。
ファイル・システムの選択にかかわらず、適切なバックアップ戦略を実装します。XFS には統合されたダンプ/リストア・ユーティリティ(xfsdump/xfsrestore)が含まれており、両方のファイル・システムはクラッシュ・リカバリのためのジャーナリングを備えています。ただし、いずれの場合も、包括的なバックアップ・ソリューションは依然として必要です。定期的なスナップショット、オフサイト・レプリケーション、テスト済みのリカバリ手順が不可欠です。
ファイル・システムの性能メトリクスを継続的に監視します。I/O レイテンシー、スループット、inode の使用率、断片化レベルを追跡します。XFS は、多くの小さなファイルを扱うワークロードに対して定期的な最適化を必要とする場合がありますが、Ext4 は、メンテナンス・ウィンドウ中に定期的な fsck の実行によって恩恵を受けます。
XFS の使用に適したケース
大容量ファイルを保存する企業は、XFS の使用を検討する必要があります。これは、性能に影響を与えることなく、大規模なファイルを保存および取得する必要があるエンタープライズ・ビジネス向けです。統合されたバックアップ/リカバリ・システムにより、予期せぬクラッシュが発生した場合や、ドライブに障害が発生して交換が必要な場合に、データを容易に保存できます。
大容量ファイルを取得するアプリケーションがある場合は、XFS を使用します。クラウドの高トラフィック・サーバーは、並列 I/O 用の XFS ファイル・システムに最適です。 ファイルやデータ・クエリで高速な応答を必要とする重要なサーバーも、XFS を使用するメリットがあります。
Ext4 の使用に適したケース
Ext4 ファイル・システムは、CPU 帯域幅が制限された小さなファイルやサーバーで優れた性能を提供します。重要な本番サーバーでも使用できますが、大容量ファイルを転送する高トラフィックのサーバーでは、メインのサーバーとして使用すべきではありません。ディザスタ・リカバリ・ツールがなければ、Ext4 サーバーはバックアップを実行するためにサードパーティのツールを必要とします。
Ext4 ファイル・システムは、ユーザーがファイルやアプリケーションを共有する内部サーバーで、小規模なデータベースで動作します。ディレクトリのセキュリティ機能を追加すると、管理者はファイルをより適切に保護できるため、チーム共有のための中央ファイル・サーバーが Ext4 に便利です。これらのファイルは、通常、大規模なアプリケーション・データベース・ファイルよりもはるかに小さいため、Ext4 ファイル・システムは XFS を使用するよりもはるかに高速です。
考慮すべき重要な制限事項
最終的な決定を行う前に、特定のユースケースにおいて決定的な問題となる可能性がある、次の重要な制限事項を理解しておきましょう。