如果当前 VMware Cloud Director 环境使用外部 PostgreSQL 数据库,则可以迁移到包含 VMware Cloud Director 设备部署的新 VMware Cloud Director 环境。您当前的 VMware Cloud Director 环境可以包含基于 Linux 或 VMware Cloud Director 设备部署的 VMware Cloud Director 安装。新的 VMware Cloud Director 环境可以在高可用性模式下使用已嵌入设备的 PostgreSQL 数据库。
- 升级现有的 VMware Cloud Director 环境
- 通过部署 VMware Cloud Director 设备的一个或多个实例创建新的 VMware Cloud Director 服务器组
- 将外部数据库迁移到嵌入式数据库
- 复制共享传输服务数据和证书数据
过程
- 如果当前外部 PostgreSQL 数据库的版本为 9.x,请将外部 PostgreSQL 数据库升级到版本 10 或更高版本。
- 将当前的 VMware Cloud Director 环境升级到版本 10.3.x。
- 确认迁移源 VMware Cloud Director 重新启动成功。
- 在已升级的 VMware Cloud Director 环境的每个单元上,运行以下命令,停止 VMware Cloud Director 服务。
/opt/vmware/vcloud-director/bin/cell-management-tool -u <admin_username> cell –-shutdown
- 在外部 PostgreSQL 数据库上,备份当前数据库。
pg_dump -U postgres -W -F p vcloud > /tmp/dump_file_name
如果 /tmp 文件夹上的可用空间不足,请使用其他位置存储转储文件。
- 如果数据库所有者和数据库名称不同于
vcloud
,请记下用户名和数据库名称。在步骤 13 中,您必须在新环境中创建此用户并重命名数据库。
- 将现有环境的属性和证书文件复制到外部 PostgreSQL 数据库上的某个位置,然后关闭单元的电源。
- 将位于 /opt/vmware/vcloud-director/etc/ 中的 global.properties、responses.properties、certificates.pem、certificates.key、proxycertificates.pem、proxycertificates.key 和 truststore.pem 文件复制到外部 PostgreSQL 数据库上的 /tmp 或任何首选位置。
- 关闭现有环境中单元的电源。
- 如果希望新的 VMware Cloud Director 环境使用现有环境的 NFS 服务器,请在此 NFS 服务器上创建新目录并导出为新的共享 NFS 挂载点。
无法重用现有的挂载点,因为旧 NFS 中用户的用户 ID 和组 ID (UID/GID) 可能与新 NFS 中的用户 ID 和组 ID 不匹配。
- 通过部署 VMware Cloud Director 设备的一个或多个实例创建新的服务器组。
- 如果要使用数据库高可用性功能,请部署一个主单元和两个备用单元以及(可选)一个或多个 vCD 应用程序单元。
- 如果已关闭现有环境中单元的电源,则可以使用新单元的原始 IP 地址。
- 如果在现有 NFS 服务器上导出新路径,则可以对新环境使用这个新的共享挂载点。
- 在每个新部署的单元上,运行单元管理工具命令以停止 VMware Cloud Director 服务。
/opt/vmware/vcloud-director/bin/cell-management-tool cell -i $(service vmware-vcd pid cell) -s
- 将外部 PostgreSQL 数据库上 /tmp 文件夹中的转储文件复制到新环境主单元上的 /tmp 文件夹。
请参见步骤 5。
- 更改转储文件的权限。
chmod a+r /tmp/db_dump_name
- 以 root 身份登录到新部署的主单元的控制台,然后将 VMware Cloud Director 数据库从外部数据库传输到嵌入式数据库。
- 将用户切换为
postgres
,连接到psql
数据库终端,然后运行以下语句以丢弃vcloud
数据库。sudo -i -u postgres /opt/vmware/vpostgres/current/bin/psql -c 'DROP DATABASE vcloud;'
- 创建一个新
vcloud
数据库。sudo -i -u postgres /opt/vmware/vpostgres/current/bin/psql -c 'CREATE DATABASE vcloud;'
- 还原数据库。
sudo -i -u postgres /opt/vmware/vpostgres/current/bin/psql -U postgres -W -d vcloud -f /tmp/db_dump_name
- 如果现有 VMware Cloud Director 环境的数据库所有者不同于
vcloud
,请将数据库所有者更改为vcloud
,然后将表重新分配给vcloud
。sudo -i -u postgres /opt/vmware/vpostgres/current/bin/psql -c 'ALTER DATABASE vcloud OWNER TO vcloud;'
sudo -i -u postgres /opt/vmware/vpostgres/current/bin/psql -d vcloud -c 'REASSIGN OWNED BY <db_owner_external_pg> TO vcloud;'
- 将用户切换为
- 在每个新部署的单元上,备份并替换配置数据,然后重新配置并启动 VMware Cloud Director 服务。
- 备份属性、信任存储区和证书文件,然后从迁移源的外部 PostgreSQL 数据库上的位置(在步骤 7 a 中将文件复制到的位置)复制并替换这些文件。
global.properties、responses.properties、truststore.pem、certificates.pem、certificates.key、proxycertificates.pem 以及 proxycertificates.key 文件位于 /opt/vmware/vcloud-director/etc/。
- 运行以下命令,重新配置 VMware Cloud Director 服务。
/opt/vmware/vcloud-director/bin/configure --unattended-installation --database-type postgres --database-user vcloud \ --database-password db_password_new_primary --database-host eth1_ip_new_primary --database-port 5432 \ --database-name vcloud --database-ssl true --uuid --cert /opt/vmware/vcloud-director/etc/user.http.pem --key /opt/vmware/vcloud-director/etc/user.http.key --key-password root_password_new_primary --consoleproxy-cert /opt/vmware/vcloud-director/etc/user.consoleproxy.pem --consoleproxy-key /opt/vmware/vcloud-director/etc/user.consoleproxy.key --consoleproxy-key-password root_password_new_primary --primary-ip appliance_eth0_ip \ --console-proxy-ip appliance_eth0_ip --console-proxy-port-https 8443
其中:--key-password
值与此设备的初始 root 密码一致。-
--database-password
值与在设备部署过程中设置的数据库密码一致。 --database-host
值与主设备的eth1
网络 IP 地址一致。-
--primary-ip
值与设备的eth0
网络 IP 地址一致。 --console-proxy-ip
值与设备的eth0
网络 IP 地址一致。--console-proxy-port
值与设备控制台代理端口 8443 一致。
有关故障排除信息,请参见迁移或还原到 VMware Cloud Director 设备时,重新配置 VMware Cloud Director 服务失败。
- 运行以下命令,启动 VMware Cloud Director 服务。
systemctl start vmware-vcd
可以在 /opt/vmware/vcloud-director/logs/cell.log 中监控单元的启动进度。
- 备份属性、信任存储区和证书文件,然后从迁移源的外部 PostgreSQL 数据库上的位置(在步骤 7 a 中将文件复制到的位置)复制并替换这些文件。
- 新服务器组的所有单元完成启动过程后,验证 VMware Cloud Director 环境的迁移是否成功。
- 使用新服务器组中任何单元的
eth0
网络 IP 地址打开 Service Provider Admin Portal,即 https://eth0_IP_new_cell/provider。 - 使用来自迁移源的现有系统管理员凭据登录到 Service Provider Admin Portal。
- 验证您的 vSphere 和云资源在新环境中是否可用。
- 使用新服务器组中任何单元的
- 成功验证 VMware Cloud Director 迁移后,使用 Service Provider Admin Portal 删除属于旧 VMware Cloud Director 环境的断开连接单元。
- 从顶部导航栏的资源下,选择云资源。
- 在左侧面板中,单击云单元。
- 选择非活动单元,然后单击取消注册。
可以部署 VMware Cloud Director 设备以将成员添加到迁移环境的服务器组中。
后续步骤
新迁移的 VMware Cloud Director 设备环境使用自签名证书。要使用旧环境的正确签名证书,请在新环境的每个单元上,执行以下步骤:
- 将证书和密钥文件从旧单元复制到 /opt/vmware/vcloud-director/data/transfer/cert.pem 和 /opt/vmware/vcloud-director/data/transfer/cert.key 并替换。
- 运行单元管理工具命令以替换证书。
确保
vcloud.vcloud
是此文件的所有者。/opt/vmware/vcloud-director/bin/cell-management-tool certificates -j -p --cert /opt/vmware/vcloud-director/etc/cert.pem --key /opt/vmware/vcloud-director/etc/cert.key --key-password ks_password_old_VCD
- 重新启动 VMware Cloud Director 服务。
service vmware-vcd restart
如果向此服务器组添加新成员,则会使用这些完好签名证书部署新的设备单元。