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


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 взаимодействует с помощью минипорта vf с адаптером sr-iov.

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

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

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

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

    Дополнительные сведения о виртуальных портах (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.

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