Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.
Кратко о задаче
Популярность программного обеспечения для виртуализации Proxmox VE объясняется ее открытым исходным кодом. Продукт используют как есть или дорабатывают ПО под индивидуальное техническое задание. Платформа разрабатывалась на Debian Linux с ядром RHEL, поэтому особых проблем в поиске разработчика с профильным опытом обычно не возникает. К тому же она и в оригинальном виде обладает достаточно мощным функционалом.
- Продукт предлагает 2 типа виртуализации: полный вариант с KVM и контейнеры с LXC.
- Максимальное количество физических машин в одном кластере составляет 32 единицы.
- Предпочтительно использовать один и тот же релиз Proxmox на всех активных хостах.
- Режим High-Availability требует подключения в кластер хотя бы 3 нод.
- Взаимодействие осуществляется через порты UDP/5404, UDP/5405, TCP/22.
- Задержка в сети, объединяющей ноды, не должна превышать 2 миллисекунд.
Скачивать дистрибутив платформы рекомендуется только с официального сайта ее разработчика. Распространяется программа в виде ISO-файлов, доступных как для прямого скачивания через браузер, так и в виде торрента. Иные источники могут представлять отредактированные версии, пусть и с дополненным функционалом, но неудобные в управлении.
Процедура установки довольно короткая:
- Пользователи удаленных выделенных серверов на simple-server.tech могут воспользоваться KVM-консолью, через которую нужно смонтировать ранее скачанный образ.
- Выбрать диск, куда планируется инсталляция программного обеспечения. Они доступны в выпадающем списке открывшегося окна графического интерфейса.
- Раздел Options предлагает задать дополнительные параметры разметки, включая настройки региона (в нашем случае указывается Russia).
- Следующим шагом программа установки предлагает указать пароль для авторизации ROOT и электронный адрес системного администратора Proxmox-кластера.
- Внести полное имя домена, IP-адрес сервера, маску подсети, основной шлюз, адрес DNS-сервера (в соответствующие поля следующего окна).
- По завершении процедуры настройки остается перезагрузить сервер кликом на кнопку Reboot, чтобы применить внесенные изменения
Теперь можно подключиться к веб-интерфейсу системы, доступному при вводе адреса в формате https://IP_адрес_сервера:8006. Но перед использованием желательно обновить релиз до актуального состояния и установить защитные программы вроде Fail2Ban, защищающие системы от атак методом брутфорс. Последующие шаги запуска кластерного сервера включают разметку хранилищ и развертывание виртуальных машин, инсталляцию операционных систем.
Создадим тестовый кластер
Перед объединением серверов в кластер, где будут размещаться важные данные, рекомендуется ознакомиться с инструкцией для Proxmox VE и запустить систему в тестовом режиме, чем мы и займемся на примере 3 серверов с идентичной конфигурацией (2 процессорных ядра и 2 ГБ оперативной памяти). Первоначально при инсталляции ОС каждый сервер работает в Standalone Mode.
- Создать новый кластер нажатием на кнопку Create Cluster в разделе Cluster утилиты Proxmox.
- Задать название будущего Cluster Proxmox и выбрать нужное соединение с сетью.
- Кликнуть на кнопку Create, после этого сервер сформирует 2048-битный защитный ключ.
- Сообщение «TASK OK» подтверждает успешное завершение запущенного процесса.
Если запустить повторную проверку статуса, можно убедиться, что используемые Proxmox Node для развертывания**** виртуальных машин теперь работают в режиме кластера.
Как подключиться к кластеру
Первое, что необходимо сделать для присоединения к кластеру – открыть доступ к информации, которая понадобится. Операция выполняется нажатием на кнопку Join Information в разделе Cluster. Из открывшегося окна требуется скопировать содержимое одноименного пункта. В нем закодирован адрес сервера, к которому предстоит подключаться, его цифровой отпечаток. При нажатии на кнопку Join Cluster откроется окно, куда нужно вставить скопированные данные.
Поля Peer Address и Fingerprint будут заполнены автоматически. Остается ввести пароль для ROOT от Node №1 Proxmox VE Cluster и кликнуть на Join. При коннекте с кластером веб-страница GUI часто перестает автоматически обновляться, поэтому лучше делать это вручную.
Точно таким же образом подключают оставшиеся ноды, а мы в итоге получаем полноценный кластер, работающий на базе 3 серверов.
Особенности организации High Availability
Продукт Proxmox VE поддерживает функции HA по умолчанию в обоих режимах виртуализации – как с KVM, так и LXC. При помощи утилиты ha-manager сервер выявляет любые ошибки и отказы, отрабатывает их аварийным переключением с отказавшего хоста на работоспособный. администратор сервера получает максимально полную автоматизацию функции отказоустойчивости нодов любой конфигурации.
Но для этого требуется предварительно создать общее файловое хранилище. Программный стек ha-manager будет непрерывно отслеживать доступность виртуальных машин (контейнеров), попутно взаимодействовать в асинхронном режиме с другими нодами кластера. Общее хранилище позволит безопасно переключать их с сохранением данных без прекращения процесса вычислений, несмотря на вероятные сбои в одном из узлов в Proxmox Network.
В качестве примера развернем файловое хранилище NFS с адресом 192.168.88.18. Выполняется эта операция в том же графическом интерфейсе, где ранее создавался отказоустойчивый кластер. Пункт доступен в меню по пути Datacenter – Storage – Add – NFS. В открывшемся окне нужно заполнить графу ID и Server (наименование хранилища и IP-адрес).
В выпадающем списке Expert нужно установить нужную директорию из доступных. В Content вносится тип данных, с которым предстоит работать. После клика на кнопку Add хранилище подключится ко всем активным нодам одновременно. Теперь при создании виртуальных машин остается указывать его в качестве основного носителя.
Перед настройкой HA создадим контейнер с операционной системой Ubuntu. После его запуска нужно зайти в раздел программы Proxmox VE Datacenter – HA – Add. В открывшемся окне указать ID контейнера, максимальное количество попыток перезапуска и перемещения между хостами. Это значение будет использоваться по умолчанию в течение всей работы системы.
Как только цифра фактических сбоев превысит указанную, нода будет помечена сбойной и переведена в режим Error. Активируется режим по нажатию кнопки Add, в этот момент ha-manager оповестит активные хосты кластера о контроле контейнера с указанным ID. И что в случае отказа системы его нужно запустить на другом сервере.
Проверим реагирование на сбои
Теперь рекомендуется проверить срабатывание механизма защиты. Например, можно отключить питание от хоста №1, это гарантированно обеспечит регистрацию отказа. В интерфейсе программы можно сразу увидеть реакцию системы. В течение 120 секунд виртуальная машина возобновит работу с момента заморозки.
Временную остановку придется учитывать в реальной работе. Понятно, что в идеале комплекс должен срабатывать мгновенно, но задержки исполнения, в том числе возникающие внутри сети, никуда не деть. Если хочется проверить реагирование на принудительную установку кворума, это можно сделать путем ввода консольной команды:
По отчету Proxmox VE пользователь увидит, что механизм HA отработал штатно и переключил VM на хост №3. Если заново включить первые 2 сервера, работа кластера автоматически восстановится и система будет готова опять отрабатывать любые сбои. Правда, активным останется третья нода, которую можно поменять на первую вручную, но это необязательное действие.
Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.