跳轉到內容

QEMU/裝置/VirtIO

來自華夏公益教科書,開放的書籍,為開放的世界

VirtIO 是一個 I/O 虛擬化平臺,在多個管理程式(和 QEMU)中很常見。

客戶機作業系統需要專門的驅動程式來處理這些裝置。

支援的裝置列表

[編輯 | 編輯原始碼]
功能 匯流排 型別 裝置 使用示例
網路 PCI 10Gb/s virtio-net-pci -net nic,model=virtio ...
儲存 PCI SCSI virtio-scsi-pci -device virtio-scsi-pci -drive file=disk.img,if=none,id=hd0 -device scsi-hd,drive=hd0 ...
儲存 PCI 自定義 virtio-blk -drive file=disk.img,if=virtio ...
記憶體 PCI RAM virtio-balloon-pci
序列 PCI 序列 virtio-serial-pci
隨機數生成器 PCI RNG virtio-rng-pci virtio-rng-pci

virtio-rng-pci

[編輯 | 編輯原始碼]

要設定一個 VirtIO RNG,您首先需要為它提供一個熵源。

對於類 Unix 系統上核心匯出的裝置,您可以像這樣操作
-object rng-random,filename=/dev/random,id=rng0

它顯然不限於核心 RNG,您也可以以完全相同的方式選擇硬體 RNG。

它還支援 EGD,但由於效能不佳,不建議使用它。
示例:-chardev socket,host=10.199.13.151,port=9000,id=chr0 -object rng-egd,chardev=chr0,id=rng0

新增實際裝置

[編輯 | 編輯原始碼]

然後,您可以新增實際裝置,如下所示:-device virtio-rng-pci,rng=rng0

還有一個選項可以限制客戶機接收的資料量,以避免主機飢餓。
示例:max-bytes=512,period=1000,表示 512 位元組/秒。

支援的客戶機系統

[編輯 | 編輯原始碼]
作業系統 驅動程式
Microsoft Windows http://www.linux-kvm.org/page/WindowsGuestDrivers/Download_Drivers
基於 Linux 的 2.6.x, 3.x, 4.x
FreeBSD 9.x(可用)、10.x(在 GENERIC 核心中) https://www.freebsd.org/cgi/man.cgi?query=virtio&sektion=4
NetBSD 6.0+
OpenBSD 5.9+
華夏公益教科書