目錄

簡介

背景資訊

檢查和更新nfnic驅動程式

正在檢查安裝的驅動程式

升級nfnic驅動程式

配置nfnic驅動程式

配置隊列深度引數

在協定終端上配置未完成的IO

簡介

本檔案介紹在本機fiberchannel網路介面卡(nfnic)驅動程式上設定最大佇列深度與未完成輸入/輸出(IO)的程序。在VMware ESXi 6.7虛擬機器監控程式中，所有Cisco介面卡的nfnic驅動程式都替換了fiberchannel網路介面卡(fnic)驅動程式。

nfnic驅動程式的預設隊列深度設定為32，並且在所有nfnic驅動程式的初始版本上，無法調整nfnic隊列深度。這將所有最大裝置隊列深度和磁碟計畫未完成的請求數限製為32。由於建議的隊列深度為128，因此使用vSphere虛擬卷時也會出現問題。此限制的影響也可以在工作負載較高且通常需要較大隊列深度的任何VM上看到。

撰稿人：Michael Baba、Josh Good和Alejandro Marino;Cisco TAC工程師。

背景資訊

建立增強功能以新增配置隊列深度引數的功能：https://bst.cloudapps.cisco.com/bugsearch/bug/CSCvo09082

從nfnic驅動程式4.0.0.35版開始，可以通過ESXi命令列介面(CLI)調整「lun_queue_depth_per_path」。 此驅動程式版本可以手動安裝到ESXi主機（如果它尚未安裝在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驅動程式。請參閱UCS硬體和軟體相容性頁，檢查您的配置是否應該使用nfnic或fnic驅動程式。

升級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:~]

要更改隊列深度引數，命令如下所示。在下面的示例中，我們將其更改為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 words：」仍然有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 words：」現在均為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