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

Что такое OpenVZ?

Также известно как: Virtuozzo
Определение

OpenVZ is container-based virtualisation in which every instance shares the host kernel, so guests cannot load kernel modules or run a different operating system. OpenVZ is why unusually cheap virtual servers exist: density is much higher and memory is routinely oversold.

Почему OpenVZ важен

Именно благодаря OpenVZ существуют необычно дешёвые виртуальные серверы: плотность гораздо выше, и память обычно oversold. Это также причина, по которой Docker, WireGuard на старых хостах и пользовательские ядра часто не работают у бюджетных провайдеров.

OpenVZ на практике

Когда вы используете OpenVZ VPS, вы живёте внутри ядра хоста. Это видно в `/proc` и в модулях, которые вы не можете загрузить: попробуйте `modprobe wireguard` — и получите сообщение о правах, а не об отсутствии файла. Смена ядра невозможна, поэтому вы адаптируете рабочую нагрузку, а не хост. Память общая и часто перепроданная, поэтому всплеск у соседа может давить на вашу. Ошибка здесь дорого обходится: выберите OpenVZ для задачи, требующей контроля над ядром, и вы столкнётесь с пересборкой на KVM или заменой плана целиком.

Что люди часто понимают неправильно в отношении OpenVZ

Частая ошибка — считать OpenVZ просто более старым или дешёвым видом KVM. Это не так. Контейнеры OpenVZ не могут загружать модули ядра, запускать другую ОС или использовать такие функции, как WireGuard на старых хостах. Исправление: относитесь к OpenVZ как к отдельному ограничению, а не подмножеству. Если вам нужен контроль на уровне ядра, выбирайте план KVM с самого начала.

OpenVZ — частые вопросы

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

Часто напрямую нет. Поскольку OpenVZ разделяет ядро хоста и может ограничивать функции ядра, обычная среда выполнения контейнеров Docker может не работать, особенно на старых хостах. Можно использовать обходные пути вроде LXC или запускать контейнеры в VM, но это не гарантировано. Проверьте возможности вашего хоста, прежде чем полагаться на Docker.

Для чего хорош OpenVZ?

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

Где встречается OpenVZ

Больше из раздела «виртуализация»

KVM
KVM — это полная аппаратная виртуализация, встроенная в ядро Linux, предоставляющая каждому гостю собственное ядро и аппаратно-обеспеченную изоляцию от других арендаторов.
LXC
LXC — это нативная контейнеризация Linux, которая изолирует процессы с помощью namespace и cgroups, разделяя ядро хоста.
Гипервизор
Гипервизор — это программный слой, который создаёт и запускает виртуальные машины, распределяя между ними физические CPU, память и ввод-вывод.
Nested virtualisation
Вложенная виртуализация позволяет виртуальной машине самой запускать виртуальные машины, предоставляя гостю расширения виртуализации процессора.
vCPU
vCPU — это виртуальный процессор, предоставляемый гостевой системе, поддерживаемый временем планирования на физическом ядре или потоке.
cloud-init
cloud-init — стандартный механизм настройки виртуальной машины при первой загрузке, использующий метаданные, предоставляемые платформой.