목차

소개

배경 정보

nfnic 드라이버 확인 및 업데이트

설치된 드라이버 확인

nfnic 드라이버 업그레이드

nfnic 드라이버 구성

대기열 길이 매개변수 구성

프로토콜 엔드포인트에서 미해결 IO 구성

소개

이 문서에서는 네이티브 파이버 채널 네트워크 인터페이스 카드(nfnic) 드라이버에서 최대 큐 깊이 및 미처리 입출력(IO)을 구성하는 프로세스에 대해 설명합니다.VMware ESXi 6.7 하이퍼바이저에서 fnic(fiberchannel network interface card) 드라이버는 모든 Cisco 어댑터에 대한 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(Command Line Interface)를 통해 "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