Как работают виртуальные машины – принцип работы. Какие бывают виды виртуальных машин

Возможность аппаратной поддержки виртуальных машин, принесла последним огромную популярность среди домашних пользователей ПК. Аппаратная виртуализация позволила значительно увеличить скорость работы управляющей системы.
Технология аппаратной виртуализации поддерживаются двумя самыми крупными производителями процессоров. У компании Intel — это VT-x (Virtual Technology extensions, она же Vanderpool), у AMD – это SVM (Secure Virtual Machine, она же Pacifica). Принцип работы обеих технологий практически идентичен, однако их программный уровень не совместим. В основе принципа аппаратной виртуализации заложено разделение состояния реального процессора на две части: гостевую (non-root mode) и мониторную (root mode). Работают они так, например, при переключении из основной операционной системы в гостевую процессор в автоматическом режиме переключается в гостевое состояние и показывает системе те значения регистра, которые ОС хочет видеть, которые необходимы ей для стабильной работы. То есть тут в роли обманщика выступает сам процессор, что в свою очередь избавляет систему от потребности в создании его виртуальной копии и других ухищрений. При все при этом гостевая операционная система напрямую работает с процессор и анализирует его данные, за счет чего виртуальная машина работает гораздо быстрее, чем на компьютерах без аппаратной поддержки виртуализации.

По причине, описанной выше, все разработчики и поставщики программного обеспечения для виртуализации явно указывают в системных требованиях поддержку VT-x и аналогичную технологию от AMD. Кстати, если вы собираетесь работать с виртуальной машиной Parallels Workstation, то обязательно позаботьтесь о том, чтобы ваше железо имело поддержку аппаратной виртуализации.


Не все так хорошо, как могло бы показаться на первый взгляд, так как некоторые производители компьютеров сознательно отключают поддержку VT-x из соображений безопасности и стабильности системы. Например, компания Sony, в частности у Avio, технология виртуализации Intel отключается на стадии загрузки BIOS. В таком случае превращение “опасного” кода (способного повредить основную операционную систему) в безопасный код полностью ложиться на плечи бинарной трансляции, о которой кстати мы поговорим в следующей статье.

Как узнать есть ли аппаратная поддержка виртуализации у вашего железа?

Вообще, все современные процессоры имеют поддержку аппаратной виртуализации, однако для тех, у кого компьютер не совсем современный как-то необходимо узнавать, поддерживается ли их процессором данная технология. Как это сделать? Все на самом деле просто:

  • Попытаться найти на сайте производителя вашего процессора списки процессоров поддерживающих аппаратную виртуализацию, и сравнить их с имеющимся железом.
  • Можно воспользоваться бесплатной утилитой от компании Microsoft – Hardware-assisted virtualization (HAV) detection tool. Эта утилита способна в считанные секунды определить поддерживает ли тот или иной процессор аппаратную виртуализацию, а также включена ли эта функция. Ну и конечно же порекомендует своему пользователю воспользоваться услугами Windows Virtual PC.

Многие специалисты в области ИТ неоднократно сталкивались с таким понятием, как "аппаратная виртуализация". И это вовсе неслучайно, поскольку здесь приходится иметь дело с постоянным наращиванием мощности техники. Что такое виртуализация? Какой она бывает? В чем ее основные преимущества и недостатки? Давайте попробуем это выяснить.

Под понятием "виртуализация" подразумевается процесс представления набора строго определенных информационных данных. В результате появляются преимущества, недоступные первоначальной

Для более четкого восприятия следует заметить, что процесс разделен на два направления, одно из которых - виртуализация на уровне ОС (программная), а второе - аппаратная виртуализация (серверная).

До недавнего времени программная виртуализация была более популярной, поскольку позволяла получить технологичные решения. Однако на данный момент времени поддержка виртуализации (аппаратной) намного усилилась, что позволило ей быстро сместить с лидирующего места свою предшественницу. Решающую роль здесь сыграло повышение производительности и мощности системы.

Аппаратная виртуализация. Преимущества

1. Достаточно простая разработка платформ для виртуализации (в сравнении с разработкой под программную виртуализацию). Это дает безусловное преимущество во времени при создании новых платформ и сокращает трудовые затраты.

2. Одновременный и независимый запуск пары виртуальных платформ (с сохранением возможности использования каждой из них в отдельности), что, соответственно, повышает быстродействие системы.

3. Возможность оптимизации.

4. Упрощение управления инфраструктурой серверов.

Аппаратная виртуализация. Недостатки

1. Высокие требования к аппаратным решениям (серверам).

2. Высокие затраты на реализацию технологии.

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

На практике допускаются комбинации сразу двух типов. Реализовать любой из этих типов возможно только при наличии соответственного оборудования (процессора, поддерживающего технологию аппаратной виртуализации).

На данный момент времени наиболее распространенными являются варианты построения технологии на базе и Intel. Чтобы узнать, какие именно модели процессоров поддерживают серверную виртуализацию, необходимо зайти на сайт производителя и посмотреть характеристики устройства.

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

Технологии аппаратной виртуализации

Бурное развитие рынка технологий виртуализации за последние несколько лет произошло во многом благодаря увеличению мощностей аппаратного обеспечения, позволившего создавать по-настоящему эффективные платформы виртуализации, как для серверных систем, так и для настольных компьютеров. Технологии виртуализации позволяют запускать на одном физическом компьютере (хосте) несколько виртуальных экземпляров операционных систем (гостевых ОС) в целях обеспечения их независимости от аппаратной платформы и сосредоточения нескольких виртуальных машин на одной физической. Виртуализация предоставляет множество преимуществ, как для инфраструктуры предприятий, так и для конечных пользователей. За счет виртуализации обеспечивается существенная экономия на аппаратном обеспечении, обслуживании, повышается гибкость ИТ-инфраструктуры, упрощается процедура резервного копирования и восстановления после сбоев. Виртуальные машины, являясь независимыми от конкретного оборудования единицами, могут распространяться в качестве предустановленных шаблонов, которые могут быть запущены на любой аппаратной платформе поддерживаемой архитектуры.

До недавнего времени усилия в области виртуализации операционных систем были сосредоточены в основном в области программных разработок. В 1998 году компания VMware впервые серьезно обозначила перспективы развития виртуальных систем, запатентовав программные техники виртуализации. Благодаря усилиям VMware, а также других производителей виртуальных платформ, и возрастающим темпам совершенствования компьютерной техники, корпоративные и домашние пользователи увидели преимущества и перспективы новой технологии, а рынок средств виртуализации начал расти стремительными темпами. Безусловно, такие крупные компании, как Intel и AMD, контролирующие большую часть рынка процессоров, не могли оставить эту перспективную технологию без внимания. Компания Intel первая увидела в новой технологии источник получения технологического превосходства над конкурентами и начала работу над усовершенствованием x86 архитектуры процессоров в целях поддержки платформ виртуализации. Вслед за Intel компания AMD также присоединилась к разработкам в отношении поддержки аппаратной виртуализации в процессорах, чтобы не потерять позиции на рынке. В данный момент обе компании предлагают модели процессоров, обладающих расширенным набором инструкций и позволяющих напрямую использовать ресурсы аппаратуры в виртуальных машинах.

Развитие аппаратных техник виртуализации

Идея аппаратной виртуализации не нова: впервые она была воплощена в 386-х процессорах и носила название V86 mode. Этот режим работы 8086-го процессора позволял запускать параллельно несколько DOS-приложений. Теперь аппаратная виртуализация позволяет запускать несколько независимых виртуальных машин в соответствующих разделах аппаратного пространства компьютера. Аппаратная виртуализация является логическим продолжением эволюции уровней абстрагирования программных платформ — от многозадачности до уровня виртуализации:

Преимущества аппаратной виртуализации над программной

Программная виртуализация в данный момент превалирует над аппаратной на рынке технологий виртуализации ввиду того, что долгое время производители процессоров не могли должным образом реализовать поддержку виртуализации. Процесс внедрения новой технологии в процессоры требовал серьезного изменения их архитектуры, введения дополнительных инструкций и режимов работы процессоров. Это рождало проблемы обеспечения совместимости и стабильности работы, которые были полностью решены в 2005-2006 годах в новых моделях процессоров. Несмотря на то, что программные платформы весьма продвинулись в отношении быстродействия и предоставления средств управления виртуальными машинами, технология аппаратной виртуализации имеет некоторые неоспоримые преимущества перед программной:

  • Упрощение разработки платформ виртуализации за счет предоставления аппаратных интерфейсов управления и поддержки виртуальных гостевых систем. Это способствует появлению и развитию новых платформ виртуализации и средств управления, в связи с уменьшением трудоемкости и времени их разработки.
  • Возможность увеличения быстродействия платформ виртуализации. Поскольку управление виртуальными гостевыми системами производится с помощью небольшого промежуточного слоя программного обеспечения (гипервизора) напрямую, в перспективе ожидается увеличение быстродействия платформ виртуализации на основе аппаратных техник.
  • Возможность независимого запуска нескольких виртуальных платформ с возможностью переключения между ними на аппаратном уровне. Несколько виртуальных машин могут работать независимо, каждая в своем пространстве аппаратных ресурсов, что позволит устранить потери быстродействия на поддержание хостовой платформы, а также увеличить защищенность виртуальных машин за счет их полной изоляции.
  • Отвязывание гостевой системы от архитектуры хостовой платформы и реализации платформы виртуализации. С помощью технологий аппаратной виртуализации возможен запуск 64-битных гостевых систем из 32-битных хостовых системах, с запущенными в них 32-битными средами виртуализации.

Как работает аппаратная виртуализация

Необходимость поддержки аппаратной виртуализации заставила производителей процессоров несколько изменить их архитектуру за счет введения дополнительных инструкций для предоставления прямого доступа к ресурсам процессора из гостевых систем. Этот набор дополнительных инструкций носит название Virtual Machine Extensions (VMX). VMX предоставляет следующие инструкции: VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMXON и VMXOFF.

Процессор с поддержкой виртуализации может работать в двух режимах root operation и non-root operation. В режиме root operation работает специальное программное обеспечение, являющееся «легковесной» прослойкой между гостевыми операционными системами и оборудованием — монитор виртуальных машин (Virtual Machine Monitor, VMM), носящий также название гипервизор (hypervisor). Слово «гипервизор» появилось интересным образом: когда-то очень давно, операционная система носила название «supervisor», а программное обеспечение, находящееся «под супервизором», получило название «гипервизор».

Чтобы перевести процессор в режим виртуализации, платформа виртуализации должна вызвать инструкцию VMXON и передать управление гипервизору, который запускает виртуальную гостевую систему инструкцией VMLAUNCH и VMRESUME (точки входа в виртуальную машину). Virtual Machine Monitor может выйти из режима виртуализации процессора, вызвав инструкцию VMXOFF.



Каждая из гостевых операционных систем запускается и работает независимо от других и является изолированной с точки зрения аппаратных ресурсов и безопасности.

Отличие аппаратной виртуализации от программной

Классическая архитектура программной виртуализации подразумевает наличие хостовой операционной системы, поверх которой запускается платформа виртуализации, эмулирующая работу аппаратных компонентов и управляющая аппаратными ресурсами в отношении гостевой операционной системы. Реализация такой платформы достаточно сложна и трудоемка, присутствуют потери производительности, в связи с тем, что виртуализация производится поверх хостовой системы. Безопасность виртуальных машин также находится под угрозой, поскольку получение контроля на хостовой операционной системой автоматически означает получение контроля над всеми гостевыми системами.

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

Недостатки аппаратной виртуализации

Стоит также отметить, что аппаратная виртуализация потенциально несет в себе не только положительные моменты. Возможность управления гостевыми системами посредством гипервизора и простота написания платформы виртуализации с использованием аппаратных техник дают возможность разрабатывать вредоносное программное обеспечение, которое после получения контроля на хостовой операционной системой, виртуализует ее и осуществляет все действия за ее пределами.

В начале 2006 года в лабораториях Microsoft Research был создан руткит под кодовым названием SubVirt, поражающий хостовые системы Windows и Linux и делающий свое присутствие практически не обнаруживаемым. Принцип действия этого руткита заключался в следующем:

  1. Через одну из уязвимостей в операционной системе компьютера вредоносное программное обеспечение получает административный доступ.
  2. После этого, руткит начинает процедуру миграции физической платформы на виртуальную, по окончании которой происходит запуск виртуализованной платформы посредством гипервизора. При этом для пользователя ничего не меняется, все продолжает работать, как и раньше, а все средства и службы, необходимые для доступа к гипервизору извне (например, терминального доступа), находятся за пределами виртуализованной системы.
  3. Антивирусное программное обеспечение после осуществления процедуры миграции не может обнаружить вредоносный код, поскольку он находится за пределами виртуализованной системы.

Наглядно эта процедура выглядит так:



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

Технологии виртуализации компаний Intel и AMD

Компании Intel и AMD, являясь ведущими производителями процессоров для серверных и настольных платформ, разработали техники аппаратной виртуализации для их использования в платформах виртуализации. Эти техники не обладают прямой совместимостью, но выполняют в основном схожие функции. Обе они предполагают наличие гипервизора, управляющего не модифицированными гостевыми системами, и имеют возможности для разработки платформ виртуализации без необходимости эмуляции аппаратуры. В процессорах обеих компаний, поддерживающих виртуализацию, введены дополнительные инструкции для их вызова гипервизором в целях управления виртуальными системами. В данный момент группа, занимающаяся исследованием возможностей аппаратных техник виртуализации, включает в себя компании AMD, Intel, Dell, Fujitsu Siemens, Hewlett-Packard, IBM, Sun Microsystems и VMware.

Виртуализация Intel

Компания Intel официально объявила о запуске технологии виртуализации в начале 2005 года на конференции Intel Developer Forum Spring 2005. Новая технология получила кодовое название Vanderpool и официальное Intel Virtualization Technology (сокращенно Intel VT). Технология Intel VT содержит в себе некоторое множество техник различного класса, имеющих номера версий VT-x, где x — литер, указывающий на подвид аппаратной техники. Была заявлена поддержка новой технологии в процессорах Pentium 4, Pentium D, Xeon, Core Duo и Core 2 Duo. Intel также опубликовала спецификации на Intel VT для Itanium-based процессоров, где технология виртуализации фигурировала под кодовым именем «Silvervale» и версией VT-i. Однако, начиная с 2005 года, новые модели процессоров Itanium не поддерживают x86 инструкции аппаратно, и x86-виртуализация может быть использована на архитектуре IA-64 только с помощью эмуляции.

Для включения технологии Intel VT в компьютерные системы, компания Intel сотрудничала с производителями материнских плат, BIOS и периферийного оборудования, чтобы обеспечить совместимость Intel VT с существующими системами. Во многих компьютерных системах технология аппаратной виртуализации может быть выключена в BIOS. Спецификации на Intel VT говорят, что для поддержки этой технологии не достаточно одного лишь поддерживающего ее процессора, необходимо также наличие соответствующих чипсетов материнской платы, BIOS и программного обеспечения, использующего Intel VT. Список поддерживающих Intel VT процессоров приведен далее:

  • Intel® 2 Core™ Duo Extreme processor X6800
  • Intel® 2 Core™ Duo processor E6700
  • Intel® 2 Core™ Duo processor E6600
  • Intel® 2 Core™ Duo processor E6400 (E6420)
  • Intel® 2 Core™ Duo processor E6300 (E6320)
  • Intel® Core™ Duo processor T2600
  • Intel® Core™ Duo processor T2500
  • Intel® Core™ Duo processor T2400
  • Intel® Core™ Duo processor L2300
  • Intel® Pentium® processor Extreme Edition 965
  • Intel® Pentium® processor Extreme Edition 955
  • Intel® Pentium® D processor 960
  • Intel® Pentium® D processor 950
  • Intel® Pentium® D processor 940
  • Intel® Pentium® D processor 930
  • Intel® Pentium® D processor 920
  • Intel® Pentium® 4 processor 672
  • Intel® Pentium® 4 processor 662

Процессоры для ноутбуков:

  • Intel® 2 Core™ Duo processor T7600
  • Intel® 2 Core™ Duo processor T7400
  • Intel® 2 Core™ Duo processor T7200
  • Intel® 2 Core™ Duo processor T5600
  • Intel® 2 Core™ Duo processor L7400
  • Intel® 2 Core™ Duo processor L7200
  • Intel® 2 Core™ Duo processor L7600
  • Intel® 2 Core™ Duo processor L7500

Процессоры для серверных платформ:

  • Intel® Xeon® processor 7041
  • Intel® Xeon® processor 7040
  • Intel® Xeon® processor 7030
  • Intel® Xeon® processor 7020
  • Intel® Xeon® processor 5080
  • Intel® Xeon® processor 5063
  • Intel® Xeon® processor 5060
  • Intel® Xeon® processor 5050
  • Intel® Xeon® processor 5030
  • Intel® Xeon® processor 5110
  • Intel® Xeon® processor 5120
  • Intel® Xeon® processor 5130
  • Intel® Xeon® processor 5140
  • Intel® Xeon® processor 5148
  • Intel® Xeon® processor 5150
  • Intel® Xeon® processor 5160
  • Intel® Xeon® processor E5310
  • Intel® Xeon® processor E5320
  • Intel® Xeon® processor E5335
  • Intel® Xeon® processor E5345
  • Intel® Xeon® processor X5355
  • Intel® Xeon® processor L5310
  • Intel® Xeon® processor L5320
  • Intel® Xeon® processor 7140M
  • Intel® Xeon® processor 7140N
  • Intel® Xeon® processor 7130M
  • Intel® Xeon® processor 7130N
  • Intel® Xeon® processor 7120M
  • Intel® Xeon® processor 7120N
  • Intel® Xeon® processor 7110M
  • Intel® Xeon® processor 7110N
  • Intel® Xeon® processor X3220
  • Intel® Xeon® processor X3210

Необходимо отметить, что следующие четыре процессора не поддерживают технологию Intel VT:

  • Intel® 2 Core™ Duo processor E4300
  • Intel® 2 Core™ Duo processor E4400
  • Intel® 2 Core™ Duo processor T5500
  • Intel® Pentium® D processor 9x5 (D945)

Компания Intel планирует также развивать технологию под названием Virtualization for Directed I/O к Intel VT, имеющую версию VT-d. На данный момент известно, что это существенные изменения в архитектуре ввода-вывода, которые позволят улучшить защищенность, робастность и производительность виртуальных платформ, использующих аппаратные техники виртуализации.

Виртуализация AMD

Компания AMD, так же, как и компания Intel, не так давно взялась за доработку архитектуры процессоров с целью поддержки виртуализации. В мае 2005 года компания AMD объявила о начале внедрения поддержки виртуализации в процессоры. Официальное название, которое получила новая технология — AMD Virtualization (сокращенно AMD-V), а ее внутреннее кодовое имя — AMD Pacifica. Технология AMD-V является логическим продолжением технологии Direct Connect для процессоров AMD64, направленной на повышение производительности компьютерных систем за счет тесной прямой интеграции процессора с другими компонентами аппаратного обеспечения.

В списке далее приведены процессоры, поддерживающие функции аппаратной виртуализации AMD-V. Поддержка этих функций должна работать во всех процессорах серии AMD-V для настольных компьютеров под Socket AM2, начиная со степпинга F. Необходимо также отметить, что процессоры Sempron не поддерживают аппаратную виртуализацию.

Процессоры для настольных платформ:

  • Athlon™ 64 3800+
  • Athlon™ 64 3500+
  • Athlon™ 64 3200+
  • Athlon™ 64 3000+
  • Athlon™ 64 FX FX-62
  • Athlon™ 64 FX FX-72
  • Athlon™ 64 FX FX-74
  • Athlon™ 64 X2 Dual-Core 6000+
  • Athlon™ 64 X2 Dual-Core 5600+
  • Athlon™ 64 X2 Dual-Core 5400+
  • Athlon™ 64 X2 Dual-Core 5200+
  • Athlon™ 64 X2 Dual-Core 5000+
  • Athlon™ 64 X2 Dual-Core 4800+
  • Athlon™ 64 X2 Dual-Core 4600+
  • Athlon™ 64 X2 Dual-Core 4400+
  • Athlon™ 64 X2 Dual-Core 4200+
  • Athlon™ 64 X2 Dual-Core 4000+
  • Athlon™ 64 X2 Dual-Core 3800+

Для ноутбуков поддерживаются процессоры с брендом Turion 64 X2:

  • Turion™ 64 X2 TL-60
  • Turion™ 64 X2 TL-56
  • Turion™ 64 X2 TL-52
  • Turion™ 64 X2 TL-50

Для серверных платформ поддерживаются следующие процессоры Opteron:

  • Opteron 1000 Series
  • Opteron 2000 Series
  • Opteron 8000 Series

Программное обеспечение, поддерживающее аппаратную виртуализацию

