소개
이 문서에서는 네이티브 파이버 채널 네트워크 인터페이스 카드(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