Аппаратная виртуализация - Hardware-assisted virtualization - Wikipedia
В вычисление, виртуализация с аппаратной поддержкой это виртуализация платформы подход, позволяющий эффективно полная виртуализация с помощью возможностей оборудования, в первую очередь от хост-процессоров. Полная виртуализация используется для эмуляции полной аппаратной среды или виртуальная машина, в котором неизмененный гость Операционная система (используя тот же Набор инструкций в качестве хост-машины) эффективно выполняется в полной изоляции. Виртуализация с аппаратной поддержкой была добавлена в x86 процессоры (Intel VT-x или же AMD-V ) в 2005 и 2006 годах (соответственно).
Виртуализация с аппаратной поддержкой также известна как ускоренная виртуализация; Xen называет это аппаратная виртуальная машина (HVM), и Виртуальное железо называет это собственная виртуализация.
История
Аппаратная виртуализация впервые появилась на IBM System / 370 в 1972 году для использования с VM / 370, первая операционная система виртуальной машины. С ростом спроса на компьютерную графику высокой четкости (например, CAD ), виртуализация мэйнфреймов потеряла некоторое внимание в конце 1970-х годов, когда миникомпьютеры содействие распределению ресурсов за счет распределенных вычислений, включая коммерциализацию микрокомпьютеры.
IBM предложения аппаратная виртуализация для своего МОЩНОСТЬ Процессоры под AIX (например. Система p ) и для его IBM-Мэйнфреймы Система z. IBM называет свою конкретную форму аппаратной виртуализации «логическим разделом» или, чаще, как LPAR.
Увеличение вычислительной мощности на сервер x86 (и, в частности, существенное увеличение пропускной способности современных сетей) возродило интерес к вычислениям на базе центров обработки данных, основанным на методах виртуализации. Основным драйвером был потенциал для консолидации серверов: виртуализация позволила одному серверу экономически эффективно консолидировать вычислительную мощность нескольких недостаточно используемых выделенных серверов. Наиболее заметным признаком возврата к истокам вычислений является облачные вычисления, который является синонимом вычислений на базе центров обработки данных (или вычислений, подобных мэйнфреймам) через сети с высокой пропускной способностью. Это тесно связано с виртуализацией.
Первоначальная реализация архитектуры x86 не соответствовала требованиям Требования к виртуализации Попека и Голдберга для достижения «классической виртуализации»:
- эквивалентность: программа, работающая под монитор виртуальных машин (VMM) должен демонстрировать поведение, по существу идентичное тому, которое демонстрируется при работе на эквивалентной машине напрямую
- контроль ресурсов (также называемый безопасность): VMM должен полностью контролировать виртуализированные ресурсы.
- эффективность: статистически преобладающая часть машинных инструкций должна выполняться без вмешательства VMM
Это затрудняло реализацию монитора виртуальных машин для процессора этого типа. Конкретные ограничения включали невозможность ловушка на некоторых привилегированный инструкции.[1]
Чтобы компенсировать эти архитектурные ограничения, дизайнеры выполнили виртуализацию архитектуры x86 двумя способами: полная виртуализация или же паравиртуализация.[2] Оба создают иллюзию физического оборудования для достижения цели независимости операционной системы от оборудования, но представляют собой некоторые компромиссы в производительности и сложности.
- Полная виртуализация был реализован в виртуальных машинах x86 первого поколения. Он полагается на двоичная трансляция для перехвата и виртуализации выполнения определенных конфиденциальных, не виртуализируемых инструкций. При таком подходе критические инструкции обнаруживаются (статически или динамически во время выполнения) и заменяются ловушками в VMM для эмуляции в программном обеспечении. Двоичное преобразование может повлечь за собой большие накладные расходы на производительность по сравнению с виртуальной машиной, работающей на изначально виртуализированных архитектурах, таких как IBM System / 370. VirtualBox, VMware Workstation (только для 32-битных гостей) и Виртуальный ПК Microsoft, являются хорошо известными коммерческими реализациями полной виртуализации.
- Паравиртуализация - это метод, при котором гипервизор предоставляет API, а ОС гостевой виртуальной машины вызывает этот API, требуя модификации ОС.
В 2005 и 2006 гг. Intel и AMD (работая независимо) создали новые расширения процессора для архитектура x86 называется Intel VT-x и AMD-V соответственно. На Itanium Архитектура виртуализации с аппаратной поддержкой известна как VT-i. Первое поколение процессоров x86 для поддержки этих расширений было выпущено в конце 2005 - начале 2006 года:
- 13 ноября 2005 г. Intel выпустила две модели Pentium 4 (модели 662 и 672) в качестве первых процессоров Intel с поддержкой VT-x.
- 23 мая 2006 года AMD выпустила Athlon 64 («Орлеан»), Athlon 64 X2 («Windsor») и Athlon 64 FX («Windsor») в качестве первых процессоров AMD, поддерживающих эту технологию.
Хорошо известные реализации виртуализации x86 с аппаратной поддержкой включают VMware Workstation (только для 64-разрядных гостевых систем), XenCenter, Xen 3.x (включая производные, такие как Virtual Iron), Linux KVM и Microsoft Hyper-V.
Преимущества
Виртуализация с аппаратной поддержкой снижает накладные расходы на обслуживание паравиртуализации, поскольку она уменьшает (в идеале, устраняет) изменения, необходимые в гостевой операционной системе. Также значительно легче получить лучшую производительность. Инженеры VMware отметили практическое преимущество виртуализации с аппаратной поддержкой.[3] и виртуальное железо.
Недостатки
Виртуализация с аппаратной поддержкой требует явной поддержки в центральном процессоре, которая доступна не на всех процессорах x86 / x86_64.
«Чистый» подход к виртуализации с аппаратной поддержкой, использующий полностью немодифицированные гостевые операционные системы, включает множество ловушек виртуальных машин и, следовательно, высокие накладные расходы ЦП, ограничивающие масштабируемость и эффективность консолидации серверов.[4] Это снижение производительности может быть уменьшено за счет использования паравиртуализированных драйверов; комбинация получила название «гибридная виртуализация».[5]
В 2006 году поддержка 32- и 64-разрядного оборудования x86 первого поколения редко обеспечивала преимущества в производительности по сравнению с программной виртуализацией.[6]
Смотрите также
- Intel VT-d
- Дальнейшие усовершенствования виртуализации с аппаратной поддержкой возможны с использованием IOMMU; это обеспечивает доступ к выделенному оборудованию с собственной скоростью из гостевой операционной системы, включая DMA -мощное оборудование
- Преобразование адресов второго уровня (SLAT), реализации, включая Индексирование быстрой виртуализации или же Расширенные таблицы страниц
- Другие методы виртуализации включают виртуализация на уровне операционной системы, как это практикуется Контейнеры Parallels Virtuozzo, и виртуализация приложений.
- Наноядро
- Аппаратная эмуляция
- Эмулятор
- Совместная группа действий по тестированию
- Интерфейс фонового режима отладки
- Внутрисхемный эмулятор
Рекомендации
- ^ Адамс, Кит. «Сравнение программных и аппаратных средств виртуализации x86» (PDF). Получено 20 января 2013.
- ^ Крис Барклай, Новый подход к виртуализации x86, Сетевой мир, 20 октября 2006 г.
- ^ Видеть «Виртуализация графики и ввода-вывода».
- ^ Видеть «Гибридная виртуализация: новое поколение XenLinux». В архиве 20 марта 2009 г. Wayback Machine
- ^ Джун Накадзима и Асит К. Маллик, «Гибридная виртуализация - расширенная виртуализация для Linux» В архиве 2009-01-07 на Wayback Machine, в Материалы симпозиума по Linux, Оттава, июнь 2007 г.
- ^ «Сравнение программных и аппаратных методов виртуализации x86», Кейт Адамс и Оле Агесен, VMware, ASPLOS’06, 21–25 октября 2006 г., Сан-Хосе, Калифорния, США «Удивительно, но мы обнаружили, что поддержка оборудования первого поколения редко дает преимущества в производительности по сравнению с существующими программными технологиями. Мы объясняем эту ситуацию высокими затратами на переход между VMM и гостевой системой и жесткой моделью программирования, которая оставляет мало места для гибкости программного обеспечения при управлении частотой или стоимость этих переходов.
дальнейшее чтение
- Фишер-Огден, Джон. «Аппаратная поддержка для эффективной виртуализации» (PDF). UCSD. Получено 2010-08-05.
- Смит, Джим; Наир, Рави (2005). Виртуальные машины. Морган Кауфманн. 8.5: Повышение производительности системных виртуальных машин. ISBN 1-55860-910-5.
- Osisek, D. L .; Джексон, К. М .; Гум, П. Х. (1991). «Архитектура интерпретируемого исполнения ESA / 390, основа для VM / ESA» (PDF). Журнал IBM Systems. 30 (1): 34–51. Дои:10.1147 / sj.301.0034.
- Адамс, Кейт; Агесен, Оле (2006). Сравнение программных и аппаратных средств виртуализации x86 (PDF). Международная конференция по архитектурной поддержке языков программирования и операционных систем, Сан-Хосе, Калифорния, США. ACM 1-59593-451-0 / 06/0010. Получено 2006-12-22.
- «Оценка производительности AMD RVI Hardware Assist» (PDF). VMware.
- «Оценка производительности Intel EPT Hardware Assist» (PDF). VMware.