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

流程

  1. 查找 stackrc undercloud 凭据文件:

    $ source ~/stackrc
  2. 为您要缩减的角色减少 overcloud-baremetal-deploy.yaml 文件中的 count 参数。
  3. 如果角色的 instances 属性中没有定义您要从堆栈中删除的每个节点的 主机名和 名称
  4. 将属性 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,以将节点返回到堆栈。

  5. 从 overcloud 中删除节点:

    (undercloud)$ openstack overcloud node delete \
    --stack <stack> \
    --baremetal-deployment /home/stack/templates/overcloud-baremetal-deploy.yaml
    • & lt;stack> 替换为置备裸机节点的堆栈的名称。如果未指定,则默认为 overcloud

      注意

      不要将您要从堆栈中删除的节点作为命令参数包括在 openstack overcloud node delete 命令中。

  6. 置备 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
  7. 使用其他环境文件,将置备命令生成的 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 \
      ...
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.