Виртуальные машины

menu icon

Виртуальные машины

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

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

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

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

Вам могут встретиться разные названия этой технологии, например виртуальный сервер, экземпляр виртуального сервера (VSI) или виртуальный частный сервер (VPS), однако в этой статье мы будем использовать самый простой термин — «виртуальная машина».

Принцип работы виртуализации

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

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

Для того чтобы познакомиться с базовыми принципами виртуализации, посмотрите следующий видеоролик и прочитайте статью 5 преимуществ виртуализации:

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

Существует два основных типа гипервизоров.

Гипервизоры 1 типа работают непосредственно на физическом оборудовании (обычно сервере), заменяя собой ОС. Для создания виртуальных машин и управления ими через гипервизор, как правило, используется отдельный программный продукт. Некоторые инструменты управления, например VMware vSphere, предоставляют возможность выбора гостевой ОС для установки на виртуальную машину.

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

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

Полный обзор гипервизоров приведен в документе Гипервизоры: полное руководство.

Достоинства и преимущества виртуальных машин

Виртуальные машины обладают целым рядом преимуществ по сравнению с традиционными физическими устройствами:

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

Примеры использования виртуальных машин

Существует несколько сфер применения виртуальных машин для ИТ-администраторов предприятий и для конечных пользователей. Вот некоторые из них:

  • Облачные вычисления: за последние десять с лишним лет виртуальные машины превратились в базовый компонент облачных вычислений и обеспечили возможность успешного выполнения и масштабирования десятков разных типов приложений и задач.
  • Поддержка DevOps: виртуальные машины прекрасно подходят разработчикам на предприятиях благодаря возможности настраивать шаблоны виртуальных машин с учетом внутренних процессов разработки и тестирования ПО. Разработчики могут создавать виртуальные машины для конкретных задач, например статических тестов ПО, включая автоматизированные процессы разработки с такими этапами. Все это помогает упростить конвейер DevOps.
  • Тестирование новых операционных систем: новые операционные системы можно тестировать на обычных рабочих станциях, не заменяя их основную ОС.
  • Исследование вредоносного кода: виртуальные машины активно применяются исследователями вредоносных программ, которым часто нужны свежие машины для тестирования вредоносных программ.
  • Запуск несовместимого программного обеспечения: зачастую пользователи предпочитают определенную ОС, но для работы им нужна программа, доступная только для других операционных систем. В качестве примера можно привести программное обеспечение Dragon с функциями голосовой диктовки. Компания Nuance, производитель этого продукта, прекратила поддержку macOS. Однако проблему можно решить следующим образом: гипервизор для рабочего стола, например VMware Fusion или Parallels, позволяет запустить Windows в виртуальной машине, обеспечив доступ к нужной версии ПО.
  • Безопасный просмотр веб-сайтов: виртуальные машины позволяют посещать веб-сайты, не опасаясь подхватить вирус. Можно создать моментальный снимок системы и выполнять откат после каждой сессии работы в Интернете. Любой пользователь может самостоятельно настроить эту функцию с помощью гипервизора 2 типа. Либо же администратор может предоставить временный виртуальный рабочий стол на сервере.

Типы виртуальных машин

В этом разделе рассматриваются лишь некоторые из множества видов виртуальных машин:

  • Виртуальные машины Windows
  • Виртуальные машины Android
  • Виртуальные машины Mac
  • Виртуальные машины iOS
  • Виртуальные машины Java
  • Виртуальные машины Python
  • Виртуальные машины Linux
  • Виртуальные машины VMware
  • Виртуальные машины Ubuntu

Виртуальные машины Windows

Большинство гипервизоров поддерживают виртуальные машины, работающие в ОС Windows как гостевые системы. Гипервизор Microsoft Hyper-V входит в состав операционной системы Windows. Во время установки он создает родительский раздел, содержащий сам гипервизор и основную ОС Windows, которые обладают привилегированным доступом к аппаратному обеспечению. Другие операционные системы, включая гостевые системы Windows, выполняются в дочерних разделах, взаимодействующих с аппаратным обеспечением через родительский раздел.

Виртуальные машины Android

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

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

В некоторых проектах, например Shashlik или Genymotion, используется эмулятор, который воссоздает архитектуру ARM в программном обеспечении. Альтернативный проект Android-x86 переносит Android на архитектуру x86. Для ее запуска необходимо установить программу Android-x86 в качестве виртуальной машины с использованием гипервизора VirtualBox 2 типа. Еще одно альтернативное решение, Anbox, запускает операционную систему Android в ядре ОС Linux хоста.

