如何在 VMware ESXi 虚拟机上运行 KVM
2012年02月9日 | 标签: kvm, openstack, vmware esxi | 作者:vpsee
记得以前就有人问过 “能不能在一个虚拟机上运行虚拟机”,答案当然是可以的,Xen HVM, KVM, VMware, Qemu 等 Hypervisor 都可以这样嵌套虚拟,不过由于性能低下实际用处不大。在 VMware ESXi 虚拟机上运行虚拟机,被称为多层虚拟或者嵌套虚拟机(Nested VMs)。如果只有一台电脑想测试多节点 OpenStack 环境的话,使用 VMware ESXi 虚拟几个运行 KVM Hypervisor 的 OpenStack 计算节点是个不错的办法。VMware ESXi 5.0 默认情况下不支持嵌套虚拟,所以在 VMware ESXi 虚拟机里安装完 KVM 以后会发现 KVM 虽然能装但不可用:
# kvm-ok INFO: Your CPU does not support KVM extensions KVM acceleration can NOT be used
解决办法很简单:1、修改 VMware ESXi 的设置;2、修改对应虚拟机的设置。
登陆 VMware ESXi 控制台打开 VMware ESXi 5.0 的 SSH 服务(默认 SSH 服务是关闭的),然后用 ssh 登陆 VMware ESXi 后在 config 文件中最后加入 vhv.allow = “TRUE” 一行:
# vi /etc/vmware/config libdir = "/usr/lib/vmware" authd.proxy.vim = "vmware-hostd:hostd-vmdb" authd.proxy.nfc = "vmware-hostd:ha-nfc" authd.proxy.nfcssl = "vmware-hostd:ha-nfcssl" authd.proxy.vpxa-nfcssl = "vmware-vpxa:vpxa-nfcssl" authd.proxy.vpxa-nfc = "vmware-vpxa:vpxa-nfc" authd.fullpath = "/sbin/authd" authd.soapServer = "TRUE" vmauthd.server.alwaysProxy = "TRUE" vhv.allow = "TRUE"
重启 VMware ESXi 后编辑虚拟机选项(需要先关闭虚拟机),打开 Edit virtual machine settings 对话框,在 options 页面的 General Options 选项里把 Guest Operating System 的类型换成 Other 里面的 VMware ESxi 5.x,如图:
最后启动虚拟机后再 kvm-ok 一下就可以看到 KVM 可以用了:
# kvm-ok INFO: /dev/kvm exists KVM acceleration can be used
相关阅读:
在 CentOS 上安装和配置 KVM.
在 VMware ESXi 上安装 Minix.
在 VMware ESXi 虚拟机上运行不同的 Hypervisor 可以看看 VMware 的 Running Nested VMs.
免费VMware ESXi对硬件,除了内存32G外,对CPU还有限制吗?或者其他限制?
@imweijh
限制挺多的,比如免费 VMware ESXi 5.0 上跑的虚拟机最多可以分配 8 CPU cores.
@vpsee 我的意思是,对host机器,比如我有4*8=32core,esxi只能用两个CPU?还是对host没限制,对guest最多8个core ?
@imweijh
对 host 最多支持 160 CPU cores,对 guest 最多支持 8 VCPUs.
是不是少了一步呢?
我记得的情况是
还要把
编辑虚拟机设置-选项-CPU/MMU虚拟化-使用Intel VT-X/AMD-V进行指令集虚拟化
这一项给选择上吧?
@juno
一般不用,ESXi 会基于 CPU 类型和虚拟机等自动决定 guest 虚拟机是否应该使用硬件虚拟支持。选择 Automatic 就可以了,这个选项在 VMware ESXi 5.0 里是默认的。
@vpsee,谢谢解答。
另外一个问题:
对应xen/kvm,现在还是倾向xen吗?对新手,推荐用哪个?
@imweijh
推荐新手用 kvm
嵌套的虚机仍然支持kvm,说明cpu的vt-d特性,可以传递给esx的虚机。kvm只支持硬件虚拟化
@vpsee 你好~如果想用一台电脑测试多个计算节点 OpenStack 环境的话,请问用本文中的方法成功了么?~~能有完整的搭建过程的教程么?~~是在esxi上装Ubuntu,Ubuntu上搭Openstack么?~
@vivimorning
可以在 esxi 上的 ubuntu 上完整安装 openstack 以及多节点配置。
juno – February 10th, 2012 10:55 am
是不是少了一步呢?
我记得的情况是
还要把
编辑虚拟机设置-选项-CPU/MMU虚拟化-使用Intel VT-X/AMD-V进行指令集虚拟化
这一项给选择上吧?
是的
@vpsee 那请问在vmware workstation 8.0上能运行KVM么?~
@vivimorning
vmware workstation 可以运行 kvm.
@vpsee
#kvm-ok
INFO: Your CPU does not support KVM extensions
INFO: /dev/kvm does not exist
HINT: sudo modprobe kvm_
INFO: For more detailed results, you should run this as root
HINT: sudo /usr/sbin/kvm-ok
请问是不是需要修改vmware workstation的配置呢?~~怎么样才能运行KVM呢?~~
那如何设置VMware Workstation下KVM呢?找到一个Workstation下Hyper-v的
http://www.veeam.com/blog/nesting-hyper-v-with-vmware-workstation-8-and-esxi-5.html
还有您这个ESXi下KVM的,但是不会设置VMware Workstation下KVM。。。
VMware Workstation 8.0 下装ubuntu server,ubuntu里装KVM行吗?
@松岩
VMware Workstation 8.0 可以安装 ubuntu,ubuntu 里可以安装 kvm,但是需要两个条件:
1、CPU 支持 Intel VT-x/EPT 或者 AMD-V/RVI;
2、设置 VMware Workstation,设置方法参考 VMware 文档。
@vpsee
VT-x明白了,换了CPU,通过CPU-Z检测指令集中有VT-x,securable检测到hardware virtualization项locked on(有台机器显示on,应该是支持但没开)。
大哥有空看一下Workstation配置吧,试过好多次真心不行,http://www.veeam.com/blog/nesting-hyper-v-with-vmware-workstation-8-and-esxi-5.html提供的办法不行,还是grep一下cpuinfo啥都没有,kvm-ok也说不支持(单机上试过ubuntu server自带kvm能跑)。或者至少指点一下该怎么办?麻烦了
相似的,我对VMware Workstation 8做了如下改动
1. vhv.allow改为vhv.allow = “TRUE”
2. Edit virtual machine settings 里把 Guest Operating System 的类型换成 VMware ESxi 里面的 VMware ESxi 5
结果还是kvm不可运行,cpuinfo一下没有任何flag
# kvm-ok
INFO: Your CPU does not support KVM extensions
KVM acceleration can NOT be used
—————–
这怎么办?
刚找了一个在VMware Workstation里安装红帽,红帽里跑KVM的教程,所以说把红帽换成ubuntu应该可行的,但是不行呢…
http://blog.srinfotec.com/?p=937
@松岩
VMware Workstation里安装KVM成功了没?我查了下机器,支持VT,也开了,用CPU-Z检查了下支持指令集VT-x,在VMware Workstation上也勾上了选项:编辑虚拟机设置-选项-CPU/MMU虚拟化-使用Intel VT-X/AMD-V进行指令集虚拟化,但是启动虚拟机后还是不成功。
请问如何在Xen的虚拟机中运行KVM, 谢谢
@xavier
xen 虚拟机不能运行 kvm.
请问 kvm我想装xp 作为guest 开16台 每台运行一些访问网站的小程序 请问这样对磁盘要求是不是要很高才可以
@bobo
嗯,最好要好一点的硬盘,并采用硬件 raid10.
请教vpsee:我在VMware ESXi中部署openstack双节点(kvm已配置好),遇到如下问题:在各节点上都可以ping通两个br100,但登陆控制节点实例ping不通计算节点的br100,各实例都可以连外网,各节点的实例间不能互相通信,请问该怎么解决?谢谢!
安装步骤操作后,虚拟机中已经可以加载kvm模块,但是在使用virt-manager中建立虚拟机,会出现CPU100%,屏幕全黑或有光标不动。
qemu与libvirt报错
warning : qemuDomainObjTaint:1128 :
Domain id=1 name=’XX’ uuid=a02e41a9-9f4d-d94f-43a6-995b1ca6d37d is tainted: high-privileges
ESXi 5.1上面得将“vhv.allow”改成“vhv.enable”才行,然后都不用修改虚拟机的配置就可以了。
对于桌面版的系统,估计还要跑一下modprobe kvm_intel加载一下kvm模块才能支持。
博主,我在ESXI5.5上开了一个虚拟机,centos 6.3,在上安装KVM,但按照您这个方法修改ESXI参数,重启了ESXI,还是发现不了SVM支持
在里面安装系统超级慢~,正常一个windows2003的系统15分中就装好,在esx的kvm里面,安装那要半天!!!