kvm虚拟机(Kernel-based Virtual Machine)是运行与linux上的内核级虚拟机实现,相比其他的内核级虚拟级,kvm有很大优势,内核级运行,相对简单轻量,是一种关虚拟机,理论上效率更高,完全GPL。当然也有不少缺点,宿主机当然只能是linux了,客户机无所谓,没有完善易用的管理工具,需要与其他内核模块一起使用,对宿主机CPU有要求,必须支持VT技术才行。
其他的虚拟机,包括老牌的vmware,企业级,个人桌面版本都比较完善,但越来越庞大,越来赶不上linux内核的发展,使用它被限制在某些特定的内核版本。virtualbox,桌面级应用非常简便,也还可以,不地以IT大颚Oracle收购,应该对企业级应用的支持变好,但桌面级应用就不知道了。这两个平台都是全虚拟化平台。还有别一个半虚拟化平台xen,这个本来很有希望的虚拟化实现,却由于对内核来说过于复杂,不有其他一些原因没能进入内核,听说也 是很强大的。
关于kvm,在一年多以前试用过一回,那时的管理工具更简陋,对像windows的图形化桌面支持不好,图形界面的效率特别差,虚拟磁盘性能也不太好,网络配置麻烦,由于这些问题才一直放着没用。最近终于有了点时间,又试了一把,这次的效率还真好了不少,管理工具上,借用了qemu项目中的工具,对图形界面的支持加强,对磁盘性能,虚拟网络性能和设置都有了长足的解决方案。经过这次试用,感觉无论是虚拟机管理,易用性,图形界面效率,都到了能接受的阶段,所以把这些试用经验记录下来,以备后用。
宿主机软硬件环境:
Intel(R) Core(TM)2 Duo CPU T9600 @ 2.80GHz
memory ddr3 4G
intel 1000M网卡,
gentoo linux 2.6.36-x66_64
qemu-kvm-0.13.0
客户机,
window xp sp3 32位中文版,
windows xp sp2 64位英文版,
freebsd 7.3 32位,
ubuntu 8.10 32位
*) 宿主机内核的配置,
内核模块,
kvm虚拟机核心模块,kvm, kvm-intel或者kvm-amd
磁盘,网络加速模块,vhost-net,virtio* http://www.linux-kvm.org/page/Virtio
内核网桥模块,bridge stp tun
modprobe kvm kvm-intel
modprobe vhost-net virtio
modprobe bridge stp tun
这些命令需要root权限,如果缺少哪个模块,需要重新编译内核,以模块方式把这些模块编译加入到内核中,重启动进入新内核系统。内核编译参考其他文档。
对于vhost-net virtio模块,这是为提高效率,改进性能时用到,默认情况也可以不使用
对于bridge tun模块,是选择桥接模式网络才用到,默认情况网络模式也可以不使用
*) qemu-kvm虚拟管理命令工具介绍,
qemu-img 管理虚拟机磁盘的工具,创建,改变虚拟磁盘大小,虚拟磁盘格式等
qemu-kvm 用于启动虚拟机,这个命令参数非常多,并且同时支持新旧两套参数,使用时要注意。下文中都尽量使用的新参数格式,同时对旧参数做了些说明。
*) 网桥工具
brctl 网桥管理工具
localhost ~ # brctl -h
Usage: brctl [commands]
commands:
addbr add bridge
delbr delete bridge
addif add interface to bridge
delif delete interface from bridge
setageing |