Oct 162015
 

OpenStack在企业的应用里,企业提出的各种需求里,很大部分都会和调度有关,那么这些需求其实OpenStack是可以满足的,只是OpenStack的前端UI,没有提供这样的功能,如果需要,只能自己二次开发。

下面的内容,其实我是看OpenStack的官方文档,做实验验证过的。

参考孔兄blog http://blog.csdn.net/lynn_kong/article/details/9354455

http://docs.openstack.org/kilo/config-reference/content/section_compute-scheduler.html

http://blog.csdn.net/xjtuse_mal/article/details/9025861

指定机器创建

这是经常问的问题,希望指定机器来创建虚拟机。在命令行下

nova boot \
--image  4bca2cad-3d3e-4526-983c-0d4b0d1110e0 \
--flavor 1\
--security-groups default \
--availability_zone xx:devstack13 \
--nic net-id=24185db9-e831-40d4-b61a-d2bac198a208 \
vm01

xx:后面的是主机名字。xx你就照写就可以。具体含义看代码

nic net-id 就是neutron的网络的的id号

参考文档

http://blog.csdn.net/xjtuse_mal/article/details/7901744

虚拟机在相同机器

需求其实很简单,出于性能的考虑,一个租户下,创建的虚拟机,尽可能在相同的物理机器上。那么这个时候,我们就需要

在控制节点的nova配置文件,增加调度

scheduler_default_filters = SameHostFilter

创建虚拟机的时候,你可以希望创建的虚拟机和已有的虚拟机是在同一台物理机器上。

nova boot --image cedef40a-ed67-4d10-800e-17455edce175 \
--flavor 1 \
--security-groups default \
--hint same_host=a0cf03a5-d921-4877-bb5c-86d26cf818e1 \
--nic net-id=24185db9-e831-40d4-b61a-d2bac198a208 \
 vm01

same_host后面是事先创建好的虚拟机的id。

vm01,是新创建虚拟机的名字。

如果你希望批量创建的虚拟机,都是在一台物理机器上,那么你就需要变通一下,才能实现。

虚拟机在不同的机器

这个需求就刚好相反,希望在创建的虚拟机在不同的机器上,这样可以实现冗余

在控制节点的nova配置文件,增加调度

scheduler_default_filters = DifferentHostFilter

那么你创建第二个虚拟机的时候

nova boot --image cedef40a-ed67-4d10-800e-17455edce175 \
--flavor 1 \
--security-groups default \
--hint different_host=a0cf03a5-d921-4877-bb5c-86d26cf818e1 \
--nic net-id=24185db9-e831-40d4-b61a-d2bac198a208 \
 vm01

different_host 就是第一个虚拟机的id号

  4 Responses to “OpenStack虚拟机创建调度”

  1. 呃,问个比较弱的问题,陈老师如果有空就指点一下:虚拟机创建时,能否指定vm归属于某一个user?避免一个tenant中的多个user都能看到一个vm?也就是做到user层的VM隔离?谢谢!

    • 这个问题刚刚有人在邮件列表里问,应该是没戏,至少目前来说。你只能是多个tenant来实现。

  2. 我们使用ubuntu14.04 kily操作系统安装openstack,在创建实例后,虚拟机提示找不到硬盘。

  3. 陈老师好,请问个小问题,为什么我用DevStack装完后,在dashboard上创建的instance都是在controller节点上呢,这个有没有哪个配置文件有这个选项,能把默认改在compute节点?多谢!

 Leave a Reply

(required)

(required)