KVM vs OpenVZ / LXC

KVM vs OpenVZ: why the virtualisation type matters

Краткий ответ

KVM — это полная аппаратная виртуализация: ваш экземпляр работает на собственном ядре и не видит хост. OpenVZ и LXC — это контейнерные технологии, использующие общее ядро хоста, что означает отсутствие пользовательских модулей ядра, невозможность использовать WireGuard на старых хостах, ненадёжный Docker и учёт памяти, позволяющий провайдеру делать overselling. Если VPS подозрительно дёшев, обычно это OpenVZ.

KVM vs OpenVZ / LXC — бок о бок
ПараметрKVMOpenVZ / LXC
ЯдроYour ownShared with the host
Custom kernel modulesДаНет
DockerFully supportedUnreliable or unsupported
Nested virtualisationДаНет
Non-Linux systemsFreeBSD, OpenBSD, WindowsLinux only
Memory guaranteeTruly reservedFrequently oversold
Overhead2–5%Near zero
SwapНастоящаяЭмулированная или отсутствует

Что выбрать?

KVM

Для любых реальных задач выбирайте KVM. Каждый инстанс OnionVPS работает на KVM, без исключений.

OpenVZ / LXC

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

Часто задаваемые вопросы

Можно ли запустить Docker на VPS с OpenVZ?

Как правило нет, а если и работает, то это зависит от небезопасной конфигурации хоста. Docker требует cgroups и namespaces, которые контейнерная виртуализация не предоставляет. Используйте KVM.

Как определить, KVM у VPS или OpenVZ?

Запустите systemd-detect-virt или проверьте, заменяемое ли ядро в uname -r. На OpenVZ поставить другое ядро вообще нельзя.