Ошибки применения QoS на виртуальном коммутаторе SET: решение
Симптомы сбоев политик QoS на коммутаторах SET
При настройке минимального гарантированного резервирования полосы пропускания (Minimum Bandwidth / QoS) на виртуальном коммутаторе Hyper-V SET командлеты PowerShell возвращают ошибку: Cannot set bandwidth reservation mode when QoS is enabled in Weight mode или Event ID 230: Failed to apply QoS policy on virtual switch. Виртуальные адаптеры хоста не получают гарантированную пропускную способность.
| Симптом | Где регистрируется | Причина |
|---|---|---|
| Сбой командлета Set-VMSwitch | Консоль PowerShell | Несовместимость выбранного режима BandwidthReservationMode (Absolute vs Weight) |
| Event ID 230 Hyper-V-VmSwitch | Журнал Hyper-V-VmSwitch | Нехватка невыделенной полосы пропускания при попытке зарезервировать суммарно >100% |
| Пакеты QoS не тегируются | Сетевой анализатор | Отсутствие поддержки DCB/802.1p на уровне физического адаптера хоста |
Пошаговая настройка QoS на виртуальном свитче SET
- Проверьте текущую конфигурацию виртуального свитча и режим QoS:
Get-VMSwitch | Select-Object Name, SwitchType, BandwidthReservationMode, NetAdapterInterfaceDescription - Создайте виртуальный свитч SET с правильным режимом весов (Weight): режим
Weightпозволяет задавать проценты (от 1 до 100):New-VMSwitch -Name "SET-Switch" -NetAdapterName "NIC1","NIC2" -EnableEmbeddedTeaming $true -EnablePacketDirect $true -BandwidthReservationMode Weight - Настройте минимальное резервирование полосы для сетевых адаптеров хоста (vNIC):
Set-VMNetworkAdapter -ManagementOS -Name "SMB_Traffic_1" -MinimumBandwidthWeight 40; Set-VMNetworkAdapter -ManagementOS -Name "Cluster_Traffic" -MinimumBandwidthWeight 20; Set-VMNetworkAdapter -ManagementOS -Name "Management" -MinimumBandwidthWeight 10 - Настройте резервирование по умолчанию для виртуальных машин:
Set-VMSwitch -Name "SET-Switch" -DefaultFlowMinimumBandwidthWeight 30
Важно: Режим BandwidthReservationMode нельзя изменить после создания виртуального коммутатора. Если режим был выбран неверно (например, Absolute вместо Weight), виртуальный коммутатор придется пересоздать.
Частые вопросы (FAQ)
В чем разница между режимами Absolute и Weight в QoS Hyper-V?
Absolute задает фиксированную скорость в битах/сек (требует точного указания). Weight распределяет полосу в относительных весах от 1 до 100 между всеми адаптерами.
Что произойдет, если сумма весов MinimumBandwidthWeight превысит 100?
PowerShell заблокирует выполнение команды и вернет ошибку превышения лимита доступной полосы пропускания.
Что такое DefaultFlowMinimumBandwidthWeight?
Это вес гарантированной полосы пропускания, который автоматически назначается всем виртуальным машинам, не имеющим индивидуальных правил QoS.
Как проверить фактическое распределение очередей QoS для ВМ?
Используйте командлет Get-VMNetworkAdapter -All | Select-Object VMName, Name, MinimumBandwidthWeight.