Red Hat Training

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

16.2.4. SR-IOV 가상 함수 풀에서 PCI 장치 할당 설정

게스트 구성에 특정 VF(Virtual Functions)의 PCI 주소를 하드 코딩하면 두 가지 중요한 제한 사항이 있습니다.
  • 게스트 가상 머신이 시작될 때마다 지정된 VF를 사용할 수 있어야 합니다. 따라서 관리자는 각 VF를 단일 게스트 가상 머신에 영구적으로 할당해야 합니다(또는 게스트 가상 머신이 시작될 때마다 현재 사용되지 않는 VF의 PCI 주소를 지정하도록 모든 게스트 가상 머신의 구성 파일을 수정해야 합니다.
  • 게스트 가상 머신을 다른 호스트 물리적 시스템으로 이동하는 경우 해당 호스트 물리적 시스템의 하드웨어는 PCI 버스의 동일한 위치에 있어야 합니다(또는 시작하기 전에 게스트 가상 머신 구성을 수정해야 합니다).
SR-IOV 장치의 모든 VF가 포함된 장치 풀을 사용하여 libvirt 네트워크를 생성하여 이러한 문제를 해결할 수 있습니다. 이 작업이 완료되면 이 네트워크를 참조하도록 guest 가상 머신을 구성합니다. 게스트가 시작될 때마다 풀에서 단일 VF가 할당되고 게스트 가상 머신에 할당됩니다. 게스트 가상 머신이 중지되면 다른 게스트 가상 머신에서 사용할 수 있도록 VF가 풀로 반환됩니다.

절차 16.10. 장치 풀 생성

  1. 게스트 가상 머신 종료

    virsh shutdown 명령을 사용하여 guest 가상 머신을 종료 합니다. 여기서 guestVM.
    # virsh shutdown guestVM
  2. 구성 파일 생성

    선택한 편집기를 사용하여 /tmp 디렉터리에 XML 파일(예: passthrough.xml )을 만듭니다. pf dev='eth3 을 고유한 SR-IOV 장치 물리 기능 (PF)의 netdev 이름으로 교체해야 합니다.
    다음은 호스트 물리적 머신의 "eth3'에 PF에서 SR-IOV 어댑터의 모든 VF 풀을 사용할 수 있도록 하는 네트워크 정의의 예입니다.

    그림 16.12. 네트워크 정의 도메인 XML 샘플

          
    <network>
       <name>passthrough</name> <!-- This is the name of the file you created -->
       <forward mode='hostdev' managed='yes'>
         <pf dev='myNetDevName'/>  <!-- Use the netdev name of your SR-IOV devices PF here -->
       </forward>
    </network>
          
    
    
  3. 새 XML 파일을 로드합니다.

    다음 명령을 입력하고 /tmp/passthrough.xml 을 이전 단계에서 생성한 XML 파일의 이름 및 위치로 바꿉니다.
    # virsh net-define /tmp/passthrough.xml
  4. 게스트 다시 시작

    passthrough.xml 을 이전 단계에서 생성한 XML 파일 이름으로 교체하여 다음을 실행합니다.
     # virsh net-autostart passthrough # virsh net-start passthrough 
  5. 게스트 가상 머신 다시 시작

    virsh start 명령을 실행하여 첫 번째 단계에서 종료한 게스트 가상 시스템을 다시 시작합니다(예: guestVM을 게스트 가상 시스템의 도메인 이름으로 사용). 자세한 내용은 20.6절. “가상 머신 시작, 다시 시작 및 복원”를 참조하십시오.
     # virsh start guestVM 
  6. 장치에 대한 패스스루 시작

    단일 장치만 표시되더라도 libvirt는 게스트 가상 머신이 다음과 같은 도메인 XML의 인터페이스 정의로 처음 시작될 때 해당 PF와 연결된 모든 VF 목록을 자동으로 파생합니다.

    그림 16.13. 인터페이스 네트워크 정의를 위한 도메인 XML 샘플

             
    <interface type='network'>
       <source network='passthrough'>
    </interface>
          
    
    
  7. 검증

    네트워크를 사용하는 첫 번째 게스트를 시작한 후 virsh net-dumpxml passthrough 명령을 실행하여 이를 확인할 수 있습니다. 다음과 유사한 출력이 표시됩니다.

    그림 16.14. XML 덤프 파일 패스스루 컨텐츠

          
    <network connections='1'>
       <name>passthrough</name>
       <uuid>a6b49429-d353-d7ad-3185-4451cc786437</uuid>
       <forward mode='hostdev' managed='yes'>
         <pf dev='eth3'/>
         <address type='pci' domain='0x0000' bus='0x02' slot='0x10' function='0x1'/>
         <address type='pci' domain='0x0000' bus='0x02' slot='0x10' function='0x3'/>
         <address type='pci' domain='0x0000' bus='0x02' slot='0x10' function='0x5'/>
         <address type='pci' domain='0x0000' bus='0x02' slot='0x10' function='0x7'/>
         <address type='pci' domain='0x0000' bus='0x02' slot='0x11' function='0x1'/>
         <address type='pci' domain='0x0000' bus='0x02' slot='0x11' function='0x3'/>
         <address type='pci' domain='0x0000' bus='0x02' slot='0x11' function='0x5'/>
       </forward>
    </network>