QLogic、Emulex、および Brocade HBA のキューの深さの変更
search cancel

QLogic、Emulex、および Brocade HBA のキューの深さの変更

book

Article ID: 320838

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

免責事項: これは英文の記事「Changing the queue depth for QLogic, Emulex, and Brocade HBAs (323119)」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。


 

ホスト バス アダプタ (HBA) のパフォーマンスが不十分である、あるいはお使いの SAN ストレージ プロセッサまたはヘッドが過剰に使用されている場合は、ESXi/ESX ホストのキュー深度の最大値を調整できます。最大値は、LUN への各種パスに報告されるキューの深さを表します。複数のホストがストレージを過剰に使用しており、コマンド キューがいっぱいになっている場合は、この値を下げると ESXi/ESX ホストのスループットが抑制され、SAN の競合の問題が軽減されます。
 
また、既存のLUNキュー深度が頻繁に完全に利用されている場合(キューに入ったコマンドによるVMの待機時間が追加される場合)、状況によっては最大LUNキュー深度値を増加させることが可能です。
注意:この値を増加させる場合は、ストレージベンダーおよびHBA/サーバーベンダーの推奨に従う必要があります。これにより、最大IOPSの増加が意図しないパフォーマンスへの影響を引き起こさないことを確認します。

1 つの LUN 上で 1 台の仮想マシンがアクティブになっている場合は、キュー深度の最大値を設定するだけでかまいません。1 つの LUN 上で複数の仮想マシンがアクティブになっている場合は、 Disk.SchedNumReqOutstanding の値も関係してきます。この場合、キュー深度の値は、アダプタのキューの深さ、あるいは Disk.SchedNumReqOutstanding の 2 つの設定のいずれか低い方の値と等しくなります。

注: ホスト単位のパラメータ Disk.SchedNumReqOutstanding は vSphere 5.5 で廃止され、LUN 単位の変更に対応しました。 詳細については、「Setting the Maximum Outstanding Disk Requests for virtual machines (344706)」を参照してください。

Environment

VMware vSphere ESXi 6.5
VMware vSphere ESXi 6.7
VMware vSphere ESXi 7.0.x
VMware vSphere ESXi 8.0.x

 

Resolution

次の表は、さまざまな ESXi/ESX のバージョンに対する QLogic HBA のキュー深度のデフォルト値を示しています。

注 : これらの値は参考値であり、詳細についてはハードウェアベンダへの問い合わせが必要です。
 

ESXi/ESX のバージョン キュー深度
3.5、ドライバのバージョンは 6.04 16
3.5、ドライバのバージョンは 6.07 および 7.x 32
4.0 32
4.1 32
5.0 64
5.1 64
5.5 64
6.x 64


Emulex アダプタのキュー深度のデフォルト値は、これまでにリリースされた ESXi/ESX の全バージョンで変わっていません。キュー深度の値はデフォルトで 32 で、2 バッファが予約されているため、データの I/O に使用できるのは 30 です。

Brocade アダプタのキュー深度のデフォルト値は 32 です。

  • VMware では、クラスタに参加する全ホストで HBA ベンダーを統一することをお勧めしています。混在環境を使用している場合(たとえば、QLogic と Emulex など)は、クラスタに参加する全ホストでキュー深度の値を同じにすることをお勧めします。
  • キュー深度設定を含むホスト プロファイルを適用していて、適用後にホストの再起動が必要となった場合は、キュー深度の値を変更できるのが起動時のみであることに注意してください。ホストを再起動し、キュー深度の値が正しく設定されていることを確認します。キュー深度変数を変更する機能は、互換性のあるドライバに依存しており、一部の非同期ドライバではキュー深度を正しく設定できないことがあります。
  • bnx2fc ドライバーを使用する Broadcom アダプターの場合、bnx2fc_queue_depth パラメーターを使用してキューの深さを制御できます。
  • Emulex アダプターの場合、11.2ドライバーバージョン以降、2つの別個のドライバーがあります。
  1. lpfc -FCアダプターに使用(LightPulse)
  2. brcmfcoe -FCoEアダプターに使用(OneConnect)

brcmfcoe のパラメーター名は lpfc と同じです。
 
詳細については、Emulex Software Kit Migration Guide を参照してください。

  • Cisco VIC アダプター:これらのアダプターは fnic ドライバーを使用し、パラメーターはfnic_max_qdepth と呼ばれます。
    詳細については、「Guide Cisco UCS fNIC Tunables」を参照してください。

 

ESXi 6.x

HBA のキューの深さを調整するには:

  1. サービス コンソールに次のいずれかのコマンドを入力し、現在ロードされている HBA モジュールを確認します。
     
    • QLogic の場合:

      # esxcli system module list | grep qln
       
    • Emulex の場合:

      # esxcli system module list | grep lpfc
       
    • Brocade の場合:

      # esxcli system module list | grep bfa
       
  2. 次のいずれかのコマンドを実行します。

    :例は QLogic および Emulex のモジュールを示しています。前の手順の結果に基づいて適切なモジュールを使用します。
     
    • QLogic の場合:
      # esxcli system module parameters set -p qlfxmaxqdepth=64 -m qlnativefc
    • Emulex の場合:
      # esxcli system module parameters set -p lpfc0_lun_queue_depth=64 -m lpfc
    • Brocade の場合:
      # esxcli system module parameters set -p bfa_lun_queue_depth=64 -m bfa
    • これらのコマンドでは、qlfxmaxqdepthlpfc0 の両方が、数字 1 ではなく小文字の L、「l」を使用しています。
    • このケースで、HBA の LUN キュー深度は 64 に設定されています。
    • ホスト上のすべての Emulex カードを更新する必要がある場合は、代わりに、グローバル パラメータ lpfc_lun_queue_depth を適用します。
       
  3. ホストを再起動します。
  4. 次のコマンドを実行し、変更が適用されたことを確認します。

    # esxcli system module parameters list -m driver

    ここで、driver は QLogic、Emulex、または Brocade のアダプタ ドライバ モジュールです(lpfcqlnativefc、または bfa など)。

    出力は次のようになります。

    Name              Type Value Description
    -------------------------- ---- ----- --------------------------------------------------
    .....
    ql2xmaxqdepth         int  64  Maximum queue depth to report for target devices.
    .....

Additional Information