Виртуальные машины Mac

ОС macOS от Apple может работать исключительно на оборудовании Apple; лицензионное соглашение с конечным пользователем запрещает запускать macOS на оборудовании других производителей как виртуальную машину или иным способом. Для создания виртуальных машин с гостевой ОС macOS можно использовать гипервизоры 2 типа на базе оборудования Mac.

Виртуальные машины iOS

На сегодняшний день невозможно запустить iOS в виртуальной машине, поскольку Apple разрешает запускать ОС iOS исключительно на устройствах iOS и строго контролирует свой продукт.

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

Виртуальные машины Java

Платформа Java — среда выполнения, предназначенная для программ на языке разработки программного обеспечения Java. Язык Java создавался под лозунгом «написано однажды, выполняется где угодно». Это означает, что любая программа Java может работать на любом оборудовании с платформой Java. Для этого на платформе Java предусмотрена виртуальная машина Java (JVM).

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

Поэтому JVM не запускает ОС целиком и не использует гипервизор, как другие виртуальные машины. Вместо этого она преобразует программы прикладного уровня для работы на определенном оборудовании.

Более подробная информация о Java приведена в документе Java: полное руководство.

Виртуальные машины Python

Виртуальная машина Python, как и JVM, не запускает гипервизор и не включает гостевую ОС. Этот инструмент обеспечивает возможность выполнения программ на языке программирования Python на множестве различных ЦП.

Аналогично Java, Python преобразует программы в промежуточный формат (байтовый код) и хранит его в исполняемом файле. При запуске программы виртуальная машина Python преобразует байтовый код в машинный код для быстрого выполнения.

Виртуальные машины Linux

Linux — распространенная гостевая ОС, применяемая во многих виртуальных машинах. Это еще и популярная ОС хоста для работы виртуальных машин, имеющая собственный гипервизор под названием «виртуальная машина на основе ядра» (KVM). KVM была добавлена в ядро Linux еще в 2007 году. Несмотря на то, что проект создавался на основе открытого исходного кода, сегодня компания-разработчик KVM принадлежит Red Hat.

Виртуальные машины VMware

Компания VMware, которая одной из первых приступила к разработке ПО для виртуализации, сегодня является популярным поставщиком гипервизоров 1 и 2 типов, а также ПО виртуальных машин для корпоративных клиентов.

В документе VMware: полное руководство приведена исчерпывающая информация о VMware.

Виртуальные машины Ubuntu

Ubuntu — дистрибутив Linux, разработанный компанией Canonical. Он доступен в двух версиях — для ПК и сервера — с возможностью установки в виде виртуальной машины. Ubuntu можно развернуть как гостевую ОС в Microsoft Hyper-V. Он предоставляет оптимизированную версию Ubuntu Desktop, которая отлично работает в расширенном режиме Hyper-V (Enhanced Session Mode), обеспечивая тесную интеграцию между хостом Windows и виртуальной машиной Ubuntu. Кроме того, поддерживаются следующие возможности: интеграция буфера обмена, динамическое изменение размера рабочего стола, общие папки и перемещение указателя мыши между рабочим столом хоста и гостевой системы.

Сравнение моделей с одним и несколькими арендаторами

В средах облачных вычислений виртуальные машины обычно доступны в двух вариантах — с одним и несколькими арендаторами.

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

Виртуальные машины с одним арендатором доступны в двух вариантах — выделенные хосты и выделенные экземпляры.

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

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

Модели ценообразования для виртуальных машин

К самым распространенным моделям ценообразования для виртуальных машин в облаке относятся: оплата за фактическое использование (в час или секунду), временные/оперативные экземпляры, зарезервированные экземпляры и выделенные хосты.

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

Сравнение виртуальных машин и физических серверов

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

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

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

Приложения в сфере электронной коммерции, финансовых услуг, ERP, CRM и SCM являются примерами идеальных задач для физических серверов.

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

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

Сравнение виртуальных машин и контейнеров

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

Вместо виртуализации базового оборудования контейнеры виртуализируют операционную систему (обычно Linux), т. е. каждый отдельный контейнер содержит только приложение, его библиотеки и зависимости. Легкость, высокая скорость и переносимость контейнеров объясняется именно отсутствием гостевой ОС.

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

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

Более подробная информация приведена в статье блога Сравнение контейнеров и виртуальных машин: в чем отличия?

В следующем видеоролике Сай Веннам подробно разбирает основные принципы контейнеризации и ее отличия от виртуальных машин (8:09):

Стратегия выбора поставщика виртуальных машин

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

  • Надежная поддержка: рассматривайте только поставщиков, способных обеспечить круглосуточную поддержку клиентов по телефону, электронной почте и через чат. Важно, чтобы в службе поддержки работали реальные люди, которые помогут найти решение в критической ситуации. Кроме того, следует обратить внимание на поставщиков услуг, предоставляющих дополнительные услуги.
  • Управляемые решения: предлагает ли поставщик как неуправляемые, так и управляемые решения? Если вы не владеете всеми тонкостями технологии виртуализации, выбирайте поставщика, который возьмет на себя все задачи по настройке, обслуживанию и текущему мониторингу производительности.
  • Интеграция программ: будет ли среда виртуальных машин хорошо совместима с остальной инфраструктурой? Операционные системы, сторонние программы, технологии и приложения с открытым исходным кодом расширяют спектр доступных решений для вашей компании. Желательно, чтобы поставщик виртуальных машин обеспечивал поддержку самых популярных продуктов других поставщиков. Примечание: опасайтесь привязки к определенному поставщику.
  • Высококачественная сеть и инфраструктура: насколько современна инфраструктура, на которой будет работать новая виртуальная машина? Сюда относятся связанные физические серверы, современные ЦОД и магистральная сеть. Со своей стороны поставщик облачных услуг должен предоставить современное оборудование и технологию высокоскоростной сети.
  • Расположение, расположение, расположение: чем ближе расположены данные к пользователям, тем меньше проблем придется решать с временем отклика, безопасностью и своевременным предоставлением услуг. Хорошая глобальная сеть на основе разбросанных по всему миру ЦОД играет важнейшую роль в обеспечении доступа к данным в нужном месте и в нужный момент времени.
  • Резервное копирование и восстановление: как облачный провайдер предлагает обеспечивать непрерывность работы виртуальных машин в случае непредвиденных обстоятельств. Предоставляет ли поставщик дополнительные услуги резервного копирования и избыточности для виртуализированной среды? Необходимо ответственно подойти к вопросу обеспечения бесперебойной работы.
  • Удобство масштабирования: насколько легко и быстро вы сможете запускать, останавливать, резервировать, приостанавливать и обновлять виртуальные машины? Что касается масштабируемости виртуальных машин, самый лучший ответ — «по запросу».
  • Различные конфигурации процессора: чем больше конфигураций, тем лучше. Не каждая конфигурация виртуальной машины подходит на все случаи жизни. Выбирайте поставщика виртуальной машины, предоставляющего различные пакеты конфигураций с одним или несколькими арендаторами.
  • Уровни защиты: спросите о них вашего провайдера. Затем спросите снова. Бизнес-данные — самый ценный капитал вашей компании, особенно когда речь идет о конфиденциальной информации клиентов. Частные сетевые линии, федеральные ЦОД, встроенные функции шифрования и соблюдение регулятивных норм чрезвычайно важны для защиты вашего самого ценного ресурса.
  • Поддержка бесперебойной миграции: ваши приоритеты в сфере ИТ будут меняться. Это факт. Любой поставщик виртуальных машин должен предоставлять возможность перемещения задач между гибридными, локальными и удаленными средами. Выбирайте варианты сетевой миграции данных, ориентированные на приложения, с полным циклом получения и обработки данных.

Виртуальные машины и IBM Cloud

IBM Cloud предлагает для работы с виртуальными машинами различные конфигурации как относительно технических возможностей, так и с точки зрения ценообразования. Технический профиль виртуальной машины можно выбрать, исходя из ваших требований к вычислительной мощности, памяти, объему локального хранилища, возможностям GPU, т. е. настроить систему для своих конкретных задач. Кроме того, для управления виртуальными машинами VMware можно использовать решения IBM Cloud for VMware.

В зависимости от нормативных требований и требований к безопасности можно выбрать общедоступный или частный узел. Частная среда с одним арендатором может быть размещена на выделенном хосте, выбранном вами из более чем 60 ЦОД IBM в 19 странах по всему миру.

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

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

Для просмотра дополнительных сведений посетите страницу IBM Cloud и создайте IBMid.