Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

16.2. SR-IOV 장치를 사용한 PCI 장치 할당

PCI 네트워크 장치( <소스> 요소에 의해 도메인 XML에 지정)는 직접 장치 할당( passthrough 라고도 함)을 사용하여 게스트에 직접 연결할 수 있습니다. 표준 단일 포트 PCI 이더넷 카드 드라이버 설계의 제한으로 인해 SR-IOV( Single Root I/O Virtualization ) VF 장치만 이러한 방식으로 할당할 수 있습니다. 표준 단일 포트 PCI 또는 PCIe 이더넷 카드를 게스트에 할당하려면 기존 <hostdev> 장치 정의를 사용합니다.

그림 16.9. PCI 장치 할당의 XML 예


     <devices>
    <interface type='hostdev'>
      <driver name='vfio'/>
      <source>
        <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
      </source>
      <mac address='52:54:00:6d:90:02'>
      <virtualport type='802.1Qbh'>
        <parameters profileid='finance'/>
      </virtualport>
    </interface>
  </devices>
PCI-SIG (PCI Special Interest Group) 사양에서 개발한 SR-IOV(Single Root I/O Virtualization) 사양은 단일 장치를 여러 가상 머신에 공유할 수 있는 PCI 장치 할당 유형의 표준입니다. SR-IOV는 가상 머신의 장치 성능을 향상시킵니다.

그림 16.10. SR-IOV 작동 방식

SR-IOV 작동 방식
SR-IOV를 사용하면 단일 루트 기능(예: 단일 이더넷 포트)이 여러 개의 개별 물리 장치로 표시될 수 있습니다. SR-IOV 기능이 있는 물리적 장치는 PCI 구성 공간에 여러 기능으로 표시되도록 구성할 수 있습니다. 각 장치에는 Base Address Register(BAR)로 완료된 자체 구성 공간이 있습니다.
SR-IOV는 두 개의 PCI 기능을 사용합니다.
  • 물리적 기능(PF)은 SR-IOV 기능을 포함하는 전체 PCIe 장치입니다. 물리 기능은 일반 PCI 장치로 검색, 관리 및 구성됩니다. 물리 기능은 가상 함수를 할당하여 SR-IOV 기능을 구성하고 관리합니다.
  • VF(가상 기능)는 I/O만 처리하는 간단한 PCIe 기능입니다. 각 가상 기능은 물리 함수에서 파생됩니다. 장치에서 가질 수 있는 Virtual Functions의 수는 장치 하드웨어에 의해 제한됩니다. 물리 장치인 단일 이더넷 포트는 가상 머신에 공유할 수 있는 많은 가상 기능에 매핑될 수 있습니다.
하이퍼바이저는 가상 머신에 하나 이상의 가상 함수를 할당할 수 있습니다. 그런 다음 가상 기능의 구성 공간이 게스트에 제공되는 구성 공간에 할당됩니다.
Virtual Functions에는 실제 하드웨어 리소스가 필요하므로 각 가상 기능은 한 번에 하나의 게스트에만 할당할 수 있습니다. 가상 머신에는 여러 개의 가상 함수가 있을 수 있습니다. 가상 기능은 일반 네트워크 카드와 동일한 방식으로 네트워크 카드로 표시됩니다.
SR-IOV 드라이버는 커널에 구현됩니다. 코어 구현은 PCI 하위 시스템에 포함되어 있지만 물리 기능(PF) 및 VF(Virtual Function) 장치 모두에 대한 드라이버 지원도 있어야 합니다. SR-IOV 가능 장치는 PF에서 VF를 할당할 수 있습니다. VF는 큐 및 레지스터 세트와 같은 리소스를 통해 물리적 PCI 장치에서 지원되는 PCI 장치로 표시됩니다.

16.2.1. SR-IOV의 이점

SR-IOV 장치는 단일 물리적 포트를 여러 가상 머신과 공유할 수 있습니다.
SR-IOV VF가 가상 머신에 할당되면 (가상 머신과 이전)으로 구성할 수 있습니다. 모든 네트워크 트래픽을 특정 VLAN에 남겨 두는 모든 네트워크 트래픽을 특정 VLAN에 배치합니다. 가상 머신은 해당 트래픽이 VLAN에 태그되고 있음을 감지할 수 없으며 이 태그를 변경하거나 제거할 수 없습니다.
가상 함수는 거의 네이티브 성능을 가지며 반가상화 드라이버 및 에뮬레이션된 액세스보다 더 나은 성능을 제공합니다. 가상 기능은 데이터가 하드웨어에 의해 관리 및 제어되는 것과 동일한 물리 서버의 가상 머신 간의 데이터 보호 기능을 제공합니다.
이러한 기능을 통해 데이터 센터 내의 호스트에서 가상 시스템 밀도를 높일 수 있습니다.
SR-IOV는 여러 게스트가 있는 장치의 대역폭을 더 잘 활용할 수 있습니다.