В вычислениях виртуализация с аппаратной поддержкой является платформой виртуализация подход, который обеспечивает эффективную полную виртуализацию с помощью аппаратных возможностей, прежде всего процессоров хоста. Полная виртуализация используется для эмуляции полной аппаратной среды или виртуальной машины, в которой немодифицированная гостевая операционная система (с использованием того же набора инструкций, что и хост машина) эффективно выполняется в полной изоляции. Виртуализация с аппаратной поддержкой была добавлена в процессоры x86 (Intel VT-x или AMD-V ) в 2005 и 2006 годах (соответственно).
Виртуализация с аппаратным обеспечением также известна как ускоренная виртуализация ; Xen называет это аппаратной виртуальной машиной (HVM ), а Virtual Iron называет это собственной виртуализацией .
Аппаратная виртуализация впервые появилась на IBM System / 370 в 1972 году для использования с VM / 370, первой операционной системой виртуальной машины. С ростом спроса на компьютерную графику высокого разрешения (например, CAD ) виртуализация мэйнфреймов потеряла некоторое внимание в конце 1970-х, когда грядущие миникомпьютеры способствовали распределению ресурсов с помощью распределенных computing, охватывающий коммерциализацию микрокомпьютеров.
IBM предлагает аппаратную виртуализацию для своих POWER CPU под AIX (например, System p ) и для его IBM- Mainframes System z. IBM называет свою конкретную форму аппаратной виртуализации «логическим разделом» или, чаще, LPAR.
. Увеличение вычислительной мощности на сервер x86 (и, в частности, значительное увеличение пропускной способности современных сетей) возродило интерес к вычисления на базе центров обработки данных, основанные на методах виртуализации. Основным драйвером была возможность консолидации серверов: виртуализация позволила одному серверу экономично консолидировать вычислительную мощность нескольких недостаточно используемых выделенных серверов. Наиболее заметным признаком возврата к истокам вычислений являются облачные вычисления, которые являются синонимом вычислений на базе центров обработки данных (или вычислений, подобных мэйнфреймам) через сети с высокой пропускной способностью. Это тесно связано с виртуализацией.
Первоначальная реализация архитектуры x86 не соответствовала требованиям виртуализации Попека и Голдберга для достижения «классической виртуализации»:
Это затрудняло реализацию монитора виртуальных машин для этого типа процессора. Конкретные ограничения включали невозможность перехватить в некоторых привилегированных инструкциях.
Чтобы компенсировать эти архитектурные ограничения, разработчики выполнили виртуализацию архитектуры x86 двумя способами: полная виртуализация или паравиртуализация . Оба создают иллюзию наличия физического оборудования для достижения цели независимости операционной системы от оборудования, но имеют некоторые компромиссы в производительности и сложности.
В 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 и Virtual Iron указали на практическое преимущество виртуализации с аппаратной поддержкой.
Аппаратная виртуализация требует явной поддержки в центральном процессоре, которая доступна не на всех процессорах x86 / x86_64.
«Чистый» подход к виртуализации с аппаратной поддержкой, использующий полностью немодифицированные гостевые операционные системы, включает множество ловушек виртуальных машин и, следовательно, высокие накладные расходы ЦП, ограничивающие масштабируемость и эффективность консолидации серверов. Это снижение производительности может быть уменьшено за счет использования паравиртуализированных драйверов; эта комбинация получила название «гибридная виртуализация».
В 2006 году поддержка 32- и 64-разрядного оборудования x86 первого поколения редко обеспечивала преимущества в производительности по сравнению с программной виртуализацией.