16.5. 替换 Object Storage 节点
参考本节中的说明,了解如何在保持集群完整的同时替换 Object Storage 节点。此示例涉及必须替换 overcloud-objectstorage-1
节点的三节点 Object Storage 集群。此操作过程的目标是添加一个节点,然后删除 overcloud-objectstorage-1
(实际上是替换掉它)。
步骤
通过
ObjectStorageCount
参数增加 Object Storage 数量。此参数通常位于node-info.yaml
中,这是包含节点数的环境文件:parameter_defaults: ObjectStorageCount: 4
ObjectStorageCount
参数定义环境中 Object Storage 节点的数量。在本例中,我们从 3 个节点扩展到 4 个。使用更新的
ObjectStorageCount
参数,运行部署命令:$ source ~/stackrc (undercloud) $ openstack overcloud deploy --templates -e node-info.yaml ENVIRONMENT_FILES
- 部署命令完成后,overcloud 将包含新增的 Object Storage 节点。
将数据复制到新节点。在删除节点(本例中为
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
若要从环中删除旧节点,可减小
ObjectStorageCount
参数来省略旧节点。在本例中,将它减小到 3:parameter_defaults: ObjectStorageCount: 3
创建一个新环境文件,命名为
remove-object-node.yaml
。此文件将确认并移除指定的 Object Storage 节点。以下内容指定了overcloud-objectstorage-1
的移除:parameter_defaults: ObjectStorageRemovalPolicies: [{'resource_list': ['1']}]
在部署命令中包含
node-info.yaml
和remove-object-node.yaml
文件:(undercloud) $ openstack overcloud deploy --templates -e node-info.yaml ENVIRONMENT_FILES -e remove-object-node.yaml
director 从 overcloud 中删除对象存储节点,并更新 overcloud 中的其他节点来使删除生效。
请确保包括初始创建 overcloud 以来的所有环境文件和选项。这包括非 Compute 节点的相同缩放参数。