Открыть сервис

Полная виртуализация

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

Принцип работы

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

Традиционная бинарная трансляция (Binary Translation)

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

Аппаратная поддержка виртуализации (Intel VT-x / AMD-V)

Современные процессоры x86-64 (Intel и AMD) содержат встроенные аппаратные расширения для виртуализации (Intel VT-x, AMD-V). Эти расширения добавляют в архитектуру процессора новый режим работы — «root mode» для гипервизора и «non-root mode» для гостевой ОС. Привилегированные инструкции, которые ранее вызывали ошибку и требовали эмуляции, теперь автоматически перехватываются процессором и передаются гипервизору без необходимости бинарной трансляции. Это кардинально повысило производительность полной виртуализации, сделав её практически сопоставимой с производительностью физического сервера для большинства нагрузок.

История

Концепция полной виртуализации была впервые реализована в 1960-х годах в мейнфреймах IBM (система CP-40/CMS). На платформе x86 долгое время полная виртуализация считалась невозможной из-за архитектурных ограничений (около 20 привилегированных инструкций, которые не могли быть перехвачены в пользовательском режиме). В 1998 году компания VMware представила технологию бинарной трансляции, которая впервые позволила запускать немодифицированные ОС на x86-совместимых компьютерах. В 2005—2006 годах Intel и AMD внедрили аппаратную поддержку виртуализации, что сделало полную виртуализацию стандартной технологией для серверных и облачных платформ.

Классификация

Полная виртуализация может быть реализована двумя основными способами в зависимости от архитектуры гипервизора:

  1. Гипервизор первого типа (Type 1, «bare-metal»): Гипервизор запускается непосредственно на физическом оборудовании, без промежуточной операционной системы. Примеры: VMware ESXi, Microsoft Hyper-V, KVM (после загрузки ядра Linux), Xen (в режиме полной виртуализации). Этот тип обеспечивает максимальную производительность и безопасность, так как гипервизор имеет прямой доступ к аппаратным ресурсам.
  2. Гипервизор второго типа (Type 2, «hosted»): Гипервизор работает как приложение в среде хост-ОС (например, Windows, Linux, macOS). Примеры: VMware Workstation, Oracle VirtualBox, Parallels Desktop. Этот тип проще в настройке и управлении, но производительность ниже из-за дополнительного уровня абстракции (хост-ОС).

Характеристики

  • Изоляция: Каждая виртуальная машина полностью изолирована от других ВМ и от хост-системы. Сбой в одной гостевой ОС не влияет на работу других.
  • Совместимость: Поддерживается запуск любых операционных систем, включая те, которые не были разработаны для работы в виртуальной среде (например, Windows 95, MS-DOS, различные дистрибутивы Linux без модификаций).
  • Производительность: С появлением аппаратной виртуализации производительность ВМ приближается к производительности физического сервера. Однако для некоторых типов нагрузок (например, высоконагруженные базы данных, интенсивный ввод-вывод) может наблюдаться снижение на 5–15% из-за накладных расходов на перехват инструкций.
  • Управление ресурсами: Гипервизор динамически распределяет процессорное время, оперативную память, дисковое пространство и сетевые ресурсы между виртуальными машинами, обеспечивая их изоляцию и гарантированную производительность (через механизмы QoS — Quality of Service).

Применение

Полная виртуализация является основой современной облачной инфраструктуры и корпоративных центров обработки данных (ЦОД). Основные области применения:

  • Консолидация серверов: Замена множества физических серверов с низкой загрузкой (10–15%) на один мощный сервер, на котором запущены десятки виртуальных машин. Это снижает затраты на электроэнергию, охлаждение и обслуживание.
  • Разработка и тестирование: Разработчики могут быстро создавать и удалять изолированные среды для тестирования программного обеспечения, включая разные версии ОС и конфигурации.
  • Облачные вычисления: Платформы IaaS (Infrastructure as a Service), такие как Amazon EC2, Microsoft Azure, Яндекс.Облако, VK Cloud, предоставляют пользователям виртуальные машины, работающие на основе полной виртуализации.
  • Обеспечение отказоустойчивости: Технологии live migration (живая миграция) позволяют перемещать работающую виртуальную машину с одного физического сервера на другой без прерывания обслуживания, что обеспечивает высокую доступность (High Availability).
  • Обучение и исследования: Студенты и исследователи могут изучать работу различных операционных систем, не рискуя повредить основную систему.

Примеры программного обеспечения

  • VMware vSphere / ESXi: Промышленный стандарт для корпоративных ЦОД. Поддерживает полную виртуализацию с аппаратной поддержкой.
  • Microsoft Hyper-V: Встроенный гипервизор в операционные системы Windows Server и Windows 10/11 Pro/Enterprise. Используется в облачной платформе Microsoft Azure.
  • KVM (Kernel-based Virtual Machine): Гипервизор первого типа, встроенный в ядро Linux. Является основой для многих облачных платформ, включая OpenStack.
  • Oracle VM VirtualBox: Бесплатный гипервизор второго типа, популярный для настольных систем и тестирования.
  • Parallels Desktop: Гипервизор второго типа для macOS, позволяющий запускать Windows и Linux на компьютерах Apple.

Критика и ограничения

Несмотря на широкое распространение, полная виртуализация имеет ряд недостатков:

  • Накладные расходы на виртуализацию: Даже с аппаратной поддержкой перехват и обработка инструкций гипервизором вносят задержки, особенно критичные для высокопроизводительных вычислений (HPC) и приложений реального времени.
  • Сложность управления: Крупные инфраструктуры с сотнями виртуальных машин требуют сложных систем управления (оркестрации), таких как VMware vCenter, Microsoft System Center или OpenStack.
  • Проблема «шумных соседей»: В облачных средах одна виртуальная машина может потреблять ресурсы (например, дисковый ввод-вывод или пропускную способность сети), что негативно сказывается на производительности других ВМ, работающих на том же физическом сервере.
  • Безопасность гипервизора: Уязвимость в гипервизоре может скомпрометировать все виртуальные машины, работающие на сервере. Поэтому гипервизоры являются критической точкой безопасности.

Интересные факты

  • Термин «виртуализация» в контексте вычислительной техники впервые был введён в 1960-х годах в IBM для обозначения технологии разделения ресурсов мейнфреймов.
  • Первая успешная коммерческая реализация полной виртуализации на платформе x86 была создана компанией VMware, основанной в 1998 году. Её основатели — Дайан Грин, Эдвард Бугнон, Мендел Розенблюм и Скотт Дивайн.
  • До появления аппаратной виртуализации в процессорах Intel и AMD, полная виртуализация на x86 была возможна только благодаря бинарной трансляции, что требовало огромных усилий от разработчиков гипервизоров.

Источники

  • Smith, J. E., & Nair, R. (2005). Virtual Machines: Versatile Platforms for Systems and Processes. Morgan Kaufmann.
  • VMware, Inc. (2007). Understanding Full Virtualization, Paravirtualization, and Hardware Assist.
  • Intel Corporation. (2005). Intel Virtualization Technology Specification for the IA-32 Architecture.
  • AMD Corporation. (2006). AMD64 Virtualization Technology: Secure Virtual Machine Architecture Reference Manual.
  • Робачевский, А. М. (2010). Операционные системы: виртуализация и кластеризация.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →