OpenStack에서 GPU PCI Passthrough 설정: AI 및 고성능 그래픽을 위한 완벽 가이드
Frontmatter 2025-06-16 · 2 tags
---
title: OpenStack에서 GPU PCI Passthrough 설정: AI 및 고성능 그래픽을 위한 완벽 가이드
author: 봉정근
date:
modified:
category: 📗 Docs
tags: [openstack, troubleshooting]
---
OpenStack에서 GPU를 VM에 직접 제공하기 위한 PCI Passthrough 설정 과정을 단계별로 안내하며, IOMMU와 VFIO‑PCI 활성화, Nova와 Compute 노드의 PCI alias 및 whitelist 구성, Flavor에 GPU 할당 속성 추가, NVIDIA GPU의 Audio Device 포함 설정, 그리고 모든 GPU를 Passthrough하려면 별도 출력용 GPU가 필요함을 설명하고, 주요 트러블슈팅 포인트와 해결 방법을 제공한다.
서론: GPU가 필요한 VM을 어떻게 제공할까?
OpenStack 환경에서 사용자에게 인스턴스를 제공할 때, GPU가 필요한 경우가 종종 있습니다. 인공지능 모델 학습이나 추론, 고성능 그래픽 처리가 대표적인 예입니다.
이번 글에서는 OpenStack에서 GPU를 제공하는 방법 중 하나인 PCI Passthrough를 설정하는 전체 과정을 다룹니다. 삽질의 역사도 함께 담았으니, 비슷한 환경을 구축하시는 분들께 도움이 되길 바랍니다.
📌
이 글에서 다루는 내용
GPU Passthrough와 vGPU의 차이점
IOMMU 및 VFIO-PCI 드라이버 설정
Nova API, Scheduler, Compute 노드 설정
NVIDIA GPU의 Audio Device 처리 방법
모든 GPU 활용을 위한 트러블슈팅
1. GPU 제공 방식 비교: Passthrough vs vGPU
GPU를 VM에 제공하는 방법은 크게 GPU Passthrough(직접 제공)와 vGPU(간접 제공) 두 가지가 있습니다.
OpenStack GPU 제공 방식 비교: Passthrough vs vGPU
구분
GPU Passthrough
vGPU
제공 방식
물리 GPU를 VM에 직접 연결
가상화된 GPU 리소스 분할 제공
성능
네이티브 성능 (100%)
가상화 오버헤드 존재
공유
1 GPU = 1 VM (독점)
1 GPU = N VM (공유 가능)
비용
추가 라이센스 불필요
제조사 라이센스 비용 발생
유연성
낮음
높음 (다양한 프로필 제공)
GPU(PCI) Passthrough는 사용자의 인스턴스(VM)에 GPU가 연결된 PCI-E 라인을 직접 연결하는 방식입니다. 가상화 계층을 거치지 않기 때문에 네이티브에 가까운 성능을 제공할 수 있습니다.
반면 vGPU는 가상화를 통해 하나의 물리 GPU를 여러 VM에서 나눠 쓸 수 있다는 장점이 있지만, NVIDIA GRID 등의 라이센스 비용이 추가로 발생합니다.
OpenStack 구성이 모두 완료된 상태에서 진행해야 합니다. 위 공식 문서들을 참고하면 자세한 내용을 확인할 수 있습니다.
OpenStack GPU PCI Passthrough 동작 원리
⚙️
PCI Passthrough 동작 원리
PCI Passthrough는 호스트의 하이퍼바이저를 우회하여 게스트 VM이 물리적 PCI 장치에 직접 접근할 수 있게 합니다. 이를 위해 두 가지 핵심 기술이 필요합니다:
IOMMU (Input-Output Memory Management Unit): CPU가 제공하는 하드웨어 가상화 기술로, 장치별로 메모리 영역을 격리하여 VM이 안전하게 PCI 장치에 접근할 수 있게 합니다. Intel에서는 VT-d, AMD에서는 AMD-Vi라고 부릅니다.
VFIO (Virtual Function I/O): 리눅스 커널의 프레임워크로, 사용자 공간 프로그램(예: QEMU)이 하드웨어 장치를 안전하고 효율적으로 제어할 수 있게 해줍니다.
2.1 하드웨어 상태 확인
현재 컴퓨트 노드에 어떤 GPU가 연결되어 있는지 먼저 확인합니다.
다음 명령어로 GPU의 vendor_id와 product_id를 확인할 수 있습니다:
bash
# PCI 장치 목록 확인
lspci -nn | grep -i nvidia
# 상세 정보 확인
lspci -vnn -d 10de:
위 환경에서는 GTX 1080 Ti 2장이 연결되어 있습니다. 각각의 정보는 다음과 같습니다:
Vendor ID: 10de (NVIDIA)
Product ID: 1b06 (GTX 1080 Ti)
이 정보를 기록해두고 아래 설정에서 사용합니다.
3. IOMMU 설정 (Compute 노드)
IOMMU는 시스템의 컴퓨팅 자원(GPU, NIC 등)을 가상 머신에 직접 매핑하기 위해 필요한 기술입니다.