본문 바로가기

Virtualization/NVIDIA vGPU

[NVIDIA] VMware 환경에 vGPU 구성 - (2) ESXi 호스트 드라이버 설치 및 vGPU 적용

1년 전에 작성했던 NVIDIA vGPU 구성 포스팅을 이제야 이어서 쓴다ㅠㅠ

따로 문서에 정리해놔서 포스팅을 미루다가 이제야 쓰는...ㅋㅋ;

 

 

https://smallrich.tistory.com/44

 

[NVIDIA] VMware 환경에 vGPU 구성 - (1) License Manager Server 생성

Virtual GPU란 VDI 환경에 GPU 성능을 제공해주는 그래픽 솔루션이다. RDM 디스크를 패스스루로 사용가능 하듯이 GPU 역시 한 VM에 패스스루로 쓸 수 있다. 하지만, 여러 VM에 GRID로 할당할 수 있는 NVIDIA

smallrich.tistory.com

위에 링크의 라이센스 관리 서버가 구축된 이후의 단계라고 보면 된다!

 

* 해당 포스팅은 vSphere 6.7 U3에 NVIDIA Tesla T4 모델, vGPU GRID S/W 기준이다!

 

 

 

 

 

 

 

 

1. ESXi 호스트 드라이버 패치

지난 포스팅의 (3)번을 보면, 라이센스 포탈을 통해 vGPU 패키지 파일을 받았을 것이다.

압축을 풀면 사진처럼 파일이 많을텐데, 그 중에 ESXi 호스트 드라이버로 네이밍된 VIB 파일을 공유 데이터스토어에 업로드해야 한다.

 

"ESXi (혹은 vCenter) 접속 > 데이터스토어 브라우저 접속 > VIB 파일 업로드 > 패치 대상 ESXi 우 클릭 > 유지보수 모드 시작"

 

라이센스 관리 서버 구축 시 설치했던 setup 파일과 반드시 같은 패키지 내에 있는 파일이어야 한다.

유지보수 모드까지 마무리 되었다면, ESXi에 SSH로 접근하여 VIB (호스트 드라이버)를 패치해야 한다. (모든 호스트 순차 진행)

 

#esxcli software vib install -v /vmfs/volumes/{Datastore-Name}/{Host Driver.vib 파일}

 

 

 

* GPU 모델이 Tesla M60 혹은 M6일 경우, switch mode를 지정하도록 설정해야 한다. (컴퓨팅 모드 <> 그래픽 모드)

지난 포스팅 서론에 GPU 모델의 용도를 확인해야 한다고 했던게 이 이유이다. Tesla T4의 경우는 switch mode가 별도로 필요하지 않다.

 

해당 과정이 필요한 모델을 사용한다면, 아래 링크를 참고해보자.

https://docs.nvidia.com/grid/latest/grid-gpumodeswitch-user-guide/index.html

 

 

 

 

 

2. ESXi 호스트 그래픽 디바이스 구성

"vCenter 접속 > 패치완료된 호스트 선택 > 구성 > 그래픽 > 그래픽 디바이스 편집 (사진 속 아이콘) > Shared Direct 지정"

 

vGPU 솔루션은 다수 VM에 메모리를 나눠 할당하는 제품이다.

Shared Direct 구성으로 변경이 필요하고, 그 다음엔 호스트 재부팅이 필요하다.

(패스스루일 경우는 Shared Direct가 아님)

 

 

 

 

 

3. 가상시스템 vGPU 할당

호스트 재부팅 후, vGPU를 할당할 가상시스템을 우 클릭한다.

해당 가상시스템은 (2)번까지 마무리된 호스트에 상주해야 한다.

 

<새 디바이스 추가>로 PCI 디바이스를 추가한 후, 사진처럼 NVIDIA GRID vGPU를 선택한다.

아래 GPU 프로파일에 대해 할당 필요한 메모리를 선택해주면 된다.

 

GPU 프로파일 옵션을 보면, "grid_t4-16q"가 보이는 것처럼 Tesla T4 모델은 "t4-#Q/A/B/C"로 표기된다.

여기서 #은 메모리 할당량이고, Q/A/B/C는 라이센스 종류이다.

즉, 나는 Quadro 라이센스를 사용하며 16GB 메모리를 할당할 것이기 때문에 16q를 선택한 것이다.

 

요구사항에 맞게 선택을 완료했다면 <확인>으로 마무리한다.

 

 

* (추가 적용사항) GPU 적용 대상의 VM은 사진 속 설정편집에서 vMemory의 <전체 메모리 예약>이 체크되어야 한다.

* 패스스루 GPU나 특정 GPU 모델의 경우는 상황에 따라 VM Boot Mode를 EFI로 설정해야 한다. (Guest OS 설치 전에 해야 함)

* VMware 솔루션의 특성 상, PCI 디바이스를 사용하는 VM은 vMotion/스냅샷 등의 기능을 사용할 수 없다.

* 하지만 vSphere 6.7 U3 이상에서는 vGPU VM도 라이브 마이그레이션이 가능하다고 한다. (아래 링크 참고)

https://docs.vmware.com/kr/VMware-vSphere/7.0/com.vmware.vsphere.vcenterhost.doc/GUID-8FE6A0DA-49E9-472B-815B-D630CF2014AD.html

 

 

 

 

 

4. Guest Agent File 설치

가상시스템에 GPU를 할당한 것이 끝이 아니다.

GPU 적용할 Guest OS에 접속하여 vGPU를 인식하도록 드라이버를 설치해야 한다.

 

지난 포스팅의 (3)번에서 다운받은 패키지 파일 내에 grid_OS명_International 파일이 있을 것이다.

동일한 OS명의 파일을 GPU 적용할 시스템에 옮긴 후, 실행하면 된다. mstsc, ftp 등을 통해 전송 고고~!

 

 

 

설치는 어렵지 않다.

그래픽 드라이버에 대한 라이센스를 동의한 후, OS를 재부팅하면 된다.

 

 

* 찾아보면 패키지 파일 내에 Ultra_VNC 파일도 있을 것이다. 해당 파일도 재부팅 전에 OS 내부에 설치해주는 것을 꼭 권장한다.

단순 원격접속 프로그램이다. 이 파일이 패키지에 포함된 이유와 설치해두는게 권장인 이유는 다음 포스팅에 적혀있다 !

 

 

 

 

 

5. NVIDIA 라이센스 관리 서버 등록

Guest 드라이버 설치 후 재부팅까지 완료되었다면,

사진처럼 바탕화면 우 클릭 시 <NVIDIA 제어판>이 보일 것이다.

 

그럼 지난 포스팅에 구축한 License Manager 서버의 IP를 라이센스 서버에 입력해주면 된다.

7070포트도 지난 포스팅의 (8)번에 설명한 내용이다. Guest가 라이센스를 인식하는데 해당 포트로 통신한다.

 

 

 

 

 

6. vGPU 인식여부 확인

GPU 적용한 OS의 장치 목록을 보면, 이제 디스플레이 어댑터에 GPU 모델이 보일 것이다.

 

작업 관리자에도 GPU가 추가되어 있는게 보일 것이다.

간단하게 동영상 등을 시청해보면 GPU 사용률이 올라가는 것을 확인할 수 있다.

 

적용 VM의 목록은 vCenter 호스트의 그래픽 메뉴에서도 호스트 단위로 한번에 조회할 수 있다.

 

 

 

 

또한, 라이센스 관리 서버에 접속하면 비어있던 Clients 메뉴에 적용 목록이 생겼을 것이다.

Client ID는 적용된 VM의 MAC 주소이며, <License Feature Usage> 메뉴에 보면 라이센스 가용량이 차감되어 있을 것이다.

 

이제 평가판 기한 내에 NVIDIA 라이센스를 적용하기만 하면 된다.

여기까지 마무리되었다면, 인프라 측면에서 GPU 적용은 마무리된 것이다.