Poor network performance on hyper-v vms in windows server 2019

5 лучших программ резервного копирования для hyper-v [руководство по 2020]

Введение

История релиза Hyper-V Server 2019 получилась необычной и даже какой-то драматичной, как и все последние релизы от компании Microsoft. Поясню для тех, кто не в курсе. Сам 2019-й сервер зарелизился в октябре 2018 года с какими-то критичными багами. Подробности проблем не помню, но в итоге релиз отозвали. Через месяц зарелизили еще раз и вроде как успешно.

С сайта микрософт можно было скачать все версии 2019-го сервера, кроме бесплатной версии Hyper-V. Я следил за темой и все ждал, когда же появится iso образ с Hyper-V Server 2019, а его все не было и не было. Причем в Evaluation Center стояла пометка, что релиз пока откладывается, ждите, скоро все будет.

И вот дождались. 15-го июня я увидел новость о том, что Hyper-V Server 2019 доступен для загрузки в Evaluation Center. Зашел, проверил. В самом деле это так. Появился iso образ, который можно свободно загрузить, что я успешно сделал.

К слову, образ hyper-v 2019 гулял в сети, так как после первого релиза еще в октябре 2018, он был доступен и многие его скачали. Но там были какие-то баги. Из того, что я прочитал, люди указывали на то, что не работал rdp доступ к гипервизору. Не смог это проверить, так как у меня просто не проходила установка на сервер. Он то ли не устанавливался вовсе, выдавая ошибку в процессе установки, то ли потом в синий экран падал. Точно не помню. Я не стал разбираться, а поставил предыдущую версию. Как оказалось, не зря.

Поддержка собственных дисков размером 4 КБ

Hyper-V в Windows Server 2012 R2 и выше поддерживает собственные диски размером 4 КБ. Но по-прежнему можно хранить VHD-диск на собственном диске размером 4 КБ. Это делается путем реализации программного алгоритма RMW на уровне стека виртуального хранилища, который преобразует 512-байтовые запросы доступа и обновления в соответствующие 4 КБ доступа и обновления.

Так как VHD-файл может предоставлять себя только в виде дисков логического сектора размером 512 байт, весьма вероятно, что будут приложения, которые будут выдавать 512-байтовые запросы ввода-вывода. В таких случаях уровень RMW будет удовлетворять эти запросы и вызывать снижение производительности. Это также верно для диска, отформатированного с помощью VHDX с размером логического сектора 512 байт.

VHDX-файл можно настроить для предоставления в качестве диска размера логического сектора размером 4 КБ. Это будет оптимальной конфигурацией для производительности, если диск размещен на собственном физическом устройстве размером 4 КБ. Следует внимательно следить за тем, чтобы гость и приложение, использующее виртуальный диск, были подкреплены размером логического сектора 4 КБ. Форматирование VHDX будет правильно работать на устройстве размером 4 КБ с логическим сектором.

A second case

The blog reader pointed out, that in mid-January 2020 another affected person documented this problem on Spiceworks. There was a lot of testing and documentation published. The following figure shows a protocol of the network throughput. 

Advertising

(Source: Spicework)

Then the person concerned came up with the glorious idea of disabling Virtual Receive Side Scaling (vRSS) on the server and on the client. Then he deactivated Receive Segment Coalescing (RSC) on the Windows Server 202012. And suddenly he got the expected values for network throughput between Hyper-V guests and the host. .

In further steps he then came up with how to optimize network throughput in Windows Server 2019 (and Windows 10) as a Hyper-V host. The problem is due to a significant change in the TCP stack by Microsoft (keywords: CongestionProvider, CUBIC, see also with PowerShell output). 

Создание внешнего коммутатора vSwitch

Мастер создания предлагает вам выбор нескольких настроек при создании внешнего vSwitch.

  1. Можно выбрать нужный физический сетевой адаптер, если подходящих vSwitch у вас несколько.
  2. Опция Allow management OS to share this network adapter(Разрешить управляющей операционной системе создавать общий доступ к этому сетевому адаптеру) по умолчанию включена. Отключение этой опции лишит ОС гипервизора возможности сетевого подключения. Будьте осторожнее при создании vSwitch удаленно. Это может полностью разорвать соединение с удаленным хостом.
  3. SR-IOV(Single Root I/O Virtualization) (Виртуализация ввода-вывода с единым корнем) позволяет подготовить такую конфигурацию, которая может увеличить пропускную способность сети путем перенаправления трафика напрямую в ВМ в обход коммутатора vSwitch. Информация о включении опции SR-IOV доступна здесь. Необходимо учесть несколько аппаратных и системных требований: совместимость BIOS, поддержка SLAT процессором и сетевой картой SR-IOV PCIe в вашей системе. Убедитесь заранее, что вы знаете, что делаете.ПРИМЕЧАНИЕ: Вы не сможете включить опцию SR-IOV для существующего коммутатора vSwitch.
  4. VLAN ID: Эта настройка разрешает создание виртуальной локальной сети (VLAN) в управляющей ОС. Верно это и для физической среды, настройка позволяет выделить трафик гипервизора путем предоставления отдельных широковещательных доменов внутри единой сети.

Рис. 3. Создание внешнего коммутатора vSwitch

Нажав кнопку Apply (Применить), будьте готовы потерять возможность физического сетевого подключения на время, пока среда Hyper-V выключит физический сетевой адаптер, настроит коммутатор vSwitch и заново их включит:

Рис. 4. Предупреждение при создании внешнего vSwitch

Процедура создания внутреннего и частного коммутатора vSwitch аналогична, хотя некоторые настройки, такие как общий доступ к сети и SR-IOV будут недоступны и выделены серым цветом, что связано с самим характером этих коммутаторов.

Рис. 5. Создание внутреннего коммутатора vSwitch

ПРИМЕЧАНИЕ: Возможна автоматизация процедуры с помощью скрипта PowerShell, как и в случае других административных операций Windows 2012 R2. Полный синтаксис скрипта нуждается в проверке на сайте TechNet, но несколько примеров скриптов PS приведено ниже.

ПОДСКАЗКА: Не забудьте запустить консоль PowerShell с повышенными правами.

Следующая команда создает внешний коммутатор vSwitch для сетевого адаптера “Ethernet”:

Следующая команда создает внутренний коммутатор vSwitch:

Тип коммутатора vSwitch определяется параметром “-SwitchType «Internal/Private» или в случае внешнего vSwitch одним из следующих параметров: “-NetAdapterName «имя физического сетевого адаптера» / -NetAdapterInterfaceDescription «описание физического сетевого адаптера»”.

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

Рис. 6. Мастер создания новой ВМ

ПОДСКАЗКА: Проверьте, к какому из всех vSwitch подключены ваши ВМ, с помощью команды:

Get-VMNetworkAdapter -VMName *

Optimize TCP Settings for Hyper-V on Windows Server 2019

Save the current TCP settings on your Hyper-V host and apply new settings that will make TCP settings in Windows Server 2019 almost similar to those of Windows Server 2016.

Save the current settings:

By default in Windows Server 2019 and Windows 10 1709+, the CUBIC implementation of TCP is used. This algorithm is optimized for high-speed networks with high latency (it is also used by default in Linux kernel 2.6.19 and newer).

Apply the following settings only in Windows Server 2019 or Hyper-V 2019.

Apply new NetTCP settings for LAN:

For WAN:

Disable network RSS and RSC network optimization methods at the TCP stack level:

or on the NIC level:

Disable vRSS for all VMs:

Disable Large Send Offload (LSO) on NICs:

You can also disable these options in the Advanced tab of your network adapter properties:

  • Recv Segment Coalescing (IPv4/IPv6) = Disabled
  • Large Send Offload V2 (IPv4/IPv6) = Disabled

These TCP stack settings will make Windows Server 2019 network protocol settings similar to those of previous Windows Server versions.

Влияние размера сектора

Большая часть отрасли программного обеспечения зависит от секторов дисков размером 512 байт, но стандарт переходит на 4 КБ секторов дисков. Чтобы уменьшить проблемы совместимости, которые могут возникнуть из-за изменения размера сектора, поставщики жестких дисков вводят переходный размер, называемый 512 дисками эмуляции (512e).

