长篇来袭 – 你的服务器能升级vSphere 7吗?(升级前检查)
随着VMware vSphere 7 的官方发布,相比很多关注VMware的朋友已经知道了这个好消息。vSphere 7 最大的优势就是整合了对kubernetes的原生整合,在此之前想要在vSphere作为IAAS(Infrastructure as a service)的平台上部署kubernetes是非常庞大和复杂任务。
比如在此之前我们需要可能需要使用kubespray来自动化部署kubernetes软件层,然后结合Terraform通过vCenter API去操纵虚拟机的新建和伸缩。虽然说对于私有云来说别的云平台也没有什么出色的解决方案比如OpenStack,但是对比AWS或者AlibabaCloud等公有云的kubernetes管理方案来说就显得非常的无力。
随着vSphere 7 with kubernetes的发布,VMware全家桶对于数据中心层面的影响力拥有了一个值得飞升。
从vSphere 6.x版本升级到7版本是一个跨大版本的升级,所以作为万里长征的第一步我们需要考虑升级的可行性。
免责声明:以下注意事项是基于我自己的使用pre-GA构建的vSphere 7构建的个人homelab经验,并不反映VMware的任何官方支持或指导。请使用这些建议,后果自负。
注意:本文主要会针对homelab性质或者老旧服务器提供帮助,如果您是VMware尊贵的甲方爸爸,请直接点击下方链接跳转到尊贵的VMware support:
好文推荐尽在LLYCLOUD VCTSC
Legacy VMKlinux Drivers
早期VMKlinux驱动不在支持
在vSphere 6.7发布的时候官方已经声明legacy vmklinux drivers不再被支持。
The vSphere 6.7 family will be the last vSphere versions that includes the VMKlinux driver stack. Future releases will only ship with the Native driver stack.
随之而来的原生驱动堆栈(Native Driver Stack)提供了对驱动更高效的管理模式
如何检查现在的vSphere群集中是否还在使用不被支持的VMKlinux驱动
下载powerCli脚本
下载地址:https://github.com/lamw/vghetto-scripts/blob/master/powershell/VMKLinuxDrivers.ps1
导入powerCLI:
关于PowerCLI是基于微软开发的powershell已经跨平台支持Windows,Linux,MacOS系统
MacOS安装PowerCLI的教程:https://blogs.vmware.com/PowerCLI/2018/03/installing-powercli-10-0-0-macos.html
连接vCenter主机,运行*Get-VMKlinuxDrivers -Cluster *
连接vCenter:
获取群集名:
PS /Users/akide> Get-Cluster
Name HAEnabled HAFailover DrsEnabled DrsAutomationLe
Level vel
---- --------- ---------- ---------- ---------------
datacenter True 1 True FullyAutomated运行检查脚本:
如果有VMKLinuxDriver列出则说明存在问题
比如我这里的是mlx4_core,mlx4_en
PS /Users/akide> Get-VMKLinuxDrivers -Cluster datacenter
Checking esxi01.in.llycloud.com ...
Checking esxi02.in.llycloud.com ...
VMHost VMKLinuxDriver
------ --------------
esxi01.in.llycloud.com vmklinux_9_2_3_0,cnic_register,mlx4_core,mlx4_en
esxi02.in.llycloud.com vmklinux_9_2_3_0,cnic_register,mlx4_core,mlx4_en进入特定主机检查NIC(网卡)的型号和VMKLinuxDriver信息:
您还应该与硬件供应商联系,以查看是否有新的本机驱动程序可用,因为在过去的几年中,我们的许多生态系统合作伙伴已经完成了向该新驱动程序格式的移植。对于许多人来说,这不会对您造成影响,您可能已经在使用100%本机驱动程序,但是如果您仍在使用或依赖VMKlinux驱动程序,那么现在是考虑升级硬件或与这些供应商联系并询问为什么这样做的好时机不是ESXi的本机驱动程序?从网络的角度来看,还有其他选择,例如用于ESXi Fling的USB本机驱动程序,我将在下一部分中介绍。
以下是一些可能对审阅有用的VMware KB:
- ESXi 7.0中已弃用且不受支持的设备(77304)
- 安装/升级到ESXi 7.0时vmkapi依赖性错误(78389)
- ESXi从6.0升级到6.5 / 7.0失败,出现CONFLICTING_VIBS错误(49816)
USB Network Adapters
USB网络适配器
如果你当前使用的ESXi主机存在使用usb网卡的情况,你可以使用vmware官方支持ESXi Fling
新版本的Fling下载地址:https://flings.vmware.com/usb-network-native-driver-for-esxi
要安装只需运行:
esxcli software vib install -d /ESXi700-VMKUSB-NIC-FLING-34491022-component-15873236.zip |
Aquantia/Marvell 10GbE NICs
Marvell 万兆网卡问题
相信很多现在在使用Marvell的万兆网卡(比作者),其实选择他的原因无非是性价比高的网卡和光纤线缆。
如果你使用了Aquantia(现在叫做Marvell)网卡,一定要谨慎的查阅驱动是否支持Native Driver for ESXi 。
截止到现在,Marvell的万兆网卡并没有公布他们适用于ESXi的原生驱动,但是据说VMware正在和Marvell一同研发最新的驱动。
I have actually been working with the Aquantia/Marvell folks over the last couple of months to have them build a Native Driver and it is currently going through the final certification process and I hope to be able to share some good news in the very near future.
英特尔®NUC
我很高兴地报告,ESXi 7在最新一代的英特尔®NUC 10“ Frost Canyon”上运行良好,如下面的屏幕快照所示。
关于第10代Intel®NUC的一件事要注意的是,由于更新了Intel NIC,内置NIC无法自动检测到。幸运的是,我们有一个更新的NE1000驱动程序,该驱动程序也与ESXi 7兼容,您只需要创建一个包含更新的ne1000驱动程序的新ISO。
我也很高兴地报告说,英特尔®NUC 9 Pro / Extreme也可以与ESXi 7一起使用,并且可以自动检测到所有内置网络适配器,而不会出现任何问题。
我知道其他几个人也已经在老一代的英特尔®NUC上成功安装或升级到ESXi 7,但我确实有完整的清单。对于取得成功的人们,请随时发表评论,随着更多细节的分享,我将更新此页面。
Unsupported CPUs
不再支持的CPU
以下两代的CPU已经不再支持
Intel Family 6, Model = 2C (Westmere-EP)
Intel Family 6, Model = 2F (Westmere-EX)
基本上来说以戴尔来说powerEdge Rx10系列或者说第11代将不再会支持vSphere 7 以后的版本
有一说一,这些处理器大约在10年前发布!因此,VMware决定取消对这些处理器的支持也就不足为奇了,这也可能意味着基础硬件平台也可能已经过时。无论如何,这肯定会影响到某些人,并且据我所知,这主要是个人家庭实验室或较小的vSphere环境。
前几天,我的一位读者与我联系,分享了一个有趣的花絮,这可能会帮助某些人延长其老化硬件的时间,以供另一个vSphere版本使用。我尚未亲自测试此技巧,因此不建议您这样做,因为您可能会长期遇到其他问题,或者在下一个补丁或升级时遇到类似或更糟的情况。
强制让不受支持的CPU进行安装(存在风险)
在引导的使用按住Shift+o,追加引导参数:
allowLegacyCPU = true |
注意:上面的启动选项只是暂时的,您需要在每次重新启动时传递此选项。看来此设置也无法通过我最初想到的ESXCLI进行配置,因此,如果要在USB设备上安装此设置,最好的选择是编辑boot.cfg并简单地将参数附加到 kernelopt行中,这样自动为您包括在内,而无需手动输入。如果此文件安装在磁盘上,则需要编辑/bootbank/boot.cfg和/altbootbank/boot.cfg,以使设置自动传递。
New ESXi Storage Requirements
新的存储要求
在ESXi 7.0中,您应该了解新的存储要求,我建议您仔细阅读此处的官方文档以了解更多详细信息。此外,ESXi 7.0中有几个新的ESXi内核引导选项,可用于影响与这些新存储要求相关的磁盘分区行为和设备选择中的不同行为。我强烈建议检查以下VMware KB,因为如果遇到问题,它们可能会有所帮助。
NVMe PCIe SSD not showing up during Upgrade
升级后找不到nvme pcie ssd
这个问题的产生可能是因为没有特定的驱动导致的
在这里特别推荐使用服务器对应厂商提供的ESXi更新包来更新
举个例子如何找到Dell(VMware的爸爸)官方地址的镜像(追加了服务器所需要的驱动包)
To download the Dell-customized ESXi ISO image, perform the following steps:
- Go to dell.com/support, and select your product from the Product Support section or enter service tag.
- Click the Drivers and Downloads tab.
- Filter the request “Enterprise Solutions“ in the Category field.
- Expand the VMware ESXi link, and click download on the required version for your server.
Supermicro
超威mini主机
E200-8D平台是VMware社区中另一个流行的系统,可与ESXi 7一起使用。系统位于VMware的HCL上,您应该没有任何问题。
Other Hardware Platforms
已通过测试的平台
如果您想知道ESXi 7是否可以在未列出的其他系统上运行,则可以轻松地进行验证,而不会影响当前的安装。只需获取一个新的USB设备,然后将ESXi 7加载到该设备上即可。然后,您可以从这个新的USB设备启动,然后在同一设备上安装ESXi 7,这将确保您不影响现有安装。这是许多人仍然感到惊讶的事情,这是“测试” ESXi的新版本的安全方法,只要您不覆盖或升级基础VMFS卷格式(如果有新版本)。从这里,您可以在尝试升级现有安装之前验证系统是否按预期运行。
- 感谢Michael White,Supermicro SYS-5028D-TN4T可与ESXi 7一起使用
- 感谢vincenthan,Supermicro E300-9D可与ESXi 7一起使用
- 感谢Laurens van Duijn,英特尔®NUC 8th Gen可与ESXi 7一起使用
- 感谢Patrick Kernstock,英特尔®NUC 7th Gen与ESXi 7兼容
- 感谢NG Techie,英特尔®NUC 6th Gen可与ESXi 7一起使用
- 感谢Florian,英特尔®NUC第五至第十代可以与ESXi 7一起使用
- 多亏了Oliver Lis,iBASE IB918F-1605B可以与ESXi 7一起使用
- 感谢Jason,Supermicro E300-8D可与ESXi 7一起使用
- 由于topuli,技嘉x570 Ryzen 3700x作品与ESXi 7
vCenter Server Appliance (VCSA) Memory
vCSA的内存需求
内存始终是一种宝贵的资源,通常也是家庭实验室中的第一个受限资源。在vSphere 7中,VCSA部署大小已更新,需要其他资源来支持各种新功能。我在实验室中部署“ Tiny” VCSA时注意到的一个变化是,内存占用量已增加到12GB,以前是10GB。
看来内存条要买起来了
对于较小的家庭实验室,这可能是一个问题,许多人过去使用的一种方法是关闭您不打算使用的vCenter Server服务。如果对您的环境或使用没有不利影响,那么通常这样做是安全的。尽管我没有任何具体建议,但是您可以使用vimtop之类的工具来帮助确定当前的内存使用情况。例如,以下是在VCSA上运行的vimtop的屏幕截图,其中3 x ESXi主机配置了vSAN,而没有运行任何工作负载。默认配置的内存为12GB,但使用率为〜5.1GB,您可能可以禁用某些服务并减少内存占用。同样,这需要一些反复试验。如果人们有任何提示或技巧,请随时在评论中分享。
Nested ESXi Memory and Storage
嵌套ESXi部署的内存和存储需求
运行嵌套ESXi仍然是评估vSphere新版本的最简便方法之一,尤其是使用嵌套ESXi虚拟设备时。
与以前的版本一样,我计划有一个更新的映像以支持最新的版本。
将进行一些资源更改以符合最新的ESXi 7要求。默认内存配置将从6GB更改为8GB,用于ESXi安装的第一个VMDK也将从2GB更新为4GB。
对于那些想知道何时可以使用新的嵌套ESXi Appliance的用户,您可以随时添加书签并检查http://vmwa.re/nestedesxi
Nested ESXi on Unsupported Physical ESXi CPU
如何在已经不支持vSphere 7的物理机上运行vSphere 7 的嵌套虚拟机
问题1-引导驱动器大小
作为同一位老旧节俭的VM管理员,我将我通常的1GB引导驱动器硬盘分配给了ESXi 7.0 VM。引导回答安装程序的前几个问题……嗯,这是新的:
从ESXi硬件要求页面:
ESXi 7.0对于USB或SD设备至少需要8 GB的启动磁盘,对于其他设备类型(例如HDD,SSD或NVMe)至少需要32 GB的启动磁盘。引导设备不得在ESXi主机之间共享。
嗯,好的,这是一个测试虚拟机,因此可以拥有一个4GB的启动硬盘,并且喜欢它。简单修复。
问题2-CPU_SUPPORT错误
VM重新启动,然后继续安装。还是不行
我的ESXi服务器中有两个Intel Xeon E5640 CPU。尽管我很幸运能够毫无问题地升级到ESXi 6.7,但看来VMware终于赶上了我老化的硬件。
是的,来自vSphere 7发行说明:
与vSphere 6.7支持的处理器相比,vSphere 7.0不再支持以下处理器:
- 英特尔家族6,型号= 2C(Westmere-EP)
- 英特尔家族6,型号= 2F(Westmere-EX)
!不支持我的CPU。
CPU_SUPPORT错误-修复
因此,ESXi安装程序正在查看服务器中的物理处理器,以确定是否继续安装。对我们来说幸运的是,由于这是一个VM,我们可以对VM进行一些调整,以允许ESXi 7.0安装程序继续安装。
为此,我们可以使用CPU“掩码”来隐藏服务器实际CPU的身份,并通过受支持的CPU的身份来传递。标准免责声明适用:
- 是的,VMware不支持
- 是的,不应在生产设备上尝试以下操作
- 是的,您自己一个人(但是,嘿,您已经知道了。这比购买新的主板,CPU,RAM等便宜)
关闭ESXi 7.0 VM的电源,编辑设置,展开CPU设置,然后单击Advanced:
从那里展开1级并将以下内容粘贴到EAX字段中:
英特尔CPU的0000:0000:0000:0011:0000:0110:1100:0011
标识:AMD CPU的标识:0000:0000:0110:0000:0000:1111:0001:0000
我的CPU是Intel,因此我将粘贴Intel ID:
单击两次“ 确定”,启动VM,然后再次启动ESXi安装程序。第三次是魅力?
安装完成。让我们启动VM只是为了查看它是否启动。是的,看起来不错:
现在,我们可以删除上面设置的CPU ID。毕竟,安装程序已经完成了工作,我们都很好。
关闭ESXi 7.0 VM,编辑设置,展开CPU设置,然后单击Advanced:从此处展开Level 1,单击Reset Row,然后单击两次OK以保存。
任务完成。已安装ESXi7,CPU ID恢复正常。
vSAN File Services
vSAN 文件系统服务
借助vSAN 7,我认为可以真正使homelabs受益的非常酷的功能之一就是新的vSAN File Services,Duncan 在此处发表了一篇很棒的博客文章。。如果您的物理存储正在运行vSAN,则现在可以轻松创建NFS v3 / 4.1卷并将其提供给homelab基础架构。对我来说,我一直在不断构建各种配置,有时能够创建包含VM和/或其他文件的各种存储卷是一件很不错的事情,我可以轻松地重用它们而不必管理另一个VM。一个示例是拥有一个NFS共享,我可以轻松地将其挂载到嵌套ESXi VM上以进行测试。我主要将其用于homelab,强烈建议您也这样做,因为我确信生产中不仅不支持此功能,而且还可能违反vSAN EULA。
在下面的屏幕截图中,我在物理vSAN主机(vSAN上的vSAN)上运行了3个嵌套的ESXi虚拟机,并配置了vSAN,并且启用了新的vSAN文件服务以公开名为vsanfs-datastore的新NFS卷。然后,我有了第四个嵌套ESXi VM,它已经成功挂载了NFS卷,非常酷!