Аппаратная виртуализация

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Аппаратная виртуализация — виртуализация с поддержкой специальной процессорной архитектуры. В отличие от программной виртуализации, с помощью данной техники возможно использование изолированных гостевых систем, управляемых гипервизором напрямую. Гостевая система не зависит от архитектуры хостовой платформы и реализации платформы виртуализации.

Аппаратная виртуализация обеспечивает производительность, сравнимую с производительностью невиртуализованной машины, что дает виртуализации возможность практического использования и влечет её широкое распространение. Наиболее распространены технологии виртуализации Intel-VT и AMD-V.

  • В Intel VT (Intel Virtualization Technology) реализована виртуализация режима реальной адресации (режим совместимости с 8086). Соответствующая аппаратная виртуализация ввода-вывода — VT-d. Часто обозначается аббревиатурой VMX (Virtual Machine eXtension). Кодовое название — Vanderpool.
  • AMD-V часто обозначается аббревиатурой SVM (Secure Virtual Machines). Кодовое название — Pacifica. Соответствующая технология виртуализации ввода-вывода — IOMMU. AMD-V проще и эффективнее, чем Intel VT.[1] Поддержка AMD-V появилась в Xen 3.3.

Intel VT (Intel Virtualization Technology)[править | править вики-текст]

VT-x[править | править вики-текст]

Intel Core i7 (Bloomfield) CPU

Ранее известная под кодовым названием "Vanderpool", VT-x представляет собой технологию виртуализации Intel на платформе x86. 13 ноября 2005 года Intel выпустила две модели Pentium 4 (модели 662 и 672), которые стали первыми процессорами, поддерживающими VT-x. Флаг поддержки VT-x - "vmx"; в Linux проверяется командой cat /proc/cpuinfo, в Mac OS X - sysctl machdep.cpu.features.[2]

По состоянию на 2015 год не все процессоры Intel поддерживают VT-x, что используется компанией Intel для сегментирования своего рынка.[3] Поддержка VT-x может различаться даже между различными версиями (которые идентифицируются по sSpec Number) одной и той же модели.[4][5] Полный список можно просмотреть на сайте Intel.[6] Даже в мае 2011 года процессор Intel P6100, используемый в ноутбуках, не поддерживает аппаратную виртуализацию.[7]

На некоторых материнских платах пользователи должны вручную включить виртуализацию VT-x в настройках BIOS.[8]

Intel начала включать технологию виртуализации Extended Page Table (EPT),[9] для страничных таблиц,[10] начиная с процессоров архитектуры Nehalem,[11][12], выпущенных в 2008 году. В 2010 году в архитектуру Westmere была добавлена технология "неограниченного гостя", заключающаяся в поддержке логического процессора в реальном режиме и требующая для работы EPT.[13][14]

Начиная с архитектуры Haswell, объявленной в 2013 году, Intel начала включать затенение VMCS - технологию, ускоряющую вложенную виртуализацию менеджеров ВМ.[15] VMCS - структура управления виртуальной машины (virtual machine control structure) - структура данных в памяти, существующая в точности в одном экземпляре на одну виртуальную машину и управляемая менеджером ВМ. С каждым изменением контекста выполнения между разными ВМ VMCS восстанавливается для текущей виртуальной машины, определяя состояние виртуального процессора ВМ.[16] Если используется больше одного менеджера ВМ или используются вложенные менеджеры ВМ, необходимо многократное затенение VMCS. Аппаратная поддержка затенения делает управление VMSC более эффективным.

VT-d[править | править вики-текст]

VT-d (Virtualization technology for directed I/O) — технология виртуализации ввода-вывода, созданная корпорацией Intel в дополнение к её технологии виртуализации вычислений (VT), известной под кодовым названием Vanderpool. Виртуализация ввода-вывода позволяет пробрасывать (pass-through) устройства на шине PCI (и более современных подобных шинах) в гостевую ОС, таким образом, что она может работать с ним с помощью своих штатных средств. Чтобы такое было возможно, в логических схемах системной платы используется специальное устройство управления памятью ввода-вывода (IOMMU), работающее аналогично MMU центрального процессора, используя таблицы страниц и специальную таблицу отображения DMA (DMA remapping table — DMAR), которую гипервизор получает от BIOS через ACPI. Отображение DMA необходимо, поскольку гипервизор ничего не знает о специфике работы устройства с памятью по физическим адресам, которые известны лишь драйверу. С помощью DMAR он создает таблицы отображения таким образом, что драйвер гостевой ОС видит виртуальные адреса IOMMU аналогично тому, как бы он видел физические без него и гипервизора.

Intel Virtualization Technology for Directed I/O (VT-d) это следующий важный шаг на пути к всеобъемлющей аппаратной поддержке виртуализации платформ на базе Intel. VT-d расширяет возможности технологии Virtualization Technology (VT), существующей в IA-32 (VT-x) и Itanium (VT-i), и добавляет поддержку виртуализации новых устройств ввода-вывода.

Поддержка аппаратным обеспечением[править | править вики-текст]

  • Виртуализация ввода-вывода впервые появилась в чипсете Q35, и на сегодняшний день поддерживается всеми материнскими платами, поддерживающими технологию Intel vPro.
  • Для использования Intel Virtualization Technology необходим компьютер с процессором Intel, BIOS, монитором виртуальных машин (VMM), а для некоторых моделей с определенным программным обеспечением с поддержкой этой технологии. Функциональные возможности, производительность и другие характеристики могут различаться в зависимости от аппаратного и программного обеспечения и могут потребовать обновления BIOS.
  • Процессоры, поддерживающие Virtualization Technology for Directed I/O: Intel Core i7-920, Intel Core i7-940, Intel Core i7-950, Intel Core i7-870, Intel Core i7-860, Intel Core i5-650, Intel Core i5-660, Intel Core i5-670, Intel Core i5-540M, Intel Core i5-520M и т. д. http://ark.intel.com/ru/search/advanced/?VTD=true