На данный момент, абсолютное большинство вендоров программных платформ виртуализации заявило о поддержке технологий аппаратной виртуализации Intel и AMD. Виртуальные машины на этих платформах могут быть запущены при поддержке аппаратной виртуализации. Кроме того, во многих операционных системах, в дистрибутив которых включены программные платформы паравиртуализации, такие как Xen или Virtual Iron, аппаратная виртуализация позволит запускать неизмененные гостевые операционные системы. Так как паравиртуализация является одним из видов виртуализации, требующих модификации гостевой операционной системы, реализация в платформах паравиртуализации поддержки аппаратной виртуализации является для этих платформ весьма приемлемым решением, с точки зрения возможности запуска не модифицированных версий гостевых систем. В приведенной далее таблице перечислены основные популярные платформы виртуализации и программное обеспечение, поддерживающие технологии аппаратной виртуализации:

Платформа виртуализации или ПО Какие технологии поддерживает Примечание
Kernel-based Virtual Machine (KVM) Intel VT, AMD-V Виртуализация уровня экземпляров операционных систем под Linux.
Microsoft Virtual PC Intel VT, AMD-V Настольная платформа виртуализации для хостовых Windows-платформ.
Microsoft Virtual Server Intel VT, AMD-V Серверная платформа виртуализации для Windows. Версия с поддержкой аппаратной виртуализации, Microsoft Virtual Server 2005 R2 SP1, находится в состоянии беты. Ожидается во втором квартале 2007 г.
Parallels Workstation Intel VT, AMD-V Платформа виртуализации для Windows и Linux хостов.
VirtualBox Intel VT, AMD-V Настольная платформа виртуализации с открытым исходным кодом для Windows, Linux и Mac OS. По умолчанию поддержка аппаратной виртуализации выключена, поскольку по исследованиям экспертов, на данный момент аппаратная виртуализация медленнее программной
Virtual Iron Intel VT, AMD-V Virtual Iron 3.5 является первой платформой виртуализации, использующей аппаратные техники, которая позволяет запускать 32-битные и 64-битные неизмененные гостевые системы практически без потери производительности.
VMware Workstation и VMware Server Intel VT, AMD-V Для запуска 64-х битных гостевых систем требуется поддержка Intel VT (так же как и для VMware ESX Server), для 32-битных же гостевых ОС по умолчанию поддержка IntelVT отключена по тем же причинам, что и у VirtualBox.
Xen Intel VT, AMD-V Платформа виртуализации Xen с открытым исходным кодом позволяет запускать неизмененные гостевые системы, используя аппаратные техники виртуализации.

Аппаратная виртуализация сегодня

Компания VMware, входящая в исследовательскую группу аппаратных техник виртуализации, в конце 2006 года провела исследование в отношении собственной программной виртуализации в сравнении с аппаратными технологиями виртуализации компании Intel. В документе «A Comparison of Software and Hardware Techniques for x86 Virtualization» были зафиксированы результаты этого исследования (на процессоре 3.8 GHz Intel Pentium 4 672 с отключенной технологией Hyper-Threading). Один из экспериментов проводился с помощью систем тестов SPECint2000 и SPECjbb2005, являющихся стандартом де-факто для оценки производительности компьютерных систем. В качестве гостевой системы использовалась ОС Red Hat Enterprise Linux 3, управляемая программным и аппаратным гипервизором. Ожидалось, что аппаратная виртуализация даст коэффициент производительности около ста процентов в отношении нативного запуска операционной системы. Однако результаты оказались весьма неожиданными: в то время как программный гипервизор без использования аппаратных техник виртуализации давал 4 процента потерь производительности в отношении нативного запуска, аппаратный гипервизор, в целом, терял 5 процентов производительности. Результаты этого теста приведены на рисунке далее:



Выводы

Поддержка технологий аппаратной виртуализации в процессорах открывает широкие перспективы по использованию виртуальных машин в качестве надежных, защищенных и гибких инструментов для повышения эффективности виртуальных инфраструктур. Наличие поддержки аппаратных техник виртуализации в процессорах не только серверных, но и настольных систем, говорит о серьезности намерений производителей процессоров в отношении всех сегментов рынка пользователей компьютерных систем. Использование аппаратной виртуализации в перспективе должно уменьшить потери производительности при запуске нескольких виртуальных машин на одном физическом сервере. Безусловно, аппаратная виртуализация повысит защищенность виртуальных систем в корпоративных средах. Сейчас простота разработки платформ виртуализации с использованием аппаратных техник привела к появлению новых игроков на рынке средств виртуализации. Вендоры систем паравиртуализации широко применяют аппаратную виртуализацию для запуска не модифицированных гостевых систем. Дополнительным преимуществом аппаратных техник виртуализации является возможность запуска 64-битных гостевых систем на 32-битных версиях платформ виртуализации (например, VMware ESX Server).

