透過安裝新版本並移轉現有部署,將 VMware Integrated OpenStack 5.1 升級至 7.0.1。
必要條件
- 確認您目前的部署執行的是 VMware Integrated OpenStack 5.1。如果您執行的是較舊版本,請先升級至 5.1 版。
- 確認 VMware Integrated OpenStack 5.x 部署的本機網域中是否存在名為 admin 的使用者。如果在升級期間將預設網域設定為 LDAP,則需要此使用者。如果沒有名為 admin 的使用者,請在 5.x 環境中手動建立具有該名稱的使用者。
備註: 如果 admin 密碼已從 OpenStack 端進行更新,則升級指令碼擷取的 admin 密碼可能與實際密碼不同。若是如此,您需要使用實際密碼在 cluster.yml 中編輯
secret/managedpasswords
的data.admin_password
。 - 如果 VMware Integrated OpenStack 5.1 部署包含多個負載平衡器,請先停用 LDAP 負載平衡器。
- 如果為網域設定了 LDAP,請確保將網域名稱附加至繫結使用者。
- 檢查 nova_api cell_mappings 資料表中是否包含具有 NULL 名稱的資料列。如果找到,請更正名稱以確保架構移轉正確執行。
- 在 OpenStack 管理伺服器 中,登入 VIO 5.1 控制平面上的任何資料庫節點。
- 切換至根使用者。
sudo su -
- 若要啟動 MariaDB 用戶端,請執行
mysql
命令。 - 若要存取 nova_api 資料庫,請執行 SQL 命令:
use nova_api
- 執行 SQL 命令:
select id,name from cell_mappings;
- 檢查輸出。在名稱資料行中尋找任何包含 NULL 的資料列。在下列範例中,識別碼為 9 的資料列中顯示 NULL。
+----+-------+ | id | name | +----+-------+ | 6 | cell0 | | 9 | NULL | +----+-------+
- 使用名稱資料行中包含 NULL 的資料列所對應的識別碼,執行 SQL 命令以更正名稱。
update cell_mappings set name='cell1' where id=<ID_of_row_with_NULL>;
- 執行 SQL 命令:
select id,name from cell_mappings;
- 檢查輸出。在下列範例中,cell1 取代了識別碼為 9 的資料列中的 NULL。
+----+-------+ | id | name | +----+-------+ | 6 | cell0 | | 9 | cell1 | +----+-------+
- 從 VMware Integrated OpenStack 下載頁面 下載 VMware Integrated OpenStack 7.0 OVA、7.0.1 修補程式、升級和 viocli 套件。檔案需要大約 6 GB 的儲存空間。
- 記錄對 custom.yml 和 custom-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 管理工作負載。