Поддержка программным обеспечением[править | править вики-текст]

  • Гипервизор Xen поддерживает DMAR начиная с версии 3.3 для аппаратно-виртуализуемых доменов. Для паравиртуальных доменов отображение DMA не требуется.
  • В ближайшем будущем заявлена поддержка технологии ПО Oracle VirtualBox.
  • Ядро Linux экспериментально поддерживает DMAR начиная с версии 2.6.28, что позволяет встроенному гипервизору (kvm) давать доступ виртуальным машинам к PCI-устройствам.
  • Поддержка Intel VT-d есть в Parallels Workstation 4.0 Extreme [1] и в Parallels Server 4 Bare Metal [2]

AMD virtualization (AMD-V) [править | править вики-текст]

AMD разработала свои расширения виртуализации первого поколения под кодовым названием «Pacifica», и первоначально опубликовала их как AMD Secure Virtual Machine (SVM),[17], но позже их на рынке под торговой маркой «AMD Virtualization», сокращенно «AMD-V».

23 мая 2006 года, AMD выпустила Athlon 64 («Orleans»), Athlon 64 X2 («Windsor») и Athlon 64 FX («Windsor») в качестве первых процессоров AMD с поддержкой данной технологии.

Поддержка AMD-V также обеспечивается в семействе процессоров Athlon 64 и Athlon 64 X2 ревизий «F» или «G» на Socket AM2, Turion 64 X2, и Opteron второго поколения[18] и третьего поколения[19], а также Phenom и Phenom II процессорами. Процессоры AMD Fusion также поддерживают AMD-V. AMD-V не поддерживается в процессорах на Socket 939. Только два из Sempron процессоров, которые её поддерживают являются Huron and Sargas.

Процессоры AMD Opteron, начиная с семейства 0x10 Barcelona, и процессоры Phenom II, поддерживают второе поколение аппаратной виртуализации технология под названием Rapid Virtualization Indexing (ранее известная как Nested Page Tables во время его разработки), позже адаптированные Intel, как Extended Page Tables (EPT).

Наличие технологии AMD-V в процессоре определяется флагом «svm». Его можно проверить во FreeBSD через dmesg или sysctl, а в Linux — через cat /proc/cpuinfo.[20]

Примечания[править | править вики-текст]

  1. Сергей Озеров, Александр Карабуто. Технологии виртуализации: вчера, сегодня, завтра, 2006
  2. Просмотр моделей процессоров Intel, поддерживающих аппаратную виртуализацию Intel 2012.
  3. Stokes, Jon Microsoft, Intel goof up Windows 7's "XP Mode". Arstechnica.com (8 мая 2009). Проверено 2 мая 2010.
  4. Processor Spec Finder. Processorfinder.intel.com. Проверено 2 мая 2010.
  5. Intel Processor Number Details. Intel. Intel (3 декабря 2007). Проверено 3 октября 2008.
  6. Intel Virtualization Technology List. Ark.intel.com. Проверено 2 мая 2010.
  7. Intel Pentium P6100 (3M cache, 2.00 GHz). Ark.intel.com. Проверено 4 февраля 2012.
  8. Windows Virtual PC: Configure BIOS. Microsoft. Проверено 8 сентября 2010.
  9. Neiger, Gil. «Intel Virtualization Technology: Hardware Support for Efficient Processor Virtualization». Intel Technology Journal (Intel) 10 (3): 167–178. DOI:10.1535/itj.1003.01. Проверено 2008-07-06.
  10. Gillespie, Matt Best Practices for Paravirtualization Enhancements from Intel Virtualization Technology: EPT and VT-d. Intel Software Network. Intel (12 ноября 2007). Проверено 6 июля 2008.
  11. Intel. First the Tick, Now the Tock: Next Generation Intel Microarchitecture (Nehalem) (PDF). Пресс-релиз. Проверено 2008-07-06.
  12. Technology Brief: Intel Microarchitecture Nehalem Virtualization Technology (PDF). Intel (25 марта 2009). Проверено 3 ноября 2009.
  13. http://2013.asiabsdcon.org/papers/abc2013-P5A-paper.pdf: "Intel added unrestricted guest mode on Westmere micro-architecture and later Intel CPUs, it uses EPT to translate guest physical address access to host physical address. With this mode, VMEnter without enable paging is allowed."
  14. http://download.intel.com/products/processor/manual/326019.pdf: "If the “unrestricted guest” VM-execution control is 1, the “enable EPT” VM-execution control must also be 1"
  15. 4th-Gen Intel Core vPro Processors with Intel VMCS Shadowing (PDF). Intel (2013). Проверено 16 декабря 2014.
  16. Understanding Intel Virtualization Technology (VT). Retrieved 2014-09-01
  17. 33047_SecureVirtualMachineManual_3-0.book (PDF). Проверено 2 мая 2010. Архивировано из первоисточника 11 мая 2013.
  18. What are the main differences between Second-Generation AMD Opteron processors and first-generation AMD Opteron processors? publisher=Amd.com(недоступная ссылка — история). Проверено 4 февраля 2012. Архивировано из первоисточника 11 мая 2013.
  19. What virtualization enhancements do Third-Generation AMD Opteron processors feature?(недоступная ссылка — история). Amd.com. Проверено 4 февраля 2012. Архивировано из первоисточника 11 мая 2013.
  20. To see if your processor supports hardware virtualization Intel 2012.

См. также[править | править вики-текст]

Ссылки[править | править вики-текст]