Тема виртуализации важна тем, что виртуальная машина - это не просто способ «запустить еще одну ОС», а инструмент изоляции, мультиарендности и управления эксплуатационным риском.
На практике глава помогает выбирать уровень изоляции и понимать цену гипервизора: как он влияет на плотность размещения, безопасность, эффект 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, память, сеть и диск между виртуальными машинами, обеспечивая изоляцию.
Гипервизор виртуализирует 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
Все VM делят ресурсы одного хоста, но изолированы на уровне гостевой ОС и гипервизора.
Как запрос доходит до nginx внутри VM
Путь запроса проходит через сетевой интерфейс хоста, виртуальный свитч гипервизора, гостевую ОС и сервис внутри VM.
Путь запроса к nginx внутри VM
Путь запроса: интернет → хост → гипервизор → VM → сервис
External
Слой 1Host
Слой 2Hypervisor
Слой 3VM
Слой 4Service
Слой 5Активный шаг
Нажмите «Старт», чтобы пройти путь запроса.
Почему важно знать виртуализацию
- VM обеспечивают изоляцию и удобство миграции сервисов между хостами.
- Производительность зависит от гипервизора, I/O и выделенных ресурсов.
- Сетевые пути внутри VM добавляют задержки, что важно учитывать в SLA.
- Масштабирование часто строится вокруг VM как единицы развёртывания.
- Понимание VM помогает оценивать стоимость и плотность размещения сервисов.
Связанные главы
- Зачем нужны фундаментальные знания - даёт контекст, как ограничения железа и ОС влияют на модель виртуализации.
- Операционная система: обзор - объясняет границы user space/kernel space, критичные для понимания гипервизора.
- Linux: архитектура и популярность - показывает основу большинства production-хостов для VM и cloud-инфраструктуры.
- Modern Operating Systems (short summary) - углубляет планирование, память и I/O, от которых зависит эффективность VM.
- Контейнеризация - помогает сравнить изоляцию VM и контейнеров и выбрать подход под задачу.
- Зачем знать Cloud Native и 12 факторов - связывает слой виртуализации с эксплуатационными практиками cloud-native.
- Kubernetes Fundamentals (v1.35): архитектура, объекты и базовые практики - показывает, как оркестрация контейнеров работает поверх VM-инфраструктуры.
- RAM и persistent storage - дополняет тему лимитами памяти/диска и влиянием storage latency на VM.
