Виртуализация с аппаратной поддержкой

редактировать

В вычислениях виртуализация с аппаратной поддержкой является платформой виртуализация подход, который обеспечивает эффективную полную виртуализацию с помощью аппаратных возможностей, прежде всего процессоров хоста. Полная виртуализация используется для эмуляции полной аппаратной среды или виртуальной машины, в которой немодифицированная гостевая операционная система (с использованием того же набора инструкций, что и хост машина) эффективно выполняется в полной изоляции. Виртуализация с аппаратной поддержкой была добавлена ​​в процессоры x86 (Intel VT-x или AMD-V ) в 2005 и 2006 годах (соответственно).

Виртуализация с аппаратным обеспечением также известна как ускоренная виртуализация ; Xen называет это аппаратной виртуальной машиной (HVM ), а Virtual Iron называет это собственной виртуализацией .

Содержание
  • 1 История
  • 2 Преимущества
  • 3 Недостатки
  • 4 См. Также
  • 5 Ссылки
  • 6 Дополнительная литература
История

Аппаратная виртуализация впервые появилась на IBM System / 370 в 1972 году для использования с VM / 370, первой операционной системой виртуальной машины. С ростом спроса на компьютерную графику высокого разрешения (например, CAD ) виртуализация мэйнфреймов потеряла некоторое внимание в конце 1970-х, когда грядущие миникомпьютеры способствовали распределению ресурсов с помощью распределенных computing, охватывающий коммерциализацию микрокомпьютеров.

IBM предлагает аппаратную виртуализацию для своих POWER CPU под AIX (например, System p ) и для его IBM- Mainframes System z. IBM называет свою конкретную форму аппаратной виртуализации «логическим разделом» или, чаще, LPAR.

. Увеличение вычислительной мощности на сервер x86 (и, в частности, значительное увеличение пропускной способности современных сетей) возродило интерес к вычисления на базе центров обработки данных, основанные на методах виртуализации. Основным драйвером была возможность консолидации серверов: виртуализация позволила одному серверу экономично консолидировать вычислительную мощность нескольких недостаточно используемых выделенных серверов. Наиболее заметным признаком возврата к истокам вычислений являются облачные вычисления, которые являются синонимом вычислений на базе центров обработки данных (или вычислений, подобных мэйнфреймам) через сети с высокой пропускной способностью. Это тесно связано с виртуализацией.

Первоначальная реализация архитектуры x86 не соответствовала требованиям виртуализации Попека и Голдберга для достижения «классической виртуализации»:

  • эквивалент : программа, работающая под виртуальным компьютерный монитор (VMM) должен демонстрировать поведение, по существу идентичное тому, которое продемонстрировано при работе на эквивалентной машине напрямую
  • управление ресурсами (также называемое безопасность ): VMM должен быть в полном объеме управление виртуализированными ресурсами
  • эффективность : статистически доминирующая часть машинных инструкций должна выполняться без вмешательства VMM

Это затрудняло реализацию монитора виртуальных машин для этого типа процессора. Конкретные ограничения включали невозможность перехватить в некоторых привилегированных инструкциях.

Чтобы компенсировать эти архитектурные ограничения, разработчики выполнили виртуализацию архитектуры x86 двумя способами: полная виртуализация или паравиртуализация . Оба создают иллюзию наличия физического оборудования для достижения цели независимости операционной системы от оборудования, но имеют некоторые компромиссы в производительности и сложности.

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

Недостатки

Аппаратная виртуализация требует явной поддержки в центральном процессоре, которая доступна не на всех процессорах x86 / x86_64.

«Чистый» подход к виртуализации с аппаратной поддержкой, использующий полностью немодифицированные гостевые операционные системы, включает множество ловушек виртуальных машин и, следовательно, высокие накладные расходы ЦП, ограничивающие масштабируемость и эффективность консолидации серверов. Это снижение производительности может быть уменьшено за счет использования паравиртуализированных драйверов; эта комбинация получила название «гибридная виртуализация».

В 2006 году поддержка 32- и 64-разрядного оборудования x86 первого поколения редко обеспечивала преимущества в производительности по сравнению с программной виртуализацией.

См. также
Справочная информация
  1. ^Адамс, Кейт. «Сравнение программных и аппаратных средств виртуализации x86» (PDF). Проверено 20 января 2013 г.
  2. ^Крис Барклай, Новый подход к виртуализации x86, Network World, 20 октября 2006 г.
  3. ^См. «Виртуализация графики и ввода-вывода».
  4. ^См. «Гибридная виртуализация: новое поколение XenLinux». Архивировано 20 марта 2009 г. на Wayback Machine
  5. ^Джун Накаджима и Асит К. Маллик, «Гибридная виртуализация - расширенная виртуализация для Linux» Архивировано 2007-01-07 на Wayback Machine, в Proceedings of the Linux Symposium, Оттава, июнь 2007 г.
  6. ^Сравнение программных и аппаратных методов для виртуализации x86, Кейт Адамс и Оле Агесен, VMware, ASPLOS'06, 21–25 октября 2006 г., Сан-Хосе, Калифорния, США «Удивительно, но мы обнаружили, что поддержка оборудования первого поколения редко дает преимущества в производительности по сравнению с существующими программными технологиями. Мы приписываем эту ситуацию высокой VMM / guest затрат на переход и жесткую модель программирования, которая оставляет мало места для гибкости программного обеспечения при управлении частотой или стоимостью этих переходов.
Дополнительная литература
Последняя правка сделана 2021-05-22 13:36:20
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте