Virtualization technology что это
Технология виртуализации в процессоре
Содержание
Содержание
На протяжении последних 15 лет слово «виртуальный» звучит практически из каждого утюга. Нам обещают все более реалистичные виртуальные миры или, как минимум, дополненную реальность. Виртуальная реальность, как в знаменитой трилогии «Матрица», пока в будущем. А вот виртуализация внутри процессора — реальное настоящее.
Зачем нужна виртуализация на домашнем компьютере
Вот простой пример: вы используете для работы и игр Windows, но при этом хотите изучить, например, Linux. Значит, нужно, чтобы эта операционная система находилась под рукой. Или занимаетесь программированием под Android или iOS. В этом случае постоянно требуется проверка разработанного приложения в родной среде.
Без виртуализации пришлось бы устанавливать на один компьютер две операционные системы, делать загрузчик и запускать каждую операционную систему поочередно. Или еще хуже — стирать одну ОС, устанавливать другую с переносом данных, переустановкой нужных приложений и так далее.
Так вот виртуализация позволяет обойтись без всех этих сложных процедур. Используя ее,можно запускать несколько операционных систем одновременно (одну внутри другой или две параллельно) и работать в той среде, которая нужна под конкретную задачу.
Виртуализация в бизнесе
Главная задача виртуализации — оптимальное использование производительности и мощности современной компьютерной техники в бизнес-приложениях, где используется мощное и дорогое оборудование.
Например, ваша организация собирается поставить почтовый сервер для обработки поступающей и исходящей переписки, а еще развернуть DNS и WEB-сервер. Сколько для этого нужно серверных машин? Достаточно одной. Потому что на ней, в виртуально разделенных друг от друга «песочницах», на одном и том же железе заработают как бы три отдельных компьютера, выполняющие каждый свою задачу. Так вы разместите на одном компьютере сразу три отдельных сервера и используете всю мощность и производительность техники, окупив потраченные средства.
Разумеется, так как мощность и производительность серверных систем и пропускная способность каналов связи постоянно растет, у виртуализации появляется все больше возможностей для применения. Наглядный пример из относительно недавно запущенных и находящихся у всех на слуху — сервис GeForce Now, благодаря которому можно на слабых компьютерах запускать современные игры.
Фактически это удаленные виртуальные компьютеры, выделенные сервисом под конкретного игрока. Собственная техника выступает только как терминальное устройство, для которого уже не так важна производительность процессора и видеокарты.
Основные направления развития виртуализации
В целом виртуализация как технология сейчас развивается по трем основным направлениям:
Как работает виртуализация
Мы разобрались с тем, что виртуализация — это хорошо и полезно. А что требуется для того, чтобы она заработала на вашем конкретном компьютере? Надо чтобы процессор поддерживал виртуализацию.
То есть, он должен уметь работать с несколькими системами команд одновременно – например, от одной операционной системы и от другой. А значит, выполнять инструкции, выделять адреса и место под хранение данных так, чтобы они работали только в нужной среде, да еще и взаимодействовали с интерфейсом, портами ввода-вывода, видеокартами и прочими узлами компьютера.
Такая технология есть у обоих крупных производителей процессоров для ПК: у Intel она называется Intel VT, у AMD — AMD –V.
Особенности Intel VT
Впервые о разработке технологии виртуализации компания Intel объявила еще в 2005 году. И с тех пор Intel VT постоянно совершенствуется и расширяется.
Корпорация Intel описывает Intel VT как технологию, развивающую несколько основных направлений. На сегодня это:
Особенности AMD–V
Процессоры AMD по цене доступнее Intel, но это совсем не говорит о том, что они хуже. Есть мнение, что как раз наоборот. Многие игровые платформы строятся именно на основе процессоров, чипсетов и видеокарт этой компании.
И, конечно же, у главного конкурента Intel есть свой набор функций, реализующих аналогичные процессы виртуализации. Точно также на машинах, собранных на процессоре и чипсете AMD, можно развернуть несколько операционных систем и обеспечить их работу с периферийными устройствами, сетью, памятью и пр. или, например, запустить критичное приложение в изолированной среде.
Включение виртуализации на компьютере
Непосредственный запуск виртуальных машин выполняется с помощью специальных приложений:
Но до того, как вы запустите эти программы и приступите к установке и настройке виртуальных машин, вам потребуется включить виртуализацию.
Дело в том, что по умолчанию в настройках BIOS большинства материнских плат виртуализация отключена. И ее необходимо включить в соответствующем разделе, который называется у каждого производителя по-своему, например, «Virtualization Technology» изменив значение опции с «Disabled» на «Enabled».
Если такой опции нет, то может оказаться так, что прошивка вашей материнской платы или процессор (хотя такое сейчас возможно только на старых моделях) виртуализацию не поддерживает. В этом редком, но возможном случае использовать преимущества виртуализации не получится.
Такая функция отключена в BIOS некоторых моделей ноутбуков Aser Aspire, позиционируемых производителем, как техника для домашнего использования.
Но в подавляющем большинстве случаев, вы просто включаете в BIOS виртуализацию, сохраняете настройки и после этого можете устанавливать и запускать гипервизоры или менеджеры виртуальных машин и приступать к работе с ними, управляя несколькими вычислительными процессами в разных оболочках одновременно.
Технологии аппаратной виртуализации
Бурное развитие рынка технологий виртуализации за последние несколько лет произошло во многом благодаря увеличению мощностей аппаратного обеспечения, позволившего создавать по-настоящему эффективные платформы виртуализации, как для серверных систем, так и для настольных компьютеров. Технологии виртуализации позволяют запускать на одном физическом компьютере (хосте) несколько виртуальных экземпляров операционных систем (гостевых ОС) в целях обеспечения их независимости от аппаратной платформы и сосредоточения нескольких виртуальных машин на одной физической. Виртуализация предоставляет множество преимуществ, как для инфраструктуры предприятий, так и для конечных пользователей. За счет виртуализации обеспечивается существенная экономия на аппаратном обеспечении, обслуживании, повышается гибкость ИТ-инфраструктуры, упрощается процедура резервного копирования и восстановления после сбоев. Виртуальные машины, являясь независимыми от конкретного оборудования единицами, могут распространяться в качестве предустановленных шаблонов, которые могут быть запущены на любой аппаратной платформе поддерживаемой архитектуры.
До недавнего времени усилия в области виртуализации операционных систем были сосредоточены в основном в области программных разработок. В 1998 году компания VMware впервые серьезно обозначила перспективы развития виртуальных систем, запатентовав программные техники виртуализации. Благодаря усилиям VMware, а также других производителей виртуальных платформ, и возрастающим темпам совершенствования компьютерной техники, корпоративные и домашние пользователи увидели преимущества и перспективы новой технологии, а рынок средств виртуализации начал расти стремительными темпами. Безусловно, такие крупные компании, как Intel и AMD, контролирующие большую часть рынка процессоров, не могли оставить эту перспективную технологию без внимания. Компания Intel первая увидела в новой технологии источник получения технологического превосходства над конкурентами и начала работу над усовершенствованием x86 архитектуры процессоров в целях поддержки платформ виртуализации. Вслед за Intel компания AMD также присоединилась к разработкам в отношении поддержки аппаратной виртуализации в процессорах, чтобы не потерять позиции на рынке. В данный момент обе компании предлагают модели процессоров, обладающих расширенным набором инструкций и позволяющих напрямую использовать ресурсы аппаратуры в виртуальных машинах.
Развитие аппаратных техник виртуализации
Виртуализация представляет собой эмуляцию нескольких виртуальных процессоров для каждой из гостевых операционных систем. При этом технология виртуального SMP позволяет представлять несколько виртуальных процессоров в гостевой ОС при наличии технологии HyperThreading или нескольких ядер в физическом процессоре.
Преимущества аппаратной виртуализации над программной
Как работает аппаратная виртуализация
Необходимость поддержки аппаратной виртуализации заставила производителей процессоров несколько изменить их архитектуру за счет введения дополнительных инструкций для предоставления прямого доступа к ресурсам процессора из гостевых систем. Этот набор дополнительных инструкций носит название 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.
Каждая из гостевых операционных систем запускается и работает независимо от других и является изолированной с точки зрения аппаратных ресурсов и безопасности.
Отличие аппаратной виртуализации от программной
Классическая архитектура программной виртуализации подразумевает наличие хостовой операционной системы, поверх которой запускается платформа виртуализации, эмулирующая работу аппаратных компонентов и управляющая аппаратными ресурсами в отношении гостевой операционной системы. Реализация такой платформы достаточно сложна и трудоемка, присутствуют потери производительности, в связи с тем, что виртуализация производится поверх хостовой системы. Безопасность виртуальных машин также находится под угрозой, поскольку получение контроля на хостовой операционной системой автоматически означает получение контроля над всеми гостевыми системами.
В отличие от программной техники, с помощью аппаратной виртуализации возможно получение изолированных гостевых систем, управляемых гипервизором напрямую. Такой подход может обеспечить простоту реализации платформы виртуализации и увеличить надежность платформы с несколькими одновременно запущенными гостевыми системами, при этом нет потерь производительности на обслуживание хостовой системы. Такая модель позволит приблизить производительность гостевых систем к реальным и сократить затраты производительности на поддержание хостовой платформы.
Недостатки аппаратной виртуализации
Стоит также отметить, что аппаратная виртуализация потенциально несет в себе не только положительные моменты. Возможность управления гостевыми системами посредством гипервизора и простота написания платформы виртуализации с использованием аппаратных техник дают возможность разрабатывать вредоносное программное обеспечение, которое после получения контроля на хостовой операционной системой, виртуализует ее и осуществляет все действия за ее пределами.
Наглядно эта процедура выглядит так:
Однако, не стоит преувеличивать опасность. Разработать вредоносную программу, использующую технологии виртуализации все равно гораздо сложнее, нежели, пользуясь «традиционными» средствами, эксплуатирующими различные уязвимости в операционных системах. При этом главное допущение, которое делается теми, кто утверждает, что такое вредоносное ПО сложнее в обнаружении и более того, может не использовать «дырки» в ОС, действуя исключительно «в рамках правил», состоит в том, что якобы виртуализованная операционная система не в состоянии обнаружить, что она запущена на виртуальной машине, что есть исходно неверная посылка. Соответственно, антивирусное обеспечение имеет все возможности обнаружить факт заражения. А, следовательно, пропадает и смысл разрабатывать столь ресурсоемкий и сложный троян, учитывая наличие куда более простых способов вторжения.
Технологии виртуализации компаний 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 планирует также развивать технологию под названием 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 не поддерживают аппаратную виртуализацию.
Процессоры для настольных платформ:
Для ноутбуков поддерживаются процессоры с брендом Turion 64 X2:
Для серверных платформ поддерживаются следующие процессоры Opteron:
Программное обеспечение, поддерживающее аппаратную виртуализацию
На данный момент, абсолютное большинство вендоров программных платформ виртуализации заявило о поддержке технологий аппаратной виртуализации 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.