ONTAP FCホストのキュー深度を計算する
ノードおよびFCポートのファンインあたりのITN数を最大にするために、ホストのFCキュー深度の調整が必要になる場合があります。LUNの最大数と1つのFCポートに接続できるHBAの数は、FCターゲット ポートで使用可能なキューの深度によって制限されます。
キュー深度は、ストレージ コントローラで一度にキューに格納することができる、I/O要求(SCSIコマンド)の数です。ホストのイニシエータHBAからストレージ コントローラのターゲット アダプタへのI/O要求ごとに、キュー エントリが1つ作成されます。一般に、キュー深度が深い(大きい)ほどパフォーマンスは向上します。ただし、ストレージ コントローラの最大キュー深度に達すると、ストレージ コントローラはQFULL応答を返して受け取ったコマンドを拒否します。QFULL状態はシステム パフォーマンスの大幅な低下を招き、一部のシステムではエラーを引き起こすこともあります。そのため、1台のストレージ コントローラに多数のホストがアクセスしている環境では、QFULLが発生しないように慎重に計画してください。
複数のイニシエータ(ホスト)を含む構成では、すべてのホストでキュー深度を同程度に設定する必要があります。同じターゲット ポートを介してストレージ コントローラに接続されたホスト間では、キュー深度に応じてリソースへのアクセスに差があり、キュー深度が小さいホストよりもキュー深度の大きいホストのアクセスが優先されます。
キューの深さの「tuning」については、次のような一般的な推奨事項があります。
-
小規模から中規模のシステムでは、HBAキュー深度を32にする。
-
大規模のシステムでは、HBAキュー深度を128にする。
-
例外的なケースまたはパフォーマンス テストでは、キュー深度を256にしてキュー関連の問題の発生を避ける。
-
すべてのホストにアクセスが均等に保証されるよう、どのホストにも同程度のキュー深度を設定する。
-
パフォーマンスの低下やエラーを避けるために、ストレージ コントローラのターゲットFCポートのキュー深度を超えないようにする。
-
1つのFCターゲット ポートに接続しているすべてのホストのFCイニシエータの数を数えます。
-
128をかけます。
-
結果が2,048未満の場合は、すべてのイニシエーターのキュー深度を128に設定してください。ストレージコントローラーの2つのターゲットポートにそれぞれ1つのイニシエーターが接続されたホストが15台あります。15 × 128 = 1,920です。1,920はキュー深度の合計制限である2,048より小さいため、すべてのイニシエーターのキュー深度を128に設定できます。
-
結果が2,048より大きい場合は、手順3に進みます。ストレージコントローラの2つのターゲットポートそれぞれに1つのイニシエーターが接続されたホストが30台あります。30 × 128 = 3,840です。3,840はキュー深度の合計制限である2,048より大きいため、手順3のいずれかのオプションを選択して修復する必要があります。
-
-
次のいずれかのオプションを選択して、ストレージ コントローラにホストを追加します。
-
オプション1:
-
FCターゲット ポートを追加します。
-
FCイニシエータを再配分します。
-
手順1と2を繰り返します。+ 必要なキュー深度3,840は、ポートあたりの利用可能なキュー深度を超えています。これを解決するには、各コントローラに2ポートのFCターゲット アダプタを追加し、FCスイッチを再ゾーン化して、30台のホストのうち15台を1つのポートセットに接続し、残りの15台を別のポートセットに接続するようにします。これにより、ポートあたりのキュー深度は15 × 128 = 1,920に減少します。
-
-
オプション2:
-
予想される I/O ニーズに基づいて、各ホストを「
large」または「small」として指定します。 -
大規模イニシエータの台数に128をかけます。
-
小規模イニシエータの台数に32をかけます。
-
2つの計算結果を合算します。
-
結果が2,048未満の場合は、大規模ホストのキュー深度を128に設定し、小規模ホストのキュー深度を32に設定します。
-
結果が依然としてポートあたり2,048を超える場合は、キューの深さの合計が2,048以下になるまで、イニシエーターあたりのキューの深さを減らします。
1秒間のI/O数(IOPS)による特定のスループットを達成するために必要なキュー深度を見積もるには、次の式を使用します。
必要なキュー深度 = (IOPS)×(応答時間)
たとえば、応答時間が3ミリ秒で1秒あたり40,000回のI/Oが必要な場合、必要なキューの深さは40,000 × (.003) = 120になります。
-
-
基本となる推奨構成に従ってキュー深度を32に制限した場合、ターゲット ポートに接続できるホストの最大数は64です。一方、キュー深度を128にした場合は、1つのターゲット ポートに接続できるホストの最大数は16になります。このように、1つのターゲット ポートでサポートできるホストの数はキュー深度が大きいほど少なくなります。キュー深度を小さくできないような要件がある場合は、その分ターゲット ポートを増やしてください。
必要なキュー深度3,840は、ポートあたりの利用可能なキュー深度を超えています。ストレージI/Oニーズが高い「large」ホストが10台と、I/Oニーズが低い「small」ホストが20台あります。大規模ホストのイニシエーター キュー深度を128に、小規模ホストのイニシエーター キュー深度を32に設定してください。
結果として得られるキューの合計深度は(10 × 128)+(20 × 32)= 1,920になります。
使用可能なキュー深度を、各イニシエータに均等に分配できます。
結果として、イニシエーターあたりのキューの深さは2,048÷30=68になります。