Я системный администратор в небольшой компании по разработке программного обеспечения. Я собираюсь виртуализировать наши серверы. Основная причина для этого - обеспечение максимально возможного времени безотказной работы, но, вероятно, это также увеличит использование ресурсов.
У нас есть два сервера. На одном у нас есть несколько виртуальных машин разработки, которые также используются в качестве сервера сборки (Jenkins Master, но также и Build Executor). На втором мы получили несколько критических сервисов (репозитории кода, трекер проблем).
Я хотел бы использовать эти машины для создания кластеров из двух узлов и виртуальных машин для каждой службы. Я хотел бы использовать DRBD, чтобы можно было перемещать машины между узлами.
После некоторого исследования моими кандидатами стали Proxmox и Ganeti. Что было бы лучше в моей ситуации? Мне нравится простота Proxmox (особенно простота установки), но, может быть, есть веская причина для использования Ganeti?
Я не знаком с ProxMox, но я знаком с Ganeti, поскольку использую его в своей работе и работаю с основными разработчиками.
Если у вас небольшое количество физических машин и виртуальных машин, тогда можно делать все вручную. Вы можете запомнить, какая виртуальная машина находится на какой физической машине, и запустить правильную команду Xen на правом узле. Если у вас только одна физическая машина, вы всегда знаете, на какой машине находятся ваши виртуальные машины.
Для нового пользователя наиболее очевидным преимуществом Ganeti является то, что он знает, где находятся все виртуальные машины. От одного мастера вы можете запускать такие команды, как «остановить экземпляр foo», и он выполняет поиск с помощью foo is running и останавливает его. Вы можете выполнить команду типа «создать виртуальную машину размера X везде, где есть свободное место», и она найдет это свободное пространство и создаст виртуальную машину. Если у вас много оттока (создание и удаление виртуальных машин), Ganeti сэкономит вам много времени. Это также поможет вам в случае аварии: если весь кластер потеряет питание, Ganeti перезапустит все виртуальные машины, когда кластер получит питание и загрузится. (Пример здесь: Отключение электроэнергии: настоящее испытание для Ганети)
Вы можете настроить «шаблоны» для конфигураций виртуальных машин (какая ОС, конфигурация дискового хранилища и т. Д.). Таким образом, возможно, вы единственный человек, достаточно опытный, чтобы создать шаблон, но если они существуют, другие более младшие системные администраторы в вашей команде могут легко создать новые. экземпляры.
Проблема с выполнением дел вручную, когда у вас небольшое количество виртуальных машин, заключается в том, что если вы добьетесь успеха, вы вырастете до такой степени, что Ganeti будет иметь смысл. В этот момент у вас может быть много работы, и у вас не будет времени на установку Ganeti. Это общая проблема перехода от ручного управления к установке автоматизации: у вас нет времени на ремонт протекающей раковины, потому что вы слишком заняты мытьем пола. Чтобы предотвратить это, я рекомендую установить Ganeti (или любую другую автоматизацию, которую вы выберете) раньше, чем позже.
Ganeti имеет 100% открытый исходный код, не требует лицензий. Однако коммерческая поддержка недоступна, если она вам нужна. Я не знаком с ProxMox, но на их веб-странице написано, что для этого требуется лицензия; есть части с открытым исходным кодом, но они недоступны без лицензии (из того, что я прочитал на их веб-сайте). У них есть планы поддержки, перечисленные на их веб-сайтах.
Ganeti доступен за пределами Google с 2007 года. За его плечами более 5 лет инженерной мысли. Он был стабильным в течение некоторого времени. Вы можете найти исходный код Ganeti и сообщество поддержки на code.google.com/p/ganeti Не знаю, как недавно вышел ProxMox.
Я использую Xen с 2003 года. Я использую Ganeti около года и очень рекомендую его. Я никогда не слышал о ProxMox.
В течение многих лет я вручную управлял файлами конфигурации LVM, DRBD и Xen в нескольких кластерах размером от 2 до 5 узлов - это был кошмар. DRBD сделал все на удивление надежным, а Xen упростил миграцию виртуальных машин между узлами, но всякий раз, когда узел выходил из строя, мне приходилось долго и утомительно создавать новые тома LVM, настраивать DRBD и перестраивать зеркала, а затем проверять, что Xen и другие конфигурации были реплицированы ... для 5-узлового кластера, держать вещи прямо в голове иногда было болезненно. Я все хотел написать сценарий, но жизнь продолжала мешать.
Затем появился Ганети. Он был написан именно для моего варианта использования - n-полосные кластеры с использованием Xen и DRBD. Эти часы болезненных и рискованных операций теперь в некоторых случаях сжаты в одну подкоманду ganeti. Я люблю это. Я перевел большинство своих виртуальных машин в один большой 10-узловой кластер ganeti.
Я также перенес наши рабочие столы с Windows в кластер Ganeti / KVM - Linux сейчас только на рабочих столах, и они используют VNC для доступа к виртуальным машинам Windows. Большим преимуществом здесь является более простое создание снимков и резервное копирование, а также возможность изолировать каждое приложение Windows в отдельной виртуальной машине.
Кстати, даже если вы сейчас говорите только о двухузловом кластере, я почти уверен, что как только вы увидите эту утилиту, вы обнаружите, что добавляете узлы и переносите все, что можете, на виртуальные машины. Если ваша платформа кластеризации может поддерживать более 2 узлов, например Ganeti, вы сможете это сделать.
Я не использую ганети, но использую proxmox и очень хорошо его знаю. Proxmox VE - это проект с ПОЛНОСТЬЮ ОТКРЫТЫМ ИСТОЧНИКОМ, и весь код доступен с двоичными файлами. Базовая система - это минимальный дистрибутив Debian 64 со специальной установкой, но вы также можете установить свою систему Debian и добавить репозитории proxmox. Одним из основных спонсоров проекта является правительство Autrian, и это гарантирует, что разработка продукта будет финансироваться в течение длительного времени. Начиная с версии 2.0, даже процесс разработки открыт (раньше это был закрытый список, и вам приходилось запрашивать доступ к компании, стоящей за proxmox).
Он имеет удобный интерфейс, почти все функции vSphere, поддержку кластера (на основе corosync), HA для высокой доступности виртуальных машин, поддержку автоматического резервного копирования и восстановления из интерфейса. Он также поддерживает виртуализацию контейнеров с помощью openvz, бесшовно интегрирован в ту же инфраструктуру и интерфейс KVM, поэтому вы можете выбрать лучшую стратегию виртуализации в соответствии с вашими потребностями. У меня около 20 установок Proxmox, от одного хоста до двухузлового кластера, при этом drbd прибывает в пятиузловой кластер на FC SAN (> 80VM).
Что касается ганети, то могу сказать, что здесь нет конкуренции. Proxmox точно побеждает.
Моя жалоба (возможно, основанная на незнании) на ganeti: я счастлив делать что-то в CLI, если это необходимо, но я не верю, что желание GUI делает меня слабаком. Там кажется чтобы быть веб-инструментом управления ganeti, но в последний раз, когда я смотрел, это было ОЧЕНЬ далеко не по принципу plug & and play (например, пара страниц с командами для ввода на хосте), и после пары попыток на фиктивном сервере, Я так и не смог правильно собрать и установить.