Открыть сервисСервис

SR-IOV — технология виртуализации в BIOS

SR-IOV (Single Root I/O Virtualization) — аппаратная технология виртуализации ввода-вывода, позволяющая одному физическому устройству (как правило, сетевому адаптеру или NVMe-накопителю) представлять в гостевых операционных системах несколько независимых виртуальных функций. В настройках BIOS/UEFI компьютера и серверов опция SR-IOV Support включает или отключает поддержку этой технологии на уровне прошивки материнской платы.

Назначение технологии

SR-IOV разрабатывалась как замена программной виртуализации сети, при которой гипервизор перехватывает все пакеты и маршрутизирует их между виртуальными машинами. Такой подход создаёт дополнительную нагрузку на центральный процессор и увеличивает задержки. SR-IOV переносит часть функций виртуализации непосредственно в аппаратуру устройства.

Стандарт SR-IOV определён спецификацией PCI-SIG (Peripheral Component Interconnect Special Interest Group). Типовая реализация предусматривает два класса функций:

  • PF (Physical Function) — физическая функция, полная реализация устройства, доступная хосту для управления;
  • VF (Virtual Function) — виртуальная функция, лёгкий транспортный контур, предназначенный для передачи данных гостевой ОС.

Одна физическая функция может создавать множество виртуальных функций (типично от 4 до 64, в зависимости от устройства и прошивки). Каждая VF получает собственный MAC-адрес и, в случае сетевых адаптеров, собственный VLAN-идентификатор.

Что означает опция SR-IOV Support в BIOS

В меню настройки BIOS/UEFI (обычно в разделах Advanced, Chipset Configuration или North Bridge) встречается параметр SR-IOV Support с вариантами Enabled/Disabled. Этот параметр управляет:

  • инициализацией контроллера PCIe с поддержкой виртуальных функций при POST;
  • передачей в прошивку и ОС информации о возможности создания VF;
  • разрешением или запретом прямого доступа гостевых ОС к устройству через VF.

По умолчанию на большинстве потребительских материнских плат опция отключена. На серверных платформах (Intel Xeon, AMD EPYC) она, как правило, включена.

Условия работы

Для функционирования SR-IOV требуется одновременное выполнение нескольких условий:

  1. Поддержка технологии процессором и чипсетом (Intel VT-d или AMD-Vi для IOMMU).
  2. Включение в BIOS не только SR-IOV Support, но и аппаратной виртуализации (Intel VT-x / AMD-V) и IOMMU.
  3. Поддержка SR-IOV самим устройством — сетевой картой, NVMe-диском или GPU.
  4. Поддержка гипервизором: KVM/QEMU, VMware ESXi, Microsoft Hyper-V, Xen.
  5. Поддержка со стороны гостевой операционной системы (драйвер VF).

Применение

Основная область применения — серверная виртуализация и облака. SR-IOV позволяет достичь производительности виртуальной машины, близкой к работе на «железе» напрямую, при этом сохраняя возможность миграции ВМ и управления ресурсами.

Типовые сценарии:

  • высокопроизводительные сетевые нагрузки в виртуальных дата-центрах (NFV, телеком-инфраструктура);
  • прямой доступ виртуальных машин к NVMe-устройствам (NVMe over PCIe);
  • GPU-виртуализация для расчётов и графики;
  • финансовые и биржевые системы, требующие минимальных задержек.

В России технология активно применяется в серверных платформах отечественных производителей — на базе процессоров «Эльбрус», «Байкал» и импортных Intel/AMD, а также в системах виртуализации «Ред ОС», «Альт», на базе KVM.

Ограничения и недостатки

Прямой доступ гостевой ОС к устройству через VF создаёт ряд ограничений:

  • Сложность миграции — виртуальная машина с назначенными VF физически привязана к конкретному серверу, что затрудняет live migration;
  • Безопасность — гостевая ОС получает более прямой доступ к оборудованию, что расширяет поверхность атаки;
  • Управление — распределение VF между ВМ требует дополнительных инструментов (SR-IOV Network Device Plugin в Kubernetes, libvirt);
  • Совместимость — не все устройства и драйверы корректно реализуют спецификацию.

В гипервизорах эти проблемы частично решаются технологиями, такими как миграция с эмуляцией сети на время переноса (SR-IOV passthrough с эмулированным fallback-интерфейсом).

Как включить

Практическая последовательность действий:

  1. Перезагрузить компьютер и войти в BIOS/UEFI (клавиша Del, F2 или иная, указанная при POST).
  2. Перейти в раздел Advanced или Chipset Configuration.
  3. Найти пункт SR-IOV Support и установить значение Enabled.
  4. Убедиться, что включены Intel VT-x / AMD-V и Intel VT-d / AMD-Vi (IOMMU).
  5. Сохранить настройки (F10) и перезагрузить систему.

После загрузки ОС наличие VF проверяется утилитами lspci (Linux), Диспетчером устройств (Windows) или командой ip link при наличии драйвера поддержки SR-IOV.

Источники

  • Спецификация PCI-SIG Single Root I/O Virtualization and Sharing (SR-IOV)
  • Документация Intel по технологии Intel Virtualization Technology for Directed I/O (VT-d)
  • Документация KVM/QEMU по поддержке SR-IOV
  • Руководства по эксплуатации серверных материнских плат (ASUS, Supermicro, Gigabyte)
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru