SR-IOV (сокращение от англ. Single Root Input/Output Virtualization, виртуализация ввода-вывода с единым корнем) — технология виртуализации устройств, позволяющая предоставить виртуальным машинам прямой доступ к части аппаратных возможностей устройства.

Терминология править

Ключевыми терминами являются:

  • Physical Function — функциональность того, что будет разделяться между виртуальными машинами. В случае сетевого адаптера, например, это сетевой интерфейс, доступный для отправки и приёма трафика.
  • Virtual Function — несколько объектов того же типа, как и физическая функция, позволяющие отдавать функции виртуальным машинам независимо друг от друга. В случае сетевого адаптера это некоторое количество сетевых устройств, передаваемые в виртуальные машины.
 
Пример использования 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-устройства, каждое из которых выступает в роли самостоятельной сетевой платы с отдельным идентификатором, которую можно делегировать виртуальным машинам.

Источники править