Назад | Перейти на главную страницу

OpenVZ против KVM для виртуальных машин Linux

Оборудование: Intel® Core ™ i7-920, ОЗУ DDR3 12 ГБ, 2 жестких диска SATA-II по 1500 ГБ (нет SoftRaid, потому что разработчики Proxmox не поддерживают softraid и уверены, что у вас возникнут проблемы)

Программное обеспечение: Proxmox VE с участием KVM и OpenVZ поддержка и дебиан где угодно

Я хочу запустить несколько виртуальных машин Linux на этом сервере. Один для брандмауэра (хочу попробовать pfSense), одна для MySQL, одна виртуальная машина для nginx (мой материал) и ~ 2 виртуальные машины с nginx для чужих веб-сайтов.

Я не думаю, что pfSense будет работать в среде OpenVZ, но он должен работать в KVM.

Вопрос в том, следует ли мне настраивать другие виртуальные машины с помощью KVM или OpenVZ. В OpenVZ у них должно быть меньше накладных расходов для самой ОС, но я не знаю о производительности. Я слышал, что KVM более стабилен, но требует больше ОЗУ и ЦП.

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

Редактировать:

Есть ли способ предоставить виртуальным машинам "динамическую" оперативную память в OpenVZ или KVM? Я имею в виду, чтобы они могли занять столько памяти, сколько доступно, а не столько, сколько я им выделил.

nginx и MySQL хорошо работают в OpenVZ, а OpenVZ использует меньше ресурсов, чем KVM. Рекомендую OpenVZ VM по скорости.

KVM VM больше гибкости. pfSense (FreeBSD) работает только в KVM.

В OpenVZ все виртуальные машины и хосты используют одно и то же ядро, поэтому вы не сможете установить pfsense (который основан на FreeBSD). Даже на KVM у вас будут проблемы с pfsense, поскольку, насколько мне известно, драйверы virtio еще не перенесены на FreeBSD. Таким образом, производительность будет снижена по сравнению с виртуальной машиной Linux. Не знаю, сможешь ли ты с этим жить. Вероятно, зависит от ожидаемой нагрузки этого межсетевого экрана.
В KVM вы можете выделить виртуальным машинам больше памяти, чем доступно физически. Это называется перегрузкой памяти. Есть несколько способов сделать это: обмен, всплывающее сообщение, совместное использование страницы, живая миграция.

Я выбрал KVM с KSM. Proxmox имеет ядро ​​без OpenVZ, но с KSM. Для меня иногда сложно и уходит много времени, чтобы настроить системные ограничения для каждой виртуальной машины в OpenVZ. Так что мой выбор - KVM. Я использую gentoo как ВМ.

Есть ли способ дать виртуальным машинам "динамическую" оперативную память в OpenVZ

Да, вы можете настроить общий объем памяти и дискового пространства, которое виртуальная машина может выделить в OpenVZ во время работы. Обычно, чтобы сделать это как можно проще, я начинаю с неограниченных настроек для всего и просто уменьшаю этот параметр, называемый "privvmpages"

Чтобы ответить на исходный вопрос: OpenVZ - это то, что известно как «контейнерная» виртуальная машина, а не «гипервизор». Это означает, что вы получаете виртуальную копию "init" с корневым каталогом, установленным в каталог где-нибудь в файловой системе (также известный как "chroot"). Однако вы получаете только подмножество устройств и не можете использовать модули ядра. Вот почему может быть сложно загрузить виртуальную машину (особенно с выскочкой @ #% @%). И забудьте о таких вещах, как GFS или Oracle RAC :)

Но это того стоит из-за собственной производительности ЦП и диска, простоты перемещения файлов в виртуальную машину с хоста, просто используя "cp", и простой работы в сети с псевдонимами (мосты не требуются, если вы не транслируете).