Как сделать кластер proxmox

Обновлено: 04.07.2024

Proxmox Virtual Environment это система виртуализации с открытым исходным кодом. В настоящее время Proxmox VE, в релизах выше 4.0 и 3.4, использует гипервизоры KVM и LXC, что позволяет запускать виртуализацию практически любой ОС. Управляется Proxmox VE через удобный веб-интерфейс. Как гипервизор Proxmox VE является высокопроизводительным, виртуальные машины с Linux работают без потерь, другие гостевые ОС вызывают минимальные потери производительности.

Установка Proxmox VE на Debian 10 Buster

В статьях на различных порталах в Интернете можно прочитать, что VPS и VDS не имеют разницы, просто различные аббревиатуры одного и того же. Однако, с моей точки зрения, есть существенное различие в предложениях провайдеров – виртуальный хост приобретён в аренду или реальный сервер в стойке.

Чтобы проверить, можно ли полноценно использовать виртуализацию Proxmox VE в облаке или на реальном хосте, в Debian 10 Buster, подключаемся к консоли сервера по ssh, в моем случае с помощью Putty RUS и вводим:

cat /proc/cpuinfo | grep '(svm|vmx)'

Если виртуализация поддерживается процессором хоста, то результат работы не пустой, а несколько строк:

ASiDxcGBrjoRAAAAAElFTkSuQmCC

Обновление системы Debian 10 Buster

Обновите Debian 10 Buster до актуальной и перезагрузите по выполнении:

sudo apt -y update

sudo apt -y upgade

После перезагрузки установите необходимые пакеты:

sudo apt -y install mc wget

Настройка файла /etc/hosts

Для нормальной установки Proxmox VE в Debian 10 в файле /etc/hosts должно быть указано краткое и доменное имя хоста. У VDS или VPS файл /etc/hosts обычно уже настроен, но проверить не мешает. Должно выглядеть так, как на скриншоте:

Для установки Proxmox VE на Debian 10 Buster необходимо добавить репозитории Proxmox VE. Репозитории Debian удалять необязательно. Чтобы больше не изменять sources.list, создайте в /etc/apt/souces.list.d файл proxmox.list, который будет содержать необходимые репозитории исключительно для Proxmox VE. Указание, что мы не используем подписку, строка pve-no-subscription:

Установите ключ репозитория и запустите обновление, чтобы подключились репозитории Proxmox VE:

sudo apt -y update

7HigTiqbMe7AAAAAElFTkSuQmCC

Установка пакетов Proxmox VE

Проверьте, появился ли в пакетах proxmox-ve:

sudo apt search proxmox-ve

wM+yKJHFcXepAAAAABJRU5ErkJggg==

Если появился, значит все репозитории подключены и обновлены корректно. Установите Proxmox VE, затем снова перезагрузите:

sudo apt -y install proxmox-ve

Адрес веб-интерфейса Proxmox VE актуален для моего сервера, для другого сервера будет указан так:

На этом установка Proxmox на Debian 10 завершена, дальше поговорим про настройку.

Работа с WEB-интерфейсом

Подключение к Proxmox выполняется с помощью браузера. Подключитесь по указанному адресу из любого браузера. Сертификаты сервера являются самоподписанными, поэтому браузер выдаст предупреждение безопасности. Нажмите Дополнительные и выбираем ссылку Перейти на сайт 192.168.0.166 (небезопасно). На скриншоте ниже показано выглядит WEB-интерфейс Proxmox VE:

H3Yf6DU6LA10AAAAAElFTkSuQmCC

Сначала выберите русский язык, затем введите пользователя root и пароль от суперпользователя:

hYOJeritpxjFL0LwGzfwDtk4JYdSyoJAAAAABJRU5ErkJggg==

DuEhElYuNDEKJAKC1gPcBAsc5FGXhmQcAAAAA4FWRmpzK0jt16tV5w4OeGIaRJMHlUFwOh6JIc7YsQ3Lyi+OS0lmJdQI8v508pE3Tel5uEh8P565twmeMH8DlUKw1rwR8rj57hVJ14twNVj5NGwTNmfSxp5vZZcECfd06tWqIEDJeJdlkyQN8XEcO7GyY8tvR8xVypZGqqRQknEs9140JyexVv4L93L+eMCjYz13A5znY2XRsGbZw2ieebpIKufL2g0eVBSG7SKzAjMiioyBVWWuBS2HV+T+Xva2tRDDRegAAAABJRU5ErkJggg==

Настройте хранилище. Сейчас система автоматически создала хранилище в расположении /var/lib/vz с названием local. Кликните на ссылку:

weYphevlNwc8AAAAABJRU5ErkJggg==

В хранилище с помощью WEB-интерфейса Proxmox можно загрузить образ диска ISO, разместить там же образ диска виртуальной машины, контейнеры и шаблоны. Так же в хранилищах хранятся snapshot – архивные копии виртуальных машин. Хорошим решением будет добавить в систему ещё одно хранилище для бэкапов, шаблонов виртуальных машин.

Создайте дополнительное хранилище. Для этого перейдите в раздел Датацентр, найдите справа от дерева серверов пункт Хранилище, кликните по нему и выберете хранилище local. На приведённом ниже скриншоте видно, что, кликнув на local в основном окне, можно редактировать типы хранимой информации. Для дальнейшей демонстрации включаю тип Резервная копия и применяю изменения:

j8ytu09JPTSlwAAAABJRU5ErkJggg==

По кнопке Добавить можно посмотреть какие типы хранилища доступны в данной инсталляции Proxmox VE.

jzGSZjfCPKkAAAAASUVORK5CYII=

В моей тестовой машине все реализовано на томах LVM:

L1925aMxGqfp+v5emqaontB0xnk93IWIyJSf+WR288iYq1uemamb1Szb8YNn3kIB+LDCWP8Dsecl4fNzJsQAAAAASUVORK5CYII=

Самый большой размер 122 Гб на машине pve-test примонтирован к директории /home. Нажмите Добавить, выберите Каталог, укажите имя home и путь /home:

X6Hm9Jev29qY5PvW57d6zYveGffO21eqMzSP7W9c4J8WSTeAqLyf8HIt5+ewRAuK0AAAAASUVORK5CYII=

В результате создано собственное хранилище с именем home, где и будут храниться все данные:

+yz8aHL1+eWB8enY+Fk+KAl9hs9TXerraGhvrvD974U1CiCgIpQOGSRQ+ft9dTz5y3KJZU+j0+d7T53uNr8hpz1uhyF5hYZRm5xcEgqGRiemWxlrtHbram7ram3Q7eemNs67KvGrgxmvNJtFw2MWvR+emY2WZRXGHfDX+P1sr2LqqKFWzAAAAAElFTkSuQmCC

Настройка сети Proxmox

Создайте бэкап файла сетевых настроек. Для этого в терминале напишите:

sudo cp interfaces interfaces.work

В системе реализованы несколько способов получения доступа по сети из виртуальных машин или к виртуальным машинам. Перейдите на группу pve-test в дереве серверов, выберите справа пункт Сеть и нажмите кнопку Создать:

WnxXJGQP+ILyP8H3qaQbPbI34cAAAAASUVORK5CYII=

Из предложенных вариантов выберите Linux Bridge, чтобы создать виртуальный свитч, через который гипервизор Proxmox VE и виртуальные машины подключатся к сети:

WK7kN7EDydqsa2B9EeldhJ4P8Dvy02fyr7tP0AAAAASUVORK5CYII=

В портах сетевого моста указано имя сетевой карты enp2s0, которой тестовая машина подключена кабелем к роутеру. В Linux принято после указания IP-адреса указывать маску подсети через знак /. Значение 192.168.0.166/24 означает, что маска подсети 255.255.255.0.

sudo cp interfaces.work interfaces

Ax+OO1+l3LmCAAAAAElFTkSuQmCC

На скриншоте красным маркером обведён новый текст файла /etc/network/interfaces, который будет применён после перезагрузки. Если все прошло корректно, то через некоторое время можно снова входить в WEB-интерфейс хоста Proxmox VE.

Создание виртуальных машин

Обратите внимание, что веб интерфейс Proxmox VE позволяет создавать виртуальные машины двух типов:

  • VM это полностью виртуализированная машина, созданная из ISO образа, который необходимо загрузить в хранилище Proxmox VE;
  • CT – паравиртуализированная машина на ядре Linux, шаблоны которой необходимо сначала загрузить и установить в хранилище Proxmox VE.

Загрузите CT, предложенные на сайте Proxmox VE. Выберите небольшой дистрибутив, например CentOS 7, и поместите его в хранилище home:

sudo pveam update

sudo pveam available

sudo pveam download home centos-7-default_20190926_amd64.tar.xz

Параллельно можно поставить загрузку дистрибутива debian10 netinstall ISO со своего рабочего компьютера в хранилище home. Для этого выберите в WEB-интерфейсе хранилище home, тип хранения выберите ISO Images и нажмите кнопку Загрузить, в появившемся окне выберите файл образа ISO со своего компьютера и нажмите ОК.

Uf6IgMcY9FAAAAAElFTkSuQmCC

sudo apt install mc

Шаблоны и загрузки расположены по путям хранилищ local: /var/lib/vz или home: /home/pmx. Вы можете напрямую копировать в соответствующий раздел файлы. Логическая структура размещения информации на скриншоте:

AwDAjitYzzHvAAAAAElFTkSuQmCC

Для создания виртуальных машин необходимо создать Пул ресурсов. Для этого кликните в дереве на вкладку Датацентр, справа выберите пункт Пулы, нажмите Создать, на тестовой машине задано имя пула home, по окончании нажмите ОК:

j8uCaTpcWHVMgAAAABJRU5ErkJggg==

Создание виртуального контейнера CT

Сначала создайте CT виртуальную машину из скачанного шаблона CentOS 7. Для этого нажмите кнопку Создать CT, заполните поля и нажмите ОК.

H44zXmkgfxDvAAAAAElFTkSuQmCC

На следующей вкладке выберите хранилище home и ранее закачанный шаблон CentOS 7.

9fAAAAAElFTkSuQmCC

Настройки корневого диска, процессора и памяти на тестовой машине оставим как предложено гипервизором. Обратите внимание на раздел сеть:

D99850uc6WIOAAAAAElFTkSuQmCC

Итак, созданный нами ранее сетевой мост vmbr0 используется в виртуальных машинах Proxmox VE для создания виртуальных сетевых интерфейсов для них. Через vmbr0 интерфейс будет подключён к роутеру сети, к которому подключена сетевая карта, на которой работает vmbr0.

В результате наших действий начинает разворачиваться контейнер, содержащий CentOS 7 и настраиваться виртуальная машина.

Gw3sN4T+PxkUOGFW+WaPAAAAAElFTkSuQmCC

Вернитесь в pve-test, найдите вновь созданный контейнер c ID 100 и названием centos7 и нажмите Запуск, а затем Консоль. Откроется окно браузера, в котором видно запущенный CentOS:

Gv62awNCKGQAAAABJRU5ErkJggg==

Укажите имя пользователя root и пароль, который ввели при создании контейнера CT и, если все сделано верно, можно управлять виртуальной машиной. Узнайте её IP-адрес, так как роутер, подключённый к тестовому хосту, должен был его выдать:

В результате получилось запустить полноценную виртуальную машину с Linux.

Создание виртуального контейнера VM

Для создания виртуальной машины VM с любой ОС нажмите кнопку Создать VM, укажите имя создаваемой VM, выберите пул ресурсов, нажмите Далее:

66qnElEt+21AAAAAElFTkSuQmCC

На втором окне предлагается выбрать загрузочный образ виртуального CD-диска, указать тип гостевой ОС:

pIfBybdhAAAAAElFTkSuQmCC

Если все сделано правильно, то загруженный ISO образ должен быть доступен по клику по обведённому красным полю. Этот параметр может быть настроен позже из интерфейса управления виртуальной машиной VM.

lBJVnKFcr+T2UrmAt49J+9x2ls7d8+JOkgl3Ot2iAIn8DxCqCnJPZYO7j5O1+Wu1Zv9PktR1O6a3kUuPv8fVYV1ooHb9SgAAAAASUVORK5CYII=

Во вкладках Система, Жёсткий диск, Процессор, Память, Сеть оставлены все значения так, как предложил гипервизор. В последней вкладке Подтверждение кликем Готово и перейдите в настройки виртуальной машины ID 101 с именем litedeb, во вкладку Оборудование:

wGZ85Hq+mk8fwAAAABJRU5ErkJggg==

Если все нас устраивает и ничего менять не надо, нажмите кнопку Запуск и откройте Консоль. На тестовом хосте выяснилось, что лучше эксперимент проводить на дистрибутиве Debian 10 netinstall, и поменять тип жёсткого диска со SCSI на SATA, а также увеличить размер оперативной памяти виртуальной машины. И результат работы после нажатия кнопки Запуск и подключению к Консоли:

D9kJ3LbObl9lAAAAAElFTkSuQmCC

Резервное копирование виртуальных машин

Приступим к настройке резервного копирования виртуальных машин. Для этого мы используйте хранилище home. Чуть подробнее распишем рекомендации, данные в начале статьи. Основная рекомендация: настраивайте хранилище архивных копий в другом расположении, нежели рабочие виртуальные машины, например, можно также подключить FTP или Samba хранилище. Все это легко реализуется на базе Debian 10 с Proxmox VE.

Перейдите Датацентр, pve-test, VM100, в правом меню выберите раздел Резервная копия и нажмите кнопку Создать резервную копию сейчас:

9uyBKzm9l5cqtX226p6Ju336q86W5V7xidMhf+YTL770wlN7jSQkBwiKuiOfjnc0HTBae8T9f6XUExImi4MEAAAAAElFTkSuQmCC

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

Чтобы настроить планировщик резервных копий нужно перейти в дереве в Датацентр и выбрать в правом меню пункт Резервная копия и нажать кнопку Добавить. Ниже показано, как можно настроить резервирование VM100 каждый чётный день недели в 01:45 локального времени сервера, с хорошим сжатием GZIP и отправлять при ошибках уведомление по почте:

wMFQ6RIcWStwQAAAABJRU5ErkJggg==

8Bgaxhweo5F8EAAAAASUVORK5CYII=

Остаётся только проводить мониторинг хранилища для резервных на оставшееся свободное место зная, что, если произойдёт непредвиденное, всё можно восстановить. Сроки восстановления из Snapshot крайне малы, однако нужно понимать, что чем сильнее сжатие, тем дольше восстанавливается виртуальная машина.

По этим же причинам, необходимо тщательно подходить к выбору размера виртуального диска, например не выделять на виртуальную машину один диск 90Gb, а три по 30Gb. Во-первых, восстанавливать меньше, если один из виртуальных дисков вышел из строя. Во-вторых, сжатие и восстановление занимает меньше времени за счёт распараллеливания ресурсов хоста Debian 10 с Proxmox VE.

Заключение

Теперь вы знаете как выполняется установка и настройка proxmox на Debian 10. Особенно интересен апгрейд Debian 10 при условии, что хост расположен в облаке и его процессор поддерживает виртуализацию. Оплачивая один VPS или VDS, мы можем развернуть внутри несколько изолированных сервисов из любого, даже самого экзотического дистрибутива.

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

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Приветствую всех!.
Имею популярную проблему: низкая производительность файловой системы на госте (windows) который крутится под проксмоксом.
Грубо говоря - тормозит виртуалка.
Что имею по железу:
4 ноды с одинаковым конфигом (2*xeon 5645, 48GB ram, ssd 32gb, hdd sata2=1tb, 2*1Gbit lan)
1 nas - hp dl320s (контроллер p400, 512 кеша+батарейка, xeon 3060, 8gb ram, 2*1Gbit lan, 12*1tb wd black re в raid 6)
1 гигабитный свитч hp procurve 4104
На нодах стоит proxmox 4.4-5 в режиме ha cluster.
ceph не поднимал
Сейчас NAS не подключен. виртуалки стоят на локальных хардах.
Если надо - то все красиво мигрирует, клонируется и т.п. но это в настоящий момент меня не беспокоит.
Теперь что касается тормозов: в режиме линейного копирования большие файлы (4gb) копируются внутри гостя (130-140 мб/сек) и по сети (гость-живой комп) отлично - скорость - 100 мб/сек
Однако, при копировании большого количество мелких файлов (10000 файлов средним размером 100-200 килобайт) - начинается просадка скорости до 25 мб/сек, как внутри гостя, так и по сетке.
Образы виртуалок стартуют с опцией cache=writeback
(пробовал со свсеми настройками кеширования - последний показал себя лучше всех)
На госте стоит win2k8r2, и он при работе тоже характерно тормозит. Естественно, внутри гостя используются virtio драйверы.

вопрос1: не связано ли это с хранением файлов с виртуалками на локальном сторедже.
вопрос2 (глобальный, и, возможно, риторический): как правильно использовать все мое железо для максимальной производительности?
Читал много про НАСы с zfs. но вроде как не помещаюсь с производительностью платформы наса.

PS: до этого виртуалки крутил только под убунтой безо всяких кластеров - при помощи либвирта. (конфигурялка virsh+ иксовая приблуда virt-manager). Там тоже наблюдались просадки, но почему-то я на них не сильно обращал внимание. Там крутилось только пара-тройка машин и требований к ним никаких не было :(


Локальный сторадж самый быстрый, нет не связано. Локальный сторадж на одном локальном SATA диске - тормоз даже для virtio. Попробуйте виртуалки разместить на SSD и почувствовать разницу. Или экзотичное - сделайте RAM диск и на нем пробуйте размещать диск с данными для виртуалок, чтобы понять где узкое место.
Мелкие файлы видимо очень много за собой тянут не нужных накладных расходов - требуют много IOPS.
Проведите тесты дисковой подсистемы локального стораджа в хостовой части для начала, чтобы понимать, что Вы имеете в лучшем случае. Далее точно такой же тест можно сделать в виртуалке и посмотреть сколько IOPS съест виртуализация.

Параметрами команды (--bs=4k --iodepth=64 --size=4G) поиграйтесь, начните с легких тестов.
Под windows утилита crystal disk. Была еще утилитка под windows для тестирования дисков для размещения на них файлов для sql сервера по типу fio для linux - но забыл название.
Еще важен параметр который характеризует отзывчивость (насколько быстро дисковая подсистема отдает/пишет запрашиваемые данные) дисковой подсистемы. Размещайте виртуалки поверх LVM (без какой либо файловой системы), чтобы снизить накладные расходы ФС.
RAID6 сам по себе тормоз жуткий, RAID10 по скорости лучший.
Будете запускать кластер с НАС, проведите с ноды fio тесты на диске который будет размещаться на НАС. может быть 10Г сеть нужна будет, чтобы все быстро летало, хотя упретесь скорее всего и на 1Г в диск НАС т.к. у Вас RAID6
Для виртуализации вообще SSD диски нужно ставить, RAID10 и 10Г сеть и не думать о производительности.

У себя для увеличения скорости работы 1С8 в режиме файлов, пробросил целиком SSD диск в виртуалку с 1С и сделал его отдельным диском для баз и кэшей windows.


Ок. Спасибо. Попробую потеснить с ссд. Просто нет столько ссд :( на тесты конечно хватит. А вот с сеткой пока не замарачиваюсь. Лежит комплект для оптики 4g. Свитч 24 порта и 7 двухголовых 4г сетевых. Думаю для начала хватит. Тут надо определиться как все правильно именно концептуально сделать.


Концептуально у тебя NAS с райд-пеналити 6 на запись. Итого со всего NASа ты получаешь, если повезет, в районе 160-200 iops. Примерно уровень 1 10к-диска. 6 или для архивов, или для ssd. У тебя ни то, ни другое. Не знаю, поддерживает ли р400 ссд-кеш, но если да, то можно попробовать (или перейти на софтовый рейд). Впрочем самое простое сменить рейд на 10.

И надо помнить, что для виртуализации линейная скорость - не главное. Тем более ты её легко получаешь на достаточно маленьком количестве дисков. А вот иопсы.



Не знаю, поддерживает ли р400 ссд-кеш

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

Ок. Спасибо. Попробую потеснить с ссд. Просто нет столько ссд

У меня трудится для этих целей lvmcache

Концептуально, возьмите инструмент для тестов и начинайте. Потестируйте на IOPSы - один диск SATA,затем SSD. На НАС RAID10 сделайте - его потестируйте на IOPS. Подмонтируете диск с НАС на ноду с proxmox через 1Г, его потестируйте на IOPS. Посмотрите загрузку сетевого интерфейса - сколько пакетов генерит тест дисковой подсистемы на IOPSы, полоса какая тратится, можно на коммутаторе или сервере.
Виртуалки поверх LVM размещайте, а не в файле(поверх файловой системы).
Двух головые сетевухи - хорошо, можно etherchannel собрать если потребуется и если свич поддерживает.
Сделали шаг - тестируйте.
SSD кэш на контроллере, тоже может помочь - хотя бы иногда на запись.

Vlad-76 ★★★ ( 20.02.17 11:15:17 )
Последнее исправление: Vlad-76 20.02.17 11:17:31 (всего исправлений: 1)


Насколько я помню, в теории цефа тебе даже не надо делать рейд0, он сам размазывает данные по всем дискам, которые есть в наличии. Другое дело, что в нашем тестировании 3 ноды на 16 дисков проиграли в линейке и иопсах обычному рейду 10 из 8 дисков. И это еще не было релокейшна данных.

Но как такового выбора у тебя нет. Локально хранить данные на серверах - не вариант для ХА, NAS у тебя один и без репликации - точка отказа.

Тестируй цеф, авось нормально со скоростью будет.

диски - это расходники. Вылетать по любому будут. Поэтому просто RAID страйп - скорость прибавит, но надежности нет. софтварный RAID еще и админить нужно уметь.

а еще лучше - перед тестами на IOPSы проведите тесты на аварии - смоделируйте замену диска в Вашем решении, выдергивайте на горячую и меняйте на другой. Корзина позволяет это делать? Пройдитесь заранее по возможным вариантам аварий.

Если nas с двумя контроллерами, то точкой отказа можно считать всё остальное. Цеф можно даже не тестировать, ибо в данной конфе заведомо проигрышный вариант, да и вообще цеф по 1g - это боль и страдания.


спасибо за советы.. уже кой-чего почитал и слегка у меня в башке проясняться стало.
Добавлю вводных данных:
1) К доисторическому насу ХП нашлась еще одна архаичная коробка от инфотренда. На 8 дисков (умеет двойки сата) с контроллером scsi320 Такой себе раритетный ДАС. Ну а контроллеров на объявлениях - кучи за копье. Вот еще одна бекапная точка. Да медленно, но скорость для бекапа вроде как не принципиальна?
2) Тут писали про цеф на 1Г. Согласен - это изврат. Но я же говорил, что на всех мамках по 2 сетевухи 1г, и свитч умеет 802,3ad; и медь я буду юзать только для отладки — когда все со стенда переползет в стойку - я поставлю 4гб сетевухи (которые все 2х головые) и опять мне бондинг в помощь.
3) Спасибо за наколку про lvmcache!

По моему нужно настраивать и тестить точно так как будет в продакшене. без каких либо последующих переездов и замены железа тем более, что Вы хотите производительность (или ее проверить хотя бы) уже сейчас
Вы это реально все ЭТО хотите под бизнес задачи настроить или чтобы просто хоть как то взлетело?

Vlad-76 ★★★ ( 20.02.17 16:45:10 )
Последнее исправление: Vlad-76 20.02.17 16:48:16 (всего исправлений: 1)


ну да. хотя я еще не владею нужным объемом информации для запуска его.. в теории-то — все гладко :) как обычно :)
свитч медный точно умеет 802,3ad (hp procurve 4104) - уже проверил. в линейном режиме 160+мегабайт/сек(2 машины с ссд дали скорость :) походу уперлось все на уровне ИО, что меня вполне устраивает), с мелочевкой пока не игрался.. но вечером опробую

Сетевушки qlogic qle2462

Свитч ibm 2005-r18

Если у Вас уже есть картинка в голове, собирайте помаленьку - тем более что Вам это в кайф и тестируйте. Может что еще по дороге вылезет.

бизнес задачи - имелось ввиду, когда у Вас останавливается сервер или сервисы, а на нем 100 человек сидят для которых или 1С или файлы или база какая нибудь нужна и 100 человек просидели сутки без работы. + клиенты, которые позвонили в офис и были посланы нафиг по причине аварии сервера. А если еще бизнес задачи без выходных?

Vlad-76 ★★★ ( 20.02.17 18:24:51 )
Последнее исправление: Vlad-76 20.02.17 18:32:58 (всего исправлений: 1)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Удаление узла из 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

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

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

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. Полноценная платформа виртуализации

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

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

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

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

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

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

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

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



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

Proxmox VE vs RHEV





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


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





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


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






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





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


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 на сайте производителя. Также на время установки нам понадобятся монитор и клавиатура.

Важно! Примите во внимание что по умолчанию на сервер также можно зайти пользователем 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 — радость сисадмина

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

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

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

Если в вашем сервере есть HDD и SSD, то не следует их смешивать в одном пуле т.к. запись данных будет балансироваться по быстрому и медленному дискам.

Более разумно создать два пула ресурсов, один быстрый на SSD и другой медленный на HDD.

Ниже изложенное делалось на Proxmox 7.0-11 в кластере из 5 серверов.

Содержание

Можно, конечно, попытаться ускорить работу Ceph выносом журнала и метаданных на SSD, но надо иметь в виду, что сильно этим не ускориться т.к. журнал не будет работать как кеш чтения и только лишь ускорит запись, к тому же его не имеет смысла делать большим размером.

Важно также, что нельзя один физический SSD отдать и под журнал и под метаданные. При этом один физический SSD может использоваться под журналирование всех HDD в сервере, аналогично и про метаданные.

Т.о. попытка такого ускорения потребует отдать два физических SSD на один сервер. Попытки нарезать LVM и отдать вместо физического диска LVM у меня не получилась.

Из GUI всё сделать не получится, надо будет ввести пару команд в консоли.

В начале надо создать хотя бы один OSD из HDD и хотя бы один OSD из SSD, без этого не получится следующий шаг.

На любом из хостов выполните:

Здесь replicated_hdd и replicated_ssd просто названия ролей, вы можете подставить свои.

Если ругается типа:

. значит вы не выполнили Шаг 1. Пока у вас не будет хоть одного OSD типа hdd, ssd, nvme - ceph не даст создать роль.

В GUI любого хоста идёте в Ceph->Pools и по Create создаёте новый пул, у которого в качестве роли указываете одну из созданных на шаге 2.

Linux_Deep_24.12-5020-393b79.jpg

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

Итак, как-то мне достался в наследство кластер Proxmox (версия 3.4) из 6 нод (предположим, с именами машин pve01 — pve06). Меня предупредили, что кластер периодически разваливался, выпадали ноды, прерывались бэкапы и т. д. и это лечилось перезагрузкой нод. Работы и так было очень много и ещё приходилось отвлекаться и на это. Конечно, такое положение дел мне не нравилось, поэтому в качестве временного обходного решения я написал простенький приведённый ниже скрипт.

Симптомы

Скрипт для пересборки кластера

Скрипт пытается перезапустить некоторые ключевые сервисы кластера. В итоге сетевые подключения должны переинициализироваться и через несколько минут кластер может быть восстановлен. Не принципиально на какой ноде запускать, просто нужно учесть в нём все ноды и в данном случае скрипт запускается пользователем root на ноде pve01.

Если в вашей версии Proxmox вместо ntp используется chrony, то это нужно учесть, конечно. Да и вообще, проверить, все ли эти сервисы у вас используются. В моём случае этот скрипт решал почти любые проблемы с кластером или нодами индивидуально.

Позже я собрал ещё один кластер на Proxmox 5 и с ним таких проблем не было.

Читайте также: