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

KVM — что это простыми словами

KVM (Kernel-based Virtual Machine) — встроенная в ядро Linux технология полной виртуализации. Каждая VM — независимый процесс со своим ядром.

KVM (Kernel-based Virtual Machine) — гипервизор Type 1, встроенный прямо в ядро Linux с 2007 года. Использует аппаратную виртуализацию Intel VT-x или AMD-V, чтобы запускать неизменённые гостевые ОС (Ubuntu, Debian, Rocky, Windows, FreeBSD) с производительностью, близкой к нативной.

Ключевое отличие от контейнерных решений (Docker, OpenVZ, LXC) — каждая KVM VM имеет собственное ядро и полную изоляцию памяти. Из гостя нельзя увидеть процессы хоста или соседних VM. Это делает KVM безопаснее для многотенантных сред (публичных VPS-хостингов), но добавляет 2-5 % overhead относительно контейнеров.

Практически все крупные облачные провайдеры используют KVM или его форки: AWS Nitro, DigitalOcean Droplets, Hetzner Cloud, Google Compute Engine. Управляют KVM обычно через QEMU (эмулятор устройств) и libvirt (управляющий API).

Частые вопросы

Можно ли запустить Docker внутри KVM VPS?
Да — KVM поддерживает nested виртуализацию. Docker, docker-compose, Kubernetes через k3s работают внутри KVM VM без ограничений. В отличие от OpenVZ, где docker часто ломается.
Можно ли менять ядро внутри VPS?
Да — apt install linux-image-*, reboot и работаете на своём kernel. Полезно для eBPF, специфичных модулей, hardening (grsecurity).
Что такое steal time?
Метрика top / htop, показывающая долю CPU, которую хостер "украл" у вашей VM ради соседей. На KVM 1:1 без oversubscription — 0 %. На дешёвых shared-хостингах — 20-40 %.