NFS の概要
HPC ストレージ ソリューションの選択のコンテキストで、説明する必要があるいくつかの重要な NFS 概念があります。 NFS を使用する場合の主な課題は、ターゲットの HPC ストレージ環境で、NFS の特定のバージョンに固有の構成要素、ネットワーク接続性、またはセキュリティ機能が必要であるかどうかを決定することです。 これらの概念の一部を選択条件にまとめると、利用可能なさまざまなソリューションを評価するのに役立ちます。 少なくとも、これらの項目を考慮すると、NFS 要件に合わないものを取り除くことによって、時間を節約できます。
NFS に関する考慮事項
NFS プロトコルには、NFSv3 と NFSv4.x (v4.1 と v4.2) の 2 つのメイン バージョンがあります。 この 2 つのバージョンの違いの全範囲については、このモジュールの目的に外れています。 しかし、認証と認可に関連するいくつかの問題がここで特定されます。 また、2 つのプロトコルの歴史や、なぜプロトコルが 2 つあるかを理解する必要はありません。 多くのユーザーがまだ環境で NFSv3 を実行しているということがわかっていれば十分です。
NFSv3 の使用に特有の考慮事項から見ていきましょう。
NFSv3 とグループ
NFSv3 は、NFS クライアントおよびサーバーに API 要求を渡す単純なファイル システム プロトコルです。 ユーザーは UID によって表され、プライマリ グループ GID の関連付けがあることを前に説明しました。 また、ユーザーはさらに多くのグループに関連付けることができることも説明しました。 NFS の目的では、これらのグループ割り当ては補助グループと呼ばれます。 UID および GID の情報は、要求と共に渡され、NFS サーバーによって適切なアクセス レベルを決定するために使用されます。
NFSv3 には、渡す GID 値の合計数に制限があります。 NFSv3 では、任意の特定の UID に対して 16 個の補助グループのみを渡すことがサポートされています。 有意義な方法 (きめ細かいアクセス管理など) で 16 を超えるグループ割り当てを使用している場合、この制限の影響を受ける可能性があります。 NetApp などの NAS ベンダーは、すべてのグループ マッピングの通信をサポートする拡張機能を NFS プロトコルに追加しています。 この拡張機能は、拡張グループ サポートと呼ばれます。 HPC ストレージを評価していて、多数の GID 割り当てを使用している場合は、提案されたソリューションでこの機能がサポートされているかどうかを確認する必要があります。
NFSv3 とネットワーク セキュリティ
NFSv3 は、セキュリティの面でも制限されています。 NFSv3 では、実際に多くのセキュリティ機能を使用していません。 たとえば、データ暗号化や Kerberos 認証がサポートされていません。 NFSv3 環境で使用できる主なメカニズムには、NFS サーバーへのネットワークレベルのアクセスを制限するエクスポート規則とポリシーの使用が含まれます。 エクスポートとは、NFS サーバーで特定のディレクトリをクライアントに公開するために使用されるメカニズムです。 エクスポート規則は、IP ネットワーク アドレスに基づいてクライアントを許可または禁止するように構成します。 エクスポート規則でホスト エントリ (1.1.1.1 など) またはネットワーク (1.1.1.0/24 など) を定義し、エクスポートへのアクセスを許可または拒否することができます。 エクスポート規則は、NFS サーバー上の特定のエクスポートと関連付けられているエクスポート ポリシーに集められます。
NFSv3 とネットワーク ポート
NFSv3 の 1 つの課題は、すべての通信に標準 TCP ポートが使われるわけではないことです。 このポートの柔軟性によって、標準ポート (RPC では 111、NFS では 2049) はありますが、エクスポートをマウントするための他のポートはランダムに割り当てられるポートであることを考えると、WAN 経由で NFSv3 アクセスを許可することは困難になります。
仮想ネットワークの範囲外にアクセスする必要があり、TCP ポートをブロックするセキュリティ構成を必要とする場合のみ、Azure での NFSv3 ネットワークは困難になります。 しかし、エクスポート ポリシー構成を提供するソリューションを選択すると、ネットワークのエッジに何が構成されているかに関係なく、NFS ソリューションを直接ロック ダウンできます。
スカッシュ
スカッシュとは、ファイルやフォルダーにアクセスするために、特定の UID の使用を強制させる NFS サーバーの機能を指します。 たとえば、特定のエクスポートされたフォルダーに使用する UID を管理者が制御する必要があるとします。 Linux NFS サーバー環境では、ルート アクセスをルート以外の UID にスカッシュする機能がサポートされています。 NAS 製品では、受信クライアント ネットワークまたはアドレスと UID 値に基づいた、特定のスカッシュがサポートされています。 スカッシュの主な用途の 1 つは、リモート接続経由でルート以外のアクセスを確保することです。
Azure でファイル システムをレプリケートする計画があり、この同じ動作を期待する場合に、すべてのソリューションで、まったく同じようにスカッシュがサポートされているわけではないことに注意してください。
NFSv3 と暗号化
NFSv3 では、データ暗号化がサポートされていません。 それは本来、信頼された企業環境内で使用するように設計されています。 ネットワーク暗号化ソリューションによって、信頼されたネットワークから離れるトラフィックを暗号化する必要があります。
NFSv3 とファイル ロック
ロックとは、他のクライアントが特定のファイルまたはファイルのセクションを更新できないようにするクライアントの機能を指します。 NFSv3 には、独自のロック機構がありません。 ネットワーク ロック マネージャー (NLM) とネットワーク ステータス モニター (NSM) と呼ばれるネットワーク サービスによって、存在するロックが実行されます。 これらのサーバーは、クライアントとサービスで実行され、すべてのロックの相互作用を管理します。 これらは、NFS サービスの外部で実行され、独自のネットワーク プロトコル トラフィックを生成します。 これらのロックは必須ではありません。 アドバイザリ ロックと呼ばれています。 これらは追跡されますが、強制されません。 アプリケーションで、競合とロックの問題を処理することが期待されます。
NFSv4.x
NFSv4.x では、NFS にいくつかの重要な機能強化が導入されています。 主な機能強化に焦点を当てます。
NFSv4 と Kerberos
NFSv4 では、ユーザーの認証とすべての NFS トラフィックの暗号化のために Kerberos の使用の完全サポートが導入されました。 Kerberos を NFSv3 に統合する試みがありましたが、NLM/NSM とその他の外部プロトコルの使用のため、データ ペイロードのみが暗号化されます。
エクスポート ポリシーによって明示的にブロックされない限り、NFSv3 のすべてのアクセスは信頼されます。 Kerberos を使用することで、信頼されたコンピューターに基づいて認証できるようになりました。
すべての NFS トラフィックの暗号化がサポートされています。 NFS クライアントから NFS サーバーへのすべてのトラフィック (特定のネットワーク セグメント上だけでなく) を暗号化できます。
Kerberos 経由で認証と暗号化を使用するには、Kerberos 環境をデプロイする必要があります。
重要な考慮事項は、すべての NFSv4 互換サービスで Kerberos がサポートされているとは限らないということです。 Kerberos がなくても、NFSv4 の他の機能を引き続き使用できますが、データは認証または暗号化できません。 ソリューションを選択する際は、この機能が必要かどうかと、オプションで Kerberos がサポートされているかどうかを確認してください。
NFSv4 とネットワーク ポート
NFSv3 に勝る NFSv4 の利点の 1 つは、NFSv4 ではすべてのトラフィックに対して 1 つの TCP ポート (ポート 2049) が使用されることです。 Azure 仮想ネットワークまたはデータセンターに NFSv4 環境がある場合は、NFSv4 のサポート時にファイアウォール間でアクセスを提供するのが簡単になります。
NFSv4 と ACL
たとえば、ファイルまたはフォルダーがあり、グループ 1 には読み取り/書き込みアクセス、グループ 2 には読み取り専用アクセス、および特定のコンピューター アカウントにはデータの追加アクセスを提供する必要があるとします。 NFSv3 のアクセス許可 (モード ビット) には、必要な細分性のレベルがないため、v3 のアクセス許可ではこれらの要件を満たすことができません。
NFSv4 にはアクセス制御リスト (ACL) が導入されています。 各ファイルまたはフォルダーに、ACL を適用できます。 各 ACL は、1 つまたは複数のアクセス制御エントリ (ACE) で構成されます。 NTFS は同じモデルに従っているため、このアプローチは Windows NTFS の管理者にはなじみがあります。
環境で NFSv4 ACL を使用している場合は、この要件に最適なストレージ ソリューションを決定する必要があります。
まとめ
NFS プロトコルに関する考慮事項についてざっと説明しました。 上述の項目は、ストレージ ソリューションを選択するときに考慮する主な要素を表しています。
現在の環境、グループ管理、ネットワーク、およびセキュリティの要件を評価して、適切なストレージ ソリューションを決定する必要があります。
この表は、前述の説明に基づいた比較を示しています。
機能 | NFSv3 | NFSv4 |
---|---|---|
ファイル/フォルダーのアクセス許可 | モード ビット | モード ビットと ACL |
暗号化 | なし | Kerberos |
ネットワーク ポート | TCP または UDP、ポートマッパーが必要 | TCP ポート 2049 |
ファイルのロック | アドバイザリ NLM | アクティブ ロックのサポート |