通过安装新版本并迁移现有部署从 VMware Integrated OpenStack 5.1 升级到 7.0

注: 如果 VMware Integrated OpenStack 5.1 部署中包含防火墙,请先升级到 VMware Integrated OpenStack 版本 6.0,然后使用 viocli 将 FWaaS v1 迁移到 FWaaS v2。请参见 viocli migrate 命令

然后,按照说明将 VMware Integrated OpenStack 6.x 升级到 7.0

前提条件

  • 确认当前部署运行的是 VMware Integrated OpenStack 5.1。如果运行的是旧版本,请先升级到版本 5.1。
  • 确认 VMware Integrated OpenStack 5.x 部署的本地域中存在名为 admin 的用户。如果在升级过程中将默认域配置为 LDAP,则需要此用户。如果没有名为 admin 的用户,请在 5.x 环境中手动创建使用该名称的用户。
  • 如果 VMware Integrated OpenStack 5.1 部署包含多个负载均衡器,请禁用 LDAP 负载均衡器。
  • 如果为域配置了 LDAP,请确保将域名附加到绑定用户。
  • 检查 nova_api cell_mappings 表中是否包含具有 NULL 名称的行。如果找到,请更正此名称以确保结构定义迁移正确运行。
    1. OpenStack 管理服务器,登录到 VIO 5.1 控制平面上的任何数据库节点。
    2. 切换到 root 用户。
      sudo su -
    3. 要启动 MariaDB 客户端,请运行 mysql 命令。
    4. 要访问 nova_api 数据库,请运行 SQL 命令:use nova_api
    5. 运行 SQL 命令:select id,name from cell_mappings;
    6. 检查输出。在名称列中查找具有 NULL 的任何行。在以下示例中,id 为 9 的行中显示 NULL。
      +----+-------+
      | id | name  |
      +----+-------+
      |  6 | cell0 |
      |  9 | NULL  |
      +----+-------+
    7. 利用在名称列中具有 NULL 的行对应的 ID,运行 SQL 命令以更正此名称。
      update cell_mappings set name='cell1' where id=<ID_of_row_with_NULL>;
      
    8. 运行 SQL 命令:select id,name from cell_mappings;
    9. 检查输出。在以下示例中,cell1 替换了 id 为 9 的行中的 NULL。
      +----+-------+
      | id | name  |
      +----+-------+
      |  6 | cell0 |
      |  9 | cell1 |
      +----+-------+
  • VMware Integrated OpenStack 下载页面下载 VMware Integrated OpenStack 7.0 OVA 和升级转换脚本。这些文件需要大约 6 GB 的存储空间。
  • 记录在 custom.ymlcustom-playbook.yml 文件以外对 OpenStack 部署进行的任何自定义更改。升级完成后,必须在新部署上重新配置除这些文件以外的自定义。
  • 如果使用 OIDC 协议配置了与 VMware Identity Manager 的身份联合,请在升级之前删除已配置的身份提供程序。升级完成后,可以重新添加身份提供程序。

    要删除提供程序,请运行 openstack identity provider delete idp-name 命令。

  • 如果已将 VMware Integrated OpenStack 配置为使用 NSX Manager 集群,请在移除此配置后再升级。要执行此操作,请将 nsxv3_api_managers 参数的值更改为仅包含父 NSX Manager 的 IP 地址。升级完成后,您可以在集群中添加其他管理器。
  • 如果已部署 Swift,请记录您的集群配置。Swift 集群无法升级到 VMware Integrated OpenStack 7.0,并且不会保留 Swift 配置。如果要继续使用 Swift,您可以在升级完成后重新创建集群。
  • 确认没有运行任何内部的 OpenStack 管理工作负载。