Не стоит воспринимать результаты производительности, как единственно верные. Объективная оценка производительности различных аппаратных и программных платформ для виртуализации является нетривиальной задачей, упомянутая рабочая группа в составе SPEC работает над созданием набора стандартных методов для оценки таких систем. На сегодня можно отметить, что средства виртуализации от AMD являются технически более совершенными, нежели реализованные Intel. Многое зависит и от используемого ПО, к примеру, в отличие от VMWare, есть значительно более «отзывчивые» к аппаратной поддержке среды, например, Xen 3.0.

Список литературы

1. Сергей Озеров, Александр Карабуто «Технологии виртуализации: вчера, сегодня, завтра»
2. Keith Adams, Ole Agesen A Comparison of Software and Hardware Techniques for x86 Virtualization
3. AMD Virtualization Solutions
4. Intel Virtualization Technology
5. Debunking Blue Pill myth

Одноклассники

В целом, сегодня популярны три вида виртуальных машин. Очень популярна машина, а вернее программа Virtual Box. Она вполне понятна и вообще, абсолютно универсальна. Следующим отличным вариантом есть Windows Visual. Благодаря этому эмулятору, пользователь легко сможет запустить несколько операционок на платформе одной реальной машины. А вот VMware Workstation скорее предназначается профессионалам.

Теперь у пользователей появится вопрос, какую виртуальную машину выбрать?

Все предлагаемые виртуальные машины, не смотря на их общность, различия определенно имеют. Пользователю прежде стоит совместить будущую машину с собственной операционкой. О цене виртуальных машин тоже забывать нельзя.

Самостоятельно выбираем виртуальную машину

Если пользователь желает пользоваться бесплатной виртуальной машиной, то можно рассмотреть вариант Virtual Box. Достоинств этот эмулятор имеет массу, и главное, успешно и вполне корректно сотрудничает с большинством существующих сегодня операционных платформ. Windows Visual представляет более усложненную формулу, которая работает, только если машина реальная использует платформу Windows. С другими платформами ее работа невозможна. Предназначается эта программа машинам 64 битным. Модели компьютеров, конфигурация которых не дотягивает до показателя 64, работать с программой откажутся. Если пользователь намерен посредством виртуальной машины заниматься хостингом, то выбирать следует VMware. Этот эмулятор невероятной мощности, но с Mac платформой они поссорятся.

Зачем нужен список виртуальных машин

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

И, наконец, типы виртуальных машин

Их всего два. Первый называется динамической трансляцией. Если выбран такой тип виртуализации, то пользователь получает гостевую операционку, то есть операционку, которая будет обслуживать виртуальную машину, в качестве приложения. Тип второй назван паравиртуализацией. Если выбирается этот тип эмуляции, то производительность обеих машин сильно возрастает, но использовать его можно только на платформах родственных.

Аппаратная виртуализация - виртуализация с поддержкой специальной процессорной архитектуры. В отличие от программной виртуализации, с помощью данной техники возможно использование изолированных гостевых систем, управляемых гипервизором напрямую. Гостевая система не зависит от архитектуры хостовой платформы и реализации платформы виртуализации.

Аппаратная виртуализация обеспечивает производительность, сравнимую с производительностью невиртуализованной машины, что дает виртуализации возможность практического использования и влечет её широкое распространение. Наиболее распространены технологии виртуализации Intel -VT и AMD -V.

Intel VT (Intel Virtualization Technology)

VT-x

Ранее известная под кодовым названием "Vanderpool", VT-x представляет собой технологию виртуализации Intel на платформе x86. 13 ноября 2005 года Intel выпустила две модели Pentium 4 (модели 662 и 672), которые стали первыми процессорами, поддерживающими VT-x. Флаг поддержки VT-x - "vmx"; в Linux проверяется командой cat /proc/cpuinfo , в Mac OS X - sysctl machdep.cpu.features .

