Что такое виртуализация и для чего она нужна
Виртуализация в процессоре
Привет, друзья! В последнее время, гиганты IT-индустрии, как с расписной торбой, носятся с идеей виртуализации. Мол, это настолько круто, что на любом офисном ПК должна быть виртуализация процессора. Для чего нужна такая технология, как это работает и нужна ли она конкретно вам, расскажу в сегодняшней публикации.
Virtualization Technology
Термин звучит, как название какой-нибудь секретной лаборатории, изобретающей адские машины для порабощения человечества, для дальнейшей интеграции его в Матрицу. В случае с процессором, это гораздо скучнее – всего лишь предоставление части вычислительной мощности, под конкретную задачу или несколько сразу.
Особенность в том, что под них создается специальная среда – своего рода «песочница», процессы в которой никак не могут повлиять на систему в целом, но могут обращаться к процессору напрямую, минуя посредников в виде основной ОС и все сопутствующие службы.
Сегодня, область практического применения, это технологии, развиваются по трем направлениям:
Виртуализация представлений
Терминальный сервер предоставляет свои мощности пользователю, и он же выполняет клиентское приложение, а на устройстве юзера отображаются только результаты расчетов. Это удобно тем, что существенно снижаются требования к программно-аппаратному обеспечению клиента и повышается безопасность.
В качестве терминального оборудования, можно использовать даже бюджетный смартфон. Недостаток в том, что существенно возрастают аппаратные требования к серверам, так как им приходится вести больше вычислений. Самый известный пример такого способа использования этой технологии – браузерные многопользовательские игры.
Виртуализация устройств
Так называется имитация аппаратной части компьютера, со строго заданными параметрами. На такой виртуальный компьютер можно установить собственную ОС и запускать с ее помощью приложения.
Технология широко используется для тестовых целей: перед релизом, программу всегда проверяют на разных устройствах, при необходимости оптимизируя и фикся баги.Пример использования – эмулятор Андроида: создается отдельное виртуальное устройство с собственной ОС, которое может быть использовано как для развлечений, так и проверки работоспособности приложений.
Виртуализация приложений
Программа запускается в изолированной среде и никак не контактирует с «внешним миром», поэтому не конфликтует и не наносит вреда другим приложениям. Таким же способом можно запустить разные версии одной и той же программы.
Пример использования технологии – безопасные браузеры, которые часто идут в программном пакете как дополнения к многим антивирусам. Даже при посещении вредоносных сайтов, расплодившаяся там зараза не может попасть в операционную систему.
Надо ли вам это
Зачем такая замечательная технология рядовому юзеру, что дает она и дает ли вообще? По большому счету, незачем, и поддержка виртуализации в процессоре домашнего ПК – скорее дань трендам, чем насущная необходимость.
С задачами по виртуализации, которые могут возникнуть, прекрасно справляются и программные средства. Если не поддерживает виртуализацию процессор вашего ПК – не спешите начинать апгрейд. Скорее всего, необходимости в этой технологии у вас не возникает вовсе.
Меж тем, технологии сегодня оказывают поддержку и широко внедряют оба кита, на которых держится производство компьютерных процессоров – Intel и AMD. Естественно, обойдется покупка такого девайса дороже – и не потому, что технически он гораздо сложнее.
Дело в маркетинге – за поддержку виртуализации, некоторые готовы выложить лишние деньги, не понимая толком, что такое им хотят продать.
Как включить виртуализацию
Активировать эту опцию можно в БИОСе (при условии, что она не включена изначально). Как включить: при перезагрузке компьютера нажать кнопку Del или F2 (чаще всего, на некоторых материнских платах кнопка может быть другой) и найти в меню пункт Virtualization Technology.Где именно искать – зависит от модели и версии BIOS. Следует выбрать опцию Enabled и, сохранив изменения, перезагрузить компьютер.
Вопреки распространенному заблуждению, базовая частота или коэффициент умножения, при этом не увеличивается, компьютер не станет мощнее и не начинают «летать», программы, которые до этого работали с глюками и тормозами – количество гигагерц, в которых измеряется производительность процессора, не возрастает и не образовываются дополнительные ядра.
Разницу можно почувствовать только при запуске гостевой ОС в привычной вам среде. Работать она будет шустро, именно благодаря прямому доступу виртуальной ОС к ресурсам процессора, что и должна обеспечить виртуализация.
Я уже упоминал в этой статье эмуляторы Android. Да, это виртуальные устройства с поддержкой виртуальной же ОС, поэтому для нормальной их работы, поддержка виртуализации таки необходима. В противном случае даже простенькие приложения будут дико тормозить – впрочем, как и сам Андроид, запущенный в среде Виндовс.
Отдельного упоминания эмуляторы заслуживают потому, что в последнее время они стали очень популярны. Несмотря на то, что почти в каждой семье уже есть планшет и несколько смартфонов, в некоторые игры удобнее играть с помощью клавиатуры и мышки – например, в PUBG Mobile.
Впрочем, это касается исключительно олдскульных геймеров. Поколению, выросшему на играх для сенсорных устройств, рубиться в шутеры, таки удобнее на планшетах и смартфонах.
А на этом откланиваюсь и настоятельно рекомендую подписаться на новостную рассылку, чтобы не пропустить очередную интересную и полезную публикацию. Буду весьма признателен, если вы поделитесь этой статьей в социальных сетях.
Технология виртуализации в процессоре
Содержание
Содержание
На протяжении последних 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 виртуализацию, сохраняете настройки и после этого можете устанавливать и запускать гипервизоры или менеджеры виртуальных машин и приступать к работе с ними, управляя несколькими вычислительными процессами в разных оболочках одновременно.
Зачем же нужна виртуализация?
Слово «виртуализация» в последнее время стало какой-то «модой» в ИТ-среде. Все вендоры железа и ПО, все ИТ-компании в один голос кричат, что виртуализация – это круто, современно, и нужно всем. Но, давайте, вместо того, чтобы идти на поводу у маркетинговых лозунгов (а иногда бывают такими, что сам Геббельс умер бы от зависти), попытаемся посмотреть на это модное слово с точки зрения простых «технарей» и решить, нужно нам это или нет.
Типы виртуализации
Виртуализация приложений – достаточно интересное, и относительно новое направление. Рассказывать здесь подробно о нем я не буду, поскольку это тема для целой отдельной статьи. Коротко говоря, виртуализация приложений позволяет запускать отдельное приложение в своей собственной изолированной среде (иногда называется «песочница», sandbox). Такой способ помогает решить множество проблем. Во-первых – опять же безопасность: приложение, запущенное в изолированной среде – не способно нанести вред ОС и другим приложениям. Во-вторых – все виртуализированные приложения можно обновлять централизованно из одного источника. В-третьих – виртуализация приложений позволяет запускать на одном физическом ПК несколько разных приложений, конфликтующих друг с другом, или даже несколько разных версий одного и того же приложения. Более подробно о виртуализации приложений можно посмотреть, к примеру, в этом вебкасте: www.techdays.ru/videos/1325.html Возможно, однажды я даже напишу статью на эту тему.
И, наконец, перейдем к виртуализации серверов и остановимся на ней подробно.
Виртуализация серверов – это программная имитация с помощью специального ПО аппаратного обеспечения компьютера: процессор, память, жесткий диск, и т.д. Далее, на такой виртуальный компьютер можно установить операционную систему, и она будет на нем работать точно так же, как и на простом, «железном» компьютере. Самое интересное достоинство этой технологии – это возможность запуска нескольких виртуальных компьютеров внутри одного «железного», при этом все виртуальные компьютеры могут работать независимо друг от друга. Для чего это можно применять?
Первое, что приходит в голову – виртуализацию серверов можно использовать в целях обучения и в тестовых целях. К примеру, новые приложения или ОС можно протестировать перед запуском в промышленную эксплуатацию в виртуальной среде, не покупая специально для этого «железо» и не рискуя парализовать работу ИТ-инфраструктуры, если что-то пойдет не так.
Но кроме этого, виртуализация серверов может использоваться и в продакшн-среде. Причин тому много.
Виртуализация позволяет сократить количество серверов благодаря консолидации, то есть там, где раньше требовалось несколько серверов – теперь можно поставить один сервер, и запустить нужное число гостевых ОС в виртуальной среде. Это позволит сэкономить на стоимости приобретения оборудования, а так же снизить энергопотребление, а значит и тепловыделение системы – и, следовательно, можно использовать менее мощные, и, соответственно – более дешевые системы охлаждения. Но у этой медали есть и обратная сторона, и не одна. Дело в том, что при внедрении решений на базе виртуализации, скорее всего придется покупать новые сервера. Дело в том, что виртуальные сервера используют аппаратные ресурсы физического сервера, и, соответственно – понадобятся более мощные процессоры, большие объемы оперативной памяти, а так же более скоростная дисковая подсистема, и, скорее всего – большего объема. Кроме того, некоторые системы виртуализации (в частности – MS Hyper-V) требуют поддержки процессором аппаратных технологий виртуализации (Intel VT или AMD-V) и некоторых других функций процессора. Многие процессоры, которые выпускались до недавнего времени, в частности – все x86_32bit – этим требованиям не удовлетворяют, и поэтому от старых, хотя и вполне рабочих серверов придется отказаться. Однако же, один более мощный сервер скорее всего будет стоить намного дешевле нескольких менее мощных, да и старые сервера, скорее всего давно пора менять из-за морального устаревания.
Есть еще один очень важный момент: виртуализация северов позволяет до предела упростить администрирование инфраструктуры. Главное преимущество, которое оценят все сисадмины – это возможность удаленного доступа к консоли виртуальных серверов на «аппаратном», точнее – «вирутально-аппаратном» уровне, независимо от установленной гостевой ОС и ее состояния. Так, чтобы перезагрузить «зависший» сервер, теперь не нужно бежать в серверную, или покупать дорогостоящее оборудование типа IP-KVM-переключателей, достаточно просто зайти в консоль виртуального сервера и нажать кнопку «Reset». Помимо этого, виртуальные сервера поддерживают технологию моментальных снимков (о ней см. мою предыдущую статью), а так же бэкап и восстановление виртуальных систем намного легче.
Еще одно неоспоримое преимущество – ОС, запущенная внутри виртуальной машины (гостевая ОС) понятия не имеет, какое оборудование установлено на физическом сервере, внутри которого она работает (хост). Поэтому, при замене железа, при апгрейде или даже переезде на новый сервер необходимо обновить драйверы только на ОС самого хоста (хостовой ОС). Гостевые ОС по будут работать как и раньше, поскольку «видят» только виртуальные устройства.
Так же, хочется напомнить, что в виртуальной среде могут действовать особые правила лицензирования ПО (в частности, покупка лицензии на Microsoft Windows Server 2008 Enterprise позволяет использовать бесплатно четыре копии ОС в качестве гостевой, а Microsoft Windows Server 2008 Datacenter вообще разрешает использовать неограниченное число гостевых ОС при условии полного лицензирования по процессорам).
Еще нельзя не упомянуть о технологиях отказоустойчивости. Физические сервера, на которых запускаются виртуальные машины, могут быть объединены в кластер, и в случае отказа одного из серверов – автоматически «переезжать» на другой. Полной отказоустойчивости добиться не всегда возможно (в частности, в MS Hyper-V такой «внезапный переезд» будет выглядеть так же, и иметь такие же возможные последствия, как внезапное обесточивание сервера), но возможные простои сильно сократятся: «переезд» занимает несколько минут, тогда как ремонт или замена самого сервера может занять часы, а то и дни. Если же «переезд» виртуальных машин происходит в штатном режиме, то он может пройти совершенно незаметно для пользователей. Такие технологии у разных вендоров называются по-разному, к примеру у MS она называется «Live Migration», у VMware – Vmotion. Использование таких технологий позволит проводить работы, связанные с выключением сервера (к примеру – замену некоторых аппаратных компонент, или перезагрузку ОС после установки критических обновлений) в рабочее время и не выгоняя пользователей из их любимых приложений. Кроме этого, если инфраструктура построена соответствующим образом – запущенные виртуальные машины могут автоматически перемещаться на менее нагруженные сервера, или же наоборот «разгружать» наиболее загруженные. В инфраструктуре на базе технологий Microsoft для этого используются System Center Virtual Machine Manager и Operations Manager.
В заключение темы по виртуализации серверов — отмечу, что виртуализация не всегда одинаково полезна. В частности, не всегда будет хорошей идеей переносить в виртуальную среду высоконагруженные сервера, а особенно — высоконагруженные по дисковой подсистеме — это «тяжелые» СУБД, Exchange Server, особенно — роль Mailbox Server, и прочие высоконагруженные приложения. А вот сервера с меньшей нагрузкой (контроллеры доменов AD, WSUS, всевозможные System Center * Manager, веб-сервера) виртуализировать можно и даже нужно. Замечу, кстати, что именно с контроллерами доменов — очень желательно, чтобы хотя бы один из контроллеров был «железным», то есть не виртуальным. Нужно это потому, что для корректной работы всей инфраструктуры желательно, чтобы при запуске всех остальных серверов хотя бы один КД уже был доступен в сети.
Резюме
Итак, давайте подведем итоги: какая именно виртуализация когда может пригодиться, и какие у нее есть плюсы и минусы.
Если у вас есть много пользователей, работающих с одинаковым набором ПО, и система сильно распределена территориально – то стоит подумать об использовании виртуализации представлений, сиречь – терминальных службах.
Если у вас существует множество приложений, которые некорректно работают в новой ОС, либо же конфликтуют между собой, или необходимо запускать на одном компьютере несколько версий одной и той же программы – то нужна виртуализация на уровне приложений.
Если же вам нужно освободить место в стойке, снизить энергопотребление систем, избавиться от «серверного зоопарка» — то ваше решение – виртуализация серверов.
Недостатки – в принципе, те же, что и у терминальных решений:
Надеюсь, моя статья окажется для кого-то полезной. Благодарность и конструктивную критику, как всегда, можно высказать в комментариях.
Что такое виртуализация и для чего она нужна
У пользователей Linux или Mac иногда возникает потребность в запуске программ, работающих только в Windows, а у Windows-пользователей, особенно программистов, потребность в запуске Linux или другой версии Windows. Классический пример — игры или Photoshop.
Виртуализация
Виртуализация — это создание изолированных окружений в рамках одного физического устройства (в нашем случае — компьютера). Каждое окружение при этом выглядит как отдельный компьютер со своими характеристиками, такими как доступная память, процессор и тому подобное. Такое окружение называют набором логических ресурсов или виртуальной машиной.
Виртуализация позволяет запускать операционную систему как обычную программу на вашем компьютере!
ОС, внутри которой стартует другая ОС, называется хост-системой, (host) а ОС, которая работает в виртуальном окружении — гостевой (guest).
Специальная программа (по сути тоже операционная система) — гипервизор — занимается созданием виртуальных машин и их управлением. Гипервизор обеспечивает изоляцию операционных систем друг от друга, защиту и безопасность, разделение ресурсов между запущенными ОС. В зависимости от типа используемой виртуализации, гипервизор может работать как напрямую с железом без хост системы, так и через основную операционную систему, установленную на хост-машину. В первом случае используется аппаратная виртуализация, во втором — программная виртуализация. На домашних компьютерах распространен именно второй тип.
В отличие от установки двух операционных систем рядом в одну машину, виртуализация — это гораздо более безопасный метод. В любой момент можно все снести и переустановить. Вы можете создать столько виртуальных машин, сколько нужно.
Аппаратная виртуализация
Как ясно из названия, аппаратная виртуализация работает благодаря поддержке со стороны железа — процессора. В отличие от программной виртуализации, гостевые операционные системы управляются гипервизором напрямую без участия хостовой ОС.
Аппаратная виртуализация гораздо эффективнее программной, так как гипервизор, в отличие от хостовой ОС, создает очень небольшой оверхед (overhead, накладные расходы). Программная виртуализация, в свою очередь, делится на несколько подтипов, о которых подробнее можно прочитать в Википедии.
Контейнерная виртуализация
Особняком стоит так называемая контейнерная виртуализация. В отличие от предыдущих видов, она не связана с запуском ОС в изолированном окружении. При контейнерной виртуализации изоляция происходит на уровне процесса операционной системы.
На текущий момент такой вид виртуализации существует только в Linux и доступен благодаря двум возможностям ядра: cgroups и namespaces. Они позволяют запускать всего лишь один процесс так, как будто он выполняется в своем собственном мире, со своей сетью, своим диском, своей файловой системой и так далее. При таком виде виртуализации происходит запуск процесса в той же операционной системе и на том же ядре, а значит вы не можете с помощью нее в Linux запустить Windows. Эту виртуализацию применяют на уровне сервисов, составляющих части программного продукта. Наиболее известные проекты: OpenVZ, Docker, LXC.
Хостинг
Каждая виртуальная машина получит столько ресурсов, сколько вы укажете. Этим фактом особенно пользуются хостеры (компании, предоставляющие услуги веб-хостинга). Фактически на каждого пользователя создается своя собственная виртуальная машина с квотами, соответствующими выбранному тарифу (ограничения по памяти, процессору и так далее).
Кроме того, виртуализация изолирует машины друг от друга, а значит вам не придется переживать, если пользователи попытаются навредить системе или соседним пользователям. Подобная услуга обычно называется VPS (virtual private server) и в базовой комплектации стоит дешево.
Виртуальные машины позволяют эффективнее утилизировать (использовать) ресурсы железной машины. Как правило, далеко не всем пользователям нужна мощность того железа, которое стоит у хостера, да и платить за нее он не готов. А вот виртуальная машина может съедать лишь проценты от мощности железа, что позволяет на одной машине размещать десятки клиентов (а то и больше). Получается, что и пользователь доволен, и хостер заработал свои деньги.
Частые вопросы
Что делать если процессор не поддерживает виртуализацию?
Это крайне маловероятно, но даже в таком случае можно запустить виртуальную машину. Правда производительность будет очень низкой, так как по факту будет работать программная виртуализация вместо аппаратной. Лучше всё же обновить железо на более современное.