Идентификатор события 106, когда виртуальный коммутатор Hyper-V привязан к команде LBFO

Эта статья поможет устранить событие с идентификатором 106, когда виртуальный коммутатор Hyper-V привязан к команде LBFO.

Применяется к: Windows Server 2012 R2
Исходный номер базы знаний: 2974384

Симптомы

Рассмотрим следующий сценарий.

  • У вас есть компьютер на основе Windows Server 2012 или Windows Server 2012 R2, настроенный вместе с одной или несколькими командами балансировки нагрузки и отработки отказа (LBFO).
  • Виртуальный коммутатор Hyper-V привязан к одной из команд LBFO.

В этом сценарии одно из следующих событий периодически регистрируется.

Причина

Если ошибка 106 говорит: "Причина: процессоры перекрываются при настройке LBFO с режимом суммы очередей", необходимо использовать команду Set-NetAdapterVmq Windows PowerShell, чтобы настроить каждый сетевой адаптер в вашей команде на использование разных процессоров. (Так как группирование LBFO настроено для суммы очередей, сетевые адаптеры в команде должны использовать наборы процессоров без переключения.)

Если ошибка 106 говорит: "Причина: наборы процессоров не идентичны при настройке LBFO в режиме минимальной очереди", необходимо использовать команду Set-NetAdapterVmq Windows PowerShell, чтобы настроить каждый сетевой адаптер в вашей команде для использования одних и того же процессора. (Так как группирование LBFO настроено в режиме минимальной очереди, сетевые адаптеры в команде должны использовать перекрывающиеся наборы процессоров.)

Разрешение

Если ошибка 106 говорит: "Причина: процессор устанавливает перекрытие при настройке LBFO в режиме суммы очередей", можно использовать следующий пример Windows PowerShell команд, чтобы разделить процессоры, чтобы каждый сетевой адаптер использовал разные процессоры для очереди виртуальных машин (VMQ). Кроме того, необходимо установить исправление в статье базы знаний 3031598 , чтобы устранить другие известные проблемы после внесения этих изменений в конфигурацию.

Это примеры команд. Параметры BaseProcessorNumber и MaxProcessors можно изменять в зависимости от количества процессоров на сервере и процессоров, которые вы не хотите использовать для VMQ.

Set-NetAdapterVmq -Name NIC1 -BaseProcessorNumber 2 -MaxProcessors 2

Примечание.

Этот сетевой адаптер будет использовать процессоры 2 и 3 для VMQ.

Set-NetAdapterVmq -Name NIC2 -BaseProcessorNumber 4 -MaxProcessors 2

Примечание.

Этот сетевой адаптер будет использовать процессоры 4 и 5 для VMQ.

Если на сервере включен процессор Hyper Threading, необходимо изменить способ установки параметров BaseProcessorNumber и MaxProcessors, чтобы исправить ошибку 106 в режиме суммы очередей.

Если вы не уверены, включена ли hyper Threading на сервере, один из простых способов определить, что это — запустить командлет Get-NetAdapterRSS Windows PowerShell, а затем просмотреть строку вывода для RssProcessorArray. Если он говорит 0:0/0 0:1/0 0:2/0....., Hyper Threading имеет значение OFF. Если указано 0:0/0 0:2/0 0:4/0..., то Hyper Threading включено. RSS и VMQ используют основные процессоры только в том случае, если Hyper Threading включено, поэтому это означает, что процессоры с четным номером.

Таким образом, если вы задаете ранее упомянутые команды на Hyper-Threaded сервере, можно задать только четное число BaseProcessorNumber. Кроме того, для MaxProcessors необходимо задать количество используемых процессоров, которое может использовать VMQ.

Например, если у вас есть (два) шестиядерных процессора и Hyper Threading, вы увидите 24 процессора в средствах Windows, которые отображают процессоры, такие как диспетчер задач. VMQ может использовать только 12 из них, так как использует только четные процессоры. Чтобы разделить эти процессоры между двумя сетевыми адаптерами и исправить ошибку 106, используйте следующие команды, чтобы настроить каждый сетевой адаптер на использование разных процессоров для VMQ:
Set-NetAdapterVMQ -Name NIC1 -BaseProcessorNumber 0 -MaxProcessors 6 (поэтому этот сетевой адаптер будет использовать процессор 0,2,4,6,8,10 для VMQ)
Set-NetAdapterVMQ -Name NIC2 -BaseProcessorNumber 12 -MaxProcessors 6 (поэтому этот сетевой адаптер будет использовать процессор 12,14,16;18;20;22 для VMQ)

Если ошибка 106 говорит: "Причина: наборы процессоров не идентичны, если LBFO настроен в режиме минимальной очереди", можно использовать следующий пример Windows PowerShell команд, чтобы каждый сетевой адаптер использовал одни и те же процессоры для VMQ.

Это примеры команд. Параметры BaseProcessorNumber и MaxProcessors можно изменять в зависимости от количества процессоров на сервере и процессоров, которые вы не хотите использовать для VMQ.

Set-NetAdapterVmq -Name NIC1 -BaseProcessorNumber 2 -MaxProcessors 4

Примечание.

Этот сетевой адаптер будет использовать процессоры 2, 3, 4 и 5 для виртуальной машины

Set-NetAdapterVmq -Name NIC2 -BaseProcessorNumber 2 -MaxProcessors 4

Примечание.

Этот сетевой адаптер также будет использовать процессоры 2, 3, 4 и 5 для VMQ

После правильной настройки процессоров VMQ, чтобы все сетевые адаптеры использовали одни и те же процессоры для VMQ, вы по-прежнему можете получить сообщение Об ошибке 106 "Причина: наборы процессоров не идентичны при настройке LBFO с режимом минимальной очереди", если вы также настроили параметр "Предпочтительный узел NUMA" для сетевых адаптеров, чтобы использовать определенный узел NUMA. По умолчанию для него используется параметр System Default и является предпочтительным параметром при использовании VMQ. Если вы задали определенный предпочтительный узел NUMA и узлы NUMA отличаются в сетевых адаптерах, то сетевые адаптеры не используют одни и те же процессоры для VMQ.

Пример. В приведенном выше примере вы задали NIC1 и NIC2 для использования процессоров 2, 3, 4 и 5. Если на сервере есть восемь узлов NUMA с четырьмя процессорами в каждом узле NUMA, и для NIC1 задано значение Предпочтительный узел NUMA 0, а для NIC2 задано значение Предпочитаемый узел NUMA 1, то вы фактически задаете для NIC1 использование процессоров 2 и 3 и NIC2 для использования процессоров 4 и 5, так как процессоры 2, 3. 4 и 5 разделены на два узла NUMA, представляющих процессоры 0, 1, 2, 3 и 4, 5, 6, 7.

Дополнительная информация

Блог, в котором рассматриваются параметры VMQ и LBFO для различных конфигураций LBFO
Блог, в котором обсуждается назначение ЦП VMQ