過去問ドリル

LinuCレベル3 プラットフォームスペシャリスト 仮想化基盤の構築 問14

仮想化基盤の構築/仮想化技術の動作原理と最適化

KVMホストの物理NICを、vfio-pciを使って特定の仮想マシンへPCIパススルーしたい。事前の準備として適切なものはどれか。

当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「仮想化基盤の構築」に対応。実際の試験問題ではありません)

正解:A

解説

PCIパススルーでは、ゲストに割り当てた物理デバイスが行うDMAを、IOMMUによってそのゲストのメモリ範囲に閉じ込める必要があります。そのため、ファームウェアでIntel VT-d(AMDではAMD-Vi)を有効にし、必要に応じてカーネルパラメータ(intel_iommu=on等)でIOMMUを有効化します。そのうえで対象デバイスをホスト側のドライバから切り離してvfio-pciにバインドし、virshの構成XML(hostdev)やQEMUの-device vfio-pciでゲストへ割り当てます。

選択肢ごとの解説

  • A正しい。IOMMUの有効化と、デバイスのvfio-pciへのバインドが、VFIOによるPCIパススルーの前提です。
  • B誤り。virtio-netは準仮想化デバイスで、ホスト側がエミュレーション・中継を行う方式です。物理デバイスをゲストへ直接渡すパススルーとは別物です。
  • C誤り。ボンディングインターフェースはカーネル内の論理デバイスで、PCIデバイスではないためパススルーの対象になりません(macvtap等でゲストに接続する方法はありますが、それはPCIパススルーではありません)。
  • D誤り。IOMMUはパススルーに必須です。無効にするとVFIOは使えず、デバイスのDMAをゲストのメモリ範囲に隔離できません。
LinuCレベル3 プラットフォームスペシャリストの問題を演習モードで解く