当前位置: 首页 > 虚拟化 > 嵌套ESXi(Nested ESXi)下的网络优化

嵌套ESXi(Nested ESXi)下的网络优化

虚拟化 0条评论 2020-2-6 2,942 views

在一些场景下,为了进行VMware相关实验,我们往往是选择使用嵌套ESXi(Nested ESXi)环境,即在ESXi上部署ESXi系统,这样就可以实现在Home Lab环境只有1台物理服务器的情况下,部署vSphere集群环境。

但由于vSphere的交换机(VSS/VDS)不具备Mac地址学习的功能,需要在ESXi(物理)的虚拟交换机(VSS/VDS)上开启“混杂模式,Nested ESXi中虚拟机才能使用网络,但混杂模式带来一个性能问题(CPU和网络),每个数据包都会发给所有接口。

很高兴伴随vSphere 6.7的发布,原生的Mac地址学习功能已经集成到分布式交换机(VDS)中,嵌套ESXi环境将不再需要开启“混杂模式”。

免责声明:VMware仍不正式支持嵌套ESXi,请您自己承担风险使用。

此内容参考William Lam'blog

要使用新的MAC Learning功能,您当然需要升级到vSphere 6.7(vCenter和ESXi),还需要升级到最新的VDS版本6.6。 可以在每个分布式虚拟端口组上启用MAC学习,目前仅支持使用vSphere API配置。

  1. 对于那些使用VDS API来管理其VDS的用户,您只需使用现有的ReconfigureDVPortgroup_Task()方法,然后在6.7中,现在有了一个新的macManagementPolicy属性,该属性使您可以启用和定义MAC学习设置。 此新的MAC管理策略也将成为管理用于DV端口组的安全策略的新的首选方法,并且不应再使用以前的安全策略设置。
  2. William Lam创建PowerCLI脚本,包含Get-MacLearn和Set-MacLearn两个函数,可以从此处下载。 请确保下载最新的PowerCLI 11.5.0版本,该版本增加了对vSphere 6.7的支持。

离线安装VMware PowerCLI


安装MacLearn.ps1脚本

Import-Module .\MacLearn.ps1


使用Get-MacLearn查看当前VDS配置

Get-MacLearn功能可用于检索DV端口组的当前MAC学习配置,填写分布式端口组(PortGroup)名字:

Get-MacLearn -DVPortgroupName @("Ext-Network")

从输出的内容可以看到,目前“Ext-Network”端口组尚未启用MAC学习。我们还看到新的属性,例如,Limit定义可以学的的最大MAC地址数量(最大4096)和LimitPolicy定义超过学习到MAC地址限制时的策略(丢弃和接受)。

对于嵌套环境使用,您需要设置以下内容:

  • MacLearning: True
  • Promiscuous: False
  • ForgedTransmit: True
  • MacChange: False
  • Limit: 4096(可选,脚本中提供了默认值)
  • LimitPolicy: Drop(可选,函数中提供了默认值)

    使用Set-MacLearn功能用于打开MAC学习配置。

Set-MacLearn -DVPortgroupName @("Ext-Network") -EnableMacLearn $true -EnablePromiscuous $false -EnableForgedTransmit $true -EnableMacChange $false

完成配置后,再次查看分布式端口组“Ext-Network”配置 此时我们已经打开了嵌套ESXi所需网络端口组的MAC地址学习功能,您现在可以在嵌套环境中运行VM了,此时网络速度更快,CPU占用更少。


发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注