На протяжении последних 15 лет слово «виртуальный» звучит практически из каждого утюга. Нам обещают все более реалистичные виртуальные миры или, как минимум, дополненную реальность. Виртуальная реальность, как в знаменитой трилогии «Матрица», пока в будущем. А вот виртуализация внутри процессора — реальное настоящее.
Зачем нужна виртуализация на домашнем компьютере
Вот простой пример: вы используете для работы и игр Windows, но при этом хотите изучить, например, Linux. Значит, нужно, чтобы эта операционная система находилась под рукой. Или занимаетесь программированием под Android или iOS. В этом случае постоянно требуется проверка разработанного приложения в родной среде.
Без виртуализации пришлось бы устанавливать на один компьютер две операционные системы, делать загрузчик и запускать каждую операционную систему поочередно. Или еще хуже — стирать одну ОС, устанавливать другую с переносом данных, переустановкой нужных приложений и так далее.
Так вот виртуализация позволяет обойтись без всех этих сложных процедур. Используя ее,можно запускать несколько операционных систем одновременно (одну внутри другой или две параллельно) и работать в той среде, которая нужна под конкретную задачу.
Виртуализация в бизнесе
Главная задача виртуализации — оптимальное использование производительности и мощности современной компьютерной техники в бизнес-приложениях, где используется мощное и дорогое оборудование.
Например, ваша организация собирается поставить почтовый сервер для обработки поступающей и исходящей переписки, а еще развернуть DNS и WEB-сервер. Сколько для этого нужно серверных машин? Достаточно одной. Потому что на ней, в виртуально разделенных друг от друга «песочницах», на одном и том же железе заработают как бы три отдельных компьютера, выполняющие каждый свою задачу. Так вы разместите на одном компьютере сразу три отдельных сервера и используете всю мощность и производительность техники, окупив потраченные средства.
Разумеется, так как мощность и производительность серверных систем и пропускная способность каналов связи постоянно растет, у виртуализации появляется все больше возможностей для применения. Наглядный пример из относительно недавно запущенных и находящихся у всех на слуху — сервис GeForce Now, благодаря которому можно на слабых компьютерах запускать современные игры.
Фактически это удаленные виртуальные компьютеры, выделенные сервисом под конкретного игрока. Собственная техника выступает только как терминальное устройство, для которого уже не так важна производительность процессора и видеокарты.
Основные направления развития виртуализации
В целом виртуализация как технология сейчас развивается по трем основным направлениям:
- Виртуализация представлений. Это все тот же сервис GeForce Now. Сервер предоставляет вычислительные мощности, выполняет все расчеты, а на стороне терминала, за которым находится пользователь, только отображаются результаты расчетов. Да, в этом случае аппаратные требования к серверу оказываются высокими, но зато терминальное оборудование может быть очень простым.
- Виртуализация аппаратной платформы. Это имитация аппаратной платформы с четко заданными параметрами. На созданный таким образом виртуальный компьютер устанавливают собственную ОС, запускаемую с помощью соответствующего приложения. Пример такой виртуализации — точная эмуляция Android для проверки и поиска багов в новых приложениях.
- Виртуализация программной среды. Используется для запуска программ в изолированной, не контактирующей с «окружающим миром» среде. Это делается для исключения конфликтов и защиты приложений — как запускаемых внутри «песочницы» от внешних воздействий, так и остальных программ от небезопасного софта внутри виртуальной среды. Например, при запуске в такой «виртуальной песочнице» безопасного браузера, вы не навредите свой операционной системе, посещая вредоносные сайты, так как все работает внутри специально созданной для приложения программной среды.
Как работает виртуализация
Мы разобрались с тем, что виртуализация — это хорошо и полезно. А что требуется для того, чтобы она заработала на вашем конкретном компьютере? Надо чтобы процессор поддерживал виртуализацию.
То есть, он должен уметь работать с несколькими системами команд одновременно – например, от одной операционной системы и от другой. А значит, выполнять инструкции, выделять адреса и место под хранение данных так, чтобы они работали только в нужной среде, да еще и взаимодействовали с интерфейсом, портами ввода-вывода, видеокартами и прочими узлами компьютера.
Такая технология есть у обоих крупных производителей процессоров для ПК: у Intel она называется Intel VT, у AMD — AMD –V.
Особенности Intel VT
Впервые о разработке технологии виртуализации компания Intel объявила еще в 2005 году. И с тех пор Intel VT постоянно совершенствуется и расширяется.
Корпорация Intel описывает Intel VT как технологию, развивающую несколько основных направлений. На сегодня это:
- виртуализация процессоров. Производительность современного процессора, работающего в составе виртуальной машины, практически такая же, как и при работе в составе физической. Кроме того, пользователь может создавать внутри работающей виртуальной среды другую. То есть, делать что-то вроде «матрешки» из «вложенных» друг в друга виртуальных операционных систем — так работает вложенная виртуализация;
- виртуализация графических представлений через Intel Graphics Virtualization. Обеспечивает виртуальным машинам полный доступ или совместное использование графических процессоров и систем, отвечающих за работу с видео. Применяется для удаленных рабочих мест (несколько пользователей работают с удаленных терминалов на одном сервере) и онлайн-игр;
- виртуализация ввода-вывода Intel Virtualization Technology for Directed I/O и прочие технологии работы с периферией обеспечивают передачу результатов обработки на сетевые и прочие устройства ввода-вывода информации. То есть, образно говоря, не дают виртуальным машинам «поссориться» при взаимодействии с сетью и не потерять в быстродействии. А также позволяют им получать доступ к любым устройствам, подключенным, например, к шине PCI-E. Отсюда следует и виртуализация сетевых функций, например, Intel QuickAssist.
Особенности AMD–V
Процессоры AMD по цене доступнее Intel, но это совсем не говорит о том, что они хуже. Есть мнение, что как раз наоборот. Многие игровые платформы строятся именно на основе процессоров, чипсетов и видеокарт этой компании.
И, конечно же, у главного конкурента Intel есть свой набор функций, реализующих аналогичные процессы виртуализации. Точно также на машинах, собранных на процессоре и чипсете AMD, можно развернуть несколько операционных систем и обеспечить их работу с периферийными устройствами, сетью, памятью и пр. или, например, запустить критичное приложение в изолированной среде.
Включение виртуализации на компьютере
Непосредственный запуск виртуальных машин выполняется с помощью специальных приложений:
- менеджеров виртуальных машин. В качестве примера можно привести VMWare Workstation, Parallels Workstation. В этом случае одна операционная система запускается внутри другой;
- программ-гипервизоров, позволяющих запускать на одном компьютере одновременно несколько операционных систем. Примеры таких приложений — Microsoft Hyper-V или Xen.
Но до того, как вы запустите эти программы и приступите к установке и настройке виртуальных машин, вам потребуется включить виртуализацию.
Дело в том, что по умолчанию в настройках BIOS большинства материнских плат виртуализация отключена. И ее необходимо включить в соответствующем разделе, который называется у каждого производителя по-своему, например, «Virtualization Technology» изменив значение опции с «Disabled» на «Enabled».
Если такой опции нет, то может оказаться так, что прошивка вашей материнской платы или процессор (хотя такое сейчас возможно только на старых моделях) виртуализацию не поддерживает. В этом редком, но возможном случае использовать преимущества виртуализации не получится.
Такая функция отключена в BIOS некоторых моделей ноутбуков Aser Aspire, позиционируемых производителем, как техника для домашнего использования.
Но в подавляющем большинстве случаев, вы просто включаете в BIOS виртуализацию, сохраняете настройки и после этого можете устанавливать и запускать гипервизоры или менеджеры виртуальных машин и приступать к работе с ними, управляя несколькими вычислительными процессами в разных оболочках одновременно.