概要
このドキュメントでは、ネイティブファイバチャネルネットワークインターフェイスカード(nfnic)ドライバ上で最大キュー深さ(Queue Depth)と未処理の入出力(I/O)を設定するプロセスについて説明します。VMware ESXi 6.7ハイパーバイザでは、ファイバチャネルネットワークインターフェイスカード(fnic)ドライバがすべてのシスコアダプタのnfnicドライバに置き換えられました。
nfnicドライバのデフォルトのキュー項目数は32に設定されており、nfnicドライバのすべての初期リリースでは、nfnicキュー項目数を調整する方法はありません。これにより、すべての最大デバイスキュー深度とディスクスケジュール番号要求が32に制限されます。推奨キュー項目数が128であるため、vSphere仮想ボリュームの使用中に問題が発生します。この制限の影響は、一般的に高い作業負荷が必要なVMでも発生します。
著者:Michael Baba、Josh Good、Alejandro MarinoCisco TACエンジニア
背景説明
キュー項目数パラメータを設定する機能を追加するための機能拡張:https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvo09082
nfnicドライバのバージョン4.0.0.35以降では、ESXiコマンドラインインターフェイス(CLI)を使用して「lun_queue_depth_per_path」を調整できます。 このドライババージョンは、ESXiホストに手動でインストールできます(まだインストールされていない場合)。
nfnicドライバ4.0.0.35は、UCSブレードファームウェアバンドル4.0.4に含まれており、VMwareとは別にダウンロードすることもできます。ご使用のハードウェアとソフトウェアの組み合わせに適した最新の推奨ドライバを入手するには、「UCSハードウェアとソフトウェアの互換性」ページを参照してください。
nfnicドライバの確認と更新
インストールされたドライバを確認しています
現在インストールされているバージョンのnfnicドライバを確認するには、次のコマンドを実行します。
esxcli software vib list | grep nfnic
次のように表示されます。
[root@localhost:~] esxcli software vib list | grep nfnic
nfnic 4.0.0.14-1OEM.670.1.28.10302608 Cisco VMwareCertified 2019-08-24
[root@localhost:~]
出力が表示されない場合は、現在nfnicドライバがインストールされていません。ご使用の構成でnfnicドライバまたはfnicドライバを使用する必要があるかどうかを確認するには、「UCSハードウェアとソフトウェアの互換性」ページを参照してください。
nfnicドライバのアップグレード
最新のドライバをインストールする詳細な手順は、このガイドの範囲外です。ドライバをアップグレードする手順については、『共通オペレーティングシステム用のUCSドライバのインストール』またはVMwareのマニュアルを参照してください。ドライバをアップグレードしたら、上記と同じコマンドを使用してバージョンを確認できます。
nfnicドライバの設定
キュー項目数パラメータの設定
正しいドライバがインストールされたら、次のコマンドでモジュールパラメータを設定できることを確認できます。
esxcli system module parameters list -m nfnic
この出力では、デフォルト値が32に設定されていることがわかります。ただし、1 ~ 1024の任意の値を設定できます。vSphere仮想ボリュームを使用する場合は、この値を128に設定することをお勧めします。他の具体的な推奨事項については、VMwareおよびストレージベンダーにお問い合わせください。
出力例:
[root@localhost:~] esxcli system module parameters list -m nfnic
Name Type Value Description
------------------------ ----- ----- --------------------------------------------------------------
lun_queue_depth_per_path ulong nfnic lun queue depth per path: Default = 32. Range [1 - 1024]
[root@localhost:~]
Queue Depthパラメータを変更するには、次のコマンドを使用します。次の例では、128に変更していますが、環境によって値が異なる場合があります。
esxcli system module parameters set -m nfnic -p lun_queue_depth_per_path=128
上記と同じコマンドを使用して、変更が行われたことを設定できます。
[root@localhost:~] esxcli system module parameters list -m nfnic
Name Type Value Description
------------------------ ----- ----- --------------------------------------------------------------
lun_queue_depth_per_path ulong 128 nfnic lun queue depth per path: Default = 32. Range [1 - 1024]
[root@localhost:~]
プロトコルエンドポイントで未処理のIOを設定する
これで、プロトコルエンドポイントの未処理のIOを上記のキュー項目数(この例では128)に一致するように設定し、両方の値が128に変更されたことを確認できます。
注:この設定変更を行う前に、ホストをリブートする必要があります。
特定のデバイスのキュー項目数を変更するには、次の手順に従います。
esxcli storage core device set -O 128 -d naa.xxxxxxxxx
デバイスIDを検索するには、次のコマンドを使用します。
esxcli storage core device list
特定のデバイスの変更を確認するには、次の手順に従います。
esxcli storage core device list -d naa.xxxxxxxxxx
出力例を示します。「Device Max Queue Depth:」と「No of outstanding IOs with competitive world:」はどちらも32であることがわかります。
[root@localhost:~] esxcli storage core device list -d naa.600a09803830462d803f4c6e68664e2d
naa.600a09803830462d803f4c6e68664e2d
Display Name: VMWare_SAS_STG_01
Has Settable Display Name: true
Size: 2097152
Device Type: Direct-Access
Multipath Plugin: NMP
Devfs Path: /vmfs/devices/disks/naa.600a09803830462d803f4c6e68664e2d
Vendor: NETAPP
...snip for length...
Is Boot Device: false
Device Max Queue Depth: 32
No of outstanding IOs with competing worlds: 32
Drive Type: unknown
RAID Level: unknown
Number of Physical Drives: unknown
Protection Enabled: false
PI Activated: false
PI Type: 0
PI Protection Mask: NO PROTECTION
Supported Guard Types: NO GUARD SUPPORT
DIX Enabled: false
DIX Guard Type: NO GUARD SUPPORT
Emulated DIX/DIF Enabled: false
次に、このデバイスの128に変更します
esxcli storage core device set -O 128 -d naa.600a09803830462d803f4c6e68664e2d
同じ出力をチェックすると、「Device Max Queue Depth:」と「No of outstanding IOs with competitive world:」がどちらも128になっています。変更がすぐに反映されない場合は、ESXiホストの再起動が必要になる可能性があります。
[root@localhost:~] esxcli storage core device list -d naa.600a09803830462d803f4c6e68664e2d
naa.600a09803830462d803f4c6e68664e2d
Display Name: VMWare_SAS_STG_01
Has Settable Display Name: true
Size: 2097152
Device Type: Direct-Access
Multipath Plugin: NMP
Devfs Path: /vmfs/devices/disks/naa.600a09803830462d803f4c6e68664e2d
Vendor: NETAPP
...snip for length...
Is Boot Device: false
Device Max Queue Depth: 128
No of outstanding IOs with competing worlds: 128
Drive Type: unknown
RAID Level: unknown
Number of Physical Drives: unknown
Protection Enabled: false
PI Activated: false
PI Type: 0
PI Protection Mask: NO PROTECTION
Supported Guard Types: NO GUARD SUPPORT
DIX Enabled: false
DIX Guard Type: NO GUARD SUPPORT
Emulated DIX/DIF Enabled: false