Максимально понятно рассказываем о том, что такое виртуальные машины ♦ Блог VK Cloud | Блог VK Cloud

VK Cloud

VK Cloud

Виртуальные машины: что это, как работают и чем отличаются от контейнеров

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

Что такое виртуальная машина и как она работает

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

С точки зрения пользователя виртуальная машина выглядит как настоящее оборудование — как будто вы используете программы или приложения, установленные на вашем компьютере, вот только этот компьютер не реальный, а виртуальный.

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

Кстати, эта ОС может отличаться от той операционной системы, которая установлена на компьютере. То есть на компьютере с Windows может быть запущена ВМ с Linux, а на нее установлены нужные приложения, работающие с этой операционной системой, но не подходящие для Windows.

Просто так виртуальная машина работать не будет, между ней и физическим оборудованием должна быть прослойка — специализированная программа под названием гипервизор. Она как бы копирует (эмулирует) процессорное время, память, жесткий диск, сеть и другие аппаратные ресурсы физического устройства, позволяя виртуальным машинам совместно ими пользоваться.

Зачем нужны виртуальные машины

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

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

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

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

Если вы хотите лучше разобраться в том, что такое виртуализация и как она работает — мы написали об этом в

отдельной статье

.

Как используют виртуальные машины

Для чего еще нужны виртуальные машины? Есть много вариантов их использования. Часто их развертывают, если для одновременно работающих приложений требуются разные операционные системы и вычислительная мощность.

Например, когда компания хочет одновременно протестировать несколько веб-серверов и небольших баз данных. Или хочет запустить на одном и том же оборудовании, например, игровой сервер с мощной графикой и базу данных для обслуживания клиентов.

Вот еще несколько вариантов использования виртуальных машин:

защита информации и ограничение возможностей программ (песочница);
исследование производительности программного обеспечения;
эмуляция на оборудовании различных архитектур (например игровой приставки);
оптимизация использования ресурсов физических серверов;
тестирование и отладка системного программного обеспечения;
проверка программ на наличие вредоносного ПО.

Виртуальные машины и контейнеры: в чем разница?

Контейнеризация — другой вид виртуализации, контейнеры виртуализируют только операционную систему, а не все базовое оборудование. При этом одно и то же ядро операционной системы, то есть ее центральный модуль, может обслуживать не одно, а несколько изолированных экземпляров пространства пользователя — областей ОС, предназначенных для приложений и данных конкретного пользователя. Эти области и называют контейнерами.

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

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

В отличие от виртуальных машин, все контейнеры используют одно и то же ядро операционной системы, которая установлена на сервере. В этом и недостаток, и преимущество контейнеризации:

недостаток — потому что вам недоступен широкий спектр операционных систем и вы не можете обновить ОС в отдельном контейнере;
преимущество — потому что отсутствуют накладные расходы на множество отдельных ядер и эмуляцию виртуального оборудования. Соответственно, контейнеры потребляют меньше вычислительных ресурсов.

Одним из ведущих разработчиков контейнеров в настоящее время является Docker, который впервые появился на рынке в 2013 году как контейнерная платформа на базе Linux.

Облачные вычисления и виртуальные машины

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

Облачные вычисления добавляют к виртуализации дополнительные технологии, например, сервис самостоятельного администрирования и автоматический биллинг — подсчет стоимости потраченных ресурсов. Так, в облачном дата-центре инженеры могут создавать новые виртуальные машины в зависимости от потребностей пользователей или нового проекта. А обычный пользователь в облачной среде выбирает ресурсы из каталога в личном кабинете и создает виртуальные машины, не взаимодействуя с реальным физическим оборудованием.

Так, создать виртуальную машину для размещения сайта или приложения в облаке VK Cloud (бывш. MCS) можно в три клика:

Для многих бизнес-задач использовать виртуальные серверы в облаке проще и выгоднее, чем покупать и настраивать собственное оборудование. Облачная инфраструктура дает широкие возможности для разработки программного обеспечения, подходит как для стартапов и небольшого бизнеса, так и для развертывания IT-систем крупных проектов.