KVM или OpenVZ: почему тип виртуализации решает всё

Основы и выбор
KVM или OpenVZ: почему тип виртуализации решает всё

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

Два подхода к виртуализации серверов

Физический сервер в дата-центре нарезается на виртуальные машины одним из двух способов.

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

KVM (Kernel-based Virtual Machine) — гипервизор, встроенный в ядро Linux. Он создаёт полноценные виртуальные машины: у каждой — собственное виртуальное железо, собственное ядро ОС и жёстко закреплённые ресурсы. Ваш KVM VPS с точки зрения операционной системы неотличим от физического сервера: он проходит полный цикл загрузки, управляет своими модулями ядра, сетевым стеком и файловыми системами.

Ключевое следствие: выделенные вам память и диск принадлежат только вам. Гипервизор зарезервировал их при создании машины, и сосед по узлу физически не может их «занять».

OpenVZ: контейнерная виртуализация

OpenVZ работает иначе: все виртуальные серверы на узле — это изолированные контейнеры поверх одного общего ядра хост-системы. Никакого виртуального железа нет; контейнер — это, по сути, огороженная группа процессов с лимитами на ресурсы. Отсюда и плюсы (минимальные накладные расходы, высокая плотность размещения), и минусы, о которых хостеры в прайсах не пишут.

Почему общее ядро — это ограничения

Из архитектуры OpenVZ напрямую следуют практические запреты:

  • Только Linux, и только совместимый с ядром хоста. Своё ядро загрузить нельзя, поэтому выбор ОС ограничен шаблонами хостера, а версии ядра нередко отстают на годы.
  • Модули ядра недоступны. WireGuard как модуль ядра, нестандартные файловые системы, тонкая настройка sysctl — всё упирается в то, что разрешил хостер на хост-системе.
  • Docker и Kubernetes — с костылями или никак. Контейнеры внутри контейнера требуют возможностей ядра, которых в OpenVZ-окружении часто нет или они урезаны.
  • Проблема «шумных соседей» острее. Ядро одно на всех: перегруженный контейнер соседа конкурирует с вами за дисковый ввод-вывод и процессорное время ближе, чем в KVM.

На KVM таких ограничений нет: полный root означает именно полный контроль — от загрузки своих модулей ядра до установки любой ОС. Что даёт root-доступ на практике, мы разобрали в статье о root-доступе к серверу.

Оверселлинг: главный скрытый риск OpenVZ

Теперь о деньгах. Контейнерная модель позволяет хостеру продать больше ресурсов, чем есть в сервере. Память в OpenVZ выделяется «по обещанию»: пока контейнеры не используют свои лимиты одновременно, на узле с 64 ГБ RAM можно разместить контейнеров суммарно на 128 ГБ и больше. В спокойное время никто ничего не заметит. Но в пиковый час, когда соседи разом захотят обещанное, начинаются свопинг, убитые OOM-киллером процессы и «тормозит ни с того ни с сего».

В KVM память резервируется при старте виртуальной машины. Продать одни и те же 16 ГБ двум клиентам гипервизор попросту не даст. Именно поэтому дешёвые тарифы с подозрительно щедрыми характеристиками — это почти всегда контейнерная виртуализация с переподпиской. Как распознать оверселлинг по косвенным признакам, мы писали в отдельном разборе об оверселлинге у хостеров.

Честная экономия выглядит иначе: например, у Cheap-Host все тарифы — только KVM с выделенными ресурсами, а низкая цена младших NAT-тарифов достигается за счёт общего IPv4-адреса, а не перепродажи памяти. Что такое NAT VPS и на чём именно там экономия — в отдельной статье.

KVM и OpenVZ: сравнительная таблица

КритерийKVMOpenVZ
ТипАппаратная виртуализацияКонтейнеры на общем ядре
Ядро ОССвоё, любая версияОбщее с хостом
Выбор ОСЛюбой Linux, свои образыТолько шаблоны хостера
RAMЗарезервирована за вамиЛимит «по обещанию», возможна переподписка
Docker, KubernetesПолная поддержкаОграниченно или нет
Модули ядра, sysctlПолный доступТолько разрешённое хостером
SwapНастраивается свободноЗависит от хостера
Изоляция от соседейСильнаяСлабее, общее ядро
Риск оверселлингаМинимальныйВысокий

Как проверить тип виртуализации на сервере

