16.5. 替换 Object Storage 节点

参考本节中的说明,了解如何在不影响集群完整性的情况下替换 Object Storage 节点。此示例涉及您要替换 overcloud-objectstorage-1 节点的三节点 Object Storage 集群。此操作过程的目标是添加一个节点,然后删除 overcloud-objectstorage-1 节点。新节点替换 overcloud-objectstorage-1 节点。

步骤

  1. 通过 ObjectStorageCount 参数增加 Object Storage 数量。此参数通常位于 node-info.yaml 中,这是包含节点数的环境文件:

    parameter_defaults:
      ObjectStorageCount: 4

    ObjectStorageCount 参数定义环境中 Object Storage 节点的数量。在本例中,将 Object Storage 节点的数量从 3 扩展到 4

  2. 使用更新的 ObjectStorageCount 参数,运行部署命令:

    $ source ~/stackrc
    (undercloud) $ openstack overcloud deploy --templates -e node-info.yaml ENVIRONMENT_FILES
  3. 部署命令完成后,overcloud 将包含新增的 Object Storage 节点。
  4. 将数据复制到新节点。在删除节点(本例中为 overcloud-objectstorage-1)前,先等待新节点上完成复制传递。在 /var/log/swift/swift.log 文件中检查复制传递进度。当传递完成时,Object Storage 服务应该会记录类似于以下示例的日志条目:

    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
  5. 若要从环中删除旧节点,可减小 ObjectStorageCount 参数来省略旧节点。在本例中,将 ObjectStorageCount 参数减小到 3:

    parameter_defaults:
      ObjectStorageCount: 3
  6. 创建一个新环境文件,命名为 remove-object-node.yaml。此文件将确认并移除指定的 Object Storage 节点。以下内容指定了 overcloud-objectstorage-1 的移除:

    parameter_defaults:
      ObjectStorageRemovalPolicies:
        [{'resource_list': ['1']}]
  7. 在部署命令中包含 node-info.yamlremove-object-node.yaml 文件:

    (undercloud) $ openstack overcloud deploy --templates -e node-info.yaml ENVIRONMENT_FILES -e remove-object-node.yaml

director 从 overcloud 中删除 Object Storage 节点,并更新 overcloud 中的其他节点来使删除生效。

重要

请包含初始 overcloud 创建中的所有环境文件和选项。这包括非 Compute 节点的相同缩放参数。