内容

概要

背景説明

nfnicドライバの確認と更新

インストールされたドライバを確認しています

nfnicドライバのアップグレード

nfnicドライバの設定

キュー項目数パラメータの設定

プロトコルエンドポイントで未処理のIOを設定する

概要

このドキュメントでは、ネイティブファイバチャネルネットワークインターフェイスカード(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