stringtranslate.com

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

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

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

История

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

IBM предлагает аппаратную виртуализацию для своего оборудования IBM Power Systems для AIX , Linux и IBM i , а также для своих мэйнфреймов IBM Z. IBM называет свою конкретную форму аппаратной виртуализации «логическим разделом» или, чаще, LPAR .

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

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

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

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

  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 года:

Хорошо известные реализации виртуализации x86 с аппаратной поддержкой включают VMware Workstation (только для 64-битных гостевых систем), XenCenter, Xen 3.x (включая производные, такие как Virtual Iron), Linux KVM и Microsoft Hyper-V .

Преимущества

Виртуализация с аппаратной поддержкой снижает затраты на обслуживание паравиртуализации, поскольку уменьшает (в идеале устраняет) изменения, необходимые в гостевой операционной системе. Кроме того, значительно легче добиться более высокой производительности. Практическая выгода аппаратной виртуализации была отмечена инженерами VMware [4] и Virtual Iron.

Недостатки

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

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

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

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

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

  1. ^ «Архивная копия». www.via.com.tw. _ Архивировано из оригинала 22 января 2013 года . Проверено 10 октября 2022 г.{{cite web}}: CS1 maint: архивная копия в заголовке ( ссылка )
  2. ^ Адамс, Кейт. «Сравнение программных и аппаратных методов виртуализации x86» (PDF) . Проверено 20 января 2013 г.
  3. ^ Крис Барклай, Новый подход к виртуализации x86 , Network World , 20 октября 2006 г.
  4. ^ См. «Виртуализация графики и ввода-вывода».
  5. ^ См. «Гибридная виртуализация: следующее поколение XenLinux». Архивировано 20 марта 2009 г. в Wayback Machine .
  6. ^ Джун Накадзима и Асит К. Маллик, «Гибридная виртуализация — расширенная виртуализация для Linux». Архивировано 7 января 2009 г. в Wayback Machine , в материалах симпозиума Linux , Оттава, июнь 2007 г.
  7. ^ Сравнение программных и аппаратных методов для виртуализации x86, Кейт Адамс и Оле Агесен, VMware, ASPLOS'06, 21–25 октября 2006 г., Сан-Хосе, Калифорния, США. «Удивительно, но мы обнаруживаем, что аппаратная поддержка первого поколения редко предлагает преимущества в производительности по сравнению с существующими программными методами.Мы связываем эту ситуацию с высокими затратами на переход между VMM и гостевой системой и жесткой моделью программирования, которая оставляет мало места для гибкости программного обеспечения в управлении частотой или стоимостью этих переходов.

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