Виртуализация — обособление части логических ресурсов вычислительной системы для выполнения изолированных процессов (или их совокупности) на одном и том физическом устройстве. Эта технология позволяет эффективно расходовать возрастающие возможности аппаратных платформ, распределяя их между несколькими программами или процессами, что широко используется в различных областях IT-индустрии.
Что такое виртуализация
Простыми словами, виртуализация — это создание изолированной программной среды (или нескольких таких сред) в рамках одного физического устройства. Представим себе обычный персональный компьютер. У него есть:
- аппаратная часть — долговременная память (винчестер, твердотельный накопитель), оперативная память, процессор, устройства ввода-вывода и т.д.;
- программная часть — БИОС (набор программ для работы с аппаратным обеспечением) и операционная система (ПО для управления компьютером и запуска прикладных приложений).
Среднестатистический пользователь использует на одном компьютере одну операционную систему — этого достаточно для большинства повседневных задач (игр, серфинга в интернете, общения в соцсетях и т.д.). При этом ОС и установленные в ней прикладные и системные программы задействуют все вычислительные ресурсы компьютера: объем долговременной и оперативной памяти, производительность основного и графического процессора.
Однако в некоторых ситуациях могут понадобиться, например, две операционные системы. На Linux удобнее программировать, а на Windows — играть в игры и рисовать в графических редакторах. Чтобы заниматься и тем, и другим, можно использовать три варианта:
- Купить еще один компьютер под другую операционную систему, что сопряжено с определенными финансовыми тратами.
- Поставить параллельно две операционные системы на один компьютер. При этом, чтобы программировать, придется переключаться на Linux, а для игр и рисования — на Windows. Не слишком удобно, особенно если в одной из операционных систем вдруг произойдет системная ошибка. Кроме того, каждая ОС при входе в нее будет автоматически «отключать» другую и полностью использовать аппаратные возможности машины.
- Создать в одной системе (например, в Windows) виртуальную машину — это изолированная программная среда, имитирующая работу отдельного компьютера. А уже в нее инсталлировать Linux. При этом для «гостевой» операционной системы резервируются отдельные вычислительные мощности. У нее есть свой виртуальный процессор, оперативная и долговременная память, сетевое подключение и т.д. Благодаря этому ОС не конфликтуют за ресурсы и работают независимо друг от друга.
Третий вариант — как раз один из частных случаев виртуализации. Он очень популярен именно среди пользователей обычных ПК. Его преимущество перед параллельной установкой операционных систем в том, что основная и дополнительная ОС могут работать одновременно. Таких виртуальных компьютеров на одном физическом можно создать сколько угодно — главное, чтобы хватало аппаратных ресурсов.
Если рассматривать логическую схему виртуализации, то можно выделить три основных составляющих:
- хост-система — это основная ОС, в рамках которой происходят создание и функционирование изолированной виртуальной среды;
- «гостевая» система — это ОС (или иная программа, процесс), которая работает внутри изолированной виртуальной среды;
- гипервизор — это программа (по сути, тоже ОС), с помощью которой осуществляются создание и управление виртуальной средой, распределение ресурсов между основной и гостевой ОС, их изоляция друг от друга.
Для понимания виртуализации можно привести следующую приблизительную аналогию: актер, играющий роль другого человека. Находясь в своем сознании, он временно принимает на себя чужую личность, как бы виртуализируя ее. В этом случае его мозг — это аппаратная платформа, основная личность выполняет функцию главной операционной системы, роль, которую он играет, — это «гостевая» ОС, а набор навыков «актерское мастерство» — гипервизор. При этом актер во время работы сознательно изолирует свое «я» от личности, которую он играет.
Виды виртуализации
В зависимости от того, как реализована виртуальная система, какую роль играет гипервизор, выделяют несколько видов виртуализации.
Программная. В виртуализации этого типа гипервизор устанавливается на хост-систему и образует виртуальную среду, в которую уже устанавливается гостевая ОС. По сути, он является посредником между дополнительной и основной операционными системами. То есть сначала гостевая ОС обращается к гипервизору, который, в свою очередь, передает команды хост-системе. И только последняя непосредственно задействует необходимые вычислительные мощности. То есть хост-система «знает», что на ней установлен гипервизор, в виртуальном пространстве которого инсталлирована другая ОС.
Пример с актером, играющим другого человека, — примерная иллюстрация как раз программной виртуализации. Чтобы сыграть свою роль, ему необходимо лишь овладеть актерским мастерством. То есть буквально установить в себя программу, обеспечивающую такой навык. И, играя другого персонажа, актер все равно пропускает его личность через свои собственные представления о нем. Иными словами, его игра в любом случае зависит от личности самого актера.
Благодаря такой архитектуре программная виртуализация отличается простой реализацией и может быть осуществлена практически на любой аппаратной платформе, имеющей достаточные вычислительные мощности. Недостаток такого способа заключается в сравнительно низкой производительности: команды, выработанные гостевой ОС, сначала проходят через гипервизор и основную систему, прежде чем достигнут непосредственно аппаратной части.
Аппаратная. Данная технология заключается в том, что гипервизор при исполнении команд гостевой ОС обращается непосредственно к аппаратной части, минуя основную операционную систему. По сути, он сам становится своеобразной мини-ОС, единственная функция которой — запуск поверх себя других операционных систем и процессов. Для работы такого гипервизора необходимо, чтобы процессор и материнская плата имели поддержку аппаратной виртуализации. То есть в них должны быть вшиты специальные алгоритмы, позволяющие распределить между системами вычислительные возможности — мощность процессора и доступ к памяти.
Здесь можно привести аналогию с человеком, страдающим диссоциативным расстройством идентичности или, по-простому, множественными личностями. Его мозг — это физическое устройство, «родная» личность — основная операционная система, а появившиеся в результате расстройства новые «я» — это виртуальные машины. При этом его дополнительные личности изолированы как друг от друга, так и от основной. Каждая из них, совершая какие-то действия или реализуя потребности, напрямую задействует мозг и основные психические функции.
Преимущество аппаратной виртуализации перед программной заключается в гораздо большей производительности. В отличие от хост-системы, аппаратный гипервизор создает меньше «накладных расходов» (оверхедов), сокращая время вычислений до минимума. Недостаток аппаратной виртуализации — зависимость системы виртуальных машин от наличия соответствующей поддержки в железе.
Контейнерная. Это отдельный вид виртуализации, отличающийся от предыдущих тем, что в рамках основной операционной системы изолируется не другая ОС, а отдельные процессы. При этом он выполняется (инкапсулируется) в своем собственном окружении — с выделенной сетью, дисковым пространством, файловой системой и т.д. С помощью контейнерной виртуализации нельзя запустить, например, ОС Linux на Windows. Она предназначена в первую очередь для запуска отдельных сервисов и программ, входящих в состав какого-либо ПО.
Применение виртуализации
Впервые виртуализация была разработана еще в 60-х годах прошлого века, однако долгое время рассматривалась скорее как интересный технический эксперимент, а не полезная прикладная функция. Лишь компания IBM внедряла поддержку виртуализации в своих мейнфреймах для сохранения старых версий операционных систем. Только в конце 90-х годов, когда начался взрывной рост производительности как серверных, так и обычных персональных ПК, эта технология начала широко применяться для создания нескольких виртуальных машин на одной аппаратной платформе.
Сегодня средства виртуализации широко используются в различных направлениях IT-индустрии, например:
- В веб-хостинге. Виртуализация серверов позволяет создать на одной физической платформе несколько изолированных виртуальных пространств. Тем самым эффективно расходуются возможности аппаратных платформ и уменьшается стоимость хостинговых услуг для владельцев сайтов.
- В разработке. С помощью виртуализации можно создать на рабочей платформе изолированные виртуальные среды для тестирования приложений, влияющих на настройки операционной системы. Также эта технология удобна при проверке работоспособности программ в различных ОС, а также самих операционных систем.
- В кибербезопасности. Создав изолированную среду виртуализации, можно запускать в нее различные компьютерные вирусы и изучать их поведение. При этом основная операционная система, обеспечивающая работу аппаратной платформы, будет защищена от их проникновения.
- В игровой индустрии. Виртуализация позволяет создавать на мощных серверах виртуальные платформы для игр. Подключаясь к ним по широкополосному высокоскоростному интернету, пользователи могут за умеренную плату играть в любые современные игры на маломощных ПК — необходимые вычислительные мощности предоставляет сам сервер.
Помимо этого, виртуализация применяется в хранении данных, управлении сетевыми подключениями, распределенных вычислениях и т.д. Это перспективная технология, позволяющая эффективно расходовать возрастающие вычислительные мощности аппаратных платформ — как серверных, так и персональных.
0 комментариев