Виртуализация

menu icon

Виртуализация

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

Что такое виртуализация?

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

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

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

Более подробный обзор принципов работы виртуализации смотрите в нашем видео «Виртуализация простыми словами» (5:20):

Преимущества виртуализации

Виртуализация несет операторам ЦОД и поставщикам услуг ряд преимуществ:

  • Эффективное использование ресурсов: до появления виртуализации каждому серверу приложений требовался отдельный физический процессор: для каждого приложения приходилось приобретать и настраивать отдельный сервер. (Из соображений надежности ИТ-специалисты предпочитали держать на одном компьютере только одно приложение и одну ОС). Понятно, что в таких конфигурациях физические серверы использовались крайне неэффективно. Виртуализация же дает возможность выполнять на одном физическом компьютере (обычно это x86) несколько приложений (каждое работает в своей ВМ со своей ОС), при этом на надежности это никак не сказывается. Это обеспечивает максимально эффективное использование физических вычислительных ресурсов.
  • Упрощение управления: замена физических компьютеров на программно-определяемые ВМ существенно упрощает определение политик для ПО и управление ими. Это позволяет автоматизировать процессы управления ИТ-услугами. Например, автоматизированные инструменты для развертывания и настройки позволяют администраторам определять коллекции виртуальных машин и приложений как услуги — в виде программных шаблонов. Это позволяет устанавливать эти услуги многократно и единообразно, исключив громоздкие, трудоемкие и подверженные ошибкам процессы ручной настройки. Администраторы могут создавать политики безопасности виртуализации, определяющие конфигурации безопасности на основе роли виртуальной машины. С помощью политик можно даже сэкономить память и вычислительную мощность, настроив удаление простаивающих виртуальных машин.
  • Минимальное время простоя: сбои операционной системы и приложений могут привести к простоям и замедлить работу пользователей. Виртуализация позволяет запускать несколько резервных виртуальных машин параллельно и переключаться между ними в случае возникновения неполадок. Держать под рукой несколько резервных физических серверов намного дороже.
  • Более быстрое предоставление ресурсов: приобретение, установка и настройка аппаратного обеспечения для каждого приложения отнимает много времени. Если аппаратное обеспечение уже есть, то предоставление виртуальных машин для всех ваших приложений происходит намного быстрее. Этот процесс можно даже автоматизировать с помощью ПО для управления и встроить в действующие рабочие процессы.

Более подробную информацию о преимуществах см. в документе «5 преимуществ виртуализации».

Решения

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

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

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

Полное описание виртуальных машин см. в разделе «Что такое виртуальная машина?».

Гипервизоры

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

Гипервизоры бывают двух типов:

  • Гипервизоры типа 1 или «аппаратные» взаимодействуют с базовыми физическими ресурсами, полностью заменяя традиционную операционную систему. Такие гипервизоры чаще всего применяются в виртуальных серверах.
  • Гипервизоры типа 2 работают как приложения в имеющейся ОС. Чаще всего эти гипервизоры используются на конечных устройствах для запуска альтернативных ОС и влияют на производительность, так как работают с базовыми аппаратными ресурсами через ОС системы-хоста.

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

Типы виртуализации

До сих пор мы говорили о виртуализации серверов, но виртуализировать можно и другие компоненты ИТ-инфраструктуры: это дает немало преимуществ всей организации в целом и ИТ-отделам в частности. В этом разделе мы рассмотрим следующие типы виртуализации:

  • Виртуализация настольных систем
  • Виртуализация сетей
  • Виртуализация хранилища
  • Виртуализация данных
  • Виртуализация приложений
  • Виртуализация центра обработки данных
  • Виртуализация процессора
  • Виртуализация GPU
  • Виртуализация Linux
  • Облачная виртуализация

Виртуализация настольных систем

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

Виртуализация рабочих столов бывает двух типов:

  • Инфраструктура виртуальных рабочих столов (VDI): на центральном сервере запускаются несколько рабочих столов (в нескольких ВМ) и предоставляются пользователям, вошедшим в систему с клиентских устройств. Иными словами, VDI позволяет организации предоставлять своим пользователям доступ к разным ОС с любого устройства без установки этих ОС на этих устройствах. Более подробное описание см. в разделе «Что такое инфраструктура виртуальных рабочих столов (VDI)?».
  • Локальная виртуализация рабочего стола на локальном компьютере запускается гипервизор, позволяя пользователю держать на этом компьютере одну или несколько дополнительных ОС и переключаться между ними без внесения изменений в основную ОС.

Дополнительная информация о виртуальных рабочих столах приведена в разделе «Рабочий стол как услуга (DaaS)».

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

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

Виртуализация сетей бывает двух типов: программно-определяемые сети (SDN), виртуализирующие оборудование управления маршрутизацией сетевого трафика («уровень управления»), и виртуализация сетевых функций (NFV), виртуализирующая одно или несколько устройств, выполняющих ту или иную сетевую функцию (брандмауэр, распределитель нагрузки или анализатор трафика). В результате управление этими устройствами, их настройка и предоставление становится намного проще.

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

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

Более подробные сведения о виртуализации хранения данных см. в разделе «Что такое облачное хранилище?»

Виртуализация данных

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

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

Виртуализация приложений

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

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

Виртуализация центра обработки данных

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

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

Виртуализация процессора

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

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

Виртуализация GPU

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

  • Прямое выделение GPU — предоставление всех ресурсов GPU одной гостевой ОС.
  • Общие vGPU ядра физического GPU разделяются на несколько виртуальных GPU (vGPU) для использования серверными виртуальными машинами.

Виртуализация Linux

В Linux встроен собственный гипервизор, называемый виртуальной машиной на основе ядра (KVM). Он поддерживает расширения виртуализации процессоров Intel и AMD, позволяя создавать ВМ на основе x86 из ОС хоста Linux.

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

Облачная виртуализация

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

  • Инфраструктура как услуга (IaaS): виртуализированный сервер, память и сетевые ресурсы, которые можно настраивать согласно своим требованиям.
  • Платформа как услуга (PaaS): виртуализированные средства разработки, базы данных и другие облачные услуги, с помощью которых можно создавать собственные облачные приложения и решения.
  • Программное обеспечение как услуга (SaaS): приложения, используемые в облаке. SaaS — это облачная услуга с самым высоким уровнем абстрагирования от аппаратного обеспечения.

Для получения более подробных сведений об этих моделях облачных услуг ознакомьтесь с руководством «Сравнение IaaS, PaaS и SaaS».

Сравнение виртуализации и контейнеризации

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

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

Более подробные сведения о контейнерах и контейнеризации см. в документах «Контейнеры: полное руководство» и «Контейнеризация: полное руководство».

Ознакомьтесь с публикацией «Контейнеры и виртуальные машины: в чем разница?», в которой приводится более подробное сравнение.

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

VMware

VMware создает ПО для виртуализации. Изначально компания VMware предлагала только виртуализацию серверов: ее гипервизор ESX (сейчас ESXi) был одним из самых первых коммерчески успешных продуктов виртуализации. Сегодня VMware предлагает решения для виртуализации не только серверов, но и сетевых ресурсов, памяти и рабочих столов.

Более подробную информацию обо всех решениях VMware можно найти в разделе «VMware: полное руководство».

Безопасность

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

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

Гипервизор типа 2 на ОС хоста также уязвим в случае атаки на эту ОС.

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

Виртуализация и IBM

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

Зарегистрируйтесь сегодня и получите учетную запись в IBM Cloud.