KVM和Xen有什么区别?
Xen是一个外部虚拟机管理程序(External hypervisor),它承担了管理物理机器的任务并把物理机器的各种资源分配给客户机。与Xen不同,KVM本身是Linux内核的一部分,它使用Linux自己的进程调度和内存管理。这就天然决定了KVM易于使用并于体积会很小。仅管体积小,但KVM的功能确不少。比如,KVM可以把客户机从内存中兑换到物理磁盘上,如同swap普通进程一样释放RAM。KVM目前只在提供支持硬件虚拟化的x86机器上运行(如vt/svm指令集)。从这这方面讲,Xen通过修改客户机操作系统,充许虚拟机运行在没有硬件虚拟化技术的x86平台上运行。这种虚拟化技术称之为准虚拟化paravirtualization,参见另一贴:Linux的虚拟化技术。KVM在CPU级别不支持paravirtualization,但为了指高I/O性能,会对设备驱动程序支持准虚拟化。
KVM和Vmware有什么区别呢?
VMware是一个商用专用虚拟化产品,KVM是在GPL许可证下发布的自由软件。
KVM和QEMU有什么区别?
QEMU是模拟器。参见Linux的虚拟化技术 KVM & QEMU 。
KVM有windows下的移移植版本吗?
没有官方的移植。Kazushi Takahashi发起了一个项目,把KVM移植到windows操作系统,这个项目名为WinKVM,这是他的官方网站WinKVM。
可参见另一篇文章 http://ykyi.net/2012/06/595/。
需要怎样的Linux内核版本才能运行KVM呢?
这取决于你要运行哪个版本的KVM。最近发布的KVM应该可以在任何2.6.17以后的kernel版本下运行。但很旧版本的KVM只能在一些旧的内核下运行。
需要多少内存运行KVM呢?
最小应该1GB。嗯,你应该有足够多的内存运行你将要运行的客户机,另外当然还需要内存运行host机。
是否支持对客户机动态分配内存?
这个问题有点大!
1. KVM在客户机尝试申请内存时分配内存给它们。一但内存分配结束之后,KVM则认为内存分给某客户机了。有一些操作系统,比如Microsoft Windows会在启动阶段把所有的内存都清零。这些操作系统会立即使有或管理所有的内存。
2. 而另一些操作系统,实际上目前只有Linux,它们有一个称为balloon driver的东东,如果host分配了一些内存但客户机将来不再使用了,它就会让host把它们释放掉。Ballooning是通过balloon monitor command在host机中被控制的。
3. 有一些host机,(目前只有RHEL5.4/CentOS 5.4)有一种特性称为KSM(Kernel Sharedpage Merging)。这种特性可以把完全相面的内存页面合并,这需要host机的支持,另外KVM的版本要足够新。而有一些操作系统,如windows,会把释放的内存清零,这些页面自然就会合并了(such pages are trivially collapsed不知道有没有译对)。Ksmctl命令用来开启KSM。另外一种方法是,Fedora 12中的ksmtuned服务可以根据可用的空闲内存动态的调整KSM的合并策略是否积极还是保守。
我可以在KVM虚拟机中安装哪些操作系统呢?
支持很多种操作系统,你可以参看Guest Support Status 页面。请注意已经有一些Linux发行版在Intel处理器上会在启动阶段死机,解决办法是在grub里禁用启动画面。
KVM支持虚拟机实时迁移(Live Migration)吗?
支持!. 参看Migration。KVM支持从AMD的主机往INTEL主机实时迁移(Live Migration)吗?
支持!对于32位不支持NX或者XD的主机,可能会有一些问题。但是对于64位的客户机,应该没有一点问题的。在32位主机和64位主机之间实时迁移(Live Migration)32位虚拟机也应该没有问题。如果其中一台主机不支持NX,你要考虑在支持NX的那台机启动虚拟机之前禁用NX。你可以在启动客户机时加入”-cpu qemu64, -nx”参数。
可以在64位的主机上运行32位的客户机吗?可以用PAE吗?
KVM支持在64位主机上运行32位的客户机,不管主机是否使用PAE,客户机都可以选择使用PAE或者不使用PAE。KVM不支持在32位的主机上运行64位的虚拟客户机。
可以在基于KVM的虚拟机上使用USB设备吗?
当然可以,请参照QEMU的做法,是一样的。
我可以让KVM使用更高的屏幕分辨率吗?
在启动VM之前使和 -vga std 参数可以充许你设置更多的分辨率和屏幕尺寸。
如果不能调到你想要的分辨率,你可以尝试安装一个补丁包,请参考http://article.gmane.org/gmane.comp.emulators.kvm.devel/13557 。
当你使用windows作为客户机操作系统的时候,你可以使用VBEMP x86项目中开发的驱动,这个项目是基于ReactOS开源项目的,请注意不要违反GPL许可证。
KVM支持对称多处理器(SMP)的host机吗?
支持!
KVM支持对称多处理器(SMP)的客户机吗?
Yes. Up to 16 CPUs can be specified using the -smp option.
是的!目前一共最多16颗cpu,要使用-smp选项。
KVM已经被注册为商标了吗?
没有!
转帖请注明出处: http://ykyi.net/2012/06/kvm%E4%BD%A0%E9%97%AE%E6%88%91%E7%AD%94-faq-%E5%9B%9B/
—– KVM FAQ 全剧终 —–