Поделиться через


Отработка отказа SR-IOV VF и поддержка динамической миграции

После запуска дочернего раздела Hyper-V сетевой трафик передается по пути искусственных данных. Если физический сетевой адаптер поддерживает интерфейс SR-IOV, он может включить одну или несколько виртуальных функций PCI Express (PCIe). Каждую виртуальную платформу можно подключить к дочерней секции Hyper-V. В этом случае сетевой трафик проходит по аппаратно-оптимизированной схеме данных SR-IOV VF.

После установки пути данных VF сетевой трафик может отменить изменения в искусственный путь к данным, если выполняется какое-либо из следующих условий:

  • Виртуальная машина была подключена к дочернему разделу Hyper-V, но отсоединяется. Например, стек виртуализации может отсоединить виртуальную машину от одной дочерней секции и присоединить ее к другой дочерней секции. Это может произойти, если в базовом сетевом адаптере SR-IOV выполняется больше дочерних секций Hyper-V, чем ресурсов VF.

    Процесс отработки отказа на путь искусственных данных из пути данных VF называется отработка отказа VF.

  • Дочерний раздел Hyper-V переносится в режиме реального времени на другой узел.

На следующем рисунке показаны различные пути к данным, поддерживаемые сетевым адаптером SR-IOV.

Схема стека, показывающая адаптер sr-iov под родительской секцией управления, взаимодействующей с помощью шины виртуальной машины, взаимодействующей с дочерним разделом 1, содержащим гостевую операционную систему, взаимодействующую с помощью шины виртуальной машины. Кроме того, дочерний раздел 2 взаимодействует с адаптером sr-iov с помощью минипорта vf.

NetVSC предоставляет сетевой адаптер виртуальной машины, привязанный к драйверу мини-порта VF для поддержки пути данных VF. При переходе на искусственный путь к данным сетевой адаптер VF по возможности корректно удаляется из операционной системы на виртуальной машине. Если VF не может быть удален корректно и истекает время ожидания, он будет неожиданно удален. Затем драйвер мини-порта VF останавливается, а клиент виртуальной службы сети (NetVSC) не связан с драйвером мини-порта VF.

Переход между виртуальными и искусственными путями данных происходит с минимальной потерей пакетов и предотвращает потерю TCP-подключений. Перед завершением перехода на искусственный путь к данным стеки виртуализации выполняют следующие действия.

  1. Стек виртуализации перемещает фильтры контроль доступа мультимедиа (MAC) и виртуальной локальной сети (VLAN) сетевого адаптера виртуальной машины на виртуальный порт по умолчанию, подключенный к физической функции PCIe (PF). Сетевой адаптер виртуальной машины предоставляется в гостевой операционной системе дочернего раздела.

    После перемещения фильтров в VPort по умолчанию искусственный путь к данным полностью работает для сетевого трафика, вправляемого в сетевые компоненты, которые выполняются в операционной системе на виртуальной машине. Драйвер мини-порта PF указывает на полученные пакеты в VPort по умолчанию PF, который использует путь к искусственным данным для указания пакетов операционной системе на виртуальной машине. Аналогичным образом все передаваемые пакеты из гостевой операционной системы направляются по пути искусственных данных и передаются через VPort PF по умолчанию.

    Дополнительные сведения о виртуальных портах см. в разделе Виртуальные порты (VPorts).

  2. Стек виртуализации удаляет VPort, подключенный к VF, путем выдачи запроса набора идентификатора объекта (OID) OID_NIC_SWITCH_DELETE_VPORT драйверу мини-порта PF. Драйвер мини-порта освобождает все аппаратные и программные ресурсы, связанные с VPort, и выполняет запрос OID.

    Дополнительные сведения см. в разделе Удаление виртуального порта.

  3. Стек виртуализации запрашивает сброс уровня функций PCIe (FLR) виртуальной машины, прежде чем его ресурсы будут освобождены. Для этого стек отправляет запрос на набор OID OID_SRIOV_RESET_VFдрайверу мини-порта PF. FLR переводит VF сетевого адаптера SR-IOV в состояние приостановки и очищает все ожидающие события прерывания для VF.

  4. После сброса VF стек виртуализации запрашивает освобождение ресурсов VF, отправляя запрос набора OID OID_NIC_SWITCH_FREE_VF драйверу минипорта PF. Это приводит к тому, что драйвер мини-порта освобождает аппаратные ресурсы, связанные с VF.

Дополнительные сведения об этом процессе см. в разделе Последовательность удаления виртуальной функции.