В вычислительной технике аппаратная виртуализация — это подход к виртуализации платформы , который обеспечивает эффективную полную виртуализацию с использованием аппаратных возможностей, в первую очередь хост-процессоров. Полная виртуализация используется для эмуляции полной аппаратной среды или виртуальной машины , в которой немодифицированная гостевая операционная система (использующая тот же набор команд, что и хост-машина) эффективно работает в полной изоляции. Аппаратная виртуализация была добавлена в процессоры 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] Оба создают иллюзию физического оборудования для достижения цели независимости операционной системы от оборудования, но представляют собой некоторые компромиссы в производительности и сложности.
В 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]
{{cite web}}
: CS1 maint: архивная копия в заголовке ( ссылка )