안녕하세요 오늘은 ESXi 가상화 서버에 nVidia VGA GPU Pass through 설정 을 알아보도록 하겠습니다.
가상화에서 Pass through 란 하드웨어를 VM(Virtual Machine)에 직접 연결하는것을 말합니다.

예를 들자면 가상화에서 프린터를 연결해서 출력이 필요한 일이 생겼습니다.
ESXi가 설치된 PC에 USB 프린터를 직접 연결해도 VM에서는 사용이 불가능합니다.
(ESXi에 USB가 추가된것이지 때문에 VM에서는 해당 USB 포트를 사용할수 없습니다.)
이럴때 ESXi에 생성된 VM에 USB 포트를 Path through 합니다.
그렇게되면 VM에서 USB포트를 직접 사용하기 때문에 프린터 또한 사용이 가능합니다.

예로 USB Device를 선택했을뿐이고 VGA, Lan 등 여러 장비를 Pass through (이하 P/T 표기)할수 있습니다.
유용한 기능이기는 하지만 그만큼 많은 제약도 있습니다.

1. CPU 및 M/B에서 VT-D를 지원해야 합니다.
2. Pass through 사용시 네이티브 사용시 보다 성능이 조금 줄어 듭니다. (약 90% 추정)
3. 동시에 여러 VM에 같은 Device를 P/T할수 없습니다. (동시 사용 불가)
4. 많은 오류 발생으로 인하여 설정이 어렵고 안전성 또한 보장할수 없습니다.

저는 요번에 Nvidia VGA를 P/T할 예정입니다.
VGA를 P/T를 사용하는 이유는 ESXi는 베어메탈 가상화로 ESXi가 설치된 PC에서는 직접 VM을 사용할수 없습니다.
그렇기에 ESXi 가상화를 사용할 PC가 한대 더 필요합니다.
이럴때 VGA를 P/T하게 되면 ESXi가 설치된 PC에서 VM을 직접 사용할수 있습니다.
정확히 VGA, USB 2가지 P/T가 필요합니다.

VGA P/T를 하기 위해서는 VGA가 두개 있어야합니다.
저같은경우는 CPU에 내장 VGA가 없는 시스템이라 VGA를 2개 설치 하였습니다.
보통 VGA는 Nvidia 와 AMD가 있습니다.
AMD는 VGA는 P/T가 잘되는 반면에 Nvidia는 실패를 많이합니다.
Nvidia에서는 가상화용 VGA인 GRID를 판매를 하기위해 일반 VGA는 가상화에서 P/T 사용을 못하게 해두었습니다.
이제 설치 방법을 알아보도록 하겠습니다.

다시 한번 말씀 드리지만 CPU, M/B 모두 VT-D를 지원해야합니다.
또한 Bios에서 VT-D 설정을  Enabled 하시기 바랍니다.

1. ESXi Web UI 접속 

ESXi Web UI 접속 방법 포스트를 참조하여 접속 합니다. 

2. ESXi Pass Through 설정

ESXi Pass Through 1
1) 왼쪽 메뉴 중 “관리”를 클릭 합니다.
2) 상단 메뉴 중  “하드웨어”를 클릭 합니다.
3) “PCI디바이스” 클릭 합니다.
4) NVIDIA Corporation Audio device, nVidia Corporation Audio를 체크 합니다.
하나는 HDMI, DP등 Audioa 관련이고 하나는 GPU입니다.
 저는 명칭이 GP107이지만 VGA 마다 명칭이 틀리니 유의하시기 바랍니다.
(잘보시면 4, 7번 모두 Nvidia VGA입니다. 위에서 설명 드렸다 싶이 ESXi용 VGA와 가상화 P/T용 2가지를 설치해서 그렇습니다. V/T할 VGA를 체크 해주시면 됩니다.)
5,6) USB Device, Audio Controller 를 체크합니다.
VGA P/T 후 마우스와 키보드를 사용하기 위해 USB Device를 P/T 합니다.
Audio Controller도 사운드를 위해서 체크 합니다.
8) “패스 스루 전환”을 클릭하여 P/T를 활성화 합니다.
9) P/T 활성화를 적용하기 위해 재부팅을 합니다.

3. VM Pass Through 적용

ESXi Pass Through 2
1) 왼쪽 메뉴 중 “가상 시스템” 클릭 합니다.
2) P/T할 VM을 선택 합니다.
3) VM 설정 편집을 위해 “편집” 버튼을 클릭 합니다.
4) “기타 디바이스 추가” 클릭 합니다.
5)  새”PCI 디바이스” 5개 추가 합니다. (위에서 USB 2개, Audio 1개, VGA 2개를 P/T 했기 때문에 총 5개를 추가해야 합니다)

ESXi Pass Through 3-1
6) 추가된 5개의 “새 PCI 디바이스”에 위에 2번에 P/T 진행했던 USB 2개, Audio 1개, VGA 2개를 매칭합니다.

ESXi Pass Through 4-1
7) “VM 옵션”을 클릭 합니다.
8) 항목 중 “고급”을 클릭 합니다.
9) 고급항목에 있는 “구성 편집”을 클릭 합니다.
10) “매개 변수 추가”를 클릭 합니다.
11) 왼쪽 키에는 hypervisor.cpuid.v0 오른쪽 값에는 FALSE 입력 합니다. (대소문자 주의)
12) “확인” 버튼을 클릭 합니다.
13) “저장” 버튼을 클릭 합니다.

4. VM Pass Through 드라이버 설치

3번까지 진행을 하면 P/T 설정은 완료 되었습니다.
마지막으로 VM 실행 후 Widnows상에서 해당 VGA 드라이버를 설치해주면 완료됩니다.
이부분은 생략 하도록 하겠습니다.

현재 제가 사용하고 있는 VGA는 GTX1050, 1070, 1080, 1080Ti이며 모두 성공하였습니다.
많은분들이 Nvidia GPU Pass Through에 실패를 하고 AMD로 많이들 넘어갑니다.
생각보다 어렵지 않으며 도전해볼만한 일이라 생각이 됩니다.

감사합니다.