最近在cloudstack邮件组看到有人提问虚拟机创建失败,日志信息大致如下:
> FirstFitRoutingAllocator) Not considering hosts: [Host[-1-Routing]] to
> > deploy template: Tmpl[202-ISO-202-2-d3beb14a-c693-3825-b20c-f41493d06114
> as
> > they are not HVM enabled
刚好最近在做cloudstack社区培训时也遇到了这个问题,所以就在这说明一下原因和解决办法。
日志明确说明主机没有启用HVM完全虚拟化,什么情况下可能会遇到这个问题呢?为什么要开启HVM呢?为什么系统虚拟机可以正常创建,从官网同步的centos5.6模板可以创建虚拟机,自己上传的模板就报这个错呢?
什么情况下可能会遇到这个问题呢?
现在的服务器一般都支持虚拟化技术,并且bios是默认启用的,如果遇到这个问题,最好还是检查一下bios是否启用了虚拟化技术;还有一种情况就是二级虚拟化环境,例如这次在cloudstack培训时的实验环境,使用的就是二级虚拟化。所谓二级虚拟化,只有vmware esx支持,在服务器上安装vmware esx,然后再在esx上安装多台xenserver hypervisor 来模拟多台主机,一般测试或者实验环境可以这么部署。默认在esx上安装xenserver 是没有启用二级虚拟化的,具体开启二级虚拟化可以在网上查资料。另外利用二级虚拟化方式部署cloudstack需要注意esx的网卡要启用混杂模式。
为什么要开启HVM呢?
HVM 即完全虚拟化,xenserver本身不要求硬件一定支持虚拟化,当硬件不支持虚拟化时,使用半虚拟化方式创建虚拟机,具体半虚拟化和完全虚拟化的区别,网上查资料。
为什么系统虚拟机可以正常创建,从官网同步的centos5.6模板也可以创建虚拟机,自己上传的模板就报这个错呢?
cloudstack有一个机制,默认强制用户模板、用户iso部署虚拟机要求硬件支持HVM,而系统虚拟机和后台自动从官网下载的centos5.6模板不要求硬件启用HVM,这也就是这个问题的原因。
那么硬件不支持虚拟化,就不能部署cloudstack测试环境或者实验环境了吗,no
用户正常上传模板或者iso,修改数据库,使用户模板不要求主机启用HVM
use
update vm_template set hvm=0 where name='xxx';
把xxx替换成用户的模板名称。这样使用这个模板就可以正常创建虚拟机了。
hvm设置成0表示不要求主机启用HVM,设置成1表示要求主机启用HVM,系统虚拟机和后台上传的centos5.6模板的值都是0,所以它们可以正常创建虚拟机。
阅读(6411) | 评论(0) | 转发(0) |