Виртуализация
- 1 year ago
- 0
- 0
Аппара́тная виртуализа́ция — виртуализация с поддержкой специальной процессорной архитектуры . В отличие от программной виртуализации, с помощью данной техники возможно использование изолированных , управляемых гипервизором напрямую.
Гостевая ОС не зависит от архитектуры хостовой платформы и реализации платформы виртуализации.
Аппаратная виртуализация обеспечивает производительность, сравнимую с производительностью невиртуализованной машины, что дает виртуализации возможность практического использования и влечет её широкое распространение. Наиболее распространены технологии виртуализации Intel -VT и AMD -V.
Ранее известная под кодовым названием «Vanderpool», VT-x представляет собой технологию виртуализации Intel на платформе x86. 13 ноября 2005 года Intel выпустила две модели Pentium 4 (модели 662 и 672), которые стали первыми процессорами, поддерживающими VT-x. Флаг поддержки VT-x — «vmx»; в Linux проверяется командой
grep vmx /proc/cpuinfo
, в
Mac OS X
—
sysctl machdep.cpu.features
.
По состоянию на 2015 год не все процессоры Intel поддерживают VT-x, что используется компанией Intel для сегментирования своего рынка . Поддержка VT-x может различаться даже между различными версиями (которые идентифицируются по sSpec Number ) одной и той же модели. Полный список можно посмотреть на сайте Intel. Даже в мае 2011 года процессор Intel P6100, используемый в ноутбуках, не поддерживает аппаратную виртуализацию.
На некоторых материнских платах пользователи должны вручную включить виртуализацию VT-x в настройках BIOS .
Intel начала включать технологию виртуализации (EPT) для страничных таблиц , начиная с процессоров архитектуры Nehalem , выпущенных в 2008 году .
В 2010 году в архитектуру Westmere была добавлена технология «неограниченного гостя», заключающаяся в поддержке логического процессора в реальном режиме и требующая для работы EPT.
Начиная с архитектуры Haswell , объявленной в 2013 году, Intel начала включать затенение VMCS — технологию, ускоряющую вложенную виртуализацию гипервизоров . VMCS — структура управления виртуальной машины (virtual machine control structure) — структура данных в памяти, существующая в точности в одном экземпляре на одну виртуальную машину и управляемая гипервизором. С каждым изменением контекста выполнения между разными ВМ структура данных VMCS восстанавливается для текущей виртуальной машины, определяя состояние виртуального процессора ВМ. Если используется больше одного гипервизора или используются вложенные гипервизоры, необходимо многократное затенение VMCS. Аппаратная поддержка затенения делает управление VMSC более эффективным.
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), и добавляет поддержку виртуализации новых устройств ввода-вывода.
AMD разработала свои расширения виртуализации первого поколения под кодовым названием «Pacifica», и первоначально опубликовала их как AMD Secure Virtual Machine (SVM) , но позже, на рынке, — под торговой маркой «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 второго поколения и третьего поколения , а также процессорами Phenom и Phenom II . Только две модели Sempron поддерживают её: Huron and Sargas.
Процессоры AMD Fusion также поддерживают AMD-V.
AMD-V не поддерживается в процессорах на Socket 939 .
Процессоры Opteron, начиная с семейства 0x10 Barcelona, и процессоры Phenom II поддерживают второе поколение аппаратной виртуализации технология под названием (ранее известная как Nested Page Tables во время его разработки), позже адаптированные Intel, как (EPT).