Enterprise Infrastructure Intelligence ● Certified engineers online · Fast response guaranteed
리눅스/OS

VFIO Passthrough: Linux 커널의 직접 장치 할당 아키텍처

VFIO(Virtual Function I/O)는 IOMMU 보호 환경에서 사용자 영역 프로세스나 가상 머신에 PCI 장치를 직접 할당하는 Linux 커널 프레임워크입니다. 컨테이너-그룹-장치 모델을 통해 DMA 메모리 매핑과 장치 접근을 안전하게 관리합니다.

2026.09.23  ·  16회  · 

VFIO Passthrough의 핵심 개념

VFIO는 IOMMU(Input/Output Memory Management Unit) 기반의 보호된 환경에서 PCI 장치에 대한 직접 할당을 가능하게 합니다. 이를 통해 가상 머신이 거의 원시 속도로 하드웨어에 접근할 수 있으며, 컨텍스트 스위칭과 데이터 복사 오버헤드를 제거합니다.

컨테이너-그룹-장치 계층 구조

VFIO 아키텍처는 세 단계의 추상화로 구성됩니다. 컨테이너는 IOMMU 도메인을 나타내며 하나 이상의 IOMMU 그룹을 포함합니다. 그룹은 함께 격리되어야 하는 가장 작은 장치 집합(IOMMU 그룹)을 매핑하고, 장치는 실제 PCI 함수입니다. 같은 그룹의 모든 장치는 동일한 IOMMU 주소 공간을 공유합니다.

DMA 매핑 메커니즘

사용자 공간 드라이버는 VFIO 컨테이너를 통해 IOMMU와 상호작용하며 VFIO_IOMMU_MAP_DMA ioctl을 호출하여 게스트 물리 주소를 장치가 접근 가능한 IOVA(I/O Virtual Address)로 매핑합니다. 커널은 vfio_pin_pages_remote로 호스트 가상 주소의 물리 주소를 얻은 후 IOMMU 페이지 테이블을 설정합니다.

실무적 주의사항

IOMMU 그룹 격리가 절대적 조건이므로, 같은 그룹의 모든 장치를 VFIO 드라이버에 바인드해야 합니다. 멀티펑션 PCI 장치나 브릿지 아래 장치의 경우 그룹에 속한 모든 항목을 함께 처리해야 하며, GPU는 동적 재바인딩을 지원하지 않으므로 호스트와 게스트가 동시 접근할 수 없습니다.

WIKIDATA WORKSTATION
AI·렌더링에 최적화된
전문가용 워크스테이션
NVIDIA RTX GPU · 최대 192GB 메모리 · ECC 지원