![libvirt - IDE デバイスからのみ起動できますか?](https://rvso.com/image/1575983/libvirt%20-%20IDE%20%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9%E3%81%8B%E3%82%89%E3%81%AE%E3%81%BF%E8%B5%B7%E5%8B%95%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%81%8B%3F.png)
私は、ホストとして 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=native
Hypervisor デフォルトを使用してネイティブ速度に近い速度を実現しました。Crystal Disk Mark でベンチマークするcache
とio
設定が高速化しているように見えますが、実際にはキャッシュが有効になっているため、テスト結果は参考程度に留める必要があります。
もしそうなら、デバイスを別のバスとブートで公開するにはどうすればよいでしょうか?
virtio バス ドライバーをインストールするだけです。Windows カーネルにはこれらのドライバーがないため、ドライバーがインストールされていない場合、Windows は起動時にディスクを見つけることができません。
詳細は以下をご覧くださいここ