Red Hat Enterprise Linux ファイルシステムの選択方法
目次
利用可能なオプションが多数あり、トレードオフが伴うため、アプリケーションに適した Red Hat Enterprise Linux ファイルシステムを選択することは重要な決定です。このペーパーでは、Red Hat Enterprise Linux に同梱されているファイルシステムのいくつかについて説明し、歴史的な背景とアプリケーションに適したファイルシステムに関する推奨事項を提供します。
ファイルシステムの種類
Red Hat Enterprise Linux は、さまざまなファイルシステムに対応します。さまざまな種類のファイルシステムがさまざまな問題を解決し、その使用はアプリケーションによって異なります。最も一般的なレベルでは、Red Hat Enterprise Linux で利用可能なファイルシステムは次の主要カテゴリーに分類できます。
- ディスクまたはローカルファイルシステム
- ネットワークまたはクライアント/サーバーファイルシステム
- 共有ストレージまたは共有ディスクファイルシステム
- 特殊なファイルシステム
ローカルファイルシステムの概要
ローカルファイルシステムは、1 台のローカルサーバーで実行し、ストレージに直接接続されているファイルシステムです。たとえば、ローカルファイルシステムは内部 S-ATA または SAS ディスクの唯一の選択肢であり、サーバーにローカルドライブを備えた内部ハードウェア RAID コントローラーがある場合に使用されます。ローカルファイルシステムは、SAN のエクスポートされたデバイスが共有されていない場合に、SAN 接続ストレージで使用される最も一般的なファイルシステムでもあります。
Red Hat Enterprise Linux 4 および Red Hat Enterprise Linux 5 プラットフォームは従来、Ext2 および Ext3 クラスのシステムに 2 つの主要なファイルシステムを提供してきました。Ext ファイルシステムファミリーの最新バージョンである Ext4 は、5.6 以降の Red Hat Enterprise Linux のすべてのバージョンで完全にサポートされています。
これらのファイルシステムはすべて POSIX に準拠しており、以降のすべての Red Hat Enterprise Linux リリースと完全な互換性があります。POSIX 準拠のファイルシステムは、read ()、write ()、seek () など、明確に定義された一連のシステムコールをサポートします。アプリケーションプログラマの観点から見ると、違いは比較的少ないです。ユーザーの観点で最も重要な違いは、スケーラビリティーとパフォーマンスに関するものです。ファイルシステムの選択を検討するときは、ファイルシステムの大きさ、ファイルシステムにどのような独自の機能が必要か、ワークロード下でファイルシステムがどのようにパフォーマンスを発揮するかを考慮する必要があります。
XFS ファイルシステム
XFS は、単一ホスト上の非常に大きなファイルとファイルシステムをサポートする、堅牢で成熟した 64 ビットジャーナリングファイルシステムです。これは、Red Hat Enterprise Linux 7 のデフォルトのファイルシステムです。ジャーナリングは、システムの再起動やファイルシステムの再マウント時に再生できるファイルシステム操作の記録を保持することにより、システムクラッシュ (停電などによる) 後のファイルシステムの整合性を確保します。XFS は、元々 1990 年代の前半に SGI により開発され、極めて大規模なサーバーおよびストレージアレイで実行されてきた長い歴史があります。XFS は、次のような豊富な機能をサポートしています。
- 遅延割り当て
- 動的に割り当てられる inode
- 空き領域管理のスケーラビリティーに関する B-Tree インデックス
- 多数の同時操作に対応する機能
- 広範囲に及ぶランタイムメタデータの整合性チェック
- 高度なメタデータ先読みアルゴリズム
- 密接に統合されたバックアップおよび復元のユーティリティー
- オンラインのデフラグ
- オンラインファイルシステムの成長
- 包括的な診断機能
- 拡張性が高く、高速な修復ユーティリティー
- ストリーミングビデオのワークロードの最適化
XFS はエクサバイトまで拡張できますが、Red Hat がサポートする XFS ファイルシステムイメージの最大値は、Red Hat Enterprise Linux 5 の場合は 100 TB、Red Hat Enterprise Linux 6 の場合は 300 TB、Red Hat Enterprise Linux 7 の場合は 500 TB です。高いパフォーマンスとスケーラビリティを必要とする環境における長い歴史を考えると、XFS がエンタープライズワークロードを伴う大規模システム上で最もパフォーマンスの高いファイルシステムの 1 つとして日常的に評価されるのは驚くべきことではありません。たとえば、大規模システムとは、比較的多数の CPU、複数の HBA、および外部ディスクアレイへの接続を備えたシステムです。XFS は、マルチスレッドの並列 I/O ワークロードを備えた小規模のシステムでも適切に実行します。XFS は、単一スレッドのメタデータ集約型ワークロード (単一スレッドで多数の小さなファイルを作成または削除するワークロードなど) では比較的パフォーマンスが劣ります。最後に、XFS ファイルシステムのサイズを縮小 (縮小) することはできないため、既存のファイルシステムにストレージを過剰に割り当てないように特に注意する必要があります。
-
縮小の詳細については、XFS ファイルシステムを縮小する方法を 参照してください。
-
ファイルシステム、ファイル、およびディレクトリーのサイズ制限の詳細については、Red Hat Enterprise Linux テクノロジーの機能と制限 の記事の ファイルシステムとストレージ セクションを参照してください。
Ext ファイルシステムファミリー
Ext4 ファイルシステム
Ext4 は Ext ファイルシステムファミリーの第 4 世代であり、Red Hat Enterprise Linux 6 のデフォルトのファイルシステムです。Ext4 は Ext2 または Ext3 ファイルシステムの読み取りと書き込みができますが、Ext4 ファイルシステム形式は Ext2 および Ext3 ドライバーと互換性がありません。ただし、Ext4 には、次のような最新のファイルシステムに共通するいくつかの新しい機能と改善された機能が追加されています。
- エクステントベースのメタデータ
- 遅延割り当て
- ジャーナルのチェックサム
- 大規模なストレージサポート
ファイルシステム内の使用領域を追跡するためのよりコンパクトで効率的な方法は、エクステントベースのメタデータと遅延割り当て機能を使用することです。このような機能により、ファイルシステムのパフォーマンスが向上し、メタデータが使用する領域が低減します。遅延割り当てにより、ファイルシステムは、データがディスクにフラッシュされるまで、新しく書き込まれたユーザーデータの永続的な場所の選択を保留できます。これにより、より大きく、より連続した割り当てが可能になり、より優れた情報に基づいてファイルシステムが決定を下すことができるため、パフォーマンスが向上します。
Ext4 のファイルシステム修復時間 (fsck) は、Ext2 および Ext3 よりもはるかに高速です。一部のファイルシステムの修復では、最大 6 倍のパフォーマンスの向上が実証されています。現在、Red Hat がサポートする Ext4 の最大サイズは、Red Hat Enterprise Linux 5 と Red Hat Enterprise Linux 6 の両方で 16 TB、Red Hat Enterprise Linux 7 では 50 TB です。
Ext4 および Ext3 ファイルシステムは縮小 (縮小) できるため、ストレージの割り当てに関してもう少し柔軟になります。
ファイルシステム、ファイル、およびディレクトリーのサイズ制限の詳細については、Red Hat Enterprise Linux テクノロジーの機能と制限 の記事の ファイルシステムとストレージ セクションを参照してください。
ローカルファイルシステムの選択
アプリケーション要件を満たすファイルシステムを選択するにはどうすればよいでしょうか?最初のステップは、ファイルシステムをデプロイメントするターゲットシステムを理解することです。次の質問を使用して決定を決定できます。
- 大容量のサーバーがあるか
- 大規模なストレージ要件があるか、またはローカルの低速 S-ATA ドライブを持っていますか?
- アプリケーションで期待される I/O ワークロードの種類
- スループットとレイテンシーの要件
- サーバーおよびストレージハードウェアの安定性
- ファイルとデータセットの標準的なサイズ
- システムで障害が発生した場合のダウンタイムの長さ
- ファイルシステムのサイズを縮小 (削減) する必要があると予想していますか?
上記の質問に対する答えによっては、選択が明らかになる場合があります。サーバーとストレージデバイスの両方が大きく、ファイルシステムのサイズを縮小 (削減) する必要がない場合は、XFS が最適な選択となる可能性があります。ストレージアレイが小さくても、XFS は、平均のファイルサイズが大きい場合 (たとえば、数百メガバイト) に、非常に優れたパフォーマンスを発揮します。
既存のワークロードが Ext3 で良好に動作している場合は、Red Hat Enterprise Linux 5 上の Ext3 をそのまま使用するか、Red Hat Enterprise Linux 6 または Red Hat Enterprise Linux 7 上の Ext4 に移行することで、非常に使い慣れた環境がアプリケーションに提供されるはずです。同じストレージ上で Ext3 と比較した Ext4 の 2 つの主な利点には、ファイルシステムのチェックと修復にかかる時間が短縮されること、および高速デバイスでのストリーミング読み取りおよび書き込みパフォーマンスが向上することが挙げられます。
これを特徴づけるもう 1 つの方法は、Ext4 ファイルシステムのバリアントは、I/O 機能が制限されているシステムでパフォーマンスが向上する傾向があるということです。Ext3 と Ext4 は、制限された帯域幅 (< 200MB/s) と最大 ~1,000 IOPS の機能でより優れたパフォーマンスを発揮します。より高い機能を備えたものであれば、XFS はより高速になる傾向があります。また、XFS は Ext3 や Ext4 と比較して、メタデータあたりの操作で約 2 倍の CPU を消費するため、同時実行性がほとんどなく CPU に依存するワークロードがある場合は、Ext3 または Ext4 のバリアントの方が高速になります。一般に、アプリケーションが単一の読み取り/書き込みスレッドと小さなファイルを使用する場合は Ext3 または Ext4 の方が適していますが、アプリケーションが複数の読み取り/書き込みスレッドと大きなファイルを使用する場合は XFS が最適です。
ターゲットサーバーおよびストレージシステム上で特定のアプリケーションのパフォーマンスを測定し、適切なタイプのファイルシステムを選択していることを確認することを推奨します。
Red Hat Enterprise Linux 6 には、新しいファイルシステム機能とパフォーマンス特性が備わっています。Red Hat Enterprise Linux 6 に導入された主な機能には、SSD トリムコマンドのサポート、シンプロビジョニングされたストレージのサポート、さまざまなタイプのストレージデバイス上の新しいファイルシステムの自動検出と調整が含まれます。
ネットワークファイルシステム
ネットワークファイルシステムは、クライアント/サーバーファイルシステムとも呼ばれ、クライアントマシンが共有サーバーに保存されているファイルにアクセスできるようにします。これにより、複数のマシン上の複数のユーザーがファイルやストレージリソースを共有できるようになります。このようなファイルシステムは、ファイルシステムのセットを 1 つ以上のクライアントにエクスポートする 1 つ以上のサーバーから構築されます。クライアントノードは、基盤となるブロックストレージにアクセスできませんが、より良いアクセス制御を可能にするプロトコルを使用してストレージと対話します。歴史的に、これらのシステムはギガビットイーサネットなどの L2 ネットワーキングテクノロジーを使用して、一連のクライアントに適度に優れたパフォーマンスを提供してきました。
Red Hat Enterprise Linux の顧客にとって最も一般的なクライアント/サーバーファイルシステムは、NFS ファイルシステムです。Red Hat Enterprise Linux は、ネットワーク経由でローカルファイルシステムをエクスポートするために使用される NFS サーバーコンポーネントと、これらのファイルシステムをインポートするために使用できる NFS クライアントの両方を提供します。
Red Hat Enterprise Linux には、Windows の相互運用性のために一般的な Microsoft SMB ファイルサーバーをサポートする CIFS クライアントも含まれています。Windows クライアントに Red Hat Enterprise Linux サーバーから Microsoft SMB サービスを提供するために、Red Hat Enterprise Linux はユーザースペース Samba サーバーを提供します。
共有ストレージファイルシステム
クラスターファイルシステムとも呼ばれる共有ストレージファイルシステムにより、クラスター内の各サーバーは、ローカルストレージエリアネットワーク (SAN) を介して共有ブロックデバイスに直接アクセスできます。前述のクライアント/サーバーファイルシステムと同様に、共有ストレージファイルシステムは、すべてクラスターのメンバーである一連のサーバー上で動作します。ただし、NFS とは異なり、単一のサーバーが他のメンバーにデータやメタデータへのアクセスを提供することはありません。クラスターの各メンバーは同じストレージデバイス (共有ストレージ) に直接アクセスでき、すべてのクラスターメンバーノードは同じファイルセットにアクセスします。。
クラスター化されたファイルシステムでは、データの一貫性と整合性を確保するためにキャッシュの一貫性が最も重要です。クラスター内のすべてのノードに表示される、クラスター内のすべてのファイルのバージョンが 1 つ必要です。クラスターのメンバーが同じストレージブロックを同時に更新してデータ破損を引き起こすことを防ぐために、共有ストレージファイルシステムはクラスターワイドロックメカニズムを使用して、同時実行制御メカニズムとしてストレージへのアクセスを調停します。たとえば、新しいファイルを作成したり、複数のサーバーで開いているファイルに書き込む前に、サーバーにあるファイルシステムコンポーネントが正しいロックを取得する必要があります。
クラスターファイルシステムの要件は、Apache Web サーバーのような可用性の高いサービスを提供することです。クラスターのどのメンバーも、自分の共有ディスクファイルシステムに保存されているデータの完全に一貫したビューを参照でき、すべての更新はロックメカニズムによって正しく調停されます。共有ディスクファイルシステムのパフォーマンスは、ロックのオーバーヘッドのコストを考慮する必要があるため、通常、同じシステムで実行しているローカルファイルシステムのパフォーマンスよりも低くなります。共有ディスクファイルシステムは、各ノードが他のノードと共有されていない特定のファイルセットにほぼ排他的に書き込むワークロード、またはファイルセットがノードセット全体でほぼ読み取り専用の方法で共有されるワークロードで良好にパフォーマンスします。。これにより、ノード間のキャッシュの無効化が最小限に抑えられ、パフォーマンスを最大化できます。共有ディスクファイルシステムの設定は複雑で、共有ディスクのファイルシステムで適切に動作するようにアプリケーションを調整することが困難な場合があります。
Red Hat Enterprise Linux の顧客向けに、Red Hat は Red Hat Enterprise Linux 4 および Red Hat Enterprise Linux 5 で GFS1 ファイルシステムを提供し、GFS2 ファイルシステムは Red Hat Enterprise Linux 5.4 以降のメジャーリリース (Red Hat Enterprise Linux 6 を含む) で利用可能です。と 7。GFS1 は Red Hat Enterprise Linux 6 以降ではサポートされていないため、お客様はアップグレードする前にデータを GFS2 に移行する必要があります。GFS2 は、Red Hat Enterprise Linux High Availability Add-On および Resilient Storage Add-On と密接に統合されています。Red Hat Enterprise Linux は、2 ~ 16 ノードのサイズのクラスター上で GFS1 と GFS2 の両方をサポートしていることに注意してください。
ネットワークファイルシステムと共有ストレージファイルシステムの選択
NFS ベースのネットワークファイルシステムは、NFS サーバーを提供する環境において、ごく一般的で評判が良い選択肢です。ネットワークファイルシステムは、Infiniband や 10 ギガビットイーサネットなどの非常に高性能なネットワークテクノロジーを使用してデプロイメントできることに注意してください。これは、ユーザーがストレージに生の帯域幅を確保するためだけに共有ストレージファイルシステムを利用すべきではないことを意味します。アクセス速度が最も重要な場合は、NFS を使用して Ext4 などのローカルファイルシステムをエクスポートします。
共有ストレージファイルシステムはセットアップや保守が簡単ではないため、ユーザーはローカルファイルシステムまたはネットワークファイルシステムで必要な可用性を提供できない場合にのみ共有ストレージファイルシステムを導入する必要があります。さらに、クラスター環境の共有ストレージファイルシステムは、高可用性サービスの再配置を含む一般的なフェイルオーバーシナリオ中に実行する必要があるアンマウントとマウントに必要な手順を排除することで、ダウンタイムを短縮します。最小限のダウンタイムで高可用性サービスを提供する必要があり、厳しいサービスレベル要件があるデプロイメントには、主に共有ストレージファイルシステムの使用を推奨します。
まとめ
特定のアプリケーションのニーズを満たす Red Hat Enterprise Linux ファイルシステムを選択するには、さまざまなパラメーターを考慮する必要があります。このドキュメントは、さまざまなファイルシステムオプションの利点を概説し、ユーザーがアプリケーション環境に適したファイルシステムを決定できるようにすることを目的としています。IT 環境のファイルシステムに関する追加情報については、Red Hat サポートにお問い合わせください。
Comments