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 требуется одновременное выполнение нескольких условий:
- Поддержка технологии процессором и чипсетом (Intel VT-d или AMD-Vi для IOMMU).
- Включение в BIOS не только SR-IOV Support, но и аппаратной виртуализации (Intel VT-x / AMD-V) и IOMMU.
- Поддержка SR-IOV самим устройством — сетевой картой, NVMe-диском или GPU.
- Поддержка гипервизором: KVM/QEMU, VMware ESXi, Microsoft Hyper-V, Xen.
- Поддержка со стороны гостевой операционной системы (драйвер 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-интерфейсом).
¶Как включить
Практическая последовательность действий:
- Перезагрузить компьютер и войти в BIOS/UEFI (клавиша Del, F2 или иная, указанная при POST).
- Перейти в раздел Advanced или Chipset Configuration.
- Найти пункт SR-IOV Support и установить значение Enabled.
- Убедиться, что включены Intel VT-x / AMD-V и Intel VT-d / AMD-Vi (IOMMU).
- Сохранить настройки (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)
