Назад | Перейти на главную страницу

Правильная настройка сети Hyper-V для Windows Server 2012?

Мы только что разместили наше первое веб-решение на базе Hyper-V около месяца назад (диаграмма ниже). У нас периодически возникают проблемы со связью между виртуальными машинами в периоды повышенного трафика, например, во время сканирования Bing / Google / Baidu / McAfee Secure и т. Д. Проблема длится пару минут, и это не полный сбой; некоторые запросы работают отлично, в то время как другие приводят к ошибкам. Я просмотрел системные журналы на виртуальных машинах и хост-системе, но ничего не указывало на сбой (кроме некоторых ошибок ASP.net ODBC на веб-виртуальной машине, потому что он не может достичь хоста базы данных).

Наша старая установка с одним сервером базы данных и веб-сервером Windows Server 2k3 8-летней давности обрабатывала весь трафик без проблем, но ограничивала наши новые возможности разработки. У него было всего 4 ГБ оперативной памяти и старый двухъядерный процессор 2 ГГц. Наш новый сервер имеет 32 ГБ оперативной памяти и четырехъядерный процессор Xeon с тактовой частотой 3,4 ГГц. Когда все работает, железо выдувает из воды старые вещи. Страницы загружаются быстрее, запросы выполняются быстрее и т. Д.

Единственное, что я могу придумать, это то, что трафик на адаптере по существу удваивается, потому что БД и Интернет находятся на отдельных виртуальных машинах, но используют одну и ту же виртуальную сеть, или может быть проблема с тем, как устроена наша сеть Hyper-V. настроен.

Существует один общий виртуальный коммутатор, настроенный как внешний. Мы используем аппаратный брандмауэр, чтобы блокировать порты для внешнего мира. Я включил скриншоты сетевых адаптеров и текущей настройки виртуального коммутатора.

Я не уверен, какие свойства следует включать / отключать на хосте и виртуальных машинах. В машине 2 ника, но на данный момент все настроено на один порт. Рекомендуется использовать один порт для администратора, а другой для виртуального коммутатора, что, я уверен, повысит производительность, когда мы войдем в ящики, но я не уверен, что это решит текущую проблему.

Может ли кто-нибудь дать рекомендации относительно того, какие свойства Nic должны быть на хосте и виртуальных машинах, или посоветовать мне настройки для повышения производительности сети?

В дополнение к ответу Бартломея я также рекомендовал бы изменить режим балансировки нагрузки Team на порт Hyper-V и установить оба адаптера в команде в активный режим:

Таким образом, вы активно используете оба адаптера в команде.

Я бы предложил настроить всю сеть хостов Hyper-V из PowerShell, а не из графического интерфейса. Графический интерфейс не дает столько контроля, сколько хотелось бы.

  1. очистите все созданные вами коммутаторы виртуальных машин / VMAdapters. Физические сетевые адаптеры должны быть единственными, видимыми в ipconfig на хосте Hyper-V (кроме адаптеров для туннелей).
  2. переименуйте физические адаптеры, например, в «Gi1» и «Gi2» (позже будет более понятно, что есть что)
    • проверьте имя карты - это может быть что-то вроде "Ethernet 2": Get-NetAdapter
    • переименуйте его: Rename-NetAdapter "Old name1" "Gi1"
    • переименуйте вторую: Rename-NetAdapter "Old name2" "Gi2"
  3. создать команду, независимую от коммутатора, и проверить ее

    • New-NetLbfoTeam -Name Team1 -TeamMembers Gi1, Gi2
    • проверьте это - по умолчанию следует установить switchindependent Team.
     PS C:\> Get-NetLbfoTeam Team1
    
     Name                   : Team1  
     Members                : {Gi2, Gi1}  
     TeamNics               : Team1  
     TeamingMode            : SwitchIndependent  
     LoadBalancingAlgorithm : TransportPorts  
     Status                 : Up  
    
    • Вы больше не должны видеть Gi1, Gi2 в ipconfig - только Team1 в качестве IP-интерфейса.
  4. создать виртуальный коммутатор с подключенной к нему Team1.
    • Новый-VMSwitch -Name VMSwitch1 -NetAdapterName Team1
    • после этого шага проверьте ipconfig. Вы больше не должны видеть Team1, а VMswitch1 как IP-интерфейс хоста Hyper-V.
  5. создать виртуальный сетевой адаптер для управления и подключить его к Vmswitch1
    • Добавить-VMNetworkAdapter -ManagementOS -VMNetworkAdapterName management -SwitchName VMswitch1
    • Теперь вы должны увидеть в ipconfig «Ethernet-адаптер vEthernet (управление): ...»
  6. подключите сетевые адаптеры ваших виртуальных машин к VMSwitch1. Это можно сделать из графического интерфейса.
  7. Конечный эффект очевиден:
  8. Дополнительные настройки - но вам, вероятно, следует оставить все по умолчанию:
    • взгляните на Get-NetAdapterAdvancedProperty
  9. А может это не проблема сети с производительностью?
    • какой у вас тип VHD / VHDX, используемый для базы данных? Динамический? Исправлена ​​?
    • инструменты интеграции установлены / полностью обновлены?