Не каждый VPS построен одинаково. Технология виртуализации определяет, насколько изолирован ваш сервер, какое ПО вы можете запускать и как он работает. Чаще всего вы встретите названия KVM и OpenVZ, а также LXC.
Два способа построить виртуальный сервер
Полная виртуализация (KVM) даёт каждому клиенту полноценную виртуальную машину с собственным ядром. Гипервизор делит оборудование, и ваш сервер ведёт себя как настоящий компьютер.
Контейнерная виртуализация (OpenVZ, LXC) разделяет ядро хоста между всеми клиентами. Каждый контейнер видит собственные файлы и процессы, но работает на том же ядре, что и соседи.
Сравнение бок о бок
| KVM | OpenVZ / LXC | |
|---|---|---|
| Ядро | Собственное | Общее с хостом |
| Изоляция | Сильная | Слабее |
| Запуск Docker, WireGuard, пользовательских модулей ядра | Да | Часто ограничен или невозможен |
| Запуск Windows | Да | Нет |
| Гарантия RAM | Фиксированная и зарезервированная | Может быть перепродана («burstable») |
| Накладные расходы | Небольшие | Наименьшие |
Почему KVM - более безопасный выбор
- Вы выбираете ПО. Docker, VPN, брандмауэры вроде nftables и инструменты, загружающие модули ядра, работают без чьего-либо разрешения.
- Настоящая память. Купленная вами RAM закрепляется за вашей машиной. Хосты с контейнерами иногда продают больше памяти, чем есть, надеясь, что клиенты не используют её всю.
- Лучшая изоляция. Сбой или атака на виртуальную машину соседа гораздо менее вероятно затронут вашу.
- Любая операционная система. Дистрибутивы Linux, BSD и Windows работают без изменений.
Когда контейнеры всё же уместны
Контейнеры быстро запускаются и мало расходуют, поэтому хостеры используют их для очень дешёвых тарифов, а вы - внутри собственного VPS через Docker. Они подходят для простых нагрузок, которым ничего особого от ядра не нужно.
Как узнать, что у вас
systemd-detect-virt
lscpu | grep -i hypervisor
cat /proc/user_beancounters # exists only on OpenVZ
kvm в первой команде означает полную виртуализацию. Если последний файл существует, вы на OpenVZ.
Частые вопросы
KVM лучше, чем OpenVZ?
В большинстве случаев да. KVM даёт каждому VPS собственное ядро и более надёжную изоляцию, поэтому можно запускать любую ОС и Docker. OpenVZ использует общее ядро хоста и более ограничен.
Можно ли запустить Docker на OpenVZ?
Часто нет или только с ограничениями, потому что контейнеры используют общее ядро хоста. Для Docker надёжнее выбрать KVM.
KVM дороже?
Немного, потому что ресурсы выделяются строже, но изоляция и совместимость обычно того стоят.