Red Hat Training

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

9.3. 장치 컨트롤러 구성

게스트 가상 머신 아키텍처에 따라 일부 장치 버스는 가상 컨트롤러에 연결된 가상 장치 그룹과 함께 두 번 이상 표시될 수 있습니다. 일반적으로 libvirt는 명시적 XML 태그 없이 이러한 컨트롤러를 자동으로 유추할 수 있지만 경우에 따라 가상 컨트롤러 요소를 명시적으로 설정하는 것이 좋습니다.

그림 9.11. 가상 컨트롤러의 도메인 XML 예


  ...
  <devices>
    <controller type='ide' index='0'/>
    <controller type='virtio-serial' index='0' ports='16' vectors='4'/>
    <controller type='virtio-serial' index='1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x0a' function='0x0'/>
    </controller>
    ...
  </devices>
  ...
각 컨트롤러에는 필수 특성 <컨트롤러 유형> 이 있으며 다음 중 하나여야 합니다.
  • IDE
  • fdc
  • scsi
  • SATA
  • usb
  • CCID
  • virtio-serial
  • pci
<컨트롤러> 요소에는 필수 특성 <컨트롤러 인덱스> 가 있으며, 이는 버스 컨트롤러가 발생하는 순서를 설명하는 10진수 정수입니다( <address> elements의 컨트롤러 특성에 사용). <controller type ='virtio-serial'> 에 두 개의 추가 선택적 속성(명명 포트벡터)이 있는 경우 컨트롤러를 통해 연결할 수 있는 장치 수를 제어합니다. Red Hat Enterprise Linux 6는 장치당 32 벡터를 초과하는 사용을 지원하지 않습니다. 벡터를 더 많이 사용하면 게스트 가상 머신을 마이그레이션할 때 오류가 발생합니다.
<controller type ='scsi'> 의 경우 다음과 같은 값을 가질 수 있는 선택적 특성 모델 모델이 있습니다.
  • auto
  • buslogic
  • ibmvscsi
  • lsilogic
  • lsisas1068
  • lsisas1078
  • virtio-scsi
  • vmpvscsi
<controller type ='usb'> 의 경우 다음과 같은 값을 가질 수 있는 선택적 특성 모델 모델이 있습니다.
  • piix3-uhci
  • piix4-uhci
  • ehci
  • ich9-ehci1
  • ich9-uhci1
  • ich9-uhci2
  • ich9-uhci3
  • vt82c686b-uhci
  • pci-ohci
  • nec-xhci
참고
게스트 가상 머신에 대해 USB 버스를 명시적으로 비활성화해야 하는 경우 <model='none'> 을 사용할 수 있습니다. .
PCI 또는 USB 버스의 장치 자체인 컨트롤러의 경우 선택적 하위 요소 <주소는> 컨트롤러의 마스터 버스와의 정확한 관계를 9.4절. “장치 주소 설정” 에 표시된 대로 지정할 수 있습니다.
선택적인 하위 요소 <드라이버는 드라이버> 특정 옵션을 지정할 수 있습니다. 현재는 컨트롤러의 대기열 수를 지정하는 특성 대기열만 지원합니다. 최상의 성능을 위해 vCPU 수와 일치하는 값을 지정하는 것이 좋습니다.
USB 도우미 컨트롤러는 해당 <마스터> 컨트롤러와의 정확한 관계를 지정하기 위한 선택적 하위 요소 마스터가 있습니다. 파트너 컨트롤러는 마스터와 동일한 버스에 있으므로 companion index 값이 동일해야 합니다.
사용할 수 있는 XML 예제는 다음과 같습니다.

그림 9.12. USB 컨트롤러의 도메인 XML 예

   
     ...
  <devices>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0' bus='0' slot='4' function='7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0' bus='0' slot='4' function='0' multifunction='on'/>
    </controller>
    ...
  </devices>
  ...
   

PCI 컨트롤러에는 다음과 같은 가능한 값이 있는 선택적 모델 속성이 있습니다.
  • pci-root
  • pcie-root
  • pci-bridge
  • dmi-to-pci-bridge
루트 컨트롤러(pci-root 및 pcs ie-root)에는 64비트 PCI 홀트가 있어야 하는 pcihole64 요소 또는 pcihole64단위 속성(KB)을 지정하는 pcihole64 요소가 있습니다. 일부 게스트 가상 머신 (예: Windows Server 2003)은 단위가 비활성화 되지 않는 한 ( unit ='0'으로 설정) 충돌을 일으킬 수 있습니다.
암시적 PCI 버스를 제공하는 시스템 유형의 경우 index='0' 인 pci-root 컨트롤러가 자동으로 추가되어 PCI 장치를 사용해야 합니다. pci-root에는 주소가 없습니다. PCI 브리지는 model='pci-root' 에서 제공하는 하나의 버스에 배치할 장치가 너무 많거나 0보다 큰 PCI 버스 번호가 지정된 경우 자동으로 추가됩니다. PCI 브리지를 수동으로 지정할 수도 있지만 주소는 이미 지정된 PCI 컨트롤러에서 제공하는 PCI 버스만 참조해야 합니다. PCI 컨트롤러 인덱스에서 간격을 남겨 두면 구성이 유효하지 않을 수 있습니다. 다음 XML 예제를 <devices> 섹션에 추가할 수 있습니다.

그림 9.13. PCI 브리지의 도메인 XML 예


  ...
  <devices>
    <controller type='pci' index='0' model='pci-root'/>
    <controller type='pci' index='1' model='pci-bridge'>
      <address type='pci' domain='0' bus='0' slot='5' function='0' multifunction='off'/>
    </controller>
  </devices>
  ...
암시적 PCI Express( PCI Express) 버스(예: Q35 칩셋 기반의 시스템 유형)를 제공하는 머신 유형의 경우 index='0 을 사용하는pcie-root 컨트롤러가 도메인 구성에 자동 추가됩니다.pcie-root는 주소가 없지만 31 슬롯(수적으로 1-31)을 제공하는 데도 사용할 수 있습니다. PCie-root 컨트롤러가 있는 시스템에서 표준 PCI 장치를 연결하기 위해 model='dmi-to-pci-bridge' 가 있는 pci 컨트롤러가 자동으로 추가됩니다. dmi-to-pci-bridge 컨트롤러 플러그 인은 PCIe 슬롯에 플러그인하고(pcie-root에서 제공하는 대로) 31 표준 PCI 슬롯을 제공합니다(hot-pluggable). 게스트 시스템에 핫플러그 가능한 PCI 슬롯을 사용하기 위해 pci-bridge 컨트롤러도 자동으로 생성되고 자동 생성된 dmi-to-pci-bridge 컨트롤러 슬롯 중 하나에 연결됩니다. PCI 주소가 있는 모든 게스트 장치도 이 pci-bridge 장치에 배치됩니다.

그림 9.14. PCIe(PCI express)의 도메인 XML 예

   
     ...
  <devices>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='dmi-to-pci-bridge'>
      <address type='pci' domain='0' bus='0' slot='0xe' function='0'/>
    </controller>
    <controller type='pci' index='2' model='pci-bridge'>
      <address type='pci' domain='0' bus='1' slot='1' function='0'/>
    </controller>
  </devices>
  ...