libvirt - IDE デバイスからのみ起動できますか?

libvirt - IDE デバイスからのみ起動できますか?

私は、ホストとして Ubuntu 18.04、ゲストとして Windows 10 を実行しており、ハイパーバイザーとして QEMU/KVM、管理ツールとして libvirt を使用しています。

Windows ゲストに渡したい nvme ssd /dev/nvmewin があります (ゲストはこのデバイスから起動します)

また、UEFI モードで起動するために OVMF を使用しています。

現時点では、デバイスが IDE デバイスとして公開されている場合にのみ機能します。デバイスが SCSI、SATA、または Virtio の下にある場合、ゲストは起動しません (エラー コード INACCESSIBLE_BOOT_DEVICE のブルー スクリーンが表示されます)

別のバスを使用する理由は、I/O パフォーマンスが向上すると考えているからです。

そこで私の質問は:

  • 別のバスを使用すると I/O パフォーマンスが向上するというのは本当ですか?
  • もしそうなら、デバイスを別のバスとブートで公開するにはどうすればよいでしょうか?

デバイスのドメイン構成部分は次のとおりです。

<disk type='block' device='disk'>
  <driver name='qemu' type='raw' cache='none' io='native'/>
  <source dev='/dev/nvmewin'/>
  <target dev='hda' bus='ide'/>
  <address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>

答え1

別のバスを使用すると I/O パフォーマンスが向上するというのは本当ですか?

はい。Virtio バスの属性cache=none io=nativeHypervisor デフォルトを使用してネイティブ速度に近い速度を実現しました。Crystal Disk Mark でベンチマークするcacheio設定が高速化しているように見えますが、実際にはキャッシュが有効になっているため、テスト結果は参考程度に留める必要があります。

もしそうなら、デバイスを別のバスとブートで公開するにはどうすればよいでしょうか?

virtio バス ドライバーをインストールするだけです。Windows カーネルにはこれらのドライバーがないため、ドライバーがインストールされていない場合、Windows は起動時にディスクを見つけることができません。

詳細は以下をご覧くださいここ

関連情報