PowerScale:OneFS:NFSクライアント設定のベスト プラクティス
概要: この記事では、Network File System (NFS)プロトコルを使用してPowerScaleクラスターに接続する場合のクライアント側の設定とマウント オプションのベスト プラクティスと推奨事項について説明し、サポートされているすべてのバージョンのOneFSに適用します。
現象
OneFS:Network File System(NFS)クライアント設定のベスト プラクティス
原因
サポートされているプロトコル バージョン
PowerScale OneFSは現在、Network File System (NFS)バージョン3および4をサポートしています。NFSバージョン2はサポートされていません。
NFSv3
NFSバージョン3は、現在最も広く使用されているNFSプロトコルのバージョンであり、クライアントとファイラーの採用が最も広範であると考えられています。このバージョンの主要なコンポーネントは次のとおりです。
- ステートレス - クライアントがファイルなどを要求するための正しい情報を持っている場合、技術的に新しいセッションを確立しません。これにより、動的IPプールを使用したOneFSノード間のシンプルなフェールオーバーが可能になります。
- ユーザーとグループの情報が数値として表現される - クライアントとサーバーはユーザー情報を数値識別子で通信するため、同じユーザーをクライアントとサーバーで異なる名前で表示することができます。
- ファイル ロックが帯域外 - NFSのバージョン3では、NLMと呼ばれるヘルパー プロトコルを使用してロックを実行します。この場合、クライアントはサーバーからのRPCメッセージに応答して、ロックが許可されていることを確認する必要があります。
- TCPまたはUDP経由で実行可能 - このバージョンのプロトコルは、TCPの代わりにUDP経由でも実行でき、その場合は損失の処理と、オペレーティング システムではなくソフトウェアへの再送信が残ります。デル・テクノロジーズでは、常にTCPの使用を推奨しています。
NFSv4
NFSバージョン4は、NFSプロトコルの最新の主要リビジョンであり、採用が増加しています。 ここでは、v3 と v4 の主な違いをいくつか紹介します。
- ステートフル - NFSv4は通信を処理するためにセッションを使用します。そのため、クライアントとサーバーの両方がセッション状態を追跡して通信を続行する必要があります。
- OneFS 8.Xより前のバージョンでは、NFSv4クライアントがPowerScaleの静的IPプールを必要としたり、問題が発生したりする可能性がありました。
- ユーザーとグループの情報が文字列として表現される - クライアントとサーバーの両方が、格納されている数値情報の名前を解決する必要があります。サーバーは送信する名前を検索する必要があります。一方、クライアントはこれらの名前をクライアント側で数字に再マッピングする必要があります。
- ファイル ロックは帯域内です - バージョン 4 では、ファイル ロックに個別のプロトコルを使用しなくなりました。代わりに、OPEN、CREATES、または WRITES と複合された呼び出しのタイプになります。
- 複合コール - バージョン4では、一連のコールを1つのパケットにバンドルすることにより、サーバーがそれらすべてを処理し、最後に応答することができます。これは、一般的な操作に必要なコールの数を減らすために使用されます。
- TCPのみをサポート - NFSのバージョン4では、損失と基盤となるオペレーティング システムへの再送信が残ります。
NFSv4.1以降
NFSv4.1およびv4.2は、OneFSバージョン9.3.以降で使用できます
9.3の公式リリース情報は次のとおりです:
PowerScale OneFS情報ハブ
解決方法
マウント オプション
デル・テクノロジーズでは、マウント オプションのハード要件を設けていませんが、クライアントの接続方法についていくつかの推奨事項を提供しています。これらのオプションの定義に使用される構文は使用中のオペレーティング システムによって異なるため、デル・テクノロジーズでは特定のマウント文字列を提供していません。特定のマウント構文については、ディストリビューション メンテナーのドキュメントに従う必要があります。
PowerScaleサポートでは、PowerScaleを使用したNFSクライアント構成の主要な参考資料として、wsize/rize、属性キャッシュなどの推奨オプションを含む次のホワイト ペーパーも推奨しています。
PowerScale OneFS NFSの設計に関する考慮事項とベスト プラクティス
https://infohub.delltechnologies.com/en-us/t/powerscale-onefs-nfs-design-considerations-and-best-practices-3/
読み取りおよび書き込みサイズ(rsize/wsize)
「wsize/rsizeオプション」については、PowerScaleサポートでは、ネイティブ ブロック サイズに基づいて、少なくとも128Kの「wsize」と「rsize」を推奨しています。
ただし、Linuxのほとんどの最新のディストリビューションでは、PowerScaleサポートは、設定を明示的に構成せず(つまり、クライアントのマウント オプションで読み取り/書き込みサイズを指定しない)、クライアントにチューニングを再ネゴシエートさせることを推奨しています。最新のLinuxディストリビューションは、最大1 MBのNFS読み取り/書き込みブロック長をサポートし、PowerScale NFSサーバーと最適なブロック長を自動的にネゴシエートします。ネゴシエートされた値は、最も適切に構成されたハイパフォーマンスで低レイテンシーのネットワークに最適です。ただし、アプリケーションまたはベンダーが特に小さいサイズを必要とする場合を除き、例外となります。
明示的に設定しない場合、NFSクライアントは、PowerScaleクラスターで構成されたNFSエクスポートで定義されているPowerScale NFSサーバーのFSINFOデータを使用します。
PowerScaleが提供するデフォルトは次のとおりです。
NFSv3: 512KB writes / 1MB readsNFSv4: 1MB writes/ 1MB reads
'rsize' と 'wsize' の詳細については、以下のホワイト ペーパーの 12 ページと 19 ページを参照してください。
PowerScale OneFS NFSの設計に関する考慮事項とベスト プラクティス
https://infohub.delltechnologies.com/en-us/t/powerscale-onefs-nfs-design-considerations-and-best-practices-3/
再試行とタイムアウトの定義
PowerScaleは通常、クライアント通信に迅速に応答しますが、ノードの電源またはネットワーク接続が失われた場合、IPアドレスが機能しているノードに移動するのに数秒かかる場合があるため、タイムアウト値と再試行値を正しく定義することが重要です。PowerScaleでは通常、最悪のフェールオーバー シナリオを考慮して60秒のタイムアウトを推奨し、障害を報告する前に2回再試行するように設定します。
ソフト マウントとハード マウント
ハード マウントでは、クライアントはタイムアウトまたはエラー発生時に操作を無期限に再試行します。これにより、PowerScaleクラスターがIPアドレスを1つのノードから別のノードに移動する場合に、クライアントがマウントを切断しないようにします。ソフト マウントがエラー アウトしてマウントが期限切れとなり、IPアドレスの移動後にアクセスをリストアするために再マウントが必要になります。
割り込みの許可
デフォルトでは、ほとんどのクライアントでは入出力またはI/O待機を中断できません。つまり、 ctrl+c クラスターが応答を停止している場合に待機中のプロセスを終了するには、次を含めます。 interrupt mount オプションを使用すると、代わりにこれらのシグナルが正常に通過します。
ローカル ロックとリモート ロック
NFSエクスポートをマウントする場合、クライアントがローカルでロックを生成するか、クラスター上のロック コーディネーターを使用するかを指定できます。ほとんどのクライアントはデフォルトでリモート ロックに設定されています。これは通常、複数のクライアントが同じディレクトリーにアクセスしている場合に最適なオプションですが、クライアントが作業中のディレクトリーへのアクセスを共有する必要がない場合は、ローカル ロックを実行するとパフォーマンス上の利点が得られます。さらに、一部のデータベースとソフトウェアでは、独自のコーディネーターがいるため、ローカル ロックの使用が要求されます。
属性キャッシュ(ac/noac)
「アクティブ キャッシュ タイムアウト」に関しては、これはクライアント側の動作と見なされます。その結果、PowerScaleサポートは、お客様のニーズに応じてこれらの設定に関する推奨事項を作成しません。ただし、以下のホワイト ペーパーの22ページに、これらの設定に関する一般的なガイダンスが記載されています。
PowerScale OneFS NFSの設計に関する考慮事項とベスト プラクティス
https://infohub.delltechnologies.com/en-us/t/powerscale-onefs-nfs-design-considerations-and-best-practices-3/
上記の22ページあたり:
属性キャッシュ(ac/noac)
複数のクライアント間で属性キャッシュの一貫性を実現するには、noac mountオプションを使用します。ほぼすべてのファイル システム操作で、ファイル属性情報がチェックされます。クライアントは、ネットワークとサーバーの負荷を軽減するために、一定期間この情報をキャッシュしたままにします。noacが有効な場合、クライアントのファイル属性キャッシュは無効化されるため、ファイルの属性をチェックする必要がある各操作は強制的にサーバーに戻されます。さらに、noac オプションは、アプリケーションの書き込みを強制的に同期化するため、クライアントはファイルを開いたときにファイルへの変更を認識しますが、多くの余分なネットワーク操作が犠牲になります。デフォルトでは、NFSをマウントするときに属性キャッシュが有効になっています。属性キャッシュを有効にすると、属性チェックのパフォーマンスが向上し、NFS操作のレイテンシーが短縮されます。
NFSv3とNFSv4のパフォーマンスの比較
ラボ テストに基づくと、PowerScaleサポートでは、サポートされている最新バージョンのOneFSでは、NFSのバージョン間で識別可能なパフォーマンスの違いは確認されていません。
その他の情報
特定のNFSエクスポートのwsize/rsize値を確認するには、任意のPowerScaleノードで次のコマンドを実行します。
# isi nfs exports ls -v --zone <zone name>
または、特定のエクスポートIDを確認するには、次を実行します。
# isi nfs export view <export id>
Example:
Read Transfer Max Size: 1.00M Read Transfer Size: 128.00k Write Transfer Max Size: 1.00M Write Transfer Size: 512.00k