SR-IOV (сокращение от Шаблон:Lang-en, виртуализация ввода-вывода с единым корнем) — технология виртуализации устройств, позволяющая предоставить виртуальным машинам прямой доступ к части аппаратных возможностей устройства.
Physical Function — функциональность того, что будет разделяться между виртуальными машинами. В случае сетевого адаптера, например, это сетевой интерфейс, доступный для отправки и приёма трафика.
Virtual Function — несколько объектов того же типа, как и физическая функция, позволяющие отдавать функции виртуальным машинам независимо друг от друга. В случае сетевого адаптера это некоторое количество сетевых устройств, передаваемые в виртуальные машины.
Файл:SR-IOV components and relationships.svgПример использования SR-IOV для виртуализации сети. 1 — Физический хост (сервер); 2 — Виртуальная машина, в которой используется виртуальная функция; 3 — Сетевой интерфейс в виртуальной машине; 4 — Управляющее приложение; 5 — Управлющая виртуальная машина, имеющая доступ к физической функции (dom0 в терминологии Xen); 6-7 — Физическая сетевая карта с активными виртуальными функциями; 6 — Физическая функция сетевой карты; 7 — Виртуальные функции сетевой карты; 8 — Внешняя сеть за пределами хоста (представлена в виде коммутатора).
История
Впервые опубликована в декабре 2008 года в виде презентации Intel: An Introduction to SR-IOV Technology. Разработка велась в рамках PCI-SIG (http://www.pcisig.com/, PCI Special Interest Group).
Практическое применение
Основное применение SR-IOV — виртуализация сетевых плат. В этом случае в качестве физической функции выступает физический сетевой интерфейс (и сама сетевая плата), а в качестве виртуальной функции — эмулируемые (на уровне сетевой платы) PCI-устройства, каждое из которых выступает в роли самостоятельной сетевой платы с отдельным идентификатором, которую можно делегировать виртуальным машинам.