NFSv4ストアプールとは何ですか。また、ストアプールが存在する理由を教えてください。
環境
- ONTAP 9
- NFSv4
回答
- ONTAPは、クライアント接続のNFSv4+の状態に関する情報をstorepoolsと呼ばれるメモリ割り当てに格納します
- 各storepoolは、クライアント接続のNFSv4/4.1状態処理を容易にするために使用されるメモリ割り当て(プール)の集合です。
- ストアプールには、さまざまな分野にわたる12のペアがあります:
StorePool 名前 | 概要 |
---|---|
storePool_ByteLockAlloc | バイト範囲ロック |
storePool_ClientAlloc | クライアントID |
storePool_CopyStateAlloc | コピー オフロード関連の作業に使用 |
storePool_DelegAlloc | 読み取りと書き込みの委譲(クライアント キャッシング) |
storePool_DelegStateAlloc | 委任 StateID |
storePool_LayoutAlloc | レイアウト(pNFSリファーラルに使用) |
storePool_LayoutStateAlloc | レイアウト StateID |
storePool_LockStateAlloc | ロック状態ID |
storePool_OpenAlloc | 開きます |
storePool_OpenStateAlloc | Open StateID |
storePool_OwnerAlloc | 所有者 |
storePool_StringAlloc | ClientID と Owner に対して送信された不透明なデータを格納します |
- storePoolリソースはどこにありますか?
- 各ノードには固有のstorePoolリソースがあります
- これらのstorePoolリソースは、各ノードのネットワークブレード(nblade)に格納されます
- ノードのローカルにLIFをマウントしているクライアントによって使用されます
- storePoolリソースとロックマネージャオブジェクトの違いは何ですか
- storePoolリソースはNFSv4/4.1の状態処理専用であり、ファイルシステム層(dblade)で開いているファイルやロックされているファイルは追跡しません。
- ロックマネージャーオブジェクトは、オープン/ロック競合の解決を含む、ファイルシステムのオープン/ロック追跡を担当します。
- storePool枯渇は、ロック マネージャー オブジェクトの枯渇とどのように異なりますか?
- storePoolがなくなるのは、LIFがマウントされているノードのネットワーク層(nblade)です。
- つまり、状態を追跡するためのNFSv4/4.1オブジェクトが不足しているということです。
- ロック マネージャーの枯渇とは、ファイル システム レイヤー(データ ブレードまたは dblade)でファイルを開いたりロックしたりする役割を担うオブジェクトを使い果たすことです。
- ロック マネージャーの枯渇は、枯渇が発生したノード上のボリュームに影響します。
- 監視 storePool 消費:
- storePoolオブジェクトは
statistics
カウンタで監視でき、特定の「プール」がいっぱいになるとアラート警告を発します。 - プールの割り当て数は動的であり、クライアントがファイルを開いたり閉じたりするたびに常に変化します。
- NetAppはコマンドを使用して手動でカウンタを取得する機能があり、アラート生成用のスクリプトを通じて利用できます。
- ONTAP 9.2以降では、storePoolリソースが最大しきい値の80%に達したときにアラートを生成するEMSイベントが存在します。
- storePoolオブジェクトは
- 特定のクライアントが潜在的な問題を引き起こす可能性があるのはどのような場合ですか?
- 特定の状況では、クライアントはONTAPノードが想定している方法でOPENを閉じません。
- この場合、クライアントは、その OPEN がまだ割り当てられていることに気づいていません。
- この場合、サーバはOpenStateオブジェクトを削除せず、リソースがプールに戻されることはありません。
- この動作が続くと、クライアントの動作によってサーバー上のリソースが孤立し、storePool枯渇が発生する可能性があります。
- NFSv4ロックをダンプすると、どのクライアントがstorePoolの割り当てをすべて使用しているかを確認できます。
- このクライアントが再起動されると、ONTAPは、そのクライアントに関連付けられているstorePoolリソースを解放します。
- クライアントがNFSv4経由でノードAのLIFとノードBのLIFをマウントします。これらのマウントは両方ともノードAのボリュームにアクセスします。ノードAでstorePoolリソースが不足します。どのマウントが影響を受けますか?
- 影響を受けるのはノードAの接続のみです。
- これらの割り当ては、接続に使用されるノードであるONTAPの「ネットワーク」層(nblade)に対して行われます。
- ボリュームが配置されている場所は問題とは関係ありません。
物理メモリ範囲 | リミットソース | 最大コンパウンド | 最大クライアントオブジェクト数 | 最大所有者オブジェクト数 | 最大オープン状態オブジェクト数 |
最大デレッグ状態オブジェクト |
最大ロック状態オブジェクト |
最大レイアウト状態オブジェクト |
最大コピー状態オブジェクト数 |
最大オープンオブジェクト数 |
最大デレッジ オブジェクト数 |
最大 ByteLock オブジェクト数 |
最大レイアウトオブジェクト数 |
最大LayoutLockオブジェクト数 |
最大文字列オブジェクト数 |
最大セッション数 |
最大実行数 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 - 2 GB | 静的テーブル | 1,500,000 | 1,000 | 6,000 | 26,000 | 26,000 | 26,000 | 26,000 | 10,000 | 26,000 | 26,000 | 26,000 | 26,000 | 26,000 | 26,000 | 1,000 | 512,000 |
2~4 GB | 静的テーブル | 15,000,000 | 12,000 | 128,000 | 512,000 | 512,000 | 512,000 | 512,000 | 10,000 | 512,000 | 512,000 | 512,000 | 512,000 | 512,000 | 256,000 | 15,000 | 512,000 |
4~15 GB | 静的テーブル | 15,000,000 | 12,000 | 128,000 | 512,000 | 512,000 | 512,000 | 512,000 | 10,000 | 512,000 | 512,000 | 512,000 | 512,000 | 512,000 | 256,000 | 15,000 | 512,000 |
15 - 23 GB | 静的テーブル | 15,000,000 | 12,000 | 128,000 | 512,000 | 512,000 | 512,000 | 512,000 | 10,000 | 512,000 | 512,000 | 512,000 | 512,000 | 512,000 | 256,000 | 15,000 | 750,000 |
23~31 GB | 静的テーブル | 150,000,000 | 100,000 | 1,000,000 | 1,000,000 | 1,000,000 | 1,000,000 | 1,000,000 | 10,000 | 1,000,000 | 1,000,000 | 1,000,000 | 1,000,000 | 1,000,000 | 1,000,000 | 100,000 | 1,500,000 |
31〜63 GB | 静的テーブル | 150,000,000 | 100,000 | 1,000,000 | 1,000,000 | 1,000,000 | 2,000,000 | 1,000,000 | 10,000 | 1,000,000 | 1,000,000 | 1,000,000 | 1,000,000 | 1,000,000 | 1,000,000 | 100,000 | 1,500,000 |
63~127 GB | 静的テーブル | 150,000,000 | 100,000 | 1,000,000 | 1,000,000 | 1,000,000 | 4,000,000 | 1,000,000 | 10,000 | 1,000,000 | 1,000,000 | 1,000,000 | 1,000,000 | 1,000,000 | 1,000,000 | 100,000 | 1,500,000 |
127~255 GB | 静的テーブル | 150,000,000 | 100,000 | 1,000,000 | 1,000,000 | 1,000,000 | 4,000,000 | 1,000,000 | 10,000 | 1,000,000 | 1,000,000 | 1,000,000 | 1,000,000 | 1,000,000 | 1,000,000 | 100,000 | 1,500,000 |
255GB以上(例:300GB) | GB単位のスケーリング | 150,000,000 | 300,000 | 1,800,000 | 9,000,000 | 6,000,000 | 6,000,000 | 3,000,000 | 3,000,000 | 9,000,000 | 6,000,000 | 7,800,000 | 3,000,000 | 3,000,000 | 3,000,000 | 300,000 | 153,600,000 |
255GB以上(例:512GB) | GB単位のスケーリング | 150,000,000 | 512,000 | 3,072,000 | 15,360,000 | 10,240,000 | 10,240,000 | 5,120,000 | 5,120,000 | 15,360,000 | 10,240,000 | 13,312,000 | 5,120,000 | 5,120,000 | 5,120,000 | 512,000 | 262,144,000 |
255GB以上(例:1TB) | GB単位のスケーリング | 150,000,000 | 1,000,000 | 6,000,000 | 30,000,000 | 20,000,000 | 20,000,000 | 10,000,000 | 10,000,000 | 30,000,000 | 20,000,000 | 26,000,000 | 10,000,000 | 10,000,000 | 10,000,000 | 1,000,000 | 512,000,000 |
追加情報