- 继续折腾VCF,目标是把VCF从当前的版本3.8.1升级到3.9。由于VCF涉及的组件比较多,包括SDDC Manger、vCenter、PSC等,因此正好借着这次机会梳理下升级的流程。
- 由于篇幅有限,这篇文章主要关注如何升级SDDC Manager
- 当前我们SDDC Manager的版本是3.8.1
- ">
- VCF升级顺序
- 升级之前的准备工作
- 关于Bundle
- 下载离线升级包
- =======================
- 我们在升级前需要先提前准备好升级包,包括在线下载和离线下载两个方法。由于我的VCF环境无法连接外网,因此选择离线下载升级包(这个方法也是最复杂的)。步骤如下:
- 1.使用vcf用户SSH登录到SDDC Manager虚拟机,执行如下的命令:
- cd /opt/vmware/vcf/lcm/lcm-tools/bin
- ./lcm-bundle-transfer-util —generateMarker
- 这个命令会在/home/vcf下产生两个文件markerFile和markerFile.md5
- ">
- 2.把这个两个文件以及/opt/vmware/vcf/lcm/lcm-tools这个目录拷贝到可以联网的“跳板机”(物理机/虚拟机),该跳板机可以是Windows或者Linux操作系统,Java8以上的版本。
- 3.在跳板机上执行如下的命令:
- cd 到上传的lcm-tools里bin目录下
- lcm-bundle-transfer-util -download
- -outputDirectory C:\Users\administrator.CHANG\Documents #下载路径
- -depotUser your_account@vmware.com #myvmware用户名
- -markerFile C:\Users\administrator.CHANG\Documents\markerFile #markerFile路径
- -markerMd5File C:\Users\administrator.CHANG\Documents\markerFile.md5
- #markerFilemd5路径
- 每个参数含义如下:
- ">
- 执行后会提醒输入MyVMware密码,输入完成后就会出现需要下载的文件列表
- ">
- 注意:再次提醒下下载的日志包会非常大,请确保环境确保有足够的空间(尤其是实验环境)。下载的文件会保存在输出目录的/bundles文件目录下。
- =======================
- 上传离线升级包
- =======================
- 1. 下载完成后,现在我们需要把下载的文件上传(例如scp)到SDDC Manager。在SDDC Manager的目录下/nfs/vmware/vcf/nfs-mount/创建一个目录,例如vcf381to39。
- 一共有三部分文件需要上传到这个文件夹
- “跳板机”下载目录里的bundles文件夹-里面包含所有的升级包
- “跳板机”下载目录里生成的manifests文件夹
- “跳板机”下载目录里生成的两个文件,包括:deltaFileDownloaded和deltaFileDownloaded.md5
- ">
- (从跳板机上传3部分文件到SDDC Manager)
- ">
- (上传到SDDC Manager后的状态(创建了新的文件夹vcf381to39))
- 2. 记得修改这个目录的权限
- chmod -R 0777 /nfs/vmware/vcf/nfs-mount/vcf381to39
- 3. 此时还没有结束,还需要使用lcm-bundle-transfer-util命令把上传的文件放到VCF指定的位置并且进行验证。执行如下的命令:
- cd /opt/vmware/vcf/lcm/lcm-tools/bin
- ./lcm-bundle-transfer-util -upload
- -bundleDirectory /nfs/vmware/vcf/nfs-mount/vcf381to39/ #刚才上传文件的目录
">- (开始上传并且验证)
- 4. 上传验证完成后,我们在UI界面可以看到如下界面
- ">
- 如何清除错误的bundle信息
- =========================
- 在我操作的过程中,在上述上传验证命令完成后不小心把安装包存放的文件夹删除了,当我尝试重新上传的话,显示如下的报错。这是因为上传时相关的记录的会写到数据库中,此时虽然实际文件已经被删除,但是由于数据库中依旧有记录,所以导致一直显示文件已存在。因此我们需要清除数据库中的相关信息。
- ">
- 我尝试的各种方法访问数据库,最后在同事帮助的下找到一个很好的工具来清除在数据库里bundle相关的信息。
- 在/opt/vmware/vcf/lcm/lcm-app/bin 下执行
- python bundle_cleanup.py 3d8f87a3-d120-443d-a789-184b0b73b7ae
- 后面是bundle的UUID
- 升级之前的预检查
- ====================
- 上传完成后,我们对VCF进行升级前的预检查
- ">
- 只有确保了所有的检查都通过后才可以进行后续的升级
- ">
- 具体点开可以看到检查失败的原因(例如资源不足)
- ">
- 在我的环境里,由于使用的嵌套ESXi主机,因此vSAN兼容性检查的项目使用无法通过,解决方法如下:
- 编辑
- /opt/vmware/vcf/lcm/lcm-app/conf/application-prod.properties
- 把vSAN相关的项目修改成false,重启LCM服务即可
- ">
- 重启完成后再检查就可以通过了。
- ">
- 预检查完成后就可以升级了。用户可以选择“现在升级”也可以设置升级时间,开始升级后界面如下:
- ">
- 升级过程状态如下:
- ">
- 升级过程完成后重新登录,就可以SDDC Manager已经成功升级到3.9版本了。
- ">
- 至此,SDDC Manager升级完成。
- 参考文档:
- https://my-sddc.net/upgrading-to-3-8-with-vmware-cloud-foundation/">https://my-sddc.net/upgrading-to-3-8-with-vmware-cloud-foundation/
- https://docs.vmware.com/en/VMware-Cloud-Foundation/3.9/vcf-39-upgrade.pdf">https://docs.vmware.com/en/VMware-Cloud-Foundation/3.9/vcf-39-upgrade.pdf