A virtual machine (VM) is an emulated or digital version of a physical computer. Virtual machines can be used to run different operating systems and applications, store data, connect to networks, as well as perform other tasks like a physical device. Virtual machines run on a physical device called a host or parent server. And a virtual machine is called a guest or child.
В этой статье я расскажу, как работают виртуальные машины и в чем их отличие от контейнеров. Я также подробно опишу некоторые из самых важных сценариев использования виртуальных машин, включая разработку программного обеспечения для различных платформ и исследование вредоносных программ.
Как работает виртуальная машина?
В основе технологии виртуализации лежит возможность создания и запуска нескольких виртуальных машин одновременно на одном хосте. Например, хост с Windows может запускать различные виртуальные машины с Windows, CentOS, Ubuntu и другими дистрибутивами Linux.
A virtual server uses hypervisor software to interact with the underlying physical hardware. It makes it possible to keep VMs separate and evenly allocate host resources (CPUs, storage, and memory) to each VM guest as needed. The hypervisor can also schedule operations to prevent deadlocks.

Два вида гипервизоров
В виртуализации используются два основных типа гипервизоров.
Гипервизоры типа 1 (процессорные ВМ)
Во-первых, гипервизор типа 1, также называемый гипервизором металла, работает на физическом компьютере на нативном уровне. Обычно для создания/управления виртуальными машинами и управления разрешениями на гипервизоре требуется отдельное средство управления. Microsoft Hyper-V и Кситрикс Гипервизор являются примерами гипервизоров типа 1.
Гипервизоры типа 2 (Системные ВМ)
A type 2 hypervisor, also known as a hosted hypervisor, can run as an application on the host OS. It allows users to manually create a virtual machine instance and install a guest operating system.
Гипервизор типа 2 работает относительно медленнее, потому что каждый запрос к виртуальной машине должен быть направлен на хост-операционную систему. Он подходит для отдельных лиц, разработчиков и малых компаний, которые не могут позволить себе покупку выделенных серверов. Некоторые общие примеры гипервизоров типа 2 включают Oracle VirtualBox и VMware Workstation.
Что такое виртуализация?
Виртуализация – это технология, которая предполагает создание абстрактного уровня над физической хост-машиной. Она помогает разделить аппаратные ресурсы (ЦП, ОЗУ и хранилище) одного компьютера на различные виртуальные компьютеры, называемые виртуальными машинами.
Каждая виртуальная машина действует как независимая машина со своей операционной системой. Это эффективное средство для организаций, которые хотят запускать несколько операционных систем и приложений на одном физическом сервере.
Пять типов виртуализации
Существует пять общих типов виртуализации: аппаратная, программная, хранилища, сети и виртуализация рабочего стола.
1. Аппаратная виртуализация
Аппаратная виртуализация, также известная как виртуализация сервера, – это метод, позволяющий пользователям создавать виртуальные версии компьютеров и операционных систем. Это позволяет одновременно запускать несколько операционных систем на одной физической машине. Аппаратная виртуализация также оптимизирует использование аппаратных ресурсов.
2. Программная виртуализация
Виртуализация программного обеспечения – это метод, позволяющий физическому хост-компьютеру запускать несколько виртуальных компьютеров. Он использует программное обеспечение гипервизора для распределения аппаратных ресурсов (таких как хранилище, процессоры и память) между различными виртуальными машинами (ВМ). Например, дистрибутив Linux может быть запущен в виртуальной машине на компьютере, работающем под управлением операционной системы Windows.
3. Виртуализация хранилища
Виртуализация хранилища объединяет физическое хранилище из нескольких сетевых устройств хранения данных в виде единого виртуального диска. Она имеет различные преимущества, включая снижение затрат, балансировку нагрузки, планирование восстановления после катастроф и улучшенную производительность и скорость.
4. Виртуализация сети
Виртуализация сети – это процесс, используемый для объединения физических сетей в единую виртуальную сеть на основе программного обеспечения. Он помогает распределять доступную пропускную способность на различные каналы и выделять их устройствам и серверам. Она предлагает такие преимущества, как улучшенная безопасность, надежность и скорость сети.
5. Виртуализация рабочего стола
Виртуализация рабочего стола позволяет пользователям моделировать нагрузку на рабочую станцию таким образом, чтобы ее можно было получить из любого места на любом устройстве. Ее основные преимущества включают экономию затрат, оптимизацию ресурсов, улучшенную безопасность данных и более легкое управление.
Каковы основные преимущества использования ВМ?
ВМ обеспечивают различные преимущества как для конечных пользователей, так и для администраторов ИТ. Вот список некоторых функций, которые делают виртуальные машины очень привлекательными в корпоративных средах:
1. Облачные вычисления
Технология виртуализации обеспечивает базовую архитектуру для облачных вычислений. Она позволяет бизнесу развертывать и мигрировать облачные виртуальные машины на серверы в локальной среде и использовать гибридные облака.
Для организаций также возможно выделять и изменять облачные ресурсы в реальном времени, чтобы удовлетворить их динамические требования к использованию. Облачные службы на базе виртуальных машин популярны для запуска приложений SaaS, резервного копирования данных и хостинга служб электронной почты и управления доступом.
2. Эффективность затрат
Виртуальные машины позволяют организациям создавать и запускать несколько экземпляров виртуальной машины на одном сервере. Поскольку расходы на аппаратное обеспечение ИТ могут быть реальным вызовом для бизнеса, ВМ могут помочь повысить эффективность затрат, используя минимальные физические аппаратные ресурсы. Например, администраторы ИТ могут использовать один сервер для развертывания различных приложений в корпоративной среде.
3. Безопасность
Пользователи могут создавать виртуальные окружения для увеличения безопасности и предотвращения воздействия вредоносных программ на базовое оборудование и операционную систему. Пользователям также удобно и быстро возвращать компрометированные виртуальные машины к предыдущим версиям в случае кибератаки.
Между тем разработчики могут использовать виртуальные машины для тестирования обновлений программного обеспечения и приложений перед их выпуском пользователям. ВМ также полезны для исследователей для тестирования вредоносного программного обеспечения.
4. Масштабируемость и переносимость
Виртуализация позволяет клиентам быстро разворачивать различные типы виртуальных машин с операционными системами по своему выбору и определенным набором ресурсов. ВМ также могут помочь организациям лучше реагировать на изменения рабочих нагрузок. Они также могут сэкономить дополнительное время и усилия, необходимые для установки различных операционных систем на физические серверы.
5. Миграция нагрузки
Виртуальные машины называются «самодостаточными пакетами», отделенными от физического компьютера. Это упрощает задачу ИТ-командам перехода на более быстрое оборудование, перемещения ВМ с одного сервера на другой, а также восстановления после сбоев.
6. Восстановление после катастрофы
Организации могут использовать виртуальные машины для резервного копирования своих систем в облачных средах. Эта возможность обеспечивает дополнительный уровень безопасности и минимизирует риск потери данных в случаях, таких как отказ оборудования.
7. Поддержка DevOps
ВМ обеспечивают максимальную гибкость для поддержки разработчиков предприятий. Они могут создавать изолированные среды с полной функциональностью для процесса разработки и тестирования программного обеспечения. ВМ также позволяют разработчикам запускать и тестировать несовместимое программное обеспечение на различных операционных системах.
Виртуальные машины против Контейнеров
Как и виртуальные машины, контейнеры позволяют запускать изолированные от базовой системы хоста приложения. Однако давайте рассмотрим основные различия между виртуальными машинами и контейнерами:
Virtual Machines | Containers |
---|---|
Hardware-level process isolation | Operating system-level process isolation |
A virtual machine offers complete isolation of apps from the host OS | Containers can share some resources with the host OS |
VMs use a few GBs of system memory | Containers require less memory space (KBs or MBs) |
Each VM has a dedicated OS | Containers can share OS resources |
VM is more secure | Containers are less secure |
Boots in minutes | Boots in seconds |
VMs consume more system resources | Containers consume fewer resources |
VMs can move between hardware | Containers are destroyed and recreated |
VM creation takes a considerable amount of time | Users can create containers within a few seconds |
Users can run any OS inside the VM | Users can only run containers on the same OS version as the host |
Some popular use cases of VMs are running multiple applications, monolithic applications, and legacy apps on older OS. | Containers are best for running web apps, DevOps testing, and microservices. |
Основные случаи использования виртуальных машин
Виртуальные машины имеют несколько случаев использования как для конечных пользователей, так и для ИТ-администраторов. Вот несколько примеров:
1. Тестирование новых операционных систем
Виртуальные машины позволяют пользователям запускать различные операционные системы на одном физическом хосте. Это означает, что пользователи могут тестировать новые функции, не затрагивая свою основную операционную систему.
Если вы являетесь участником программы Windows Insider, вы можете попробовать использовать виртуальные машины для тестирования предварительных сборок Windows 11, поступающих из канала Dev. Однако эти сборки могут быть довольно нестабильными, хотя можно воссоздать виртуальную машину и переустановить операционную систему, если ваша ВМ не загружается по какой-то причине.
2. Запуск устаревших или несовместимых программ
Еще один распространенный случай использования виртуальных машин – это способность использовать устаревшие программные приложения в корпоративной среде. ВМ позволяют пользователям запускать программное обеспечение, которое не поддерживается их текущей операционной системой.
3. Исследование вредоносных программ
Исследователям вредоносных программ часто требуются новые машины для тестирования вредоносных программ или приложений. В этом случае очень удобны виртуальные машины. Они могут тестировать программное обеспечение в ВМ, а не рисковать заражением на физическом хосте.
4. Разработка программного обеспечения для нескольких платформ
Технология виртуализации позволяет разработчикам программного обеспечения и тестировщикам тестировать свои приложения на различных платформах. Например, команда разработчиков может использовать различные виртуальные машины для тестирования различных версий приложения в эмулированной среде.
5. Учебные сессии
Для компьютеров в учебных классах важно запускать различные экземпляры операционных систем. Виртуальные машины позволяют тренерам проводить тренировочные сессии, которые воссоздают различные бизнес-сценарии и окружения.
6. Безопасный просмотр
Наконец, виртуальные машины могут помочь обеспечить безопасный опыт просмотра для пользователей. Возможно сделать снимок состояния ВМ в текущем состоянии и затем откатить его в случае заражения вирусами. Пользователи могут либо настроить гипервизор второго типа, либо попросить администратора ИТ предоставить им временный доступ к виртуальному рабочему столу, размещенному на сервере.
Вывод
В общем, виртуальные машины – это экономичное решение, которое позволяет ИТ-командам эффективно распределять системные ресурсы и управлять большими кластерами компьютеров. Однако у ВМ есть свои плюсы и минусы, и организации обычно используют гибридный подход (как физические, так и виртуальные машины), в зависимости от своих бизнес-потребностей.