Продавец может писать что угодно — проверьте сами. На Ubuntu 24.04 достаточно одной команды:

systemd-detect-virt

Ответ kvm означает аппаратную виртуализацию, openvz или lxc — контейнер. Дополнительные проверки:

# Подробная информация о CPU и гипервизоре
lscpu | grep -i -E "hypervisor|virtualization"

# Утилита virt-what (нужен root)
sudo apt update && sudo apt install -y virt-what
sudo virt-what

Косвенные признаки контейнера: очень старое ядро в uname -r, невозможность выполнить modprobe, отсутствие устройства /dev/kvm при попытке вложенной виртуализации. Полный чек-лист проверки нового сервера — от CPU до диска и сети — есть в статье о бенчмарках VPS.

Когда OpenVZ допустим, а когда только KVM

Будем честны: контейнерная виртуализация — не зло сама по себе. Если задача — статический сайт-визитка или учебный сервер на неделю, а хостер не жадничает с переподпиской, OpenVZ отработает нормально. Проблема в том, что степень переподписки снаружи не видна, и вы узнаёте о ней в худший момент — под нагрузкой.

KVM стоит выбирать без колебаний, если:

  1. проект коммерческий — сайт, магазин, CRM, бот с клиентами: непредсказуемые просадки недопустимы;
  2. нужен Docker, свой VPN на модулях ядра, нестандартная ОС или тонкая настройка системы;
  3. нагрузка неравномерная: базе данных и PHP-FPM в пике нужна именно та память, за которую вы заплатили;
  4. вы просто не хотите зависеть от честности хостера в вопросе переподписки.

Разница в цене между KVM и контейнерами сегодня минимальна. Для примера: KVM-тариф Start у Cheap-Host — 450 ₽/мес за 6 vCPU, 8 ГБ выделенной RAM и 96 ГБ NVMe в Москве, с безлимитным трафиком и базовой DDoS-защитой L3/L4. Сервер разворачивается за 45–60 секунд, а при росте проекта CPU, RAM и диск апгрейдятся без потери данных.

FAQ

Как узнать тип виртуализации на уже купленном VPS?

Выполните команду systemd-detect-virt: она выведет kvm для KVM-виртуализации или openvz/lxc для контейнеров. Альтернатива — утилита virt-what из репозиториев Ubuntu/Debian.

Работает ли Docker на OpenVZ?

На OpenVZ 7 Docker формально может работать, но с ограничениями: старое общее ядро, проблемы с некоторыми storage-драйверами и сетевыми режимами. На KVM Docker работает без оговорок, потому что у вас собственное ядро со всеми нужными модулями.

OpenVZ всегда хуже KVM?

Нет, у контейнерной виртуализации меньше накладные расходы, и для массового дешёвого хостинга однотипных задач она эффективна. Проблема в другом: OpenVZ позволяет хостеру продавать больше ресурсов, чем есть физически, и вы не можете этого проконтролировать. KVM делает такой оверселлинг ресурсов невозможным на уровне архитектуры.

Можно ли поставить свою ОС на KVM VPS?

Да, в этом одно из главных преимуществ KVM: сервер грузит собственное ядро, поэтому ОС может быть любой. У Cheap-Host из панели доступны Ubuntu, Debian, AlmaLinux и Rocky Linux, другие образы устанавливаются по запросу в поддержку.

Влияет ли тип виртуализации на скорость диска?

Косвенно да: сам гипервизор добавляет минимальные накладные расходы, но на OpenVZ-тарифах чаще встречается переподписка дисковых операций между контейнерами. На KVM с NVMe-дисками вы получаете предсказуемую скорость ввода-вывода — проверить её можно утилитой fio.

Вывод

Тип виртуализации — первое, что стоит проверять в описании тарифа, ещё до цены и гигабайтов. OpenVZ экономит хостеру ресурсы, но перекладывает риски на вас: общее ядро, ограничения на софт и невидимая снаружи переподписка. KVM гарантирует, что купленные ресурсы — действительно ваши, а сервер ведёт себя как физический. Если вам нужен именно такой сервер — у Cheap-Host все тарифы работают на KVM: Start от 450 ₽/мес даёт 6 vCPU, 8 ГБ RAM и 96 ГБ NVMe с безлимитным трафиком и выдачей за минуту — посмотреть тарифы на cheap-host.onl.

Читайте также