之前在virtualbox嵌套安装KVM虚拟化的时候,使用VNC Viewer安装子机的时候,速度还行,但是安装系统后启动子机的时候速度超慢。从启动到出现登录界面大约需要二三十分钟。该调整的都调整了,还把virtualbox升级到最新的5.0,还是不行。
后来又发现如果使用默认的虚拟磁盘格式raw的话,系统会一次性将指定的磁盘大小全部分配出来,而使用qcow2的话,是动态分配虚拟磁盘大小。我就将现有的虚拟磁盘进行了一次转换:
qemu-image convert -f raw -O qcow2 /kvm/vm/vm1.img /kvm/vm/vm1.qcow2
然后修改配置文件:
virsh edit centos
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/kvm/vm/vm1.qcow2'/>
<target dev='hda' bus='ide'/>
</disk>
重启libvirtd
service libvirtd restart
然后启动虚拟机
virsh start centos
监测后发现启动时间用了十分钟,比之前的少了一半的时间,不过还是有些慢
今天看铭哥之前发的一个比较详细的KVM的帖子,最后一段克隆虚拟机里的配置文件有一个修改磁盘接口的地方不是ide而是virtio。突然脑子灵光一现,会不会是接口的问题导致启动速度慢呢?然后我就做了如下修改:
virsh edit centos
“centos”是虚拟机的名称
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/kvm/vm/vm1.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
当时倒数都二行,我是删除掉的,这一行是子系统启动时系统自动写入的。由此可见修改KVM硬件配置时,如果遭到address这一行不会写的时候,可以直接把这行删除掉,系统会自行分配相关的信息给这个设备。
个性后,保存退出
重启libvirtd
service libvirtd restart
然后启动虚拟机
virsh start centos
我监测了一下启动,这次的启动时间才4分多一点,如下图:

总结一下,如果使用virtual box在虚拟机里做嵌套虚拟化实验的话,在使用默认的配置安装完系统后,还需要进行以下二步:
1,将现有的虚拟磁盘从raw格式转换成qcow2格式
2,修改配置文件中虚拟磁盘接口,将ide修改成virtio
qemu-image convert -f raw -O qcow2 /kvm/vm/vm1.img /kvm/vm/vm1.qcow2
然后修改配置文件:
virsh edit centos
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/kvm/vm/vm1.qcow2'/>
<target dev='hda' bus='ide'/>
</disk>
重启libvirtd
service libvirtd restart
然后启动虚拟机
virsh start centos
监测后发现启动时间用了十分钟,比之前的少了一半的时间,不过还是有些慢
今天看铭哥之前发的一个比较详细的KVM的帖子,最后一段克隆虚拟机里的配置文件有一个修改磁盘接口的地方不是ide而是virtio。突然脑子灵光一现,会不会是接口的问题导致启动速度慢呢?然后我就做了如下修改:
virsh edit centos
“centos”是虚拟机的名称
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/kvm/vm/vm1.qcow2'/>
<target dev='vda' bus='virtio'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</disk>
当时倒数都二行,我是删除掉的,这一行是子系统启动时系统自动写入的。由此可见修改KVM硬件配置时,如果遭到address这一行不会写的时候,可以直接把这行删除掉,系统会自行分配相关的信息给这个设备。
个性后,保存退出
重启libvirtd
service libvirtd restart
然后启动虚拟机
virsh start centos
我监测了一下启动,这次的启动时间才4分多一点,如下图:
总结一下,如果使用virtual box在虚拟机里做嵌套虚拟化实验的话,在使用默认的配置安装完系统后,还需要进行以下二步:
1,将现有的虚拟磁盘从raw格式转换成qcow2格式
2,修改配置文件中虚拟磁盘接口,将ide修改成virtio
本文介绍了如何解决VirtualBox中KVM虚拟机启动速度慢的问题。通过将虚拟磁盘格式从raw转换为qcow2,并将磁盘接口由ide改为virtio,成功减少了启动时间。经过调整,启动时间从原来的二三十分钟缩短到了四分钟左右。
1万+

被折叠的 条评论
为什么被折叠?



