virtualization technology for directed i o что это

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

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

Содержание

Содержание

На протяжении последних 15 лет слово «виртуальный» звучит практически из каждого утюга. Нам обещают все более реалистичные виртуальные миры или, как минимум, дополненную реальность. Виртуальная реальность, как в знаменитой трилогии «Матрица», пока в будущем. А вот виртуализация внутри процессора — реальное настоящее.

Зачем нужна виртуализация на домашнем компьютере

Вот простой пример: вы используете для работы и игр Windows, но при этом хотите изучить, например, Linux. Значит, нужно, чтобы эта операционная система находилась под рукой. Или занимаетесь программированием под Android или iOS. В этом случае постоянно требуется проверка разработанного приложения в родной среде.

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

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

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

Виртуализация в бизнесе

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

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

Например, ваша организация собирается поставить почтовый сервер для обработки поступающей и исходящей переписки, а еще развернуть DNS и WEB-сервер. Сколько для этого нужно серверных машин? Достаточно одной. Потому что на ней, в виртуально разделенных друг от друга «песочницах», на одном и том же железе заработают как бы три отдельных компьютера, выполняющие каждый свою задачу. Так вы разместите на одном компьютере сразу три отдельных сервера и используете всю мощность и производительность техники, окупив потраченные средства.

Разумеется, так как мощность и производительность серверных систем и пропускная способность каналов связи постоянно растет, у виртуализации появляется все больше возможностей для применения. Наглядный пример из относительно недавно запущенных и находящихся у всех на слуху — сервис GeForce Now, благодаря которому можно на слабых компьютерах запускать современные игры.

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

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

Основные направления развития виртуализации

В целом виртуализация как технология сейчас развивается по трем основным направлениям:

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

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

Мы разобрались с тем, что виртуализация — это хорошо и полезно. А что требуется для того, чтобы она заработала на вашем конкретном компьютере? Надо чтобы процессор поддерживал виртуализацию.

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

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

Такая технология есть у обоих крупных производителей процессоров для ПК: у Intel она называется Intel VT, у AMD — AMD –V.

Особенности Intel VT

Впервые о разработке технологии виртуализации компания Intel объявила еще в 2005 году. И с тех пор Intel VT постоянно совершенствуется и расширяется.

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

Корпорация Intel описывает Intel VT как технологию, развивающую несколько основных направлений. На сегодня это:

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

Особенности AMD–V

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

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

Включение виртуализации на компьютере

Непосредственный запуск виртуальных машин выполняется с помощью специальных приложений:

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

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

Дело в том, что по умолчанию в настройках BIOS большинства материнских плат виртуализация отключена. И ее необходимо включить в соответствующем разделе, который называется у каждого производителя по-своему, например, «Virtualization Technology» изменив значение опции с «Disabled» на «Enabled».

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

Если такой опции нет, то может оказаться так, что прошивка вашей материнской платы или процессор (хотя такое сейчас возможно только на старых моделях) виртуализацию не поддерживает. В этом редком, но возможном случае использовать преимущества виртуализации не получится.

Такая функция отключена в BIOS некоторых моделей ноутбуков Aser Aspire, позиционируемых производителем, как техника для домашнего использования.

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

Источник

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

В предыдущей части я рассказал о трёх режимах IA-32: защищённом, VM86 и SMM. Хотя их и не принято связывать с виртуализацией, они служат для создания изолированных окружений для программ, исполняемых на процессоре. В этой статье я опишу «настоящую» технологию виртуализации Intel VT-x. Я хочу показать, как теория эффективной виртуализации проявляется в каждом аспекте её практической реализации.

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

На КДПВ: Запущенная под управлением Ubuntu Linux программа Oracle VirtualBox, в которой запущена операционная система MS Windows XP, в которой исполняется симулятор Bochs, в котором запущена операционная система FreeDOS, в котором запущен симулятор MYZ80 для процессора Z80, в котором загружена операционная система CP/M (в полноэкранном режиме).

В 2006 году Intel представила VT-x — расширение для эффективной виртуализации архитектуры IA-32. Оно включает в себя набор инструкций VMX и два новых режима работы. Я не хочу повторять здесь всю документацию, это очень скучно как писать, так и читать. Однако я опишу некоторые особенности предложенных в ней интерфейсов.

Обойтись для виртуализации уже существующими режимами процессора было нельзя, т.к. некоторое количество существовавших к тому моменту инструкций IA-32 были служебными, но не привилегированными и, согласно теории, их невозможно было бы эффективно перехватывать и эмулировать. Новые режимы были названы root и non-root, и они, в общем-то, ортогональны всем классическим режимам (хотя тут есть особенности, см. дальше). Первый из них — для монитора виртуальных машин, второй — для гостевых окружений. По умолчанию после включения питания виртуализация недоступна. Вход в режим root происходит после исполнения новой инструкции VMXON, а последующие входы в non-root — с помощью VMLAUNCH/VMRESUME.

Ключевой процесс в любой системе аппаратной виртуализации — это сохранение текущего состояния процессора гостя и загрузка состояния монитора. В VT-x здесь всё сделано строго по упомянутой теории. Для хранения состояний как гостя, так и хозяина используется сущность под названием VMCS (англ. Virtual Machine Control Structure). Это структура должна быть своя для каждого активного гостя. На следующем рисунке, иллюстрирующем переходы между режимами root и non-root, внутри VMCS используются две области: состояние гостя (guest-state) и состояние хозяина (host-state).

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

На этом рисунке событие VM-Entry — это одна из двух инструкций: VMLAUNCH или VMRESUME, — а VM-Exit — одно из множества синхронных и асинхронных событий, объявленных привилегированными в контексте VT-x non-root и потому требующих перехвата монитором. Детали того, что и как загружать при переходе из root в non-root и обратно, также хранятся в VMCS в т.н. VM-entry и VM-exit controls, «параметры входа и выхода». Области сохранения разбиты на поля, каждое из которых хранит в себе регистр или другую архитектурную информацию процессора.

Работа с VMCS

Я хочу показать, как тщательно подошли создатели VT-x к обеспечению версионности и обратной совместимости с будущими реализациями. Ключевой элемент дизайна здесь — это удивительная (учитывая его низкоуровневость) абстрактность предлагаемого интерфейса. Вместо того, чтобы описать раскладку структуры VMCS в памяти и разрешить работать с ней с помощью обычных инструкций LOAD и STORE, были введены две новые инструкции: VMREAD и VMWRITE. И оперируют они не смещениями байт внутри структуры, а кодировками отдельных полей. Более того, не гарантируется даже, что все поля в памяти хранят актуальные значения. Процессор может кэшировать некоторые из них, ускоряя тем самым процесс переключения режимов — данные не приходится подгружать из медленной памяти. Он обязан выгрузить всё в память только при исполнении VMCLEAR.
В результате введения такого уровня косвенности создатели будущих вариантов VT-x не будут привязаны требованиями совместимости раскладки VMCS в памяти с существующими реализациями.
Для сравнения данного метода с альтернативами посмотрите на то, как описывается работа инструкций XSAVE и XRSTOR [1], используемых для сохранения и восстановления векторных регистров. Так как векторные регистры после сохранения хранятся в памяти, смещения для них можно использовать в обычных операциях с ней. А вот для раскладка полей в памяти описана в отдельном листе данных, возвращаемых инструкцией CPUID.

Индикация доступной функциональности

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

Вместо того, чтобы поместить информацию о VT-x в вывод инструкции CPUID, были добавлены новые регистры группы Model-specific register или MSR. Это вполне оправдано — MSRы можно читать только из привилегированного режима, пользовательским приложениям незачем знать об особенностях поддержки виртуализации текущего процессора. О том, что виртуализация поддерживается, сообщает единственный бит CPUID.1.ECX[5].

Версионность и индикация расширений

Описанию механизма индикации поддерживаемых расширений VT-x посвящено приложение A из Intel SDM [1]. Возможность эволюции проходит через все представленные в документации MSRы.

Так, регистр IA32_VMX_BASIC разбит на несколько полей. Одно из них содержит ревизию структуры VMCS. Равенство ревизий двух реализаций VMCS означает равенство размеров областей памяти для их хранения. Выставленный в этом регистре бит 55 означает, что ряд элементов конфигурации, которые в первой редакции VT-x имели жёстко зафиксированные значения (только вкл. или только выкл.), в этой реализации уже могут быть переключены в отличное от первоначального состояние.

Полный список MSRов, описывающих возможности, включает в себя регистры IA32_VMX_(TRUE_)PINBASED_CTLS, IA32_VMX_(TRUE_)PROCBASED_CTLS, IA32_VMX_PROCBSAED_CTLS2, IA32_VMX_(TRUE_)EXIT_CTLS, IA32_VMX_(TRUE_)ENTRY_CTLS. В сумме они определяют, какие архитектурные события могут вызвать VM-exit, что допустимо загружать при VM-entry. Изначально заведённого в первой ревизии VT-x набора регистров оказалось недостаточно, поэтому появились «TRUE»-варианты некоторых из них. По этой же причине PROCBASED_CTLS был расширен с помощью PROCBASED_CTLS2.
В отличие от традиционного подхода, когда под каждую новую фичу заводится один бит в регистре, который означает, поддерживается ли она или нет, в VT-x имеется по два бита на каждое расширение архитектуры. Первый бит означает возможность включения некоторой функциональности, а второй — её выключения. Влияет это на то, какие биты в составе управляющих полей VMCS монитор может модифицировать. Так, например, может оказаться так, что в некоторых процессорах будет нельзя выключить генерацию VT-exit по инструкции RDRAND, а в других, наоборот, нельзя такой выход включить.
Для тех полей, которые могут находиться в любом из двух состояний, программе-монитору разрешается настраивать их под свои возможности и использовать только те, которые были заложены в его логику, даже если монитор запущен на более современном процессоре, предлагающем более эффективные техники.
Данное решение создаёт простор для эволюции как процессоров, так и программ-мониторов виртуальных машин. Первые могут бросить поддержку старых фич, просто обозначив, что они не могут быть включены, а вторые могут детектировать и использовать только ту функциональность аппаратуры, на которую они запрограммированы. Тем самым сохраняется обратная совместимость и обеспечивается прямая совместимость.

Эволюция VT-x

Раз столько усилий было потрачено на поддержку расширений VT-x, таких расширений, наверное, должно быть много. Я расскажу о некоторых из них в этой статье, а остальные попридержу на потом, когда осмысленность их введения станет более понятной.
Но сперва хочется подумать об общем векторе развития VT-x — зачем все эти расширения существуют.
Виртуализация должна быть эффективной, т.е. вносить минимально возможные накладные расходы по сравнению с прямым исполнением гостя на аппаратуре. Это формулируется как «не мешать исполняться как можно большему числу операций». Общий принцип оптимизации — ускорять в первую очередь те подсистемы, что стоят на критическом пути производительности. После устранения главного узкого места нужно переходить к следующему по важности. Рассмотрим порядок важности для вычислительных систем.

Unrestricted Guest

Защищённый режим со включенными сегментацией и страничным механизмом поддерживается с самой первой редакции VT-x. Остальные режимы, в т.ч. 16-битный реальный, запускать напрямую в non-root режиме было невозможно — попытка загрузить такое гостевое состояние с помощью VMLAUNCH/VMRESUME вернулась бы с неуспехом. С одной стороны, это ограничение было разумным — большинство практически важных задач работают именно в защищённом режиме, и следовало виртуализовать его в первую очередь.
С другой стороны, при загрузке традиционной ОС процессор, прежде чем войти в защищённый режим, некоторое время всё же исполняется в других режимах. В мониторе для их поддержки приходилось иметь альтернативный механизм симуляции — интерпретатор, двоичный транслятор, возврат к VM86 или что-то подобное. Это не сказывалось положительно ни на объёме кода монитора, ни на скорости его работы. Поэтому в последующих поколениях VT-x был введён т.н. режим Unrestricted Guest — исполнение гостевых систем, не использующих защищённый режим.

Взаимодействие с SMM

Во время работы root и non-root режимов VT-x всё так же возможно возникновение прерываний #SMI, которые должны безусловным образом переводить процессор в SMM-режим. Процесс переходов в/из SMM-режима был модифицирован, чтобы учитывать специфику работы виртуализации.

К данному моменту я надеюсь, что мне удалось обрисовать мотивацию, основные идеи и направления развития Intel VTx. Здесь я мог бы закончить свой рассказ, но…

Продолжение следует

Если некоторая технология оказывается успешной, то довольно быстро её пользователи начинают придумывать совершенно неожиданные для создателей способы её использования, в т.ч. «неправильные». Не обошло это и виртуализацию. Виртуальные машины заменили физические во многих областях. Их стали объединять в облака, продавать/сдавать в аренду. А конечные пользователи стали запускать внутри выданных им систем свои виртуальные машины. И тут оказалось, что подобный сценарий вложенной (nested) виртуализации не был изначально предусмотрен создателями аппаратуры. Что было сделано для того, чтобы поддержать эффективную работу одних виртуальных машин внутри других на архитектуре Intel — об этом будет следующая часть статьи.

Источник

Intel Virtualization Technology в Биосе: включать или нет?

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

Практически любой владелец ПК, рано или поздно, узнает о том, что на его компьютере присутствует специальный раздел БИОС, позволяющий изменять различные настройки. И изучая это место многие наталкиваются на такой интересный пункт, как Intel Virtualization Technology.

Естественно, сразу же у человека возникают вопросы и предположения:

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

То есть, пользователь сидит и размышляет, включать или нет IVT. Что же, давайте максимально подробно разберемся в этом вопросе.

История и особенности технологии

Впервые процессоры с этой технологией компания Интел выпустила в 2005-ом году. Производитель предложил сразу два варианта пользователям – 662-ю и 672-ю модели.

Изначально технология получила загадочное, многообещающее название «Vanderpool», но большинству юзеров она известна как VT-x.

Сразу хочется отметить, что не все фирменные центральные процессоры от этого производителя выпускаются с поддержкой этой технологии. Ее наличие подтверждается присутствием так называемого флага поддержки «vmx». Для проверки этого флага в операционных системах Linux и Mac присутствуют специальные команды:

В 2013-ом году компания Intel предложила решение, которое ускоряет эту технологию. Оно стало доступно с архитектуры Haswell и называется VMCS. VT-x изначально создавалась для процессоров серии Pentium 4. На более современных моделях используется более продвинутый аналог — VT-d.

Аналогичная технология существует и у конкурента Интел – компании AMD. Она называется AMD-V и также имеет второе кодовое название — «Pacifica».

Для большинства процессоров VT-x изначально, по умолчанию, находится в неактивном состоянии. То есть, ее надо включать. И делается это как раз через BIOS. Но перед тем, как осуществить данный шаг, необходимо понимать, зачем это вообще нужно.

Нужна ли VT-x обычному пользователю ПК?

Суть Intel Virtualization Technology заключается в том, что технология позволяет создавать на обычном персональном компьютере так называемые виртуальные машины. И все. То есть, ни о каком ускорении, повышении производительности речи совершенно не идет.

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

Естественно, сразу же возникает вопрос – а пользуется ли обычный пользователь ПК этими самыми виртуальными машинами. Да, чаще всего их используют различные узкопрофильные специалисты, которые занимаются программированием, наладкой и другими процессами. Но и обычному обывателю такая ВМ может пригодиться. Для чего? Вот только несколько, самых популярных примеров:

Есть множество программ, которым требуется определенная версия операционной системы. Особенно это касается достаточно старых продуктов. Например, у вас стоит Десятка или Семерка Виндовс, а очень хочется запустить какое-то ПО (например, игру), которое нормально функционирует только в XP или в более ранних версиях. Установите ВМ и проблема будет быстро решена.

Еще один интересный вариант – работа с сайтами. Да, ВМ позволяет создавать эмуляцию сети. Представьте ситуацию:

Можно пойти классическим путем:

А если не получится? Или в процессе создания перехочется? Получается, что деньги были потрачены зря?

Установив виртуальную машину, можно спокойно создать эмуляцию сети и в полностью идентичном реальному режиму приступить к созданию прототипа своего сайта. И, если все получится и устроит человека – повторить все уже классическим способом.

Какие виртуальные машины предпочитают использовать сегодня?

Их достаточно большое количество. Но наиболее популярными вариантами считаются следующие:

VirtualBox

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

Поддерживает как 32-разрядную, так и 64-рязряднуцю систему.

VMware

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

Считается одним из лучших вариантов VM на сегодняшний день. Поддерживает все основные современные технологии. Например, спокойно работает с USB 3.0.

Единственный недостаток – она платная. Можно пользоваться и бесплатным вариантом, но в нем основной функционал будет изрядно урезан.

Microsoft Virtual PC

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

Полностью бесплатная оболочка. Правда, исходя из названия, сразу же можно выявить один недостаток. А именно, возможность работы только с ОС Microsoft Windows. Никаких Linux или Mac установить таким образом не получится.

Как активировать технологию VT-x

Итак, вы решили, что Intel Virtualization Technology является для задуманных целей необходимостью Естественно, возникает вопрос – как включить? Делается это следующим образом:

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

Остается только не забыть сделать сохранение изменений и перезапустить комп еще раз.

Источник

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

virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

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

До недавнего времени усилия в области виртуализации операционных систем были сосредоточены в основном в области программных разработок. В 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. virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

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

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

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

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

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

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

Наглядно эта процедура выглядит так:virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

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

Технологии виртуализации компаний 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 PCIntel VT, AMD-VНастольная платформа виртуализации для хостовых Windows-платформ.
Microsoft Virtual ServerIntel VT, AMD-VСерверная платформа виртуализации для Windows. Версия с поддержкой аппаратной виртуализации, Microsoft Virtual Server 2005 R2 SP1, находится в состоянии беты. Ожидается во втором квартале 2007 г.
Parallels WorkstationIntel VT, AMD-VПлатформа виртуализации для Windows и Linux хостов.
VirtualBoxIntel VT, AMD-VНастольная платформа виртуализации с открытым исходным кодом для Windows, Linux и Mac OS. По умолчанию поддержка аппаратной виртуализации выключена, поскольку по исследованиям экспертов, на данный момент аппаратная виртуализация медленнее программной
Virtual IronIntel VT, AMD-VVirtual Iron 3.5 является первой платформой виртуализации, использующей аппаратные техники, которая позволяет запускать 32-битные и 64-битные неизмененные гостевые системы практически без потери производительности.
VMware Workstation и VMware ServerIntel VT, AMD-VДля запуска 64-х битных гостевых систем требуется поддержка Intel VT (так же как и для VMware ESX Server), для 32-битных же гостевых ОС по умолчанию поддержка IntelVT отключена по тем же причинам, что и у VirtualBox.
XenIntel 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 процентов производительности. Результаты этого теста приведены на рисунке далее: virtualization technology for directed i o что это. Смотреть фото virtualization technology for directed i o что это. Смотреть картинку virtualization technology for directed i o что это. Картинка про virtualization technology for directed i o что это. Фото virtualization technology for directed i o что это

Выводы

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *