10.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
流程
-
以
stack
用户身份登录 undercloud 主机。 查找
stackrc
undercloud 凭证文件:$ source ~/stackrc
-
对于您要缩减的角色,减少
overcloud-baremetal-deploy.yaml
文件中的count
参数。 -
定义您要从堆栈中删除的每个节点的
主机名和
名称
(如果它们尚未在角色的instances
属性中定义)。 将 attribute
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 删除节点:
$ openstack overcloud node delete \ --stack <stack> \ --baremetal-deployment \ /home/stack/templates/overcloud-baremetal-deploy.yaml
将
&
lt;stack> 替换为置备裸机节点的堆栈名称。如果未指定,则默认为overcloud
。注意不要将您要从堆栈中删除的节点作为命令参数包括在
openstack overcloud node delete
命令中。
删除 ironic 节点:
$ openstack baremetal node delete <IRONIC_NODE_UUID>
将
IRONIC_NODE_UUID
替换为节点的 UUID。置备 overcloud 节点以生成更新的 heat 环境文件,以包括在部署命令中:
$ 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
。
-
将
将 provisioning 命令生成的
overcloud-baremetal-deployed.yaml
文件添加到与其他环境文件的堆栈中,并部署 overcloud:$ openstack overcloud deploy \ ... -e /usr/share/openstack-tripleo-heat-templates/environments \ -e /home/stack/templates/overcloud-baremetal-deployed.yaml \ --deployed-server \ --disable-validations \ ...