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

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

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

История

Предпосылки и ранние разработки

Идея виртуализации восходит к 1960-м годам, когда компания IBM разработала систему CP-40 (Control Program-40) для мейнфреймов. Эта система позволяла запускать несколько экземпляров операционной системы на одном компьютере, что давало возможность совместно использовать дорогостоящее оборудование. В 1972 году IBM выпустила VM/370 (Virtual Machine Facility/370), которая стала первой коммерчески успешной системой виртуализации для мейнфреймов. Она поддерживала создание множества виртуальных машин, каждая из которых имела собственную копию операционной системы.

В 1980-х и 1990-х годах интерес к виртуализации снизился из-за распространения недорогих персональных компьютеров и серверов x86, которые не имели аппаратной поддержки виртуализации. Однако в этот период развивались технологии эмуляции и контейнеризации, например, в ОС FreeBSD (jail) и Linux (chroot).

Возрождение в 2000-х

Ключевым моментом стало появление в 2005–2006 годах процессоров Intel и AMD с аппаратной поддержкой виртуализации (Intel VT-x и AMD-V). Это позволило эффективно виртуализировать архитектуру x86, которая ранее представляла серьёзные технические трудности. В 2003 году была основана компания VMware, выпустившая VMware Workstation — первый широко распространённый гипервизор для настольных систем. В 2008 году VMware представила ESX (позже переименованный в vSphere) — гипервизор для серверов, ставший стандартом в корпоративных центрах обработки данных.

Параллельно развивались открытые проекты: Xen (2003), KVM (2007, вошёл в состав ядра Linux), VirtualBox (2007, компания Sun Microsystems). В 2010-х годах виртуализация стала неотъемлемой частью облачных вычислений (Amazon Web Services, Microsoft Azure, Google Cloud Platform).

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

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

  1. Аппаратная виртуализация — использует специальные инструкции процессора (Intel VT-x, AMD-V) для создания изолированных сред. Гипервизор работает непосредственно на физическом оборудовании, управляя виртуальными машинами. Примеры: VMware vSphere, Microsoft Hyper-V, KVM.
  2. Программная виртуализация — эмулирует аппаратное обеспечение целиком, не требуя специальной поддержки от процессора. Может быть медленнее, но позволяет запускать гостевые системы, несовместимые с реальным железом. Примеры: QEMU, Bochs.
  3. Паравиртуализация — модифицированная гостевая ОС «знает» о том, что работает в виртуальной среде, и использует специальные вызовы (гипервызовы) для взаимодействия с гипервизором. Это повышает производительность, но требует изменений в ядре ОС. Примеры: Xen (в режиме паравиртуализации), VMware Tools.

По объекту виртуализации

  • Серверная виртуализацияразделение физического сервера на несколько изолированных виртуальных машин.
  • Виртуализация рабочих столов (VDI) — запуск десктопных операционных систем на сервере, доступ к которым осуществляется по сети (например, Citrix Virtual Apps and Desktops, VMware Horizon).
  • Виртуализация приложений — изоляция отдельных приложений от операционной системы (например, Microsoft App-V, Docker в режиме контейнеризации).
  • Виртуализация сетей — создание виртуальных сетевых интерфейсов, маршрутизаторов и коммутаторов (например, VMware NSX, Open vSwitch).
  • Виртуализация хранилищобъединение физических дисков в пулы с последующим выделением виртуальных томов (например, VMware vSAN, Ceph).

По уровню изоляции

  • Гипервизор типа 1 (bare-metal) — работает непосредственно на аппаратуре, без хост-ОС. Примеры: VMware ESXi, Microsoft Hyper-V Server, KVM (в режиме bare-metal), Xen.
  • Гипервизор типа 2 (hosted) — работает как приложение в рамках обычной ОС. Примеры: VMware Workstation, Oracle VirtualBox, Parallels Desktop.

Устройство и принцип работы

Гипервизор

Гипервизор — это программное обеспечение, которое управляет виртуальными машинами. Он отвечает за:

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

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

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

Контейнеризация

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

Применение

Центры обработки данных (ЦОД)

Виртуализация является основой современных ЦОД. Она позволяет:

  • Консолидировать серверы — на одном физическом сервере может работать 10–20 виртуальных машин, что снижает потребление электроэнергии и занимаемое пространство.
  • Обеспечить отказоустойчивость — при сбое физического узла виртуальные машины автоматически перезапускаются на других серверах (технологии vMotion, Live Migration).
  • Упростить резервное копирование — снапшоты (моментальные снимки) виртуальных машин позволяют быстро восстанавливать данные.

Облачные вычисления

Публичные облачные провайдеры (Amazon Web Services, Microsoft Azure, Google Cloud) используют виртуализацию для предоставления пользователям арендуемых вычислительных ресурсов (IaaS — Infrastructure as a Service). Пользователь может создавать, запускать и удалять виртуальные машины по требованию, оплачивая только фактическое использование.

Разработка и тестирование

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

Образование и обучение

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

Преимущества и недостатки

Преимущества

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

Недостатки

  • Накладные расходы — гипервизор потребляет часть ресурсов (обычно 5–15% процессора, 1–2% памяти).
  • Сложность управления — для крупных инфраструктур требуется специализированное ПО (vCenter, System Center).
  • Проблемы с производительностью — для некоторых приложений (например, высоконагруженных баз данных) виртуализация может быть неоптимальной.
  • Лицензирование — некоторые производители ПО (например, Microsoft) требуют отдельных лицензий для виртуальных машин.

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

  • Первая коммерческая система виртуализации для x86 — VMware Workstation 1.0 — была выпущена в 1999 году.
  • Технология KVM (Kernel-based Virtual Machine) была разработана в 2006 году израильским разработчиком Ави Кафри и включена в ядро Linux, что сделало виртуализацию частью основной операционной системы.
  • В 2011 году компания Oracle приобрела Sun Microsystems, получив права на VirtualBox, который стал одним из самых популярных бесплатных гипервизоров типа 2.
  • В России виртуализация активно используется в государственных информационных системах, например, в Единой системе межведомственного электронного взаимодействия (СМЭВ).

Источники

  • IBM. «VM/370: Virtual Machine Facility». IBM Systems Reference Library, 1972.
  • VMware Inc. «Understanding Full Virtualization, Paravirtualization, and Hardware Assist». VMware Technical White Paper, 2007.
  • Smith, J. E., Nair, R. «Virtual Machines: Versatile Platforms for Systems and Processes». Morgan Kaufmann, 2005.
  • Керниган, Б., Пайк, Р. «Unix: Программное окружение». — М.: Вильямс, 2004 (раздел о chroot и контейнеризации).
  • Документация по KVM: «KVM — Kernel-based Virtual Machine». The Linux Kernel Organization, 2007.

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

На главную BFOmetr →