VirtIO驱动的简介:
从 2006 年开始,KVM 上设备 I/O 虚拟化的性能问题也显现了出来,此时由 Rusty Russell 开发的 virtio 引起了开发者们的注意并逐渐被 KVM 等虚拟化平台接纳并作为了其 I/O 虚拟化最主要的一个通用框架。
Virtio 使用 virtqueue 来实现其 I/O 机制,每个 virtqueue 就是一个承载大量数据的 queue。vring 是 virtqueue 的具体实现方式,针对 vring 会有相应的描述符表格进行描述。框架如下图所示:
virtio 提供了一套有效、易维护、易开发、易扩展的中间层 API。virtio 使用 Feature Bits 来进行功能扩展,使用 vring buffer 传输数据。使用 virtio 的设备在配置上于其他 PCI 设备没有太多不同,只不过它只应用于虚拟化环境。
集成VirtIO:
为了提高VM的IO性能和网络性能,我尝试集成VirtIO驱动。
驱动下载URL:
http://fedoraproject.org/wiki/Windows_Virtio_Drivers#Direct_download
以下是操作步骤:
1、安装UltraISO、WALK(win自动安装工具)、DAEMON Tools。
2、使用DAEMON Tools挂着镜像,从镜像里(路径:sources)的boot.wim和install.wim到C盘,然后在C盘新建一个mount文件夹。
3、以管理员权限运行“Windows PowerShell”,进入WALK目录使用DISM(部署映像服务和管理)
cd C:”Program Files””Windows AIK”ToolsPETools
4、查看映像里面有几个版本,下图可以看到有4个版本,分别以index1, 2,3,4区分
dism /get-wiminfo /wimfile:C:install.wim
5、将install.wim挂载到刚才创建在C盘的mount文件夹
dism /mount-wim /wimfile:C:install.wim /index:1 /mountdir:C:mount
6、添加VirtIO磁盘和网卡驱动
dism /image:C:mount /add-driver /driver:C:WIN7AMD64VIOSTOR.inf
dism /image:C:mount /add-driver /driver:C:WIN7AMD64NETKVM.inf
7、添加VirtIO驱动后查看一下安装信息,看看有没正常添加到映像里面。下图可以看到刚才添加的驱动是有经过微软认证的,如果驱动没经过微软认证的话,记得在添加驱动(Step09)那一步结尾加上”/forceunsigned”参数。
8、保存操作和卸载映像。如果映像里有多个版本,按照步骤5至7一步一步重复操作,挂载时记得修改一下”/index:数字。
9、接下来是添加VirtIO驱动到boot.wim, 将install.wim替换为boot.wim, 按步骤5至7一步一步操作。
10、 封装处理,打开UltraISO, 在Local栏找到原始iso镜像,双击打开后可以在Image栏见到镜像里所有文件,然后将镜像里的boot.wim和install.wim删除(路径:/sources),再将刚开始从镜像里提取到c盘的boot.wim和install.wim添加进去,然后保存即可。