Страницы

Сохранить статью у себя в соцсети:

вторник, 5 июня 2012 г.

§ Аппаратные расширения для виртуализации.

Улучшения аппаратной виртуализации.

Приведу ка я описание различных аппаратных расширений (исключительно от Intel, т.к. не работал с AMD) которые улучшают работу виртуальных окружений.
  • vmx (Virtual Machine eXtension) основное расширение которое позволяет задействовать аппаратную виртуализацию. Аппаратная виртуализация способна обеспечить производительность сравнимую с производительностью невиртуализованной машины.
  • vt-d (Virtualization technology for directed I/O) - виртуализация ввода/вывода, технология позволяет использовать проброс (passthrough) устройств в виртуальные окружения
  • IOMMU (input/output memory management unit) — блок управления памятью (MMU) для операций ввода/вывода. Переводит виртуальные адреса в физические. Этот блок занимается трансляцией виртуальных адресов, видимых аппаратным устройством, в физические адреса. Чтобы использовать IOMMU, необходимо собрать его поддержку в ядре совместно с DMAR (DMA remapping table). Основное назначение проброс (passthrough) PCI-устройств.
  • ept (Extended Page Table) технология виртуализации для блока управления память MMU (Memory Management Unit). При включении этой функции появляется возможность трансляции страниц памяти в гостевое окружение. Таким образом виртуальная машина работает со своей собственной памятью которая фактически транслирована на участки физической памяти. При этом в работу не вовлекается гипервизор и снижаются накладные расходы на его работу. Точнее говоря это позволяет гипервизору не выполнять обратных переключений контекста (VM exit) связанных со страничной виртуализацией, которые являются источником чрезмерных затрат ресурсов без использования EPT.
  • vpid (Virtual-processor identifiers) эта функция позволяет гипервизору назначать различные идентификаторы на виртуальные процессоры. Процессор может использовать идентификаторы для пометки TLB (Translation Lookaside Buffer). В дальнейшем такая возможность устраняет необходимость выполнять обязательную очистку TLB при каждом переключении контекста гипервизора (и как следствие снижение расхода аппаратных ресурсов влияющих на производительность).
  • flexpriority (как есть FlexPriority) технология оптимизации и ускорения прерываний за счет включения доступа виртуальной машины к регистрам TPR (Task Priority Registers). Таким образом увеличивается эффективность SMP на 32-битных операционных системах. Ускорение дается за счет уменьшения обратных переключений контекста (VM exits) при доступе к APIC (Advanced Programmable Interrupt Controller - расширенный контроллер прерываний).
  • vnmi (NMI-window exiting) еще одна расширенная обработка которая улучшает работу с некоторыми видами прерываний.
Эти функции должны быть включены на хост-системе. Наличие можно проверить через флаги процессора в /proc/cpuinfo
# grep -E 'vmx|vnmi|flexpriority|ept|vpid' /proc/cpuinfo

Либо через файловую систему /sys (Y значит включено)
# cat /sys/module/kvm_intel/parameters/{ept,flexpriority,vpid}

Если функции отключены, включение выполняется через передачу boot-параметров ядру linux
kvm-intel.ept=1
kvm-intel.flexpriority=1
kvm-intel.vpid=1

Стоит отметить что поддержку аппаратной виртуализации (vmx, vt-d) следует включать в BIOS, т.к. по умолчанию её почему-то включают не везде.
Вот, как то так.

На главную "Аппаратная виртуализация

Комментариев нет:

Отправить комментарий

Популярные сообщения

Профиль в Google+ Яндекс цитирования Яндекс.Метрика