Windows Server 2012 的正确 Hyper-V 网络配置?

Sam*_*Sam 5 networking virtualization hyper-v virtual-machines windows-server-2012

大约一个月前,我们刚刚将我们的第一个基于 Hyper-V 的 Web 解决方案上线(下图)。在流量增加期间,例如在 Bing/Google/Baidu/McAfee Secure/等抓取期间,我们会遇到虚拟机之间的间歇性通信问题。问题持续几分钟,并不是完全中断;一些请求工作得很好,而另一些请求会导致错误。我查看了 VM 和主机系统上的系统日志,但没有任何迹象表明失败(除了 Web VM 上的一些 ASP.net ODBC 错误,因为它无法访问数据库主机)。

网络图

我们使用一个使用了 8 年的 Windows Server 2k3 Web 和数据库服务器的旧设置可以毫无问题地处理所有流量,但限制了我们的新开发能力。它只有 4GB 的 RAM 和一个旧的 2GHz 双核处理器。我们的新服务器具有 32GB 内存和四核 3.4GHz Xeon。当一切正常时,硬件会将旧东西从水中吹出。页面加载速度更快,查询运行速度更快等。

我唯一能想到的是,由于 DB 和 Web 位于不同的 VM 上但共享相同的虚拟网络,因此适配器上的流量基本上翻了一番,或者,我们的 Hyper-V 网络的方式可能存在问题配置。

有一个设置为外部的共享虚拟交换机。我们使用硬件防火墙来阻止通往外界的端口。我已经包含了网络适配器和当前虚拟交换机设置的屏幕截图。

我不确定应该在主机和虚拟机上启用/禁用哪些属性。这台机器有 2 个网卡,但目前所有东西都设置在一个端口上。建议将一个端口用于管理员,另一个用于虚拟交换机,我确信当我们登录到盒子时会提高性能,但我不确定是否可以解决当前的问题。

任何人都可以就主机和虚拟机上的网卡属性提供指导,或指导我进行调整以提高网络性能吗?

网络适​​配器

在此处输入图片说明

Bar*_*cki 1

我建议从 powershell 而不是 GUI 设置所有 Hyper-V 主机网络。GUI 并没有提供您想要的那么多控制。

  1. 清除您创建的所有 VMswitches / VMAdapters。物理网络适配器应该是 Hyper-V 主机上 ipconfig 中唯一可见的适配器(隧道适配器除外)。
  2. 将物理适配器重命名为例如“Gi1”和“Gi2”(稍后看起来会更清楚什么是什么)
    • 检查卡名称 - 它可能类似于“Ethernet 2”:Get-NetAdapter
    • 重命名:Rename-NetAdapter "Old name1" "Gi1"
    • 重命名第二个:Rename-NetAdapter "Old name2" "Gi2"
  3. 创建一个独立于交换机的团队并检查它

    • New-NetLbfoTeam -名称 Team1 -TeamMembers Gi1,Gi2
    • 检查它 - 默认值应该设置一个独立的团队。
     PS C:\> Get-NetLbfoTeam Team1
    
     Name                   : Team1  
     Members                : {Gi2, Gi1}  
     TeamNics               : Team1  
     TeamingMode            : SwitchIndependent  
     LoadBalancingAlgorithm : TransportPorts  
     Status                 : Up  
    
    Run Code Online (Sandbox Code Playgroud)
    • 您不应再在 ipconfig 中看到 Gi1、Gi2 - 仅将 Team1 作为 IP 接口。
  4. 创建一个 VMswitch,并连接到 Team1。
    • 新-VMSwitch -名称 VMSwitch1 -NetAdapterName Team1
    • 该步骤之后检查 ipconfig。您不应再将 Team1 视为 Hyper-V 主机的 IP 接口,而将 VMswitch1 视为该接口。
  5. 创建用于管理的虚拟网络适配器并将其连接到Vmswitch1
    • 添加-VMNetworkAdapter -ManagementOS -VMNetworkAdapterName 管理 -SwitchName VMswitch1
    • 您现在应该在 ipconfig 中看到“以太网适配器 vEthernet(管理):...”
  6. 将您的虚拟机网络适配器连接到 VMSwitch1。这可以通过 GUI 来完成。
  7. 最终效果一目了然:
    最终效果
  8. 更多调整 - 但您可能应该将所有内容保留为默认值:
    • 看看 Get-NetAdapterAdvancedProperty
  9. 或者也许这不是性能的网络问题?
    • 您的数据库使用的 VHD/VHDX 类型是什么?动态的 ?固定的 ?
    • 集成工具已安装/完全更新?