13.7. SR-IOV 장치 관리
에뮬레이션된 가상 장치는 하드웨어 네트워크 장치보다 많은 CPU와 메모리를 사용하는 경우가 많습니다. 이렇게 하면 VM(가상 머신)의 성능이 제한될 수 있습니다. 그러나 가상화 호스트의 모든 장치가 SR-IOV(Single Root I/O Virtualization)를 지원하는 경우 이 기능을 사용하여 장치 성능을 개선하고 VM의 전체 성능도 향상시킬 수 있습니다.
13.7.1. SR-IOV는 무엇입니까?
SR-IOV(Single-root I/O virtualization)는 단일 PCI Express( PCI Express) 장치가 호스트 시스템에 VF( 가상 기능 )라는 여러 개의 별도의 PCI 장치를 제공할 수 있도록 하는 사양입니다. 이러한 각 장치는 다음과 같습니다.
- 원래 PCIe 장치와 동일하거나 유사한 서비스를 제공할 수 있습니다.
- 호스트 PCI 버스의 다른 주소에 나타납니다.
- VFIO 할당을 사용하여 다른 VM에 할당할 수 있습니다.
예를 들어 단일 SR-IOV 가능 네트워크 장치는 VF를 여러 VM에 제공할 수 있습니다. 모든 VF는 동일한 물리적 카드, 동일한 네트워크 연결, 동일한 네트워크 케이블을 사용하지만 각 VM은 자체 하드웨어 네트워크 장치를 직접 제어하고 호스트의 추가 리소스를 사용하지 않습니다.
SR-IOV의 작동 방식
SR-IOV 기능은 다음 PCIe 함수를 도입하여 사용할 수 있습니다.
- PF(물리적 기능) - 호스트에 장치(예: 네트워킹) 기능을 제공하는 PCIe 함수이지만 VF 세트를 생성하고 관리할 수도 있습니다. 각 SR-IOV 가능 장치에는 하나 이상의 PF가 있습니다.
- VF(가상 기능) - 독립적인 장치로 작동하는 경량 PCIe 기능입니다. 각 VF는 PF에서 파생됩니다. 장치가 가질 수 있는 최대 VF 수는 장치 하드웨어에 따라 다릅니다. 각 VF는 한 번에 단일 VM에만 할당할 수 있지만 VM에 여러 VF를 할당할 수 있습니다.
VM은 VF를 가상 장치로 인식합니다. 예를 들어 SR-IOV 네트워크 장치에서 생성된 VF는 실제 네트워크 카드가 호스트 시스템에 표시되는 것과 동일한 방식으로 할당된 VM에 대한 네트워크 카드로 나타납니다.
그림 13.1. SR-IOV 아키텍처

혜택
에뮬레이션된 장치가 아닌 SR-IOV VF를 사용할 때의 주요 장점은 다음과 같습니다.
- 성능 개선
- 호스트 CPU 및 메모리 리소스의 사용 감소
예를 들어 vNIC로 VM에 연결된 VF는 물리적 NIC와 거의 동일한 수준에서 작동하며 반가상화 또는 에뮬레이션된 NIC보다 훨씬 더 좋습니다. 특히 단일 호스트에서 여러 VF를 동시에 사용하는 경우 성능상의 이점이 중요할 수 있습니다.
단점
- PF의 구성을 수정하려면 먼저 PF에서 노출된 VF 수를 0으로 변경해야 합니다. 따라서 이러한 VF에서 제공하는 장치를 할당된 VM에서 제거해야 합니다.
- SR-IOV VF를 포함하여 연결된 VFIO 할당 장치가 있는 VM은 다른 호스트로 마이그레이션할 수 없습니다. 경우에 따라 할당된 장치를 에뮬레이트된 장치와 쌍으로 연결하여 이러한 제한을 해결할 수 있습니다. 예를 들어 할당된 네트워킹 VF를 에뮬레이션된 vNIC에 연결하고 마이그레이션 전에 VF를 제거할 수 있습니다. https://access.redhat.com/solutions/67546
- 또한 VFIO 할당 장치에는 VM 메모리 고정이 필요하므로 VM의 메모리 소비가 증가하고 VM에서 메모리 증대를 방지할 수 있습니다.
추가 리소스