Red Hat Training

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

21.16.6. ホスト物理マシンのデバイス割り当て

21.16.6.1. USB / PCI デバイス

ホスト物理マシンの USB および PCI デバイスは、管理ツールを使用してホスト物理マシンを変更することによって、hostdev 要素を使用してゲスト仮想マシンに渡すことができます。ドメイン XML ファイルの以下のセクションが設定されます。

  ...
  <devices>
    <hostdev mode='subsystem' type='usb'>
      <source startupPolicy='optional'>
        <vendor id='0x1234'/>
        <product id='0xbeef'/>
      </source>
      <boot order='2'/>
    </hostdev>
  </devices>
  ...

図21.28 デバイス - ホスト物理マシンのデバイス割り当て

または、以下を実行することもできます。

  ...
  <devices>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <source>
        <address bus='0x06' slot='0x02' function='0x0'/>
      </source>
      <boot order='1'/>
      <rom bar='on' file='/etc/fake/boot.bin'/>
    </hostdev>
  </devices>
  ...

図21.29 デバイス - ホスト物理マシン割り当ての代替

ドメイン XML のこのセクションを構成するコンポーネントは以下の通りです。

表21.13 ホスト物理マシンデバイス割り当て要素

パラメーター説明
hostdevこれは、ホスト物理マシンを説明するためのメインコンテナーです。USB デバイスパススルーの場合、mode は常に subsystem であり、type は、USB デバイスの場合は usb、PCI デバイスの場合は pci になります。 managed が PCI デバイスについて yes とされる場合、これは、ゲスト仮想マシンに渡される前に、ホスト物理マシンから切り離され、ゲスト仮想マシンが終了した後にホスト物理マシンに再アタッチされます。managed が省略されるか、または PCI および USB デバイスに対して no となる場合、ユーザーは、ゲスト仮想マシンの開始またはデバイスのホットプラグの前に引数 virNodeDeviceDettach (または virsh nodedev-dettach) を使用することができ、ゲスト仮想マシンのホットアンプラグまたは停止の後に virNodeDeviceReAttach (または virsh nodedev-reattach) を使用することができます。
sourceホスト物理マシンから表示されるデバイスについて説明します。USB デバイスは、vendor および product 要素を使用してベンダー/製品 ID によって処理されるか、または address 要素を使用してホスト物理マシン上のデバイスのアドレスによって処理されます。他方、PCI デバイスは、それらのアドレスによってのみ記述されます。USB デバイスのソース要素には、指定のホスト物理マシンの USB デバイスが見つからなかった場合の処理についてのルールを定義するために使用できる startupPolicy 属性が含まれる可能性があります。この属性は、以下の値を受け入れます。
  • mandatory - 何かの理由で見つからない場合に失敗します (デフォルト)
  • requisite - 起動時に見つからない場合に失敗し、移行/復元/復帰の時点で見つからない場合にドロップします。
  • optional - 開始の試行時に見つからない場合にドロップします。
vendor, productこれらの要素のそれぞれには、USB ベンダーおよび製品 ID を指定する id 属性があります。ID は、10 進数、16 進数 (0x で開始) または 8 進数 (0 で開始) の形式で指定できます。
bootデバイスが起動可能であることを指定します。この属性の順序は、ブートシーケンス時にデバイスが試行される順序を決定します。デバイスごとの boot 要素は、BIOS ブートローダーセクションの一般的な boot 要素と共に使用することができません。
romPCI デバイスの ROM がゲスト仮想マシンに提示される方法を変更するために使用されます。オプションの bar 属性は、on または off に設定でき、デバイスの ROM がゲスト仮想マシンのメモリーマップに表示されるかどうかを決定します (PCI 資料によると、rombar 設定は、ROM の Base Address Register の表示を制御します)。rom bar が指定されない場合、デフォルト設定が使用されます。オプションの file 属性は、デバイスの ROM BIOS としてゲスト仮想マシンに提示されるバイナリーファイルをポイントするために使用されます。これは、たとえば sr-iov 対応のイーサネットデバイス (VF のブート ROM を持たない) の仮想機能用に PXE ブート ROM を提供するのに便利です。
addressさらに、デバイスが表示されるホスト物理マシン上のUSB バスとデバイス番号を指定するための bus および device 属性があります。これらの属性の値は、10 進数、16 進数 (0x で開始) または 8 進数 (0 で開始) の形式で指定できます。PCI デバイスの場合、要素には 3 つの属性が含まれ、デバイスを lspci または virsh nodedev-list で検索できるように指定することができます。