Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сетевой адаптер, поддерживающий виртуализацию одно корневых операций ввода-вывода (SR-IOV) должен поддерживать следующие аппаратные компоненты:
Одна физическая функция PCI Express (PCIe) (PF). PF всегда существует на сетевом адаптере и присоединён к Hyper-V родительскому разделу.
Для получения дополнительной информации об этом аппаратном компоненте см. раздел SR-IOV Физическая функция (PF).
Одна или несколько виртуальных функций PCIe (VF). Каждая виртуальная машина должна быть инициализирована и присоединена к дочерней секции Hyper-V, прежде чем сетевые компоненты гостевой операционной системы могут отправлять или получать пакеты через VF.
Дополнительные сведения об этом компоненте оборудования см. в разделе SR-IOV Виртуальные Функции (VFs).
Минипорт-драйвер PF, который выполняется в управляющей операционной системе родительского раздела Hyper-V, инициализирует и выделяет ресурсы для VF на сетевом адаптере SR-IOV. После вызова функции MiniportInitializeEx минипорт драйвера PF, NDIS и стек виртуализации могут выдавать запросы идентификатора объекта (OID) к минипорт драйверу PF, чтобы выполнить следующие действия:
Создайте переключатель NIC на сетевом адаптере. Коммутатор сетевого адаптера мостит сетевой трафик между виртуальными машинами, PF и физическим сетевым портом.
Дополнительные сведения см. в разделе коммутаторов сетевого интерфейса.
Примечание начиная с Windows Server 2012 интерфейс SR-IOV поддерживает только один NIC-коммутатор в сетевом адаптере. Этот коммутатор известен как коммутатор сетевого адаптера по умолчанию и обозначается идентификатором NDIS_DEFAULT_SWITCH_ID.
Запросите минипорт-драйвер PF инициализировать и выделить ресурсы для VF на сетевом адаптере.
Дополнительные сведения см. в разделе SR-IOV Виртуальные функции (VFs).
Создайте виртуальный порт (VPort) на коммутаторе сетевого адаптера и подключите его к VF.
Дополнительные сведения см. в разделе "Виртуальные порты" (VPorts).
На следующей схеме показаны шаги, связанные с инициализацией VF.
NDIS, стек виртуализации и минипорт-драйвер PF выполняют следующие действия в процессе инициализации VF:
NDIS считывает конфигурацию коммутатора по умолчанию из реестра и формирует запрос метода OID OID_NIC_SWITCH_CREATE_SWITCH для создания коммутатора на сетевом адаптере. Параметры, передаваемые в этом запросе OID, содержат сведения о настройке важных аппаратных ресурсов, таких как VFs и VPorts. Она также содержит сведения о том, как распределять ресурсы между недефекционными виртуальными портами и виртуальным портом по умолчанию, подключенным к PF.
После успешного завершения OID драйвером мини-порта PF коммутатор сетевого адаптера готов к использованию для создания VPorts и выделения виртуальных машин на нем.
Дополнительные сведения о создании коммутатора сетевого адаптера см. в разделе "Создание коммутатора сетевого адаптера".
VF рассматривается как механизм разгрузки сетевого адаптера виртуальной машины. Этот адаптер предоставляется в гостевой операционной системе, которая выполняется в дочернем разделе Hyper-V. По умолчанию сетевые компоненты в гостевой операционной системе отправляют и получают пакеты по пути искусственных данных на основе программного обеспечения. Однако если дочерний раздел включен для разгрузки VF, стек виртуализации выдает запросы OID к драйверу мини-порта PF для выделения ресурсов и инициализации VF. После подключения VF к дочернему разделу и VPort на коммутаторе сетевого адаптера, сетевые компоненты отправляют и получают пакеты по пути данных VF. Для получения дополнительной информации о этих путях данных, см. SR-IOV Пути данных.
Если для разгрузки VF включен дочерний раздел Hyper-V, стек виртуализации отправляет запрос метода OID OID_NIC_SWITCH_ALLOCATE_VF драйверу минипорта PF. Параметры, передаваемые в этом запросе OID, включают идентификатор коммутатора NIC, на котором был выделен VF. Другие параметры включают идентификаторы дочернего раздела, к которому будет присоединена виртуальная функция.
Драйвер мини-порта PF выделяет необходимые аппаратные и программные ресурсы для VF. Драйвер мини-порта PF также определяет идентификатор запрашивателя PCIe (RID) для VF путем вызова NdisMGetVirtualFunctionLocation. RID используется для DMA и перенаправки прерываний, когда запросы и прерывания DMA создаются VF.
RID вместе с идентификатором VF возвращаются драйвером мини-порта PF при успешном завершении запроса OID_NIC_SWITCH_ALLOCATE_VF.
Дополнительные сведения о выделении ресурсов для VF см. в разделе "Выделение ресурсов для виртуальной функции".
Стек виртуализации создает VPort на NIC-коммутаторе путем выдачи запроса метода OID OID_NIC_SWITCH_CREATE_VPORT к драйверу минипорт PF. Параметры, передаваемые в этом запросе OID, включают идентификатор коммутатора сетевого адаптера, на котором создается VPort. Другие параметры включают идентификатор VF, к которому будет присоединен VPort.
Заметка VPort по умолчанию в коммутаторе сетевого адаптера всегда существует и подключен к PF. Можно создать и подключить только один VPort, не по умолчанию, к VF.
Прежде чем NDIS передаст запрос OID на драйвер минипорта PF, он выделяет допустимый идентификатор VPort, уникальный в пределах сетевого адаптера.
Когда драйвер мини-порта PF обрабатывает запрос OID, он выделяет аппаратные ресурсы, необходимые для VPort, и сохраняет идентификатор для VPort. Этот идентификатор используется в последующих запросах OID и вызовах функций SR-IOV.
Дополнительные сведения о создании VPort см. в разделе "Создание виртуального порта".
Дочерний раздел Hyper-V может быть запущен задолго до выделения VF и VPort. В это время сетевые компоненты в гостевой операционной системе отправляют и получают пакеты по пути синтетических данных. Это включает в себя трафик пакетов через VPort по умолчанию, подключенный к PF. Чтобы направлять трафик к дочернему разделу, стек виртуализации настраивает VPort по умолчанию с фильтрами управления доступом к среде (MAC) и виртуальной локальной сети (VLAN) для сетевого адаптера виртуальной машины дочернего раздела.
После выделения ресурсов для VF и VPort стек виртуализации выдает запрос метода OID OID_RECEIVE_FILTER_MOVE_FILTER драйверу минипорта PF. Этот запрос OID переносит фильтры MAC и VLAN для сетевого адаптера виртуальной машины из VPort по умолчанию в VPort, который подключён к VF. Это приводит к переадресации пакетов, соответствующих этим фильтрам, в VF VPort через маршрут передачи данных VF.
Заметка Существующие фильтры получения можно переместить из VPort по умолчанию в VF VPort с помощью OID_RECEIVE_FILTER_MOVE_FILTER. Кроме того, новые фильтры можно установить на VF VPort с помощью OID_RECEIVE_FILTER_SET_FILTER.
После успешного создания VF и VPort и установки фильтров MAC на VPort, стек виртуализации уведомляет поставщика виртуальных услуг PCI (VPCI). Этот VSP выполняется в операционной системе управления родительской секции Hyper-V. Уведомление сообщает VPCI VSP о том, что VF успешно выделен и подключен к дочернему разделу. VPCI VSP отправляет сообщения через шину виртуальной машины (VMBus) клиенту виртуальной службы VPCI, который выполняется в гостевой операционной системе дочернего раздела. VPCI VSC — это драйвер шины, предоставляющий устройство PCI для сетевого адаптера VF.
После предоставления сетевого адаптера VF подсистема PnP, которая выполняется в гостевой операционной системе, обнаруживает адаптер и загружает минипорт-драйвер VF. Этот драйвер регистрируется в NDIS. После инициализации мини-драйвера VF и настройки соответствующих фильтров пакетов на сетевом адаптере VF путь к данным VF полностью работает. В результате трафик пакетов в гостевой операционной системе переключился с синтетического пути данных на этот путь данных.