Intel начала включать технологию виртуализации Extended Page Table (EPT), для страничных таблиц, начиная с процессоров архитектуры Nehalem , , выпущенных в 2008 году. В 2010 году в архитектуру Westmere была добавлена технология "неограниченного гостя", заключающаяся в поддержке логического процессора в реальном режиме и требующая для работы EPT.

Начиная с архитектуры Haswell , объявленной в 2013 году, Intel начала включать затенение VMCS - технологию, ускоряющую вложенную виртуализацию менеджеров ВМ. VMCS - структура управления виртуальной машины (virtual machine control structure) - структура данных в памяти, существующая в точности в одном экземпляре на одну виртуальную машину и управляемая менеджером ВМ. С каждым изменением контекста выполнения между разными ВМ VMCS восстанавливается для текущей виртуальной машины, определяя состояние виртуального процессора ВМ. Если используется больше одного менеджера ВМ или используются вложенные менеджеры ВМ, необходимо многократное затенение VMCS. Аппаратная поддержка затенения делает управление VMSC более эффективным.

VT-d

VT-d (Virtualization technology for directed I/O) - технология виртуализации ввода-вывода, созданная корпорацией Intel в дополнение к её технологии виртуализации вычислений (), известной под кодовым названием Vanderpool. Виртуализация ввода-вывода позволяет пробрасывать (pass-through) устройства на шине PCI (и более современных подобных шинах) в гостевую ОС , таким образом, что она может работать с ним с помощью своих штатных средств . Чтобы такое было возможно, в логических схемах системной платы используется специальное устройство управления памятью ввода-вывода (IOMMU), работающее аналогично MMU центрального процессора, используя таблицы страниц и специальную таблицу отображения DMA (DMA remapping table - DMAR), которую гипервизор получает от BIOS через ACPI . Отображение DMA необходимо, поскольку гипервизор ничего не знает о специфике работы устройства с памятью по физическим адресам, которые известны лишь драйверу. С помощью DMAR он создает таблицы отображения таким образом, что драйвер гостевой ОС видит виртуальные адреса IOMMU аналогично тому, как бы он видел физические без него и гипервизора.

Intel Virtualization Technology for Directed I/O (VT-d) - это следующий важный шаг на пути к всеобъемлющей аппаратной поддержке виртуализации платформ на базе Intel. VT-d расширяет возможности технологии Virtualization Technology (VT), существующей в IA-32 (VT-x) и Itanium (VT-i), и добавляет поддержку виртуализации новых устройств ввода-вывода.

Поддержка аппаратным обеспечением

  • Виртуализация ввода-вывода впервые появилась в чипсете Q35 , и на сегодняшний день поддерживается всеми материнскими платами, поддерживающими технологию Intel vPro.
  • Для использования Intel Virtualization Technology необходим компьютер с процессором Intel, BIOS, монитором виртуальных машин (VMM), а для некоторых моделей с определенным программным обеспечением с поддержкой этой технологии. Функциональные возможности, производительность и другие характеристики могут различаться в зависимости от аппаратного и программного обеспечения и могут потребовать обновления BIOS.
  • Процессоры, поддерживающие Virtualization Technology for Directed I/O: Intel Core i7-920, Intel Core i7-940, Intel Core i7-950, Intel Core i7-870, Intel Core i7-860, Intel Core i5-650, Intel Core i5-660, Intel Core i5-670, Intel Core i5-540M, Intel Core i5-520M и т. д. http://ark.intel.com/ru/search/advanced/?VTD=true
  • i7-920 поддерживает технологию VT-x, про VT-d на сайте не указано. http://ark.intel.com/ru/search/advanced/?s=t&ProcessorNumber=920&CoreCountMin=4&ThreadCountMin=8&ClockSpeed=2.66%20GHz&InstructionSet=64-bit&Lithography=45%20nm&VTX=true&VTX_ExtendedPageTables=true

Поддержка программным обеспечением

  • Гипервизор Xen поддерживает DMAR начиная с версии 3.3 для аппаратно-виртуализуемых доменов. Для паравиртуальных доменов отображение DMA не требуется.
  • В ближайшем будущем заявлена поддержка технологии ПО Oracle VirtualBox .
  • Ядро Linux экспериментально поддерживает DMAR начиная с версии 2.6.28, что позволяет встроенному гипервизору (kvm) давать доступ виртуальным машинам к PCI-устройствам.
  • Поддержка Intel VT-d есть в Parallels Workstation 4.0 Extreme