Виртуализация машины или виртуализация на уровне ОС (KVM vs OpenVZ)?

Имеется сервер на Xeon E3 и есть сервисы.
Есть потребность разместить эти сервисы на данном сервере.
С виртуализацией машин более или менее знаком (Xen, VMWare, VirtuaBox).
C виртуализацией на уровне ОС не знаком вообще.

Отсюда вопрос:
Что выбрать?

Подробнее о сервисах:
различные сайты,
сайты на битрикс (которые требуют особых настроек php и несовместим с другими сайтами),
zabbix,
СЭД (Мотив — идет со своим набором ПО Apache, php, java, настройки которых несовместимы с другими сайтами).

Возможно добавление других сервисов (тяжело представить какие, но может быть что угодно от SVN до Elastix, Alfresco и т.д.).

Вопрос конечно интересует в плане производительности, стабильности и прочих моментах важных для production.
  • Вопрос задан
  • 6313 просмотров
Пригласить эксперта
Ответы на вопрос 7
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
Надо понимать что это, зачем это нужно, как этим управлять.

1. виртуализация на уровне машины — это полная абстракция виртуальной машины от железа.
2. виртуализация на уровне ядра — это разделение по виртуалкам всего того, что лучше выделить отдельно — днс сервер, дхцп, апач, тогда при проламывании, скажем, днс сервера, апач с клиентской панелью управления останется жив. Преимущества — что обновлять это проще, чем десяток отдельных виртуалок. но если надо виртуализировать, скажем, винду, то виртуализация на уровне ядра — уже никак. По моему под линуксами заводили даже фрибсд, но врать не буду. Но виртуализация на уровне ядра требует подготовки ядра. лучше самому внимательно почитать про хен, квм
Ответ написан
Комментировать
@zuborg
Согласен с foxmuldercp, замечу только, что если вопрос только в разделении настроек php (включая модули), то можно обойтись и без виртуализации вообще.

Все равно на каждую вирт.машину понадобится отдельный ип — можно на этот ип поцепить отдельно скомпилированный апач+пхп+остальное. Отдельно скомпилированный — в смысле в свою личную изолированную директорию (./configure --prefix=path ..), со своими модулями и личными .ini/.conf файлами.

Такой вариант самый экономный в плане серверных ресурсов, управление тоже не сложнее управления отдельными виртуалками. Плюс есть возможность простого расшаривания файловых ресурсов, т.к. работают симлинки и хардлинки на весь сервер, а не только в пределах виртуалки.
Ответ написан
Комментировать
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
LXC+lxctl берите, не ошибетесь.
Проблемы с IP можно решить серыми IP для виртуальных машин и nginx'ом на хардноде.
Ответ написан
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Ну и да — chroot в вашем случае тоже хватит, если nginx впереди поставите.
Ответ написан
Комментировать
abbaerro
@abbaerro Автор вопроса
Спасибо за ответы.
Но с OpenVZ (так как с ним никогда не сталкивался) есть один момент, который никак понять не могу.
Вот XEN и прочие полноценные виртуалки полностью эмулируют систему, т.е. своя ОС, ssh и т.д.
И это делается довольно просто.
OpenVZ позволяет делать также? Т.е. эмулировать полноценную ОС со своим набором пакетов.

В windows я думаю необходимости в ближайшее время не предвидится. ОС все вероятно будут CentOS.
Сервер внутренний, т.е. клиентам доступа не будет, поэтому вопрос со взломом соседей (как на VPS) остро не стоит.

Также есть вопрос с сожительством этих 2х технологий.
Т.е. если выберу OpenVZ, то в дальнейшем тяжело будет на этот же сервер добавить KVM?

Еще как обстоят дела с пробросом USB устройств в OpenVZ и KVM? (устройство например Цифровой USB-термометр MP707)
Ответ написан
Foror
@Foror
Графоман
Я себе OpenVZ для этого поставил, только лучше ставить её на CentOS или RedHat с VSwap режимом, иначе он память будет криво считать.

Были кое-какие проблемы с iptables, когда пришлось настраивать openvpn, но в целом всё работает нормально.
Ответ написан
Комментировать
kotomyava
@kotomyava
Системный администратор
OpenVZ это немного меньшие накладные расходы, но куда больше глюков и проблем и меньшая изоляция, чем с XEN, KVM, ESXi и.т.п.

Минимальные накладные расходы при банальном chroot, но и минимальная изоляция. Настроить можно, но обычно вредно так делать и поддерживать будет сложнее, чем отдельные виртуалки, как ни странно.

Я выбрал для решения подобной задачи KVM. 2 сервера, Отдельные виртуалки для нескольких служб(почта, БД, dns, proxy, backup/мониторинг/управление), одна для стандартных сайтов, несколько для сайтов со специфичным окружением. Чтобы не тратить ip, там где это не нужно, стоит nginx как прокси. Когда нет зоопарка из разных OC/дистрибутивов управлять таким набором виртуалок довольно просто, даже без дополнительного софта.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы