Что такое ВМ (Virtual Machine)?

Теги: IT

Виртуальная машина (Virtual Machine, ВМ, VM) — это полноценный компьютер, существующий только в виде кода и запускаемый с помощью программного обеспечения. У виртуальной машины есть собственные ЦП, оперативная память, диски. Но они не материальные, как в обычном компьютере, а виртуальные.

Где может применяться?

Фактически, на виртуальной машине можно выполнять все задачи, которые можно выполнить на обычном компьютере. Наиболее частые варианты использования:

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

Типы ВМ

Пользователи могут выбирать из двух типов — программные виртуальные машины и системные виртуальные машины:

  • Программные виртуальные машины запускают один процесс как отдельное приложение на основной системе. При этом информация о базовом оборудовании или операционной системе маскируется — создается независимая среда программирования. Яркий пример подобных ВМ — виртуальная машина Java. Она способна запускать приложения Java в любой операционной системе.
  • Системная виртуальная машина полностью виртуализирует физический компьютер. Она поддерживает совместное использование ресурсов одного компьютера с другими ВМ. Каждая их системных ВМ может обладать собственной ОС. Системные ВМ можно устанавливать как на «голое» оборудование, так и поверх основной операционной системы.

Как работают

Главный принцип виртуальной машины — виртуализация. Это процесс, в ходе которого специальное ПО создает программную (виртуальную) версию компьютера с заранее выделенными ресурсами под ЦП, память и хранилище. Ресурсы не создаются «с нуля», а заимствуются с физического компьютера или удаленного сервера.

Сама виртуальная машина — это компьютерный файл (образ), который можно запустить в любой момент. Все, что происходит в основной системе, может повлиять на работу ВМ. Все, что происходит в ВМ, не может повлиять на работу основной системы.

Виртуализация делится на пять типов:

  1. Аппаратная виртуализация.

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

  2. Виртуализация ПО.

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

  3. Виртуализация хранилища.

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

  4. Виртуализация сети.

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

  5. Виртуализация рабочего стола.

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

Преимущества

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

Другие положительные моменты:

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

Недостатки

Главный недостаток — нестабильная производительность. Как уже было указано, виртуальные машины «отщипывают» часть ресурсов у физического компьютера или сервера. Это создает целый ряд проблем:

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

Подобные недостатки решаются комбинированием работы виртуальных машин и физических компьютеров.

Популярные ВМ

  1. Virtual Box. ПО создано для виртуализации операционных систем Windows, Linux, FreeBSD, macOS и других.
  2. Hyper-V. Предустановленное (в Windows 10 и Windows 11) программное обеспечение для виртуализации операционных систем. Фактически полный аналог Virtual Box от компании Microsoft.
  3. Docker. ПО для виртуализации рабочих сред, позволяющая развертывать и управлять приложениями отдельно от основной системы. Главная фишка — «упаковка» приложения в отдельный контейнер, который можно развернуть на любой Linux-системе.
13 марта 2023