Эти диски эмуляции предоставляют некоторые преимущества, предоставляемые собственными дисками объемом 4 КБ, например улучшенную эффективность форматирования и улучшенную схему кодов исправления ошибок (ECC). Они имеют меньше проблем совместимости, которые могут возникнуть при предоставлении размера сектора 4 КБ в интерфейсе диска.

Настройка NIC Teaming в Windows Server 2019

Вы можете настроить NIC Teaming в Windows Server начиная с версии 2012. Рассмотрим, как объединить несколько сетевых адаптеров в Windows Server 2019 в одну группу NIC Teaming. Режим NIC Teaming по умолчанию отключен в Windows Server.

Чтобы включить его, откройте консоль Server Manager, выберите локальный сервер (Local Server) и в его свойствах выберите пункт “NIC Teaming: Disabled“.

В появившемся окне в левой нижней панели выберите пункт Tasks -> New Team (Создать группу).

Далее нужно указать имя группы (Team Name) и выбрать сетевые адаптеры, которые будут входить в эту группу.

В Windows Server 2019 в одну NIC Teaming групп можно объединить до 32 физических сетевых адаптеров, главное, чтобы они работали на одной скорости.

Ниже можно настроить специальные параметры группы. От данных параметров зависит правила и эффективность NIC Teaming. Рассмотрим эти настройки подробнее.

Режим поддержки групп (Teaming Mode). Данный параметр определяет способ взаимодействия группы с сетевым оборудованием (коммутатором)

  • Static Teaming (IEEE 802.3ad)— статический режим работы с зависимостью от сетевого оборудования. Все адаптеры группы должны быть подключены к одному коммутатору, Ethernet порты которого настроены на использование статической агрегации каналов (требуется настройка на коммутаторе);
  • Switch Independent (режим по-умолчанию) – группа работает независимо от коммутатора, для реализации не нужно дополнительно настраивать сетевое оборудование. В этом режиме разные сетевые адаптеры группы можно подключить к разным коммутаторам для повышения отказоустойчивости (защита от сбоев в коммутаторах);
  • LACP (Link Aggregation Control Protocol, LACP, IEEE 802.1ax) – режим также зависит от сетевого оборудования. Нужно включить и настроить на коммутаторе динамическую агрегацию каналов по протоколу LACP.

Режим балансировки нагрузки (Load Balancing mode) – задает как распределяется сетевой трафик по NIC в группе.

  • Address Hash — для каждого из адаптеров вычисляется специальный хэш (на основании MAC или IP-адресов отправителя и получателя) и привязывается определенному физическому адаптеру. Весь трафик от данного отправителя будет идти через этот NIC;
  • Hyper-V Port — режим можно использовать для сервера с ролью Hyper-V. Позволяет привязать конкретный адаптер группу NIC teaming к конкретному порту на виртуальном коммутаторе Hyper-V;
  • Dynamic – опция по умолчанию, совмещает оба типа балансировки нагрузки.

Один из адаптеров в группе можно назначить резервным (Standby adapter). В обычном режиме работы данная NIC не используется для передачи трафика. При неполадке на любом другом адаптере в группе NIC Teaming, он тут-же занимает его место. В общем случае и без данной функции при выходе из строя любой сетевой карты, не будет простоя сервиса, т.к. ее нагрузка автоматически распределится между оставшимися картами в группе.

Выберите нужные параметры, нажмите ОК и новая группа Nic Teaming будет создана.

Откройте список сетевых подключения в панели управления Windows. Убедитесь, что в Windows Server появился новый сетевой адаптер Microsoft Network Adapter Multiplexor Driver (его иконка немного отличается). Это и есть виртуальный адаптер группы NIC Teaming.

Дальнейшая настройка параметров сетевой карты (протоколы, IPv4/v6 адрес) осуществляется теперь в свойствах этого адаптера.

У всех остальных сетевых адаптеров, которые вы добавили в группу NIC Teaming уже не будет собственных IP адресов.

При удалении группы NIC Teaming предыдущие настройки сетевых адаптеров восстанавливаются.

