22.2. 使用 director 部署的 Ceph Storage 升级 Controller 节点
如果您的部署使用了使用 director 部署的 Red Hat Ceph Storage 集群,则必须完成此流程。
要将所有 Controller 节点升级到 OpenStack Platform 16.1,您必须从 bootstrap Controller 节点开始升级每个 Controller 节点。
在 bootstrap Controller 节点升级过程中,会创建一个新的 Pacemaker 集群,并在节点上启动新的 Red Hat OpenStack 16.1 容器,而剩余的 Controller 节点仍然在 Red Hat OpenStack 13 上运行。
升级 bootstrap 节点后,您必须使用 Pacemaker 服务升级每个额外节点,并确保每个节点都加入使用 bootstrap 节点启动的新 Pacemaker 集群。有关更多信息,请参阅 Overcloud 节点升级工作流。
在本例中,控制器节点使用默认的 overcloud-controller-NODEID 约定来命名。这包括以下三个控制器节点:
-
overcloud-controller-0 -
overcloud-controller-1 -
overcloud-controller-2
在适用的情况下,将这些值替换为您自己的节点名称。
如果您不使用 overcloud 默认堆栈名称,请使用 --stack STACK NAME 选项设置堆栈名称,将 STACK NAME 替换为堆栈的名称。
流程
Source
stackrc文件:source ~/stackrc
$ source ~/stackrcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过在 undercloud 节点上运行以下命令来识别 bootstrap Controller 节点:
tripleo-ansible-inventory --list --stack overcloud |jq .overcloud_Controller.hosts[0]
$ tripleo-ansible-inventory --list --stack overcloud |jq .overcloud_Controller.hosts[0]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 升级 bootstrap Controller 节点:
使用
ceph_systemd标签运行外部升级命令:openstack overcloud external-upgrade run --stack <stack_name> --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-0
$ openstack overcloud external-upgrade run --stack <stack_name> --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<stack_name> 替换为您的堆栈的名称。这个命令执行以下功能:
- 更改控制 Ceph Storage 容器的 systemd 单元以使用 Podman 管理。
-
使用
ceph_ansible_limit变量将操作限制为所选 Controller 节点。
此步骤是为
leapp升级准备 Ceph Storage 服务的主要措施。使用
system_upgrade标签运行 upgrade 命令:openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-0
$ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令执行以下操作:
- 对操作系统执行 Leapp 升级。
作为 Leapp 升级的一部分执行重启。
重要下一个命令会在 control plane 上造成中断。在接下来的几个步骤中,您无法对 overcloud 执行任何标准操作。
使用
system_upgrade_transfer_data标签运行外部升级命令:openstack overcloud external-upgrade run --stack STACK NAME --tags system_upgrade_transfer_data
$ openstack overcloud external-upgrade run --stack STACK NAME --tags system_upgrade_transfer_dataCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令将现有节点中的数据库的最新版本复制到 bootstrap 节点。
使用
nova_hybrid_state标签运行 upgrade 命令,仅运行upgrade_steps_playbook.yamlplaybook:openstack overcloud upgrade run --stack STACK NAME --playbook upgrade_steps_playbook.yaml --tags nova_hybrid_state --limit all
$ openstack overcloud upgrade run --stack STACK NAME --playbook upgrade_steps_playbook.yaml --tags nova_hybrid_state --limit allCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令会在 Compute 节点上启动临时 16.1 容器,以便在稍后的步骤升级 Compute 节点时协助工作负载迁移。
运行没有标签的 upgrade 命令:
openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0
$ openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令执行 Red Hat OpenStack Platform 升级。
重要当此命令完成后,control plane 会变为 active。您可以对 overcloud 执行标准操作。
验证升级后,新的 Pacemaker 集群是否已启动,并且 control plane 服务(如 galera、rabbit、haproxy 和 redis)是否正在运行:
sudo pcs status
$ sudo pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow
升级下一个 Controller 节点:
验证旧集群是否不再运行:
sudo pcs status
$ sudo pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 当集群没有运行时,会显示类似如下的错误:
Error: cluster is not currently running on this node
Error: cluster is not currently running on this nodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
ceph_systemd标签运行外部升级命令:openstack overcloud external-upgrade run --stack STACK NAME --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-1
$ openstack overcloud external-upgrade run --stack STACK NAME --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令执行以下功能:
- 更改控制 Ceph Storage 容器的 systemd 单元以使用 Podman 管理。
-
使用
ceph_ansible_limit变量将操作限制为所选 Controller 节点。
此步骤是为
leapp升级准备 Ceph Storage 服务的主要措施。在下一个 Controller 节点上运行带有
system_upgrade标签的 upgrade 命令:openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-1
$ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令执行以下操作:
- 对操作系统执行 Leapp 升级。
- 作为 Leapp 升级的一部分执行重启。
运行没有标签的 upgrade 命令:
openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0,overcloud-controller-1
$ openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0,overcloud-controller-1Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令执行 Red Hat OpenStack Platform 升级。除了此节点外,在
--limit选项中包含之前升级的 bootstrap 节点。
升级最终 Controller 节点:
验证旧集群是否不再运行:
sudo pcs status
$ sudo pcs statusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 当集群没有运行时,会显示类似如下的错误:
Error: cluster is not currently running on this node
Error: cluster is not currently running on this nodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
ceph_systemd标签运行外部升级命令:openstack overcloud external-upgrade run --stack STACK NAME --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-2
$ openstack overcloud external-upgrade run --stack STACK NAME --tags ceph_systemd -e ceph_ansible_limit=overcloud-controller-2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令执行以下功能:
- 更改控制 Ceph Storage 容器的 systemd 单元以使用 Podman 管理。
-
使用
ceph_ansible_limit变量将操作限制为所选 Controller 节点。
此步骤是为
leapp升级准备 Ceph Storage 服务的主要措施。使用
system_upgrade标签运行 upgrade 命令:openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-2
$ openstack overcloud upgrade run --stack STACK NAME --tags system_upgrade --limit overcloud-controller-2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个命令执行以下操作:
- 对操作系统执行 Leapp 升级。
- 作为 Leapp 升级的一部分执行重启。
运行没有标签的 upgrade 命令:
openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0,overcloud-controller-1,overcloud-controller-2
$ openstack overcloud upgrade run --stack STACK NAME --limit overcloud-controller-0,overcloud-controller-1,overcloud-controller-2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令执行 Red Hat OpenStack Platform 升级。在
--limit选项中包含所有 Controller 节点。