Assignable Hardware

dennisthemenace·2022년 2월 23일
0

VMware

목록 보기
1/1
print("Hello, DevOps")
  • Assignable Hardware

vSphere 7에서는 ESXi 호스트에 GPU를 할당하는 방법이 아래 처럼 3가지가 있습니다.

  1. Direct Path I/O
  2. Dynamic Direct Path I/O
  3. nVIDIA vGPU

(이 외 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가지 옵션이 존재합니다.

  1. nVIDIA vGPU 와
  2. Dynamic DirectPath I/O

nVIDIA vGPU 같은 경우는 vSphere 사용해서 GPU리소스를 추상화가 가능하지만 nVIDIA 측 라이센스가 별도로 필요해 추가 비용이 발생합니다.

Dynamic DirectI/O 같은 경우는 별도의 라이센스가 필요없는 vSphere native 기능입니다. 라이센스는 vSphere Enterprise Plus가 필요하고요

Dynamic DirectI/O 는 GPU PCIe 디바이스에 아래에 보이는 것 같이 Hardware Label을 적용하게 되며 VM이 배포되거나 다른 호스트로 옮겨질 경우 이 Hardware Label을 찾아서 알맞은 호스트에 배포되도록 합니다.

![https://velog.velcdn.com/images%2Fkdyounghoon%2Fpost%2F90378278-51dc-472c-a9ea-e09c92743fdc%2Fimage.png%5D(https%3A%2F%2Fimages.velog.io%2Fimages%2Fkdyounghoon%2Fpost%2F90378278-51dc-472c-a9ea-e09c92743fdc%2Fimage.png)

클러스터 내 호스트들이 다른 종류의 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

  • 기본적으로 꼭! VMware Compatibility List 에 들어가서 호스트, 하드웨어 디바이스, vSphere 버젼, Guest OS 에 대한 호환성을 확인하자
  • 호스트 레벨에서 IOMMU / PCI Express Access Control Services 를 지원해야된다
  • 디바이스는 PCI Function Bars 가 4KB 또는 4KB 의 곱으로 (8KB, 16KB) 으로 구성되어야 하고 4KB 또는 이상이 이어야 한다. (32GB 이상 또는 64 Bit Memory Mapped IO 추가 Limit 확인 필요
  • PCI Functions 중 MSI or MSI-X interrupts 를 지원하는 것을 권고
profile
Hello DevOps

0개의 댓글