В дальнейшем вы можете добавить или удалить сетевые адаптеры в группу NIC Teaming.

Вы можете использовать группу NIC Teaming для настройки нескольких VLAN интерфейсов в Windows Server. Для этого можно даже создать группу NIC Teaming из одного сетевого адаптера.

Настройка сети через графический интерфейс

Первый метод, можно назвать классическим, так как он самый простой и подойдет для большинства администратором. Тут мы с вами будем использовать оснастку «Центр управления сетями и общим доступом», настроим статический IP-адрес, маску сети, основной шлюз и DNS-сервера через графический интерфейс. У меня есть сервер RDCB01, для которого я выделил IP-адрес 192.168.31.10. На текущий момент айпишник прилетает от DHCP-сервера. Проверим текущие параметры интерфейса через командную строку, в которой нужно написать команду:

Чтобы открыть «Центр управления сетями и общим доступом» со списком сетевых интерфейсов, мы воспользуемся быстрыми командами Windows. Открываем окно выполнить и пишем в нем:

Находим нужный сетевой интерфейс, в моем примере, это единственный Ethernet0 и заходим в его свойства.

Далее находим пункт «IP версии 4 (TCP/Ipv4)»и открываем его свойства, далее мы видим, что выделение сетевых настроек производится в автоматическом режиме, через службу DHCP.

Чтобы вбить статические настройки выбираем пункт «Использовать следующий IP-адрес» и по порядку задаем настройки, подготовленные заранее. В моем случае

  • IP-адрес 192.168.31.10
  • Маска подсети 255.255.255.0
  • Основной шлюз 192.168.31.254
  • Предпочитаемый DNS-сервер 192.168.31.1
  • Альтернативный DNS-сервер 192.168.31.2

Сохраняем все настройки и проверяем через Ipconfig /all, что все видится. Так же можете попробовать пропинговать ваш основной шлюз или DNS-сервер. На этом графическая настройка сети в Windows Server 2019 окончена.

Создание и настройка виртуальной машины

Нажмите Win+R, введите virtmgmt.msc и нажмите Enter, чтобы открыть диспетчер Hyper-V. Из меню Действия выберите Создать – Виртуальная машина.

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

Стандартное расположение для виртуальных машин – папка ProgramData, но его можно изменить.

Если у вас уже есть виртуальный диск в формате VHD, можете подключить его. Я, кстати, так и сделал, воспользовавшись диском, созданным ранее для Virtual Box.

Когда вы указываете имеющийся VHD, из мастера пропадает шаг, на котором задается носитель для установки системы.

Однако путь к ISO можно указать и позже, открыв параметры виртуальной машины в главном окне диспетчера Hyper-V.

Настройка сети через Windows Admin Center

С выходом Windows Server 2019 Microsoft наконец-то создает правильный инструмент для системного администратора, я говорю, о Windows Admin Center. Я вам уже подробно рассказывал, как устанавливать Windows Admin Center и его назначение. Если в двух словах, то это крутая веб консоль позволяющая управлять серверами и рабочими станциями с любого устройства, через ваш браузер. Давайте я покажу, как вы легко можете произвести установку статического Ip-адреса, маски, основного шлюза и DNS на удаленном сервере, через WAC. Напоминаю, что делать я это буду для сервера RDCB01. Давайте его пропингуем и выясним текущий адрес. Я вижу ip-адрес 192.168.31.56.

Открываем в браузере Windows Admin Center и производим подключение к нужному серверу.

Далее находим раздел «Сеть», тут у вас будет список всех ваших сетевых интерфейсов. Выбираем нужный, тут чем хорошо вы сразу видите много сводной информации в нижней части.

Для настройки сети нажмите кнопку «Параметры». Как видим стоит автоматическое получение настроек.

Активируем пункт «Использовать следующий IP-адрес» и задаем нужные сетевые настройки, после чего сохраняем изменения.

Подтверждаем применение настроек.

В правом верхнем углу вам покажут, что началось задание по обновлению.

Проверяем, перед этим единственное нужно очистить кэш-DNS. В итоге я вижу, что сервер пингуется по новому адресу.

В итоге удаленная настройка сети на сервере Windows Server 2019 выполнена.

Поддерживаемые версии настройки виртуальных машин

С помощью командлета PowerShell Get-вмхостсуппортедверсион можно увидеть, какие версии конфигурации виртуальных машин поддерживает узел Hyper-V. При создании виртуальной машины она создается с использованием версии конфигурации по умолчанию. Чтобы узнать, какие версии конфигурации виртуальной машины поддерживает узел Hyper-V, и каковы значения по умолчанию, выполните следующую команду.

если необходимо создать виртуальную машину, которую можно переместить на узел Hyper-V, на котором работает более старая версия Windows, используйте командлет New-VM с параметром. Например, чтобы создать виртуальную машину с именем «WindowsCV5» с версией конфигурации 5,0, выполните следующую команду:

Примечание

Импортировать виртуальную машину можно только в том случае, если узел Hyper-V поддерживает эту версию конфигурации. Как правило, это означает, что вы можете импортировать виртуальную машину на узел Hyper-V под управлением более новой версии Hyper-V, но вы не можете импортировать виртуальную машину, созданную в более новой версии Hyper-v, в более старую версию Hyper-V.

Если версия конфигурации виртуальной машины не указана как поддерживаемая для ОС узла Hyper-V в приведенной ниже таблице, необходимо обновить версию конфигурации виртуальной машины до более новой версии или создать новую виртуальную машину того же поколения, используя существующие виртуальные жесткие диски, прежде чем можно будет запустить ВИРТУАЛЬную машину.

Поддерживаемые версии конфигурации виртуальных машин для долгосрочных узлов обслуживания

В следующей таблице перечислены версии конфигурации виртуальных машин, в которых используется долгосрочная версия обслуживания Windows.

Версия Windows для узла Hyper-V 10.0 9.3 9.2 9.1 9.0 8.3 8.2 8.1 8.0 7.1 7.0 6.2 5,0
Windows Server 2022
Windows 10 Корпоративная LTSC 2021
Windows Server 2019
Windows 10 Корпоративная LTSC 2019
Windows Server 2016
Windows 10 Корпоративная 2016 с долгосрочным обслуживанием
Windows 10 Корпоративная 2015 с долгосрочным обслуживанием
Windows Server 2012 R2
Windows 8.1

Поддерживаемые версии конфигурации виртуальных машин для узлов каналов Semi-Annual

В следующей таблице перечислены версии конфигурации виртуальной машины для узлов, на которых запущена версия Semi-Annual канала Windows. чтобы получить дополнительные сведения о версиях Semi-Annual Channel Windows, посетите следующие страницы Windows Server и .

Версия Windows для узла Hyper-V 10.0 9.3 9.2 9.1 9.0 8.3 8.2 8.1 8.0 7.1 7.0 6.2 5,0
Windows 11 (версия 21H2)
Windows 10 обновления за ноябрь 2021 (версия 21H2)
Windows 10 обновление 2021 (версия 21H1)
Windows Server версии 20H2
Windows 10 обновление 2020 октября (версия 20H2)
Windows Server версии 2004
обновление Windows 10 2020 мая (версия 2004)
Windows Server, версия 1909
Windows 10 обновления за ноябрь 2019 (версия 1909)
Windows Server версии 1903
обновление Windows 10 за май 2019 г. (версия 1903)
Windows Server, версия 1809
обновлении Windows 10 за октябрь 2018 г. (версия 1809);
Windows Server версии 1803
Windows 10, обновление за апрель 2018 г. (версия 1803)
Windows 10 Fall Creators Update (версия 1709)
Обновление Windows 10 Creators Update (версия 1703)
Юбилейное обновление Windows 10 Anniversary Update (версия 1607)

Основы работы с сетями Hyper-V

Основная сеть в Hyper-V довольно проста. В ней используются две части — виртуальный коммутатор и виртуальный сетевой адаптер. Для установки сети для виртуальной машины потребуется по крайней мере один из них. Виртуальный коммутатор подключается к любой сети на основе Ethernet. Виртуальный сетевой адаптер подключается к порту виртуального коммутатора, что позволяет виртуальной машине использовать сеть.

