今年VMWARE已经正式发布了NSX-T v3.0大版本,为了满足测试需求,本人把一个试验环境做了升级,整个过程记录如下,供感兴趣的朋友做个参考。

实验环境:将原来NSX-T 2.5的版本升级到3.0.0.0.0.15946738,因为没有足够的物理机,整个环境是基于vSphere虚拟化的平台搭建,主要组件配置及版本包括:
vCenter:原版本6.7U2,借着这次升级,先升级到了7.0.0(build:15952599)
NSX-T Transport Node: 一个Compute Cluster,一个Mgmt/Edge Cluster。每个群集三台ESXi主机,原版本6.7U2,这次一并升级到了7.0.0(build:15843807)。每一台ESXi主机分配4个vCPU+16GB内存(NSX-T v3.0 TN至少需要16GB),VMWARE Paravirtual 磁盘控制器挂接120GB VMDK,四块VMXNET3 vNic模拟四块万兆物理网卡。
升级NSX-T 到v3.0_第1张图片

升级过程:
1.我的这个环境只是测试使用,对于生产环境,升级前请务必做好备份,可以借助NSX-T系统自带的备份工具周期性的做配置数据的备份:
升级NSX-T 到v3.0_第2张图片

2.升级前请参考VMWARE官网的升级指南,v3.0的manager appliance虚机需要额外增加一块100GB的VMDK,可在vCenter中针对原有的每一台管理虚机依此添加,然后重启生效,如下图示:
Pre-upgrade tasks:
https://docs.vmware.com/en/VMware-NSX-T-Data-Center/3.0/upgrade/GUID-1D36788D-741A-4D12-A0F1-DA3FF0DB68D5.html
升级NSX-T 到v3.0_第3张图片

3.准备条件满足后,打开NSX-T管理界面,依次点击‘System’->’Lifecycle management’->’Upgrade’
升级NSX-T 到v3.0_第4张图片
用‘Upload Upgrade Bundle’选项将下载的升级包上传到系统,这个升级包约有8GB,尺寸较大,需花点时间完成上传。然后点击‘Run Pre Checks’检查当前系统组件是否满足升级条件。
升级NSX-T 到v3.0_第5张图片
系统会自动检查Edge/Transport Nodes/Management Nodes,如果有任何错误或者警告,都会有详细信息,部分警告可以忽略,但错误需要修复后才能继续正常升级:
升级NSX-T 到v3.0_第6张图片

4.接下来继续,系统会自动按照Edges->Hosts->Management Nodes 的顺序依次升级,管理员也能随时查看相应的进度,比如如下Edge升级截图:
升级NSX-T 到v3.0_第7张图片

5.Hosts 升级截图:
升级NSX-T 到v3.0_第8张图片

6.最后是Mangement Nodes升级:
升级NSX-T 到v3.0_第9张图片

7.升级过程中如果登录management appliances 控制台,也会得到如下提示:
升级NSX-T 到v3.0_第10张图片

  1. 直到等到三个管理节点全部升级成功。整个升级过程顺利完成。本测试环境包括四台Edges Nodes和三台ESXi Transport Nodes,三个Management Nodes用时一共约70分钟。
    升级NSX-T 到v3.0_第11张图片

另外,在升级ESXi Transport Nodes时,遇上一奇怪的现象,每台主机的升级进度最后都停在18%,然后出现如下报错:
升级NSX-T 到v3.0_第12张图片

打开对应主机的/var/log/esxupdate.log查看,会发现大量内存分配的错误:
升级NSX-T 到v3.0

因为用的是虚机充当ESXi主机,升级前一直分配的是8GB内存,怀疑内存不足造成,查找VMWARE官方文档,果然发现ESXi 7.0.0的主机,安装NSX-T v3.0时至少需要16GB的物理内存,重新分配内存后,问题不再出现,升级顺利完成。
nsx-t 3.0 prerequisites:
https://docs.vmware.com/en/VMware-NSX-T-Data-Center/3.0/installation/GUID-AECA2EE0-90FC-48C4-8EDB-66517ACFE415.html
Note:
To avoid memory errors on a hypervisor host running vSphere ESXi version 7.x.x, ensure that at least 16 GB is available before deploying NSX Manager.