我有两个在不同的虚拟机(VMware和KVM)上运行的进程。现在我希望这两个进程能够在一个主机上运行。如果我在一台主机上同时使用VMware和KVM,它将会工作吗?
感谢Surya
总之 – 没有。 两个平台都使用自己的kmod来pipe理VT扩展,并且该模块需要排他性。
正如P Marecki所说,是的,你可以同时运行它们。 具体而言,VMware工作站可以与KVM机器并行启动虚拟机。 但是,这意味着只有KVM才会被允许使用硬件支持(VT)。 在VMware中,您必须明确禁用此function并启用“二进制翻译”。 一个旧的,但仍然有效,文章如何做到这一点可以在这里find。 (我们的同事应该更积极,调查他们的答案,而不是仅仅告诉其他人)。
而且,如果禁用VT并启用二进制转换,则可以对VBox执行相同的操作,VBox也可以与KVM共存。 尽pipe如此,这些都是严重的惩罚。
如果你想KVM以这种方式工作,那么你不能。 你只能使用QEMU(没有qemu-kvm),有几个技巧可以让它在没有VT的情况下运行。
您可以在同一台机器上安装尽可能多的虚拟机pipe理程序(VirtualBox,KVM,VMware Player / Workstation等),但如果使用硬件加速(在Intel芯片上称为VT-x),则只能运行虚拟机在他们其中之一。 否则,他们安装的内核模块将会互相干扰,因为他们试图响应相同的硬件虚拟化VMEXIT事件。
所有列出的虚拟机pipe理程序都使用VT-x,所以你必须有select地禁用那些你不使用的虚拟机,所以它们不会干扰你当前正在运行的虚拟机。 以下是可用于禁用/启用每个常用Linuxpipe理程序内核模块(在Ubuntu 14.04上testing)的命令:
VMware的
# to disable sudo /etc/init.d/vmware stop # to enable sudo /etc/init.d/vmware start
VirtualBox的
# to disable sudo /etc/init.d/virtualbox stop # to enable sudo /etc/init.d/virtualbox start
KVM
# to disable sudo rmmod kvm_intel sudo rmmod kvm # to enable sudo insmod /lib/modules/`uname -r`/kernel/arch/x86/kvm/kvm.ko sudo insmod /lib/modules/`uname -r`/kernel/arch/x86/kvm/kvm-intel.ko
你的问题缺乏细节和思想。 从这样的网站获得的有用信息的数量通常会随着您描述问题的工作量而变化。
回答你所问的问题:不。 虚拟机主机是独占的,就像操作系统一样。 你可以用一些虚拟机系统在另一个虚拟机系统中运行一个,但这种方式的疯狂在于。
理智的方法是:select一个虚拟机系统,在其内部运行两个VM guest虚拟机。 有一些工具可以将KVM磁盘映像转换为VMware,反之亦然。