SR-IOV

Ahn9807 (토론 | 기여)님의 2023년 3월 29일 (수) 05:36 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)


개요

Single root input/output virtualization (SR-IOV)란 PCIe디바이스를 하드웨어 기반으로 직접 Guest에게 전달하는 가상화 기법이다.

SR-IOV에서는 Hardware-based virtualizationVT-d와 같은 기법의 도움과 PCIe디바이스의 도움을 바탕으로 하나의 디바이스를 여러개의 Guest 시스템에서 안전하게 사용할 수 있도록 한다. 기존의 PCIe통신을 위해서 사용되는 기능들이 있는데 이것을 PF (Physical function)이라고 하자. SR-IOV는 가상의 PCIe function들을 생성해서 가상머신에게 전달하고 가상머신은 마치 진짜 PCIe인 것처럼 이들 VF (Virtual function)들을 이용해서 PCIe디바이스와 통신한다.

이를 통해서, NIC에 CPU가상화 부담을 Offloading하여서 CPU Overhead (VMM의 관여가 없음으로)가 감소되며, 성능 향상을 꾀할 수 있다. SR-IOV는 Storage, NIC, GPU처럼 다양한 PCIe 디바이스 타입에서 사용할 수 있다.

아키텍쳐

SR-IOV Architecture.png

SR-IOV는 두개의 새로운 PCIe function을 제공한다.

  • Physical functions (PF): 전체 PCIe스택을 제공하며, PCIe기능을 Configure할수 있고 SR-IOV에 대한 설정을 할 수 있다.
  • Virtual Functions (VF): Lightweight PCIe 기능들을 제공하며, 데이터의 전송과 같은 일은 할 수 있지만, PCIe디바이스를 설정하고 하는 일은 할 수 없다.

Host는 PF를 이용하여서 PCIe 디바이스를 설정해서 Guest한테 주고 Guest는 VF를 통해서 Isolate된 환경에서 마치 Native device인것처럼 PCIe 디비이스와 통신할 수 있다.

같이 보기

  1. LeapIO: Efficient and Portable Virtual NVMe Storage on ARM SoCs
  2. Intel® Scalable I/O Virtualization Technical Specification
  3. PCI-SIG SR-IOV Primer - Intel