System Design Space
Граф знанийНастройки

Обновлено: 24 марта 2026 г. в 11:23

Виртуализация и виртуальные машины

medium

Типы виртуализации, гипервизоры и практическое устройство виртуальных машин.

Тема виртуализации важна тем, что виртуальная машина - это не просто способ «запустить еще одну ОС», а инструмент изоляции, мультиарендности и управления эксплуатационным риском.

На практике глава помогает выбирать уровень изоляции и понимать цену гипервизора: как он влияет на плотность размещения, безопасность, эффект noisy neighbors и latency-sensitive сервисы.

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

Практическая польза главы

Изоляция контуров

Помогает выбирать уровень изоляции и понимать, как он влияет на безопасность и плотность размещения.

Performance overhead

Учит учитывать стоимость виртуализации при проектировании latency-чувствительных сервисов.

Управляемость платформы

Показывает, где VM-модель остается предпочтительной для контроля среды и совместимости.

Interview comparison

Дает ясные критерии сравнения VM и контейнеров в архитектурном ответе.

Источник

Virtualization

Определение виртуализации, типы и ключевые подходы.

Перейти на сайт

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

Какие виртуализации бывают

Аппаратная виртуализация

Создание виртуальных машин с отдельными гостевыми ОС.

Виртуализация на уровне ОС

Контейнеры разделяют ядро, но изолируют процессы и файловую систему.

Сетевая виртуализация

Виртуальные сети, свитчи и балансировщики поверх физической сети.

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

Логические тома и распределение дисков между VM.

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

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

Гостевая ОС работает без модификаций, гипервизор эмулирует оборудование.

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

Гостевая ОС знает о гипервизоре и оптимизирует обращения.

Аппаратно-ускоренная

Использует поддержку CPU (например, VT-x/AMD-V) для повышения производительности.

Type 1 (bare-metal)

Гипервизор работает напрямую на железе и управляет VM.

Type 2 (hosted)

Гипервизор работает поверх хостовой ОС и использует её драйверы.

На практике в облаках чаще используются Type 1 гипервизоры, а на рабочих станциях — Type 2.

Сравнение подходов VM-виртуализации

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

  • Гостевая ОС: Гостевая ОС без изменений.
  • Производительность: Больше накладных расходов на CPU и I/O.
  • Совместимость: Высокая совместимость, включая legacy-системы.
  • Где применяют: Совместимость, лабораторные среды, редкие ОС.

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

  • Гостевая ОС: Гостевая ОС/драйверы знают о гипервизоре.
  • Производительность: Быстрее эмуляции за счёт оптимизированных путей.
  • Совместимость: Нужна поддержка paravirt-интерфейсов.
  • Где применяют: Ускорение сетевого и дискового I/O в VM.

Аппаратно-ускоренная

  • Гостевая ОС: Гостевая ОС в основном без модификаций.
  • Производительность: Лучший баланс изоляции и скорости в production.
  • Совместимость: Широкая при наличии VT-x/AMD-V.
  • Где применяют: Облачные платформы и большинство prod-кластеров.

Практический паттерн для production: аппаратно-ускоренная VM + paravirt-драйверы для сети и диска.

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

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

  • QEMU в режиме TCG (эмуляция без VT-x/AMD-V).
  • Legacy-сценарии в VMware Workstation и VirtualBox для старых гостевых ОС.

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

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

  • Xen PV (paravirtualized guests).
  • KVM/QEMU + virtio для paravirtualized сетевых и дисковых устройств.
  • VMware VMXNET3 и PVSCSI как paravirt I/O-драйверы.

На практике часто используется как гибридный слой I/O поверх аппаратно-ускоренных VM.

Аппаратно-ускоренная

  • KVM (Linux), VMware ESXi, Microsoft Hyper-V, Xen HVM.
  • Google Compute Engine, AWS Nitro и Azure VM как примеры облачной реализации.

Дефолтный путь для production благодаря лучшему соотношению производительности и изоляции.

Несколько VM на одном хосте

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

Host machine (физический сервер)
Physical hardware
CPURAMDiskNIC
Hypervisor layer

Гипервизор виртуализирует CPU, память, сеть и диск, создавая изолированные VM.

Virtual machines inside host

VM 1

  • Guest OS
  • Nginx
  • App A

VM 2

  • Guest OS
  • API
  • Worker

VM 3

  • Guest OS
  • DB
  • Cache
Shared resources

Все VM делят ресурсы одного хоста, но изолированы на уровне гостевой ОС и гипервизора.

Как запрос доходит до nginx внутри VM

Путь запроса проходит через сетевой интерфейс хоста, виртуальный свитч гипервизора, гостевую ОС и сервис внутри VM.

Путь запроса к nginx внутри VM

Путь запроса: интернет → хост → гипервизор → VM → сервис

External

Слой 1
ClientInternet

Host

Слой 2
NICHost network

Hypervisor

Слой 3
vSwitchvNIC mapping

VM

Слой 4
Guest OSTCP/IP

Service

Слой 5
NginxApp
Путь запроса

Активный шаг

Нажмите «Старт», чтобы пройти путь запроса.

Почему важно знать виртуализацию

  • VM обеспечивают изоляцию и удобство миграции сервисов между хостами.
  • Производительность зависит от гипервизора, I/O и выделенных ресурсов.
  • Сетевые пути внутри VM добавляют задержки, что важно учитывать в SLA.
  • Масштабирование часто строится вокруг VM как единицы развёртывания.
  • Понимание VM помогает оценивать стоимость и плотность размещения сервисов.

Связанные главы

Чтобы отмечать прохождение, включи трекинг в Настройки