Пересборка кластера Proxmox

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


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


Симптомы


Развалился кластер Proxmox — некоторые ноды красные и недоступны из web-интерфейса. При этом все виртуальные машины работают. В логах /var/log/daemon.log и /var/log/syslog есть сообщения такого вида:


ipcc_send_rec failed: Transport endpoint is not connected
ipcc_send_rec failed: Connection refused



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


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


#!/bin/bash
echo "######" Перезапуск локальных сервисов "######"
service ntp restart
service pvedaemon restart
service pvestatd restart
service pve-cluster restart
service pve-manager restart
service pveproxy restart

echo "######" Начинаю перезапуск удалённых сервисов "######"
for PVE in pve02 pve03 pve04 pve05 pve06
do
echo "######" Перезапуск сервисов на $PVE "######"
ssh root@$PVE -t service ntp restart
ssh root@$PVE -t service pvedaemon restart
ssh root@$PVE -t service pvestatd restart
ssh root@$PVE -t service pve-cluster restart
ssh root@$PVE -t service pve-manager restart
ssh root@$PVE -t service pveproxy restart
done



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


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


Добавить комментарий

Автору будет очень приятно получить обратную связь.

Комментариев 0