前言
最近一直在研究一些关于kvm的io相关的问题,在设置kvm的virtio时遇到一些问题,记录以下。
图形化修改磁盘io模式
在这里有两种修改方式,一种是用图形化界面,一种是用命令行,首先是图形化界面的修改方式如下:
打开虚拟机设置界面,然后将磁盘总线设置为virtio模式
之后将网络接口也设置为virtio模式,并调整boot options如下
命令行修改磁盘io模式
virsh edit centos7.0(此处为虚拟机名)
将标签中的内容修改如下
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none' io='native'/>
<source file='/var/lib/libvirt/images/second.qcow2'/>
<target dev='vda' bus='virtio'/>
<boot order='3'/>
</disk>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2'/>
<source file='/var/lib/libvirt/images/centos7.0.img.qcow2'/>
<target dev='vdb' bus='virtio'/>
<boot order='2'/>
</disk>
注意要删除其中的address标签内容
之后修改网络接口的boot order为1
<interface type='network'>
<mac address='52:54:00:07:ce:26'/>
<source network='default'/>
<model type='virtio'/>
<boot order='1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
总结
virtio 是一种 I/O 半虚拟化解决方案,是一套通用 I/O 设备虚拟化的程序,是对半虚拟化 Hypervisor 中的一组通用 I/O 设备的抽象。提供了一套上层应用与各 Hypervisor 虚拟化设备(KVM,Xen,VMware等)之间的通信框架和编程接口,减少跨平台所带来的兼容性问题,大大提高驱动程序开发效率。