Аппаратная виртуализация - 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] Оба создают иллюзию физического оборудования для достижения цели независимости операционной системы от оборудования, но представляют собой некоторые компромиссы в производительности и сложности.

  1. Полная виртуализация был реализован в виртуальных машинах x86 первого поколения. Он полагается на двоичная трансляция для перехвата и виртуализации выполнения определенных конфиденциальных, не виртуализируемых инструкций. При таком подходе критические инструкции обнаруживаются (статически или динамически во время выполнения) и заменяются ловушками в VMM для эмуляции в программном обеспечении. Двоичное преобразование может повлечь за собой большие накладные расходы на производительность по сравнению с виртуальной машиной, работающей на изначально виртуализированных архитектурах, таких как IBM System / 370. VirtualBox, VMware Workstation (только для 32-битных гостей) и Виртуальный ПК Microsoft, являются хорошо известными коммерческими реализациями полной виртуализации.
  2. Паравиртуализация - это метод, при котором гипервизор предоставляет 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]

Смотрите также

Рекомендации

  1. ^ Адамс, Кит. «Сравнение программных и аппаратных средств виртуализации x86» (PDF). Получено 20 января 2013.
  2. ^ Крис Барклай, Новый подход к виртуализации x86, Сетевой мир, 20 октября 2006 г.
  3. ^ Видеть «Виртуализация графики и ввода-вывода».
  4. ^ Видеть «Гибридная виртуализация: новое поколение XenLinux». В архиве 20 марта 2009 г. Wayback Machine
  5. ^ Джун Накадзима и Асит К. Маллик, «Гибридная виртуализация - расширенная виртуализация для Linux» В архиве 2009-01-07 на Wayback Machine, в Материалы симпозиума по Linux, Оттава, июнь 2007 г.
  6. ^ «Сравнение программных и аппаратных методов виртуализации x86», Кейт Адамс и Оле Агесен, VMware, ASPLOS’06, 21–25 октября 2006 г., Сан-Хосе, Калифорния, США «Удивительно, но мы обнаружили, что поддержка оборудования первого поколения редко дает преимущества в производительности по сравнению с существующими программными технологиями. Мы объясняем эту ситуацию высокими затратами на переход между VMM и гостевой системой и жесткой моделью программирования, которая оставляет мало места для гибкости программного обеспечения при управлении частотой или стоимость этих переходов.

дальнейшее чтение