Виртуализация — программный слой между физическим оборудованием и операционными системами. Он делит физические ресурсы (процессорное время, оперативная память, дисковое пространство, сетевой канал) между несколькими изолированными окружениями — виртуальными машинами. Каждая VM работает как полноценный компьютер с собственной ОС, не зная о существовании других VM на том же физическом железе. Именно на виртуализации построены VPS и облачный хостинг.
Как работает виртуализация
Ключевой компонент — гипервизор (hypervisor): программа, управляющая распределением ресурсов между VM. Гипервизор первого типа (bare-metal) запускается непосредственно на физическом железе, без хостовой ОС — это KVM, VMware ESXi, Xen. Гипервизор второго типа запускается внутри ОС-хоста — это VirtualBox, VMware Workstation (удобен для разработки, не для продакшна).
При создании VM гипервизор выделяет: N виртуальных CPU (vCPU), X ГБ RAM, дисковый образ (qcow2, vmdk, raw). Гость-ОС не видит физическое железо напрямую — гипервизор транслирует все обращения к устройствам. На современных CPU (Intel VT-x, AMD-V) большинство инструкций гостя выполняются напрямую без трансляции — overhead составляет 3–10%.
Для сетевой изоляции VM гипервизор создаёт виртуальные сетевые карты (vNIC) и виртуальные коммутаторы (vSwitch). Каждая VM получает свой MAC-адрес и IP-адрес, видимый из внешней сети через NAT или bridge-mode.
Виды виртуализации
- Аппаратная виртуализация (Full Virtualization) — использует расширения CPU (Intel VT-x, AMD-V) для запуска немодифицированного кода гостя. KVM, VMware ESXi, Hyper-V.
- Паравиртуализация — гость знает о виртуализации и использует специальные драйверы (virtio) для взаимодействия с гипервизором. Лучшая производительность I/O.
- Контейнеризация — изоляция на уровне ОС без отдельного ядра для каждого гостя: Docker, LXC, LXD. Меньше overhead, выше плотность.
История виртуализации
Концепцию виртуальных машин разработала IBM в 1960-х для мейнфрейма IBM System/360 — это позволяло разделить дорогостоящее оборудование между несколькими пользователями. CP-40 (1967) и CP-67 (1967) — первые коммерческие гипервизоры. В 1998 году VMware адаптировала технологию для x86-серверов (IA-32). KVM (Kernel-based Virtual Machine) появился в ядре Linux 2.6.20 в январе 2007 года. В 2010-е виртуализация стала основой всей облачной индустрии: AWS EC2, Azure VM, Google Compute Engine — всё это виртуализованные серверы. К 2024 году более 80% корпоративных серверов работают в виртуализованных окружениях.
Виртуализация в хостинге
На VPS-хостинге гипервизор (чаще всего KVM) создаёт изолированные виртуальные машины для каждого клиента. Каждая VM имеет гарантированные ресурсы: например, 2 vCPU и 4 ГБ RAM закреплены только за этим клиентом (при честном хостинге без оверселлинга). Это принципиальное отличие от shared-хостинга, где ресурсы делятся всеми.
Виртуализация vs контейнеры: итог
В современной инфраструктуре виртуализация и контейнеризация дополняют друг друга. Типичная схема production: физический сервер → KVM-виртуальные машины (изоляция на уровне железа) → Docker-контейнеры внутри VM (изоляция приложений). Kubernetes поверх VM — стандарт для cloud-native приложений. Основное правило: VM для долгоживущих сервисов и ОС-изоляции; контейнеры — для приложений и микросервисов. Без виртуализации не было бы ни современного хостинга, ни DevOps-культуры.