之前在这篇文章(使用 SFTP 服务器备份 VCF 核心组件的配置文件。)中配置并备份了 VCF 环境中 SDDC Manager 组件的配置文件,这篇文章接着这个主题,看看当 SDDC Manager 组件因意外发生故障时,如何通过备份的配置文件进行还原和恢复。
一、检查 SDDC Manager
执行还原之前,请确保 SDDC Manager 组件具有最新的基于文件的备份。导航到 SDDC Manager UI->管理->备份->SDDC Manager 配置,你应该能够看到最新的备份状态。注,由于此次环境为模拟 SDDC Manager 故障,所以我能够验证备份的状态,如果是真实的环境,SDDC Manager 已经发生故障的情况下,只需要确定备份服务器上具有该组件最新的配置备份文件即可。
登陆 SFTP 备份服务器检查 SDDC Manager 组件的配置备份文件,确保备份的配置文件是最新状态,后面将基于最新备份的配置文件执行还原过程。
SFTP 服务器上安装 tar 以支持解压功能。
yum install -y tar jq
拷贝一份最新的配置备份文件到当前目录,然后使用以下命令解压这个备份文件。注,运行命令后需要输入当时备份 SDDC Manager 配置文件所设置的“加密密码短语”。
OPENSSL_FIPS=1 openssl enc -d -aes-256-cbc -md sha256 -in vcf-backup-vcf-mgmt01-sddc01-mulab-local-2024-11-12-06-05-21.tar.gz | tar -xz
进入到解压的目录,使用以下命令查看配置文件的元数据。注,后面部署 SDDC Manager OVA 模板时所指定的某些参数必须与这里的 metadata.json 信息匹配。
cat metadata.json | jq
使用以下命令查看配置文件中组件的安全密钥,需要记住 BACKUP 用户的密钥,后面部署 SDDC Manager OVA 模板时,此用户的密钥配置需要一致。
cat security_password_vault.json | jq
二、部署 SDDC Manager
根据配置备份文件 metadata.json 中的内容,可以获取到 SDDC Manager OVA 文件的下载链接,当你访问这个链接时,它将跳转到 Broadcom 支持门户(BSP)进行身份验证,验证成功后将自动下载该文件。其实,我们也可以直接登陆 Broadcom 支持门户(BSP),然后在下图的地方进行下载,文件名称为“VCF-SDDC-Manager-Appliance-5.2.0.0-24108943.ova”。
登陆 VCF 管理域 vCenter Server(vSphere Client),将 SDDC Manager 虚拟机关机来模拟该组件发生意外故障,同时将当前 SDDC Manager 虚拟机的名称重命名为其他名字。
导航到集群(vcf-mgmt01-cluster01),右击“部署 OVF 模板”开始部署新的 SDDC Manager 虚拟机。
选择本地上传 SDDC Manager OVA 模板文件,点击下一页。
设置新 SDDC Manager 虚拟机的名称并选择虚拟机文件夹的位置,点击下一页。
选择新 SDDC Manager 虚拟机所使用的计算资源,点击下一页。
验证 SDDC Manager OVA 模板的详细信息,点击下一页。
接受许可协议,点击下一页。
选择新 SDDC Manager 虚拟机的存储位置,点击下一页。
选择新 SDDC Manager 虚拟机的目标网络,点击下一页。
配置新 SDDC Manager 的用户密码、主机名以及网络等信息,点击下一页。
检查所有配置信息,点击完成。
SDDC Manager OVA 模块导入成功后,创建该虚拟机的快照并打开电源。
稍等片刻后,访问 SDDC Manager UI,状态显示为初始化中,可继续进行后续步骤。
三、还原 SDDC Manager
登陆 SFTP 服务器,使用 scp 命令将 SDDC Manager 的配置备份文件拷贝到新部署 SDDC Manager 虚拟机的 tmp 目录。注,运行命令后需输入 vcf 用户的密码进行验证。
scp /backup/vcf/sddc-manager-backup/vcf-backup-vcf-mgmt01-sddc01-mulab-local-2024-11-12-06-05-21.tar.gz vcf@vcf-mgmt01-sddc01.mulab.local:/tmp/
使用以下 API 命令获取新 SDDC Manager 的访问 Token 以执行身份验证,并将获取到的值创建为“TOKEN”的变量,以供后面的 API 命令带入使用。注,admin@local 用户及密码需填入实际环境中的值。
TOKEN=`curl https://vcf-mgmt01-sddc01.mulab.local/v1/tokens -k -X POST -H "Content-Type: application/json" -d '{"username": "admin@local","password": "Vcf520@password"}' | awk -F "\"" '{ print $4}'`
使用以下 API 命令执行 SDDC Manager 基于文件备份的还原过程。注,passphrase 后面的值需要填入备份时所设置的加密密码短语。
curl https://vcf-mgmt01-sddc01.mulab.local/v1/restores/tasks -k -X POST -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" \-d '{"elements" : [ {"resourceType" : "SDDC_MANAGER"} ],"backupFile" : "/tmp/vcf-backup-vcf-mgmt01-sddc01-mulab-local-2024-11-12-06-05-21.tar.gz","encryption" : {"passphrase" : "VCF520@password"}
}'
根据上面 API 命令所执行的结果可以得到该任务的 ID,使用以下 API 命令查看这个任务以及子任务的执行状态。
curl https://vcf-mgmt01-sddc01.mulab.local/v1/restores/tasks/6bab2eb0-dd67-4b47-86e8-b6318f5eef66 -k -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" | jq
使用以下 API 命令反复查看任务的状态,当结果显示为“SUCCESSFUL”时,表示还原成功。
curl https://vcf-mgmt01-sddc01.mulab.local/v1/restores/tasks/6bab2eb0-dd67-4b47-86e8-b6318f5eef66 -k -s -X GET -H "Content-Type: application/json" -H "Authorization: Bearer $TOKEN" | jq -r '.| [.id, .name, .status ]'
四、验证 SDDC Manager
如果一切顺利,应该能成功登录 SDDC Manager UI。导航到 SDDC Manager 仪表盘,在“近期任务”栏中显示了此次还原(Restore)的任务,并且结果为成功状态。
导航到清单->工作负载域/主机,VCF 环境中的所有工作负载域和主机与原来的状态一致。
导航到管理->库设置/备份,SDDC Manager 的配置与之前的状态完全一致。
后续可在 SDDC Manager 上使用 SoS 实用程序并运行 sudo /opt/vmware/sddc-support/sos --health-check 命令检查 VCF 环境的健康状态,有关更多内容和细节请查看这篇文章(使用 SoS 实用程序检查 VCF 环境的运行状态以及收集相关组件的日志信息。)。