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

キュー深度の算出の概要

寄稿者

ノードあたりおよび 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 スループットに必要なキュー深度を算出するには、次の式を使用します。

        必要なキュー深度 = ( IOPS ) × (応答時間)

        たとえば、応答時間 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 となります。