Самый простой способ установить базовую сеть — создать виртуальный коммутатор при установке Hyper-V. Затем при создании виртуальной машины ее можно подключить к коммутатору. При подключении к коммутатору на виртуальной машине автоматически добавляется виртуальный сетевой адаптер. Инструкции см. в статье Создание виртуального коммутатора для виртуальных машин Hyper-V.

Для обработки различных типов сетей можно добавить виртуальные коммутаторы и виртуальные сетевые адаптеры. Все коммутаторы являются частью узла Hyper-V, но каждый виртуальный сетевой адаптер принадлежит только одной виртуальной машине.

Виртуальный коммутатор — это программный коммутатор уровня 2 сети Ethernet на основе программы. Он предоставляет встроенные функции для мониторинга, управления и сегментирования трафика, а также для обеспечения безопасности и диагностики. Можно добавить в набор встроенных функций, установив подключаемые модули, также называемые расширениями. Они доступны из независимых поставщиков программного обеспечения. Дополнительные сведения о коммутаторе и расширениях см. в статье виртуальный коммутатор Hyper-V.

Параметры коммутатора и сетевого адаптера

Hyper-V предлагает три типа виртуальных коммутаторов и два типа виртуальных сетевых адаптера. Вы решите выбрать, какой из них вам нужен при создании. вы можете использовать диспетчер hyper-v или модуль hyper-v для Windows PowerShell создания виртуальных коммутаторов и виртуальных сетевых адаптеров и управления ими. Некоторые расширенные сетевые возможности, такие как расширенные списки управления доступом к портам (ACL), можно управлять только с помощью командлетов в модуле Hyper-V.

После создания виртуального коммутатора или виртуального сетевого адаптера можно внести некоторые изменения. Например, можно изменить существующий коммутатор на другой тип, но это повлияет на сетевые возможности всех виртуальных машин, подключенных к этому коммутатору. Таким образом, вы, вероятно, не будете делать этого, пока не поймете ошибку или не нужно проверять что-либо. В качестве другого примера можно подключить виртуальный сетевой адаптер к другому коммутатору, который вы можете сделать, если хотите подключиться к другой сети. Однако виртуальный сетевой адаптер нельзя изменить с одного типа на другой. Вместо изменения типа необходимо добавить другой виртуальный сетевой адаптер и выбрать соответствующий тип.

Типы виртуальных коммутаторов:

  • Внешний виртуальный коммутатор — подключается к проводных, физическим сетям путем привязки к физическому сетевому адаптеру.

  • Внутренний виртуальный коммутатор — подключается к сети, которая может использоваться только виртуальными машинами, работающими на узле с виртуальным коммутатором, а также между узлом и виртуальными машинами.

  • Частный виртуальный коммутатор — подключается к сети, которая может использоваться только виртуальными машинами, работающими на узле, на котором установлен виртуальный коммутатор, но не предоставляет сети между узлом и виртуальными машинами.

Типы виртуальных сетевых адаптеров:

Сетевой адаптер, относящийся к Hyper-V , доступен для виртуальных машин поколения 1 и 2. Он разработан специально для Hyper-V и требует наличия драйвера, который входит в службы интеграции Hyper-V. Этот тип сетевого адаптера быстрее и является рекомендуемым вариантом, если не требуется загрузка в сеть или не выполняется неподдерживаемая гостевая операционная система. Необходимый драйвер предоставляется только для поддерживаемых гостевых операционных систем

Обратите внимание, что в диспетчере Hyper-V и командлетах Networking этот тип просто называется сетевым адаптером. Устаревший сетевой адаптер — доступен только в виртуальных машинах поколения 1

эмулирует адаптер PCI Fast Ethernet на основе Intel 21140 и может использоваться для загрузки в сеть, чтобы можно было установить операционную систему из службы, например Windows служб развертывания.

Устаревший сетевой адаптер — доступен только в виртуальных машинах поколения 1. эмулирует адаптер PCI Fast Ethernet на основе Intel 21140 и может использоваться для загрузки в сеть, чтобы можно было установить операционную систему из службы, например Windows служб развертывания.

Понравилась статья? Поделиться с друзьями:
Быть в курсе нового
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: