admin / 05.10.2018

Ovirt vs proxmox

Всё началось с того, что имеющийся на работе сервер всё больше вызывал смутное ощущение оверкилла.

Два четырёхядерника и восемь гигабайт памяти и RAID 10 на терабайт с небольшим не казались чем-то сверхестественным, но явно были недогружены крутящимся на нём сервером AD (w2k3 R2 x64), который обслуживал ~50 пользователей и, собственно, всё.

Поэтому чем дальше, тем больше вызревала мысль установить на этой радости виртуальную машину и гонять под ней разное. Тем более потребность в этом была.

Не так давно, в силу разных обстоятельств, упоминавшийся w2k3 приказал долго и бестолково жить, а раз так — выходные были посвящены установке на запасную машину Proxmox VE и свежей реинкарнации того же самого w2k3 в ней.

Теперь отвлечёмся от хроники текущих событий и посмотрим — а что, собственно, представляет собой упомянутая выше Proxmox VE?

Для начала определимся — очень упрощённо говоря, виртуальные машины можно разделить на два типа: первые крутятся на рабочих станциях внутри основной ОС и используются для тестирования, например. Вторые ставятся на голое железо и все ОС крутятся только и исключительно внутри них. К ним можно отнести и VMWare ESX (ESXi), и Xen (в т.ч. Xen Server), и oVirt, и пресловутый Proxmox VE.

«Почему же именно Proxmox?», спросит меня читатель. Вопрос этот напрашивается сам собой, а потому постараюсь ответить кратко, но ёмко. Поскольку денег на такое решение мне никто не выделит, я выбирал среди бесплатных решений. Наиболее интересными на мой вкус показались Proxmox и oVirt. Но второй для моих задач — явно избыточен, потому был выбран первый вариант. Итак, посмотрим на него попристальнее.

Технологически, Proxmox VE представляет собой самый обыкновенный Debian Lenny, на котором поднята инфраструктура для управления KVM и OpenVZ. Управляется всё это через вполне приятный web-интерфейс снаружи и libvirt внутри («а внутре у его — неонка!»). Отдельно упомяну, что для корректной работы web-интерфейса (вернее — для реализованного в нём VNC-клиента) требуется JRE.

Есть кластеризация, которая позволяет, например, переносить живые виртуальные машины между физическими хостами. А вот load balancing эта кластеризация, насколько мне известно, делать не позволяет. Впрочем, оно мне не нужно, так что не могу сказать, что я сильно огорчён.

Есть штатные средства бэкапа, которые позволяют бэкапить любую из виртуальных машин (или все скопом) в любой каталог. То, что в этот каталог можно примонтировать что угодно — подразумевается, однако средствами web-интерфейса сделать это невозможно.

Для каждой виртуальной машины имеется индикатор загрузки ЦП и ОЗУ, однако график по этим величинам за определённый (или неопределённый) период отсутствует, что всерьёз огорчает. Это, пожалуй, единственная функциональность, которой мне всерьёз не хватает.

А теперь вернёмся к тому с чего я начал. После установки сервера AD прошло две недели. За это время я успел оценить как удобства, так и недостатки такого решения.

Основным недостатком, на мой взгляд, является работа через VNC. Со временем привыкаешь, но всё же, всё же… Впрочем, никто не мешает настроить в Windows RDP и использовать уже его. На мой взгляд это гораздо удобнее. Про отсутствие средств мониторинга я уже упоминал. Прямо скажем, SNMP или хотя бы график за определённый период был бы, мягко говоря, нелишним.

В настоящее время я планирую установить в виртуальной машине ещё несколько серверов — например Debian + SAMS, взамен стоявшего пиратского UserGate, Openfiler, для организации файлообменника для пользователей домена, Zimbra для корпоративной почты и не менее корпоративного IM.

В общем, планов громадьё и цикл про эту ВМ будет продолжен. Stay tuned, как говорится.

P.S. Да, если кто-то заинтересовался — крайне рекомендую почитать ещё вот это.

Там человек, куда лучше меня разбирающийся в виртуализации, пишет об oVirt.

Комментарии заморожены.

 

Подготовка узлов для создания ProxMox кластера.
В каждом узле нужно прописать все хосты в файле /etc/hosts и привести /etc/hostname в порядок — имена должны быть без пробелов + желательно без доменных зон, например: proxmox_192-168-1-2.
Создание кластера на главном узле.

Где proxmox наш новый кластер, можно задать любое название вместо promox.


Добавление узла в кластер.
Будьте внимательны при вводе имени хоста, оно должно быть без пробелов.

pvecm add имя_узла_из_хостов

Если возникает ошибка «pve configuration filesystem not mounted» можно выполнить команду и желательно будет проверить правильность вводимого адреса кластера.

Удаление узла из proxmox кластера.

ProxMox не загружается веб интерфейс.
Если в файл /etc/hosts внести изменения строки 127.0.0.1 localhost то можно вообще после перезапуска не попасть в ProxMox интерфейс через браузер, в таком случае надо проверить в консоли сетевой экран командой ниже.

ipcc_send_rec failed: Connection refused
ipcc_send_rec failed: Connection refused
ipcc_send_rec failed: Connection refused
hostname lookup failed — got local IP address (название_хоста = 127.0.0.1)
Status: disabled/running

В нормальном состоянии сетевой экран выводит такое уведомление:

Status: disabled/running

Порой полезно знать свои хосты в ОСи.

cat /etc/hosts;cat /etc/hostname

Ошибки при добавлении в кластер.
root@fuj2660serv2:~/.ssh# pvecm add asussrv1 —force
unable to copy ssh ID

pvecm add адрес —force
The authenticity of host ‘195.62.53.250 (адрес)’ can’t be established.
ECDSA key fingerprint is a0:c6:00: …
Are you sure you want to continue connecting (yes/no)? yes
root@1адрес’s password:
I/O warning : failed to load external entity «/etc/pve/cluster.conf»
ccs_tool: Error: unable to parse requested configuration file

command ‘ccs_tool lsnode -c /etc/pve/cluster.conf’ failed: exit code 1
unable to add node: command failed (ssh адрес -o BatchMode=yes pvecm addnode адрес_мастера —force 1)
Если поломался кластер на Proxmox
Оказывается если отвалилась одна нода из кластера состоящего из хотя бы 2х нод, не так то просто что либо сделать с оставшейся. В кластере действует принцип “демократии” при котором нужно, что бы обе ноды были доступными для принятия решения об исключении ноды из кластера.
Т.ч.

Proxmox VE. Полноценная платформа виртуализации

если у вас проблема типа:

cluster not ready — no quorum?

Знайте, это из-за демократии. Но выход все же есть, и его пришлось искать долго.. Оказывается есть такая не документированная (лично я не нашел) команда:

После этого демократия превращается в монархию.
И после этого можно спокойно удалять недоступную ноду.

a.dmin.pro/?p=3698
Вывести список узлов кластера.

Если в ходе работы с резервным копирование или миграцией машина заблокирована и при старте отображается уведомление: Status Stop TASK ERROR: VM is locked (backup)
Необходимо разблокировать VDS командой:

1191 номер вашего виртуального сервера, который разблокируем.

 

Установка ОС из своего ISO в proxmox

В панели управления promox вы можете легко установить ОС на виртуальную машину вашего выделенного сервера из своего iso образа. Сначала необходимо войти в панель управления.

Если после успешной авторизации вы увидите предупреждение «NO valid subscription», просто нажмите «OK» (Это предупреждение что нет платной подписки, которая дает преимущества в свежих обновлениях).

Со стартовой страницы перейдите в хранилище (storage).

Proxmox VE vs RHEV

Это можно сделать через основную панель либо правую панель: кликните по пункту с иконкой «жесткий диск» (в правой панели перед этим раскройте выпадающий список). На картинке хранилище имеет название «local(Debian-77-wheezy-64-minimal)».

Затем перейдите во вкладку «Содержимое».

Нажмите «Загрузить» для загрузки iso образа.

В появившемся окне нажмите «Выбрать файл…».

Выберите файл iso образа.

Дождитесь пока iso образ загрузится с вашего компьютера.

После загрузки вы можете увидеть ваш iso образ в списке. Далее перейдите на страницу виртуальной машины. Это можно сделать, нажав в правой панели по пункту с иконкой «монитор» (на картинке виртуальная машина имеет название «100(vm)»).

Перейдите во вкладку «Оборудование».

Два раза нажмите по пункту «CD/DVD привод» чтобы примонтировать iso образ.

В появившемся окне выберите хранилище, в которое был загружен iso образ ранее.

Затем выберите сам iso образ.

Нажмите «ОК», чтобы примонтировать ваш iso образ.

Теперь в значение пункта «CD/DVD привод» должно отображаться имя вашего iso образа.

Для установки ОС из iso образа необходимо включить (или перезагрузить) виртуальную машину. Это можно сделать в вспомогательном меню управления виртуальной машины, кликнув по «Запуск». Чтобы данное меню появилось, необходимо кликнуть правой кнопкой мыши по пункту с иконкой «монитор» в правой понели (на картинке виртуальная машина имеет название «100(vm)»).

Затем для продолжения установки ОС необходимо подключиться к виртуальной машине. Это также можно сделать в вспомогательном меню управления виртуальной машины, кликнув по «Консоль». Перед подключением к виртуальной машине необходимо установить java и добавить url панели в список исключений java. Не забудьте перезагрузить браузер, чтобы изменения настроек безопасности java вступили в силу.

В открывшемся окне разрешите запуск плагина.

В окне предупреждения нажмите «Continue».

Во 2-м окне предупреждения поставьте галочку «I accept the risk and want to run this application» и нажмите «Run».

Если вы увидите сообщение от том что подключиться к виртуальной машине не получилось, нажмите кнопку «Запустить».

Теперь вы можете продолжить установку ОС.

Proxmox Virtual Environment — это система, предоставляющая простой и удобный веб-интерфейс для управления виртуальными машинами (используется KVM) и контейнерами (LXC) на вашем кластере физических машин. Фактически, при помощи Proxmox вы можете создать свой маленький Amazon Web Services на собственном железе. В общем и целом, система очень похожа на Parallels Virtual Automation, с которым мы знакомились ранее, только распространяется бесплатно и с открытыми исходными кодами. Также предоставляется и платная техническая поддержка. Как мы скоро убедимся, со своей задачей Proxmox справляется не хуже PVA, а в чем-то, возможно, и лучше.

Установка

Качаем ISO-образ отсюда, записываем на флешку как обычно при помощи dd:

sudoddif=./proxmox-ve.iso of=/dev/sdb bs=1M

Флешку втыкаем в будущую хост-машину. Помним, что для работы KVM требуется, чтобы CPU умел технологию Intel VT-x или AMD-V. Насколько я понимаю, все процессоры семейства Intel Core i5 и Intel Core i7 поддерживают аппаратную виртуализацию, но на всякий случай сверьтесь с информацией в BIOS и описанием вашей конкретной модели CPU на сайте производителя. Также на время установки нам понадобятся монитор и клавиатура.

Сама установка ничем не примечательна, по сути просто жмем Next → Next → Next. После перезагрузки вводим в веб-браузере , где 192.168.0.105 нужно заменить на IP вашего сервера. Обратите внимание, что нужно обязательно ввести https! Для входа используем имя пользователя root и пароль, указанный при установке.

Важно! Примите во внимание что по умолчанию на сервер также можно зайти пользователем root по SSH, используя тот же пароль.

Использование

Админка выглядит приблизительно таким образом:

Для создания виртуалки сначала нужно залить установочный ISO-образ системы. Я лично экспериментировал на FreeBSD. В дереве слева выбираем Datacenter → proxmox → local, открываем вкладку Content, жмем Upload. Затем в правом верхнем углу жмем Create VM. Диалог создания новой виртуальной машины ничем не примечателен, все просто и понятно. После создания говорим виртуалке Start. Затем жмем Console → noVNC. В результате подключаемся к виртуалке по VNC прямо через браузер. Все это работает в самом обычном Chromium без Flash’а и Java-апплетов. Крутяк!

Чтобы создать контейнер, идем в Datacenter → proxmox → local, во вкладке Content жмем Templates. Скачиваем интересующие нас шаблоны. Я лично выбрал Ubuntu 14.04. Затем жмем Create CT, и там в диалоге по сути просто говорим Next → Next → Next. Чтобы зайти в контейнер, заходим по SSH на хост-систему, говорим , смотрим id контейнера. У меня он был равен 101. Затем говорим . Там можно создать пользователя, добавить его в sudoers и вот это все:

adduser eax
usermod -a-Gsudo eax

Теперь под только что созданным пользователем можно зайти напрямую в контейнер по SSH, sshd в контейнере уже был поднят.

Proxmox VE поддерживает клонирование виртуальных машин. Клонирование контейнеров, насколько я смог разобраться, пока почему-то не реализовано. В дереве справа жмем ПКМ по виртуалке, говорим Convert to Template. Снова жмем ПКМ, жмем Clone. В результате получаем кучу копий одной и той же виртуальной машины, удобно.

Для создания бэкапов нам понадобится настроить NFS сервер. В принципе, ничто не мешает поднять его прямо на одной из виртуалок. Затем в дереве слева кликаем на Datacenter, открываем вкладку Storage, жмем Add → NFS. В поле Server вводим IP-адрес NFS-сервера, в выпадающем списке Export выбираем экспортируемый им каталог. В выпадающем списке Content кликаем по очереди на все пункты, чтобы они добавились к списку. Нигде больше не видел такого нестандартного элемента управления!

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

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

Заключение

Напоследок хочется отметить несколько вещей, которые мне не очень понравились в Proxmox:

  • Через веб-интерфейс не видно, какие IP имеют виртуальные машины.

    Proxmox VE — радость сисадмина

    Впрочем, в реальной системе вы, скорее всего, все равно захотите использовать Consul или какое-то иное service discovery решение. Так что, пожалуй, это не такая уж большая проблема;

  • Для NFS не поддерживается авторизация. Доступ к NFS-серверу можно ограничить только по IP;
  • Нельзя так просто взять и переименовать шаблон виртуалки. Нужно создать новый шаблон с другими именем, потом удалить старый. К счастью, это вполне работает, даже если у шаблона были linked (то есть, не full) клоны;

Несмотря на озвученные проблемы, я все равно решительно одобряю Proxmox. Помня боль и унижение при использовании AWS, сейчас я бы предпочел ему (как и Google Cloud, как и Azure, потому что по многочисленным отзывам там все те же проблемы) арендовать физические машины и сделать на них собственный IaaS при помощи Proxmox. Есть серьезные основания полагать, что такая конфигурация будет уж точно не хуже, ибо куда уж хуже.

А пользуетесь ли вы Proxmox VE и если да, то как впечатления?

Дополнение:Управление VirtualBox из консоли с помощью vboxmanage

Метки: Linux, Виртуализация, Облака.

FILED UNDER : IT

One Comment

  • Roman says

    «Через веб-интерфейс не видно, какие IP имеют виртуальные машины.»

    Видно, если установлен Guest Agent..

Submit a Comment

Must be required * marked fields.

:*
:*