Виртуальная машина (ВМ или VM) — это виртуальный компьютер, который использует выделенные ресурсы реального компьютера (процессор, диск, адаптер). Эти ресурсы хранятся в облаке и позволяют ВМ работать автономно. Простыми словами, виртуальная машина позволяет создать на одном компьютере еще один компьютер, который будет использовать его ресурсы, но работать изолированно.
Виртуализация, и виртуальная машина в частности, расширяет возможности IT-инфраструктуры. Она будет полезна разработчикам программных продуктов, веб-дизайнерам, а также тем, кто планирует перейти на новую ОС, но не уверен в выборе. Простыми словами, виртуализация — это создание изолированной программной среды (или нескольких таких сред) в рамках одного физического устройства.
Для чего нужна виртуальная машина:
- Чтобы разворачивать две и более независимые операционные системы на одном физическом устройстве. Например, на вашем компьютере установлена операционная система Windows 10, а на виртуальную машину вы установили Windows XP или Linux
- Для экспериментов с программным обеспечением (например, кодом, предназначенным для запуска в различных ОС), не подвергая риску стабильность компьютера
- Чтобы устанавливать и тестировать различные программы и утилиты, не занимая место на основном ПК
- Чтобы запускать программы, которые не поддерживает основная ОС, или подключать оборудование, несовместимое с ней. Например, применять Windows-программы на Mac или Linux
- Для безопасного запуска приложения (программы), которое вызывает недоверие или подозрение на вирусы
- Чтобы эмулировать компьютерные сети и сложные среды, не настраивая виртуальную машину каждый раз. Можно сохранить настройки и продолжить с того этапа, где остановились
Если сравнивать функции виртуальной машины с работой на обычном ПК, то можно выделить как преимущества, так и недостатки.
Преимущества виртуальной машины
- Можно выключить ПК или перейти к другой задаче с сохранением текущего состояния машины. Если вы решите продолжить работу, ВМ загрузится в том состоянии, в котором находилась в момент выключения.
- На VM можно делать снапшоты, которые позволяют откатываться до предыдущих конфигураций. Это удобно, если при тестировании нестабильного софта произошла критическая ошибка. По сравнению с основной системой, для ВМ выделяется меньше места на дисковом пространстве и откат до раннего состояния происходит быстрее.
- Машину можно сохранять или дублировать как изолированную среду. Её можно будет запустить позднее или скопировать на другой ПК. Заданные конфигурации сохранятся.
- ВМ вместе со всеми данными легко переносится с одного ПК на другой. Портативный софт для виртуальной машины сохраняет информацию одним файлом (в виде образа системы) на физическом компьютере. Для переноса достаточно переместить этот файл.
- ВМ не занимает место постоянной памяти, а оперирует выделенной временной памятью. Все действия фиксируются в виде лога, который очищается при завершении каждого сеанса.
Для переподключения на другую ОС не нужно перезагружать компьютер.
На одном устройстве можно хранить несколько виртуальных машин с несколькими ОС в разных состояниях.
Недостатки использования VM
- Чтобы одновременно запускать на ВМ несколько операционных систем, нужно иметь соответствующие аппаратные ресурсы.
- ОС в виртуальных машинах могут работать медленнее. Несмотря на то что показатели производительности виртуальных ОС стремятся к показателям физических ОС, на данный момент развития они всё-таки не равны.
- Виртуальная платформа поддерживает не весь функционал аппаратного обеспечения. VMware уже поддерживает USB 3.0, контроллеры портов COM и LPT и приводы CD-ROM, но с виртуализацией видеоадаптеров и поддержкой функций аппаратного ускорения трехмерной графики могут быть сложности.
Типы виртуализации
Аппаратная
Аппаратная виртуализация - это процесс установки гипервизора или диспетчера виртуальных машин, который создает промежуточный слой между программным обеспечением системы виртуализации и физическим оборудованием. Наиболее распространенными гипервизорами являются VMware vSphere на основе ESXi и Microsoft Hyper-V.
После установки гипервизора, программные решения могут получать информацию о виртуализированных ресурсах и управлять ими. Виртуализированные ресурсы объединяются в группы, называемые виртуальными машинами. На каждую ВМ можно установить любую операционную систему и необходимые приложения.
Одним из ключевых преимуществ аппаратной виртуализации является возможность создания нескольких ВМ, которые работают независимо друг от друга и не пересекаются. Это означает, что если одна ВМ будет скомпрометирована или выйдет из строя, соседние ВМ не пострадают.
Аппаратная виртуализация отличается от программной тем, что гипервизор сам становится хост-системой, на которой запускается виртуализация. Это можно рассматривать как специальную операционную систему, основной задачей которой является обеспечение возможности запуска на ней любых других операционных систем со свободным доступом к оборудованию.
Однако для аппаратной виртуализации важно, чтобы процессор и материнская плата поддерживали виртуализацию на аппаратном уровне. Это позволяет гипервизору правильно распределять процессорные мощности и настраивать доступ к памяти разных систем. В некоторых случаях необходимо включить виртуализацию в BIOS.
Технологии Intel VT и AMD-V обеспечивают аппаратную поддержку виртуализации на уровне процессора. Основным направлением развития этих технологий является CPU Virtualization, которое позволяет запускать на одном процессоре несколько систем, способных работать параллельно и с разным уровнем вложенности.
Если коротко, то главное преимущество аппаратной виртуализации — исключительная гибкость, настраиваемость виртуальной инфраструктуры. Конфигурация ВМ полностью контролируется гипервизором. Достаточно выбрать нужные устройства в настрйоках, залить шаблон или образ нужной системы, после чего можно запускать виртуальную машину.
Важно, даже если вы делаете это на процессоре с 32-битной архитектурой, аппаратная виртуализация позволяет создать ВМ с 64-битной архитектурой. Очень удобно.
Аппаратная виртуализация хороша тем, что внешние приложения не отличают ВМ от физического устройства. Гостевые ОС запускаются на процессоре без виртуализации и не знают о других ОС, которые находятся на одном уровне с ними.
Есть и другие преимущества:
- Благодаря виртуализации снижаются расходы на покупку, установку, настройку и последующее обслуживание локального оборудования. Вместо приобретения нескольких «железных» серверов можно задействовать одну производительную машину, на которой развернуть несколько ВМ с разным объёмом ресурсов и задачами.
- Нужную конфигурацию виртуальной машины можно сохранить как шаблон, после чего быстро развёртывать на разном оборудовании.
- В любой момент можно создать нужное количество ВМ, задать нужные параметры производительности.
- В любой момент можно сделать снапшот виртуальной машины, настроить географически распределённое хранилище резервных копий, чтобы даже при критическом сбое части оборудования не рушилась вся инфраструктура. Всё будет работать и дальше, просто придётся выделить больше ресурсов на функционирующие виртуальные компоненты инфраструктуры.
- Виртуальные машины обособлены друг от друга и не потребляют «чужие» ресурсы. Если одна из машин будет взломана, другие это никак не затронет.
Программная
Программная виртуализация - это процесс создания виртуальной среды для запуска операционных систем и приложений на одном физическом сервере. В отличие от аппаратной виртуализации, программная виртуализация не требует специального оборудования или поддержки виртуализации на уровне процессора.
Программная виртуализация работает на уровне операционной системы, создавая виртуальную среду для запуска других операционных систем и приложений. Это достигается за счет использования специального программного обеспечения, называемого гипервизором или монитором виртуальных машин.
Гипервизор программной виртуализации устанавливается на существующую операционную систему, которая становится хост-системой. Затем гипервизор создает виртуальные машины (ВМ), которые работают как отдельные компьютеры. На каждую ВМ можно установить свою операционную систему и необходимые приложения.
Программная виртуализация имеет несколько преимуществ, включая:
- Не требует специального оборудования или поддержки виртуализации на уровне процессора
- Может работать на существующем оборудовании
- Упрощает процесс создания и управления виртуальными машинами
- Позволяет запускать несколько операционных систем на одном физическом сервере
Однако программная виртуализация также имеет некоторые ограничения, включая:
- Может быть медленнее, чем аппаратная виртуализация
- Может иметь ограничения на количество виртуальных машин, которые можно создать
- Может требовать больше ресурсов хост-системы
Примерами программной виртуализации являются:
- VMware Workstation
- VirtualBox
- Microsoft Virtual PC
Программная виртуализация широко используется в различных областях, включая:
- Разработка и тестирование программного обеспечения
- Обучение и тренинги
- Создание виртуальных лабораторий
- Запуск старых операционных систем и приложений на современном оборудовании
С теорией закончили, в следующих статьях на практике разберем как создать свою виртуальную машину на различном типе виртуализации, будем используя Hyper-V как аппаратную и Virtual Box как программную в качестве примера.