19.3. 缩减裸机节点
要缩减 overcloud 中的裸机节点数量,请标记您要从节点定义文件中的堆栈中删除的节点,重新部署 overcloud,然后从 overcloud 中删除裸机节点。
先决条件
- 成功安装 undercloud。如需更多信息,请参阅在 undercloud 上安装 director。
- 成功部署 overcloud。如需更多信息,请参阅 使用预置备节点配置基本 overcloud。
如果要替换 Object Storage 节点,请从您要删除的节点中复制数据到新的替换节点。等待新节点上完成复制通过。在
/var/log/swift/swift.log
文件中检查复制传递进度。当传递完成后,Object Storage 服务(swift)会将条目添加到日志中,类似以下示例:Mar 29 08:49:05 localhost object-server: Object replication complete. Mar 29 08:49:11 localhost container-server: Replication run OVER Mar 29 08:49:13 localhost account-server: Replication run OVER
流程
查找
stackrc
undercloud 凭据文件:$ source ~/stackrc
-
为您要缩减的角色减少
overcloud-baremetal-deploy.yaml
文件中的count
参数。 -
如果角色的
instances
属性中没有定义您要从堆栈中删除的每个节点的主机名和
名称
。 将属性
provisioned: false
添加到您要删除的节点。例如,要从堆栈中删除节点overcloud-objectstorage-1
,请在overcloud-baremetal-deploy.yaml
文件中包含以下代码片段:- name: ObjectStorage count: 3 instances: - hostname: overcloud-objectstorage-0 name: node00 - hostname: overcloud-objectstorage-1 name: node01 # Removed from cluster due to disk failure provisioned: false - hostname: overcloud-objectstorage-2 name: node02 - hostname: overcloud-objectstorage-3 name: node03
重新部署 overcloud 后,堆栈中不再存在使用
provisioned: false
属性定义的节点。但是,这些节点仍然以置备状态运行。注意若要临时从堆栈中删除节点,请使用
provisioned: false
属性部署 overcloud,然后使用provisioned: true
属性重新部署 overcloud,以将节点返回到堆栈。从 overcloud 中删除节点:
(undercloud)$ openstack overcloud node delete \ --stack <stack> \ --baremetal-deployment /home/stack/templates/overcloud-baremetal-deploy.yaml
将
&
lt;stack> 替换为置备裸机节点的堆栈的名称。如果未指定,则默认为overcloud
。注意不要将您要从堆栈中删除的节点作为命令参数包括在
openstack overcloud node delete
命令中。
置备 overcloud 节点来生成更新的 heat 环境文件,以包含在部署命令中:
(undercloud)$ openstack overcloud node provision \ --stack <stack> \ --output <deployment_file> \ /home/stack/templates/overcloud-baremetal-deploy.yaml
-
将
<deployment_file>
替换为用于部署命令生成的 heat 环境文件的名称,如/home/stack/templates/overcloud-baremetal-deployed.yaml
。
-
将
使用其他环境文件,将置备命令生成的
overcloud-baremetal-deployed.yaml
文件添加到堆栈中,并部署 overcloud:(undercloud)$ openstack overcloud deploy \ ... -e /usr/share/openstack-tripleo-heat-templates/environments/deployed-server-environment.yaml \ -e /home/stack/templates/overcloud-baremetal-deployed.yaml \ --deployed-server \ --disable-validations \ ...