文档目录

亲和组

概览

亲和组 (Affinity Group):一种针对IaaS资源的简单编排策略,可用于保障业务的高性能和高可用。

功能原理

目前,ZStack Cloud提供基于云主机的两种亲和组策略:
  • 反亲和组(非强制):将亲和组内的云主机尽量分配到不同物理机上,当没有更多物理机可分配时,回归普通分配策略。
  • 反亲和组(强制):将亲和组内的云主机严格分配到不同物理机上,当没有更多物理机可分配时,则分配失败。
图 1. 反亲和组 (非强制) 与反亲和组 (强制)


应用场景

以下介绍反亲和组(非强制)和反亲和组(强制)策略的应用场景。

  • 反亲和组(非强制)策略应用场景举例:希望Hadoop不同角色的节点尽量分散部署在不同的物理机上,提高系统整体性能。
    • 例如:用户部署Hadoop系统,对于namenode、datanode、jobtracker、tasktracker等不同角色,事先并不能预知总共有多少个节点,但显然部署到不同物理机上效率更高。采用反亲和组(非强制)策略,可使Hadoop集群尽量分散部署在不同物理机上,分散IO压力提高系统整体性能。
  • 反亲和组(强制)策略应用场景举例:承载主备数据库的两台云主机要求部署在不同的物理机上,保障业务高可用。
    • 例如:用户部署两台业务云主机分别承载主备MySQL数据库,并要求主备数据库不能同时宕机,因此两台云主机必须部署在不同物理机上。由于部署自动化,用户事先并不能预知哪些物理机上有资源,采用反亲和组(强制)策略,可选出两个不同的物理机分别运行这两台云主机,保障业务高可用。

清单

属性

名字 描述 可选的 可选的参数值 起始支持版本
uuid 请参见 资源属性 2.2
name 请参见 资源属性 2.2
version 亲和组分配算法的版本 2.2
type 亲和组类型。目前支持物理主机亲和,未来将增加网络亲和、路由器亲和、数据中心或机架亲和等多种类型。
  • host
2.2
policy 亲和组规则
  • antiSoft
2.2
createDate 请参见 资源属性 2.2
lastOpDate 请参见 资源属性 2.2
description 请参见 资源属性 2.2
appliance 亲和组使用者标识 2.2

示例

{
    "inventories": [
        {
            "appliance": "VROUTER",
            "createDate": "Mar 10, 2018 2:11:07 PM",
            "description": "affinity.group.for.virtual.router",
            "lastOpDate": "Mar 10, 2018 2:11:07 PM",
            "name": "affinity.group.for.virtual.router",
            "policy": "ANTISOFT",
            "type": "HOST",
            "usages": [],
            "uuid": "d271b2fe242911e88fe0fa0754e77200",
            "version": "1.0"
        }
    ],
    "success": true
}

操作(Operations)

创建亲和组(CreateAffinityGroup)

管理员可以使用CreateAffinityGroup创建亲和组。例如:
CreateAffinityGroup name=affinity-group-test policy=antiSoft

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
name 亲和组名称 2.2
description 亲和组的详细描述 2.2
policy 亲和组规则
  • antiSoft
0.6
type 亲和组类型。目前支持物理主机亲和,未来将增加网络亲和、路由器亲和、数据中心或机架亲和等多种类型。
  • host
2.2
resourceUuid 资源uuid 2.2
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.2
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.2
timeout

删除亲和组(DeleteAffinityGroup)

管理员可以使用DeleteAffinityGroup删除亲和组。例如:
DeleteAffinityGroup uuid=1b8fa10dfe5a4cad81c341787f764c7c

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 亲和组uuid 2.2
deleteMode 删除模式 2.2
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.2
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.2
timeout

查询亲和组(QueryAffinityGroup)

管理员可以使用QueryAffinityGroup查询亲和组。例如:
QueryAffinityGroup appliance=vrouter
QueryAffinityGroup usages.resourceUuid=aa9acd98a8fb4958bcaa6ecb3a712a16

原生域查询(Primitive Fields of Query)

请参见 affinitygroup inventory

嵌套和扩展域查询(Nested and Expanded Fields of Query)

域(Field) 清单(Inventory) 描述 起始支持版本
usages usages inventory 2.2

更新亲和组(UpdateAffinityGroup)

管理员可以使用UpdateAffinityGroup更新亲和组。例如:
UpdateAffinityGroup uuid=acfc6a1e958148ab8e47d91cb7b26e7a

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 亲和组uuid 2.2
name 亲和组名称 2.2
description 亲和组的详细描述 2.2
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.2
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.2
timeout

添加云主机到亲和组(AddVmToAffinityGroup)

管理员可以使用AddVmToAffinityGroup添加云主机到亲和组。例如:
AddVmToAffinityGroup affinityGroupUuid=acfc6a1e958148ab8e47d91cb7b26e7a \
uuid=9f3461b9021242268c51afe872662285

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
affinityGroupUuid 亲和组uuid 2.2
uuid 资源的uuid 2.2
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.2
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.2
timeout

从亲和组移除云主机(RemoveVmFromAffinityGroup)

管理员可以使用RemoveVmFromAffinityGroup从亲和组移除云主机。例如:
RemoveVmFromAffinityGroup affinityGroupUuid=acfc6a1e958148ab8e47d91cb7b26e7a \
uuid=9f3461b9021242268c51afe872662285

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
affinityGroupUuid 亲和组uuid 2.2
uuid 资源的uuid 2.2
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.2
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.2
timeout

改变亲和组的使用状态(ChangeAffinityGroupState)

管理员可以使用ChangeAffinityGroupState改变亲和组的使用状态。例如:
ChangeAffinityGroupState uuid=d8d6f572284611e8a675fa0754e77200 stateEvent=disable

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
uuid 资源的uuid 2.3
stateEvent
  • disable
  • enable
2.3
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 2.3
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 2.3
timeout 2.3

获取可绑定云主机的亲和组(GetCandidateAffinityGroupForAttachingVm)

管理员可以使用GetCandidateAffinityGroupForAttachingVm获取可绑定云主机的亲和组。例如:
GetCandidateAffinityGroupForAttachingVm vmUuid=2cbb6f64b4e03753b8fb63f497bb003a

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
vmUuid 云主机UUID 4.0.0
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 4.0.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 4.0.0
timeout 4.0.0

获取可绑定亲和组的云主机(GetCandidateVMForAttachingAffinityGroup)

管理员可以使用GetCandidateVMForAttachingAffinityGroup获取可绑定亲和组的云主机。例如:
GetCandidateVMForAttachingAffinityGroup affinityGroupUuid=2cbb6f64b4e03753b8fb63f497bb003a

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
affinityGroupUuid 亲和组uuid 4.0.0
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 4.0.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 4.0.0
timeout 4.0.0

创建云主机时获取可加入非亲和组(GetCandidateAffinityGroupForCreatingVm)

管理员可以使用GetCandidateAffinityGroupForCreatingVm在创建云主机时获取当前状态下可加入的非亲和组。例如:
GetCandidateAffinityGroupForCreatingVm zoneUuid=2cbb6f64b4e03753b8fb63f497bb003a

参数(Parameters)

名字 描述 可选的 可选的参数值 起始支持版本
zoneUuid 区域UUID 4.1.0
clusterUuid 集群UUID 4.1.0
hostUuid 物理机UUID 4.1.0
systemTags 系统标签,请参见 创建系统标签(CreateSystemTag) 4.1.0
userTags 用户标签,请参见 创建用户标签(CreateUserTag) 4.1.0
timeout 4.1.0

标签(Tags)

用户可以使用resourceType=AffinityGroupVO在亲和组上创建用户标签。 例如:
CreateUserTag tag=Test1 resourceUuid=d271b2fe242911e88fe0fa0754e77200 \
resourceType=AffinityGroupVO
CLI命令使用手册 | 5.4.12 | ZStack Cloud · ZCF | ZStack 资源中心