服务器组

服务器组提供了一种机制,用于指示服务器相对于其他服务器的本地性。它们允许您指示服务器是否应在同一主机上运行(亲和性)或不同主机上运行(反亲和性)。如果希望最小化网络延迟,则亲和性是有利的,而反亲和性可以提高容错性和负载分布。

注意

服务器组对于分离或分组工作负载很有用,但通常不应依赖它们来提供 HA(高可用性)。相反,请考虑使用可用区。与服务器组不同,可用区只能由管理员配置,但它们通常用于模拟故障域,尤其是在大型部署中。有关更多信息,请参阅 可用区

服务器组可以配置策略和规则。目前支持四种策略

亲和性

将属于服务器组的实例限制在同一主机上。

反亲和性

将属于服务器组的实例限制在不同的主机上。

软亲和性

尝试将属于服务器组的实例限制在同一主机上。如果无法在一个主机上调度所有实例,它们将在尽可能少的几个主机上一起调度。

注意

需要 API 微版本 2.15 或更高版本。

软反亲和性

尝试将属于服务器组的实例限制在不同的主机上。如果无法将所有实例调度到不同的主机上,它们将在尽可能多的独立主机上调度。

注意

需要 API 微版本 2.15 或更高版本。

目前支持一种规则

max_server_per_host

指示在使用 反亲和性 策略时,可以调度到任何给定主机的最大实例数。此规则与其它策略不兼容。

注意

需要 API 微版本 2.64 或更高版本。

用法

服务器组可以由最终用户配置和使用。例如

$ openstack --os-compute-api-version 2.64 server group create \
    --policy POLICY --rule RULE NAME

一旦创建了服务器组,您就可以在创建服务器时使用它。这是通过使用 --hint 选项来实现的。例如

$ openstack server create \
    --hint group=SERVER_GROUP_UUID ... NAME

创建后,服务器组无法修改。此外,服务器无法在服务器组之间移动。在两种情况下,这是因为这样做可能需要将服务器移动以满足服务器组策略。