集群
概览
集群:一组物理机(计算节点)的逻辑集合。在数据中心中,一个集群一般对应了一个机架。
规划集群时,需注意:
- 集群内所有物理机须拥有相同的操作系统。
- 集群内所有物理机须拥有相同的网络配置。
- 集群内所有物理机须能够访问相同的主存储。
- 集群需加载主存储、二层网络后,才可提供云主机服务。
- 集群的规模,也就是每个集群中可以包含物理机的最大数量,没有限制。
以下对集群与各个资源之间的关系进行说明。
集群 | 区域
支持多集群操作。可在一个区域内创建多个集群,新增的物理机可以按需添加到不同的集群之中。
集群 | 主存储和二层网络
集群中可以加载或卸载主存储和二层网络。它们之间的结构关系如图 1所示:图 1. 集群、主存储、二层网络的关系


Note:
主存储和二层网络加载到集群时需注意:
- 集群 | 主存储
- 一个主存储可以加载到多个集群。
- 一个集群可以加载多个主存储。目前支持的同类型主存储场景如下:
- 一个集群可以加载一个或多个本地主存储。
- 一个集群可以加载一个或多个NFS主存储。
- 一个集群可以加载一个或多个Shared Block主存储。
- 一个集群可以加载一个Shared Mount Point主存储。
- 一个集群只能加载一个Ceph主存储。
- 一个集群只能加载一个Vhost主存储。
- 一个集群只能加载一个ZBS(CBD协议)主存储。
- 一个集群只能加载一个AliyunNAS主存储,除此之外不能再加载新的存储。
- 一个集群只能加载一个AliyunEBS主存储,除此之外不能再加载新的存储。
目前支持的组合类型主存储场景如下:- 一个集群可以加载一个本地主存储和一个NFS主存储。
- 一个集群可以加载一个本地主存储和一个Shared Mount Point主存储。
- 一个集群可以加载多个本地主存储和多个Shared Block主存储。
- 一个集群可以加载一个Ceph主存储和最多三个本地存储。
- 一个集群可以加载一个Ceph主存储和一个Shared Block主存储。
- 一个集群可以加载一个Ceph主存储和多个Shared Block主存储。
- 一个集群可以加载一个Ceph主存储和多个NFS主存储。
- 一个集群可以加载一个Ceph和多个Shared Block和一个ZBS(CBD协议)主存储。Note: 麒麟V10 SP3 x86_64环境下,单个集群暂不支持同时加载Ceph(ZStone存储)和ZBS(CBD协议)主存储。
- 一个集群可以加载多个NFS主存储和多个Shared Block主存储。
- 一个集群可以加载一个ZBS(CBD协议)主存储和多个Shared Block主存储。
- 一个集群可以加载一个ZBS(CBD协议)主存储和多个Local Storage主存储。
- 一个集群可以加载一个ZBS(CBD协议)主存储和一个Ceph主存储。
- 一个集群可以加载一个Vhost主存储和多个Shared Block主存储。
- 一个集群可以加载一个Vhost主存储和一个Ceph主存储。
主存储与集群的依赖关系如表 1所示:主存储 集群 Local Storage 支持加载一个或多个本地存储 NFS 支持加载一个或多个NFS Shared Block 支持加载一个或多个Shared Block Shared Mount Point 支持加载一个Shared Mount Point Ceph 是加载到集群的Ceph,有且仅有一个 Vhost 支持加载一个Vhost ZBS(CBD协议) 支持加载一个ZBS(CBD协议) AliyunNAS 是加载到集群的AliyunNAS,有且仅有一个 AliyunEBS 是加载到集群的AliyunEBS,有且仅有一个 Local Storage + NFS 支持加载1个Local Storage + 1个NFS Local Storage + SMP 支持加载1个Local Storage + 1个Shared Mount Point Local Storage + Shared Block 支持加载多个Local Storage + 多个Shared Block Ceph + LocalStorage 支持加载1个Ceph + 最多3个LocalStorage Ceph + Shared Block - 支持加载1个Ceph + 1个Shared Block
- 支持加载1个Ceph + 多个Shared Block
Ceph + Shared Block + ZBS(CBD协议) 支持加载1个Ceph + 多个Shared Block + 1个ZBS(CBD协议) Note: 麒麟V10 SP3 x86_64环境下,单个集群暂不支持同时加载Ceph(ZStone存储)和ZBS(CBD协议)主存储。Ceph + NFS 支持加载1个Ceph + 多个NFS NFS + Shared Block 支持加载多个NFS + 多个Shared Block ZBS(CBD协议) + Shared Block 支持加载1个ZBS(CBD协议) + 多个Shared Block ZBS(CBD协议) + Local Storage 支持加载1个ZBS(CBD协议) + 多个Local Storage ZBS(CBD协议) + Ceph 支持加载1个ZBS(CBD协议) + 1个Ceph Vhost + Shared Block 支持加载1个Vhost + 多个Shared Block Vhost + Ceph 支持加载1个Vhost + 1个Ceph - 集群加载多个本地存储时,务必在添加物理机以及添加主存储之前,提前在物理机对应URL上做好分区,确保每个本地存储部署在独占的逻辑卷或物理磁盘上。
- 主存储可以被所在集群中的所有物理机访问。
- 如果数据中心的网络拓扑发生改变导致主存储不能被集群中的物理机继续访问,主存储可以从集群卸载。
- 集群 | 二层网络
- 一个集群可以加载一个或多个二层网络;一个二层网络可以加载到多个集群。
- 集群可以加载VXLAN Pool,VXLAN Pool下不同的VNI可用于创建不同的VxlanNetwork。
- 一个网卡只能创建一个NoVlanNetwork。
- 对于VlanNetwork,不同VLAN ID代表不同的二层网络。
- 如果数据中心的网络拓扑发生改变导致集群中的物理机不再在二层网络所代表的物理二层广播域中,二层网络也可以从集群卸载。
集群 | 镜像服务器
集群与镜像服务器没有直接依赖关系,一个镜像服务器可以为多个集群提供服务。
集群中所加载的主存储和镜像服务器具有相关性,如表 2所示:
| PS\BS | ImageStore | Ceph |
| Local Storage | ○ | × |
| NFS | ○ | × |
| Shared Mount Point | ○ | × |
| Ceph | ○ | ○ |
| Shared Block | ○ | × |
| Vhost | ○ | × |
| ZBS(CBD协议) | ○ | × |
- 当主存储为LocalStorage、NFS、Shared Mount Point类型时,镜像服务器的默认类型为ImageStore。
- 当主存储为NFS或Shared Mount Point类型时,可将相应共享目录手动加载到相应镜像服务器的本地目录上,从而使主存储和镜像服务器均能使用网络共享存储方式。
- 当主存储为Ceph类型时,镜像服务器可以使用同一个Ceph集群作为镜像服务器,也可以使用ImageStore类型的镜像服务器。
- 当主存储为Shared Block类型时,镜像服务器的默认类型为ImageStore。
- 当主存储为AliyunNAS类型时,镜像服务器的默认ImageStore。
- 当主存储为AliyunEBS类型时,镜像服务器的默认类型为AliyunEBS。
清单
属性
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| uuid | 请参见资源属性 | 0.6 | ||
| name | 请参见资源属性 | 0.6 | ||
| description | 请参见资源属性 | 是 | 0.6 | |
| hypervisorType | 请参见 cluster hypervisor type |
|
0.6 | |
| state | 请参见资源属性 |
|
0.6 | |
| zoneUuid | 包含集群的区域uuid。 请参见 zone。 | 0.6 | ||
| createDate | 请参见资源属性 | 0.6 | ||
| lastOpDate | 请参见资源属性 | 0.6 | ||
| type | 保留域 | 0.6 | ||
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag) | 是 | 0.6 | |
| systemTags | 系统标签, 请参见 创建系统标签(CreateSystemTag) | 是 | 0.6 |
示例
{
"inventories":
{
"createDate": "Oct 30, 2017 1:50:00 PM",
"description": "",
"hypervisorType": "KVM",
"lastOpDate": "Oct 30, 2017 1:50:00 PM",
"name": "Cluster-1",
"state": "Enabled",
"type": "zstack",
"uuid": "5c3699713b1c43219de14df7545f24d0",
"zoneUuid": "e59b71e99d8a4ea1952b578388b8cd1d"
}
}
虚拟机管理程序类型(Hypervisor Type)
虚拟机管理程序类型指明了哪种虚拟机管理程序(操作系统, operating system)被安装在集群中的物理主机上。
可用状态(State)
集群有两种可用状态: 启用(Enabled)和禁用(Disabled),类似于 zone。 当改变集群的可用状态时,操作会被迭代到集群中的所有物理主机;例如,禁用一个集群也会禁用集群中的所有物理主机。
操作(Operations)
创建一个集群(CreateCluster)
管理员可以使用CreateCluster命令来创建一个集群。例如:
CreateCluster name=cluster1 hypervisorType=KVM zoneUuid=1b830f5bd1cb469b821b4b77babfdd6f参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| zoneUuid | 父区域的uuid | 0.6 | ||
| name | 资源名字, 请参见 资源属性 | 0.6 | ||
| resourceUuid | 资源uuid, 请参见 资源属性 | 是 | 0.6 | |
| description | 资源描述description,请参见 资源属性 | 是 | 0.6 | |
| hypervisorType | 请参见 cluster hypervisor type |
|
4.0.0 | |
| type | 保留域,请不要使用 | 是 | 0.6 | |
| architecture |
|
4.0.0 | ||
| tagUuids | 标签UUID列表 | 4.0.0 | ||
| userTags | 用户标签, 请参见 创建用户标签(CreateUserTag); 资源类型是 ClusterVO | 是 | 0.6 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag); 资源类型是 ClusterVO | 是 | 0.6 | |
| timeout | 是 |
删除一个集群(DeleteCluster)
管理员可以使用DeleteCluster命令来删除一个集群。例如:
DeleteCluster uuid=c1bd173d5cd84f0e9e7c47195ae27ec6参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| uuid | 集群的uuid | 0.6 | ||
| deleteMode | 请参见 删除资源(Delete Resources) | 是 |
|
0.6 |
| userTags | 用户标签, 请参见 创建用户标签(CreateUserTag); 资源类型是 ClusterVO | 是 | 0.6 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag); 资源类型是 ClusterVO | 是 | 0.6 | |
| timeout | 是 |
查询集群(QueryCluster)
管理员可以使用QueryCluster命令来查询集群。例如:
QueryCluster hypervisorType=KVMQueryCluster primaryStorage.availableCapacity>=100000000原生域查询(Primitive Fields of Query)
嵌套和扩展查询(Nested And Expanded Fields of Query)
| 域(Field) | 清单(Inventory) | 描述 | 起始支持版本 |
|---|---|---|---|
| zone | 请参见 zone inventory | 父区域(parent zone) | 0.6 |
| host | 请参见 host inventory | 属于这个集群的物理主机 | 0.6 |
| vmInstance | 请参见 vm inventory | 属于这个集群的云主机 | 0.6 |
| l2Network | 请参见 L2 network inventory | 这个集群挂载的L2网络 | 0.6 |
| l2VlanNetwork | 请参见l2VlanNetwork inventory | 这个集群挂载的使用VLAN创建二层广播域的L2网络 | 0.6 |
| primaryStorage | 请参见 primary storage inventory | 这个集群挂载的主存储 | 0.6 |
更新集群(UpdateCluster)
管理员可以使用UpdateCluster命令来更新集群。例如:
UpdateCluster uuid=26aad17353dd4de0ac7bc5540d76da23 name=test参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| uuid | 集群的uuid | 0.6 | ||
| name | 资源名字, 请参见 资源属性 | 是 | 0.6 | |
| description | 资源描述description,请参见 资源属性 | 是 | 0.6 | |
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag);资源类型是 ClusterVO | 是 | 0.6 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag); 资源类型是 ClusterVO | 是 | 0.6 | |
| timeout | 是 |
改变一个集群的可用状态(ChangeClusterState)
管理员可以使用ChangeClusterState改变一个集群的可用状态。例如:
ChangeClusterState uuid=26aad17353dd4de0ac7bc5540d76da23 stateEvent=enable参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| uuid | 集群的uuid | 0.6 | ||
| stateEvent | 可用状态触发事件 | 是 |
|
0.6 |
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag);资源类型是 ClusterVO | 是 | 0.6 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag); 资源类型是 ClusterVO | 是 | 0.6 | |
| timeout | 是 |
升级集群内物理主机的操作系统(UpdateClusterOS)
管理员可以使用UpdateClusterOS命令来升级集群内物理主机的操作系统。例如:
UpdateClusterOS uuid=fb498a6086ea43449f33d5bbb9daa73e参数(Parameters)
| 名字 | 描述 | 可选的 | 可选的参数值 | 起始支持版本 |
|---|---|---|---|---|
| uuid | 集群的uuid | 0.6 | ||
| excludePackages | 不升级的包列表 | 是 | 3.7.0 | |
| updatePackages | 要升级的包列表 | 是 | 3.7.0 | |
| releaseVersion | 升级所用源的版本 | 是 | 3.7.0 | |
| resourceUuid | 是 | 3.7.0 | ||
| force | 强制 | 是 |
|
5.2.0 |
| tagUuids | 标签UUID列表 | 是 | 3.7.0 | |
| systemTags | 系统标签,请参见 创建系统标签(CreateSystemTag); 资源类型是 ClusterVO | 是 | 0.6 | |
| userTags | 用户标签,请参见 创建用户标签(CreateUserTag);资源类型是 ClusterVO | 是 | 0.6 | |
| timeout | 是 |
标签(Tags)
用户标签
管理员可以使用
resourceType=ClusterVO在集群上创建用户标签。
例如:CreateUserTag resourceType=ClusterVO resourceUuid=80a979b9e0234564a22a4cca8c1dff43 tag=secureCluster系统标签(System Tags)
保留容量(Reserved Capacity)
| 标签(Tag) | 描述 | 示例 | 起始支持版本 |
|---|---|---|---|
host::reservedMemory::{capacity} |
请参见物理主机容量保留(Host Capacity Reservation) | host::reservedMemory::1G |
0.6 |
