Skip to main content
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

キュー深度の計算の概要

共同作成者

ノードおよびFCポートのファンインあたりのITN数を最大にするために、ホストのFCキュー深度の調整が必要になる場合があります。LUNの最大数と1つのFCポートに接続できるHBAの数は、FCターゲット ポートで使用可能なキューの深度によって制限されます。

タスクの内容

キュー深度は、ストレージコントローラで一度にキューに格納できるI/O要求(SCSIコマンド)の数です。ホストのイニシエータHBAからストレージコントローラのターゲットアダプタへのI/O要求ごとに、キューエントリが1つ作成されます。通常、キュー深度が大きいほどパフォーマンスは向上します。ただし、ストレージコントローラの最大キュー深度に達すると、ストレージコントローラはQFULL応答を返して受信コマンドを拒否します。QFULL状態が発生するとシステムパフォーマンスが大幅に低下し、一部のシステムでエラーが発生する可能性があるため、1台のストレージコントローラに多数のホストがアクセスしている場合は、QFULLが発生しないように慎重に計画する必要があります。

複数のイニシエータ(ホスト)を含む構成では、すべてのホストでキュー深度を同程度に設定する必要があります。同じターゲットポートを介してストレージコントローラに接続されているホスト間でキュー深度が異なるため、キュー深度が小さいホストは、キュー深度が大きいホストからリソースにアクセスできなくなります。

キュー深度を「チューニング」する場合は、次の一般的な推奨事項を考慮してください。

  • 小規模から中規模のシステムでは、HBAキュー深度を32にします。

  • 大規模なシステムでは、HBAキュー深度を128にします。

  • 例外的なケースやパフォーマンステストでは、キュー深度を256にして、キューの問題の可能性を回避します。

  • すべてのホストに均等にアクセスできるようにするには、すべてのホストのキュー深度を同じ値に設定する必要があります。

  • パフォーマンスの低下やエラーを回避するために、ストレージコントローラのターゲットFCポートのキュー深度を超えないようにする必要があります。

手順
  1. 1つのFCターゲットポートに接続しているすべてのホストのFCイニシエータの総数を数えます。

  2. 128を掛けます。

    • 2 、 048 より小さい場合は、すべてのイニシエータのキュー深度を 128 に設定します。15台のホストがあり、1つのイニシエータがストレージコントローラ上の2つのターゲットポートのそれぞれに接続されています。15 × 128 = 1 、 920 。これは合計最大キュー深度の 2 、 048 より少ないため、すべてのイニシエータのキュー深度を 128 に設定できます。

    • この値が 2 、 048 よりも大きい場合は、手順 3 に進みます。30台のホストがあり、1つのイニシエータがストレージコントローラ上の2つのターゲットポートのそれぞれに接続されています。30 × 128 = 3 、 840 。これは合計最大キュー深度の 2 、 048 より大きいため、手順 3 に記載されているいずれかのオプションを実行して調整します。

  3. 次のいずれかのオプションを選択して、ストレージコントローラにホストを追加します。

    • オプション1:

      1. FCターゲットポートを追加します。

      2. FCイニシエータを再配置します。

      3. 手順1と2を繰り返します。+ 必要なキュー深度 3 、 840 は、ポートあたりの使用可能なキュー深度を超えています。これを解決するには、各コントローラに2ポートのFCターゲットアダプタを追加し、30台のホストのうち15台を1つのポートセットに接続し、残りの15台を2つ目のポートセットに接続するようにFCスイッチをゾーニングし直します。これで、ポートあたりのキュー深度は 15 × 128 = 1 、 920 となります。

    • オプション2:

      1. 各ホストを「ラージ」または「モール」として指定します。これは、予想される I/O ニーズに基づいています。

      2. 大規模イニシエータの数に128を掛けます。

      3. 小規模イニシエータの数に32を掛けます。

      4. 2つの結果を足し合わせます。

      5. 2 、 048 より小さい場合は、大規模ホストのキュー深度を 128 に、小規模ホストのキュー深度を 32 に設定します。

      6. 2 、 048 よりも大きい場合は、合計キュー深度が 2 、 048 以下になるまで各イニシエータのキュー深度を下げます。

        メモ

        特定の1秒あたりのI/Oスループットを達成するために必要なキュー深度を見積もるには、次の式を使用します。

        必要なキュー深度=(1秒あたりのI/O数)×(応答時間)

        たとえば、応答時間 3 ミリ秒で 40 、 000 IOPS のスループットに必要なキュー深度は、 40 、 000 × ( .003 ) = 120 です。

基本的な推奨構成に従ってキュー深度を32に制限した場合、ターゲットポートに接続できるホストの最大数は64です。ただし、キュー深度を128にすると、1つのターゲットポートに接続できるホストの最大数は16になります。キュー深度が大きいほど、1つのターゲットポートでサポートできるホストの数が少なくなります。キュー深度を妥協できないような要件の場合は、追加のターゲットポートを用意する必要があります。

必要とされるキュー深度 3 、 840 は、ポートあたりの使用可能なキュー深度を超えています。ストレージ I/O のニーズが高い「大規模」ホストが 10 台あり、 I/O のニーズが低い「モール」ホストが 20 台あります。大規模ホストのイニシエータのキュー深度を128に、小規模ホストのイニシエータのキュー深度を32に設定します。

その結果、合計キュー深度は( 10 × 128 ) + ( 20 × 32 ) = 1 、 920 になります。

使用可能なキュー深度を、各イニシエータに均等に分配できます。

そのため、イニシエータあたりのキュー深度は 2 、 048 ÷ 30 = 68 となります。