NIC组合创建虚拟交换机报错
Windows2022的Hyper-V中NIC组合创建虚拟交换机报错解决
报错内容如下:
应用 虚拟交换机属性 更改时出错 添加虚拟以太网交换机连接时失败。 不建议将虚拟交换机附加到LBFO 团队。SwitchEmbedded Teaming (SET)是此功能的收件箱替代品。有关 LBFO 弃用的更多信息,请参见https://aka.ms/LBFODeprecation。要替代此阻止规则,请使用 New-VMSwitch 中的AllowNetLbfoTeams 选项.
问题原因:
LBFO团队在较新版本的Windows Server中已被逐步弃用,尤其是在Windows Server 2022及之后的系统中。
解决方法:
方法1:
通过 PowerShell 配置 Hyper-V 的 NIC 组合
以管理员身份打开 PowerShell 控制台
运行 Get-NetAdapter
来查找接口索引
Get-NetAdapter
我分组使用 LACP 模式和动态负载平衡模式,组名:xxx
根据创建的组合创建虚拟交换机名字 new
New-VMSwitch -Name "new" -NetAdapterName "xxx" -AllowNetLbfoTeams $true -AllowManagementOS $true
删除的团队名称及成员
#查询现有团队
Get-NetLbfoTeam
#删除命令
Remove-NetLbfoTeam -Name "团队名称" [-Confirm] [-Force]
Remove-NetLbfoTeam -Name "Team1" -Confirm:$false -Force
-Name
:需删除的链路聚合团队名称(必填,可通过 Get-NetLbfoTeam
查询现有团队列表)
-Confirm
:是否提示确认(默认启用,添加 -Confirm:$false
可跳过确认)
-Force
:强制删除(适用于团队状态异常时)
方法2:
SwitchEmbedded Teaming配置
成员适配:
在创建 SET 团队时,您最多使用 8 个相同的 NIC,可以创建只有一个 NIC 的 SET Switch,但任何新成员都必须相同。
负载均衡模式
SET Teams 有两种 Load Balancing 分发模式。他们是:
- Hyper-V 端口
- 动态
创建 SET 团队
PowerShell 窗口中使用以下 PowerShell 代码:
获取网络列表:
Get-NetAdapter
查看SET团队
Get-VMSwitchTeam
#指定名称查看SET状态,显示网卡成员及负载均衡策略(如 Dynamic 模式)
Get-VMSwitchTeam -Name "10.10.10.0"
根据创建的组合创建虚拟交换机名字 new
#默认开启
New-VMSwitch -Name "10.10.10.0" -NetAdapterName "NIC2", "NIC3"
#-EnableEmbeddedTeaming $true:启用SET模式
New-VMSwitch -Name "10.10.10.0" -NetAdapterName "NIC2", "NIC3" -EnableEmbeddedTeaming $true
#添加 -AllowManagementOS $true 参数意味着允许管理操作系统使用这个新创建的虚拟交换机。
New-VMSwitch -Name "10.10.10.0" -NetAdapterName "NIC2", "NIC3" -EnableEmbeddedTeaming $true -AllowManagementOS $true
-AllowManagementOS $true
是 Hyper-V 网络配置中平衡宿主机与虚拟机网络需求的核心参数
不允许操作系统共享此适配器
Set-VMSwitch -Name "10.10.10.0" -AllowManagementOS $false
#开启
Set-VMSwitch -Name "10.10.10.0" -AllowManagementOS $true
要创建具有多个 NIC 的 SET 团队
New-VMSwitch -Name "new" -NetAdapterName "NIC 1","NIC 2"
添加和删除 SET 团队成员
假设您已经创建了 NIC 1 和 NIC 2 的 SET 交换机,现在您想要删除 NIC 2 并添加 NIC 3:
Set-VMSwitchTeam -Name new -NetAdapterName "NIC 1","NIC 3"
如果您现在需要删除 NIC 1,可以使用以下命令:
Set-VMSwitchTeam -Name "new" -NetAdapterName "NIC 3"
要将 NIC 2 添加回 SET 团队,您可以使用以下命令:
Set-VMSwitchTeam -Name "new" -NetAdapterName "NIC 3","NIC 2"
更改负载均衡模式
HyperVPort模式
基于虚拟交换机端口:根据虚拟机连接的虚拟交换机端口(VSwitch Port)分配流量。
适用场景:适合虚拟化环境,尤其是虚拟机数量较多且流量分布不均的情况。例如,当虚拟机数量超过物理网卡成员数量时,可有效均衡负载。
效率优势:入站和出站流量均通过同一物理网卡,避免跨网卡转发,适合高吞吐场景(如数据库服务器)。
局限性:单虚拟机流量受限于单个物理网卡带宽,若某虚拟机流量过大,可能造成瓶颈。
依赖虚拟交换机:流量分配完全由Hyper-V虚拟交换机控制,与物理交换机无关,适用于交换机独立模式(无需LACP支持)
Dynamic模式
动态哈希算法:根据数据包的特征(如源/目标IP地址、TCP端口等)动态调整流量分配策略。 适用场景:适用于非虚拟化环境或流量特征复杂的情况(如多类型应用混合部署),能灵活适应不同流量模式。
负载均衡灵活性:通过哈希算法分散流量,减少单一链路的压力,但哈希冲突可能导致部分链路利用率不均。
性能影响:哈希计算可能增加CPU开销,尤其在高速网络(如10Gbps以上)中需谨慎使用。
可结合物理交换机:支持与物理交换机的LACP动态聚合协同,实现端到端负载均衡(需交换机依赖模式)。
维度 | HyperVPort模式 | Dynamic模式 |
---|---|---|
流量分配依据 | 虚拟交换机端口 | 动态哈希(IP、端口等) |
性能影响 | 高吞吐、低延迟 | 灵活但可能增加CPU开销 |
网络依赖 | 独立于物理交换机 | 可结合物理交换机LACP |
适用场景 | 虚拟机密集环境 | 混合流量或LACP协同环境 |
要在上述两者之间更改负载均衡模式
# Dynamic模式
Set-VMSwitchTeam -Name "new" -LoadBalancingAlgorithm Dynamic
# HyperVPort模式
Set-VMSwitchTeam -Name "new" -LoadBalancingAlgorithm HyperVPort
配置 VLAN
Set-VMNetworkAdapterVlan -VMNetworkAdapterName "Management" -Access -VlanId 10
要查看您当前拥有的负载均衡模式,请执行以下操作:
Get-VMSwitchTeam -Name "new" | FL
删除 SET
删除 SET 团队的唯一方法是完全删除 Hyper-V 虚拟开关:
Remove-VMSwitch "SET Team"
SET Teams负载均衡二种模式描述
Hyper-V 端口 对 SET Teams 使用 Hyper-V 端口模式时,VM 将连接到 Hyper-V 交换机上的端口。这就像物理服务器连接到物理交换机上的端口一样。Hyper-V 虚拟交换机端口和 VM 的 MAC 地址用于在 SET 团队成员之间划分网络流量。
如果将交换机嵌入式组合与 Packet Direct 配合使用,则必须使用交换机独立组合模式和 Hyper-V 端口负载均衡模式。
使用此绑定模式,任何相邻的交换机将始终在给定端口上看到 VM 的 MAC 地址。这允许交换机将入口负载(从交换机进入 Hyper-V 主机的流量)分配到 MAC 地址所在的端口。当您使用虚拟机队列 (VMQ) 时,Hyper-V 端口模式非常有用,因为可以将队列放置在流量预期到达的 NIC 上。
如果您只托管几个 VM,则 Hyper-V 端口模式不是最佳选择,因为它不够精细,无法实现均衡的分布。此模式还会将每个 VM 限制为单个 NIC 上的可用带宽。
动态 对 SET Teams 使用动态端口模式时,所有出站负载都使用 TCP 端口和 IP 地址的哈希值进行分配。动态端口模式还会实时重新平衡负载,以允许出站流在每个 SET 团队成员之间移动。
对于入站负载,所有流量的分配方式与 Hyper-V 端口模式相同。出站负载使用 flowlet 进行动态平衡。flowlet 是 TCP 流中两个自然发生的中断之间的部分。当 dynamic port 模式检测到 flowlet 边界时,它会自动将流重新平衡到 SET 团队的另一个成员(如果合适)。众所周知,在某些不常见的情况下,动态端口模式可能会重新平衡不包含任何 flowlet 的流。因此,团队成员和 TCP 流之间的相关性可能会随着流量的平衡而改变。