print("Hello, DevOps")
vSphere 7에서는 ESXi 호스트에 GPU를 할당하는 방법이 아래 처럼 3가지가 있습니다.
(이 외 Bitfusion 이라는 제품을 통해 GPU 리소스를 원격으로 사용할 수 있게 만드는 옵션도 있지만 이는 추후에 이야기하는 것으로...)
vSphere 7 부터 추가 Assignable Hardware 라는 개념이 소개되었습니다.
Assignable Hardware 란 단어에서 유출할 수 있듯이 한 호스트에 종속성을 가지지 않고 더 유연하게 가상머신에게 PCIe 장치를 할당할 수 있는 방법입니다.
이 기능은 하드웨어 주소가 아닌 장치의 속성값으로 Hardware Acclelator 를 식별하여 PCIe 장치의 추상화가 가능하게 만들어줍니다.
예를 들어, 가상머신 배포 시 ESXi 호스트와 디바이스 호환성 검사를 스스로 해 ESXi 호스트와 가상 머신의 요구사항을 충족할 경우 해당 호스트에 프로비젼되도록 도와주는거죠.
vSphere DRS (Distributed Resource Scheduler - 클러스터 내 호스트의 자원 사용률 및 호환성을 확인 해 VM을 자동으로 처음에 배포하거나, 다른 호스트로 옮겨주는 기능) 기능 사용해 VM을 처음 배포하거나, 전원을 켤 경우 자동으로 호환성 맞는 PCIe 디바이스에 맞게 전원 켜지게 도와주게되고, vSpehre HA 기능을 사용할 수 있게되어 호스트 장애시 GPU가 할당된 VM이 다른 호환되는 GPU 호스트를 찾아가 계속 작동할 수 있게 도와주는 거죠.
Assignable Hardware 기능을 사용하기 위해서는 아래와 같이 2가지 옵션이 존재합니다.
nVIDIA vGPU 같은 경우는 vSphere 사용해서 GPU리소스를 추상화가 가능하지만 nVIDIA 측 라이센스가 별도로 필요해 추가 비용이 발생합니다.
Dynamic DirectI/O 같은 경우는 별도의 라이센스가 필요없는 vSphere native 기능입니다. 라이센스는 vSphere Enterprise Plus가 필요하고요
Dynamic DirectI/O 는 GPU PCIe 디바이스에 아래에 보이는 것 같이 Hardware Label을 적용하게 되며 VM이 배포되거나 다른 호스트로 옮겨질 경우 이 Hardware Label을 찾아서 알맞은 호스트에 배포되도록 합니다.
클러스터 내 호스트들이 다른 종류의 GPU 를 사용하고 있다고 하더라도 같은 Turing GPU 아키텍처를 사용하고 있다면 호환이 가능할 수 있으므로 좀 더 유연하고, 가용성을 보장할 수 있도록 해줍니다.
해당 기능을 실제 환경에 적용하기 전 아래 DirectPath I/O를 사용하기 위한 요구사항들을 위해 KB를 꼭 확인해보도록 합니다.
vSphere VMDirectPath I/O and Dynamic DirectPath I/O: Requirements for Platforms and Devices (2142307)
https://kb.vmware.com/s/article/2142307