nova boot baremetal,选择池中的特定机器来启动'启动

时间:2015-11-17 19:30:30

标签: openstack openstack-nova

我正在使用Ironic帮助我使用1U Dell服务器在数据中心环境中部署裸机。它运行得很好,我可以使用Ironic来管理机架中的几十台服务器,然后当我需要一个裸机实例(通过nova)时,我只使用与这些服务器相关的风格,我得到其中一个。有没有办法可以得到一个特定的?例如,我的服务器从顶部开始编号,从control0开始,control1一直到control39。所以,首先我创建所有裸机服务器,并对它们进行内省。然后我创建一个风味(如下所示,请原谅伪代码)并将每个裸机服务器与该配置文件关联。

openstack flavor create --id auto --ram 6144 --disk 40 --vcpus 4 control
openstack flavor set --property "cpu_arch"="x86_64" --property "capabilities:boot_option"="local" --property "capabilities:profile"="control" control

i = 0
for each baremetal server's uuid:
  ironic node-update server-uuid add name=control$i
  i = i + 1
  ironic node-update server-uuid add properties/capabilities="profile:control,boot_option:local"

当我遍历列表时,我知道服务器处于自上而下的物理顺序。我想要做的是让nova在特定的具有讽刺意味的裸机(如control3)上创建一个启动实例。我可以为每一个创建单独的口味,但我认为必须有一种方法来选择一个特定的硬件?或者是按照我指定的顺序选择它们的策略。

我是讽刺的新手。我已经在这个主题上做了很多谷歌搜索,但还没找到任何东西。以下是我开始新星的方式:

nova boot --flavor control --image rhel-server-7.1-x86_64-dvd.iso --nic 'net-id=723e7b11-3e61-481a-827e-e58b369dd28f' mybootinstance1

哪个工作正常。我想要做的是使用一个使用flavor控件的nova启动行,以及我可以指定的名称(control0)或任何其他属性,以使该机器唯一。类似的东西:

nova boot --flavor control --ironic-instance-name control0 --image rhel-server-7.1-x86_64-dvd.iso --nic 'net-id=723e7b11-3e61-481a-827e-e58b369dd28f' mybootinstance1

这实际上是新星池选择过程的简化。我不想使用游泳池,而是使用特定的硬件。

如果这不可能,使用40种口味创建个人游泳池是否有很大的缺点?

2 个答案:

答案 0 :(得分:1)

我认为你可以在nova启动中使用--hint来选择池中的特定机器。 前提条件:编辑/etc/nova/nova.conf,添加' JsonFilter'在scheduler_default_filters中并重新启动nova-scheduler。然后使用nova boot命令:



nova boot --flavor <flavor> --image <image_id> --nic net-id=<net_id> --hint reservation=<reservation_id> --hint query='["=","$hypervisor_hostname", "<node_uuid>"]' <instance_name>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

我对这个主题并不熟悉,但我想分享如何通过可用区域将实例启动到特定主机

在我的devstack(主)开发环境中,过程是:

$ nova availability-zone-list
+---------------------+----------------------------------------+
| Name                | Status                                 |
+---------------------+----------------------------------------+
| internal            | available                              |
| |- fcwszq           |                                        |
| | |- nova-conductor | enabled :-) 2015-11-23T06:31:46.000000 |
| | |- nova-cert      | enabled :-) 2015-11-23T06:31:41.000000 |
| | |- nova-scheduler | enabled :-) 2015-11-23T06:31:43.000000 |
| | |- nova-network   | enabled :-) 2015-11-23T06:31:44.000000 |
| nova                | available                              |
| |- fcwszq           |                                        |
| | |- nova-compute   | enabled :-) 2015-11-23T06:31:41.000000 |
+---------------------+----------------------------------------+

请注意,我的环境只获取一个主机名为fcwszq的计算节点,但仍可指定为:

nova boot --availability-zone nova:fcwszq --flavor 1 --image c38f0c7e-8ee0-4b0f-8a56-022040b4696f test02

如果我指定一个不存在的节点,例如nova:不存在,则无法正确创建实例(状态为ERROR)。

希望这可以帮到你。

另一种方法是使用主机聚合和flavor元数据在组中的随机服务器上引导实例,参考:http://docs.openstack.org/liberty/config-reference/content/section_compute-scheduler.html#d6e21786