エフサステクノロジーズ株式会社

本ページの製品は2024年4月1日より、エフサステクノロジーズ株式会社に統合となり、順次、切り替えを実施してまいります。一部、富士通表記が混在することがありますので、ご了承ください。

ONTAP 9.14

to English version

queue depthの算出 - 概要

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

タスク概要

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

複数のイニシエータ(ホスト)を含む構成では、全ホストでqueue depthを同程度に設定する必要があります。同じターゲット ポートを介してストレージ コントローラーに接続されたホスト間では、queue depthに応じてリソースへのアクセスに差があり、queue depthが小さいホストよりもqueue depthの大きいホストのアクセスが優先されます。

queue depthを「調整」する際の一般的な推奨事項は次のとおりです。

  • 小規模から中規模のシステムでは、HBAのqueue depthを32にする。

  • 大規模のシステムでは、HBAのqueue depthを128にする。

  • 例外的なケースまたはパフォーマンス テストでは、queue depthを256にしてキュー関連の問題の発生を避ける。

  • 全ホストにアクセスが均等に保証されるよう、どのホストにも同程度のqueue depthを設定する。

  • パフォーマンスの低下やエラーを避けるために、ストレージ コントローラーのターゲットFCポートのqueue depthを超えないようにする。

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

  2. 128をかけます。

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

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

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

    • オプション1:

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

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

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

    • オプション2:

      1. 各ホストの規模を、予想されるI/Oニーズに基づいて「大規模」か「小規模」に分類します。

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

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

      4. 2つの計算結果を合算します。

      5. 2,048より小さい場合は、大規模ホストのqueue depthを128に、小規模ホストのqueue depthを32に設定します。

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

        1秒間のI/O数(IOPS)による特定のスループットを達成するために必要なqueue depthを見積もるには、次の式を使用します。

        必要なqueue depth = (IOPS)×(応答時間)

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

基本となる推奨構成に従ってqueue depthを32に制限した場合、ターゲット ポートに接続できるホストの最大数は64です。一方、queue depthを128にした場合は、1つのターゲット ポートに接続できるホストの最大数は16になります。このように、1つのターゲット ポートでサポートできるホストの数はqueue depthが大きいほど少なくなります。queue depthを小さくできないような要件がある場合は、その分ターゲット ポートを増やしてください。

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

その結果、合計queue depthは(10×128)+(20×32) = 1,920になります。

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

そのため、イニシエータあたりのqueue depthは2,048÷30 = 68となります。

Top of Page