Proxmox Backup Server без 24/7: включение и сон по расписанию

Решил вынести Proxmox Backup Server на отдельную машину. Поскольку держать её включённой 24/7 не вижу смысла, реализовал у себя автоматическое включение и перевод сервера в сон по расписанию (cron) для экономии электроэнергии.

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

Настройка Proxmox Backup Server

Включение Wake-on-LAN в BIOS

Первым делом необходимо настроить BIOS. Он продолжает работать даже при выключенном компьютере (пока тот подключён к сети электропитания), в отличие от операционной системы.

  1. Зайдите в BIOS, используя клавишу, подходящую для вашей материнской платы (чаще всего Del, Esc, F2, F12).

  2. Найдите параметр, связанный с Wake-on-LAN. Обычно он расположен во вкладке Power, Power Management или Electropower.

  3. Установите значение Enabled (или Automatic).

  4. Сохраните настройки и перезагрузитесь (обычно клавиша F10).

Настройка WoL в системе PBS

Далее настраиваем сам Proxmox Backup Server через терминал.

Устанавливаем утилиту:

sudo apt install ethtool -y

Определяем сетевой интерфейс:

ip addr

Найдите интерфейс с локальным IP-адресом (например, 192.168.x.x или 10.10.x.x) и запишите:

  • имя сетевого устройства (например, eno1)

  • MAC-адрес

Проверяем поддержку Wake-on-LAN:

sudo ethtool eno1

Найдите строку Supports Wake-on. Если в ней присутствует буква g, значит WoL поддерживается.

Включаем WoL:

sudo ethtool -s eno1 wol g

Чтобы WoL включался автоматически при старте системы, отредактируйте конфигурацию сети:

sudo nano /etc/network/interfaces

В конец блока интерфейса (iface eth0 inet или аналогичного) добавьте:

post-up /usr/sbin/ethtool -s eno1 wol g

Сохранитесь и выйдите из редактора.

Для принудительного перевода сервера в спящий режим используйте:

systemctl suspend

Настройка Proxmox Virtual Environment

На сервере с Proxmox VE устанавливаем утилиту для пробуждения PBS:

apt install wakeonlan

Пробуждаем сервер с бэкапами командой:

wakeonlan xx:xx:xx:xx:xx:xx

(вместо x подставьте MAC-адрес PBS)

Если сервер включился — поздравляю, WoL работает корректно.

Настройка cron

На Proxmox Backup Server

Добавляем задание, которое будет переводить сервер в сон:

00 12 * * * systemctl suspend

Каждый день в 12:00 сервер будет уходить в спящий режим (если он включён).

На Proxmox VE

Добавляем задание для пробуждения PBS:

45 23 * * 7 wakeonlan xx:xx:xx:xx:xx:xx

Команда будет пробуждать сервер каждое воскресенье в 23:45.

Все бэкапы и обслуживание настраиваем в интервале с 00:00 до 12:00.

У меня уже несколько бэкапов работают по такой схеме — полёт нормальный.

Не претендую на истину в последней инстанции, но для новичков, думаю, подойдёт.
Если у кого есть идеи или улучшения — пишите, будет интересно обсудить.

5 лайков

В целом, рабочий вариант, от меня сердечко.
Но я бы добавил от себя несколько НО

  1. С китайскими миниками все сложно, но в нормальных BIOS есть функционал включения и выключения по расписанию, можно начать с поиска такой опции, а если не находится, то идти в сторону wake on lan
  2. Выкючение я бы не делал прям так жестко, можно попробовать по таймеру периодически проверять наличие активных сессий и выключать только при отсутствии оных
  3. Я вынес PBS в виртуалку (а потом в LXC контейнер) на самом NAS, чтобы он зря не работал 24/7, бэкапирование идет не только в PBS, поэтому сервер работает уже не просто так
  4. Я бы рассматривал подобный режим работы только для холодных бэкапов, я пока только двигаюсь в этом направлении, для рабочей версии PBS сомнительно, если честно.
  5. Спящий режим в течение 6.5 дней подряд опасно в пане того, что при отсутствии ИБП, да и с ним тоже, полное выключение с физическим отключением от системы питания даст выше надежность, нежели режим, в котором в оперативке хранится текущее состояние и при потере питания ОС спасибо не скажет, а для выключения (в случае отключения питания) сервер надо сначала разбудить, а потом отправить в полноценное завершение работы

Вот мой суточный график нагрузки пула с бэкапами (но у меня недавно было несколько эпапов оптимизации: последний + недавно произошла полная очистка бэкапов PBS, поэтому их у меня не так много сейчас и нагрузка тоже не высокая), несколько месяцев назад этабы были значительно шире, вплоть до пересечения (когда следующий этап начинается до того, как закончился предыдущий)


И более детально:

Тут видно, что есть относительно спокойные участки, а именно с 12 до 18 и после 18 до 00

  • В 00:00 и 02:00 запланированы бэкапы приожений и конфигураций
  • В 4:00 бэкапируются виртуалки и контейнеры
  • В 6:00 запускается сборщик мусора
  • В 9:00 запускается проверка
  • Каждые 6 часов запускается бэкапирование компьютера (00, 06, 12, 18 часов) (добавил смещение 30 минут)

В целом, если раз в неделю деать резервные копии, то нет смысла 6.5 дней простаивать, но у меня максимальное время между резервными копиями составляет 24 часа, минимальное 6 часов и я планирую сократить время до 3х часов для некоторых типов резервных копий.
Если полное копирование виртуалки раз в сутки в целом, является промышленным стандартом, то в БД активно именяющимися файлами это время обычно сокращается, поэтому сами сервисы думаю бэкапировать раз в 12 часов, а рабочий компьютер сократить до 3 часов, еще больше приблизив к подходу TimeMachine.

Может у Вас неделя и не играет роли, а у меня было такое, что приходилось восстанавливать файлы, измененные несколько часов назад, а с почтовым сервером не успел сдерать РК и пришлось настраивать с нуля. Даже в рамках хомлабы мне было бы неприятно настраивать с понедельника по пятницу какой-то сервис или виртуалку, а потом в субботу/воскресенье потерять все изменения за неделю.

Как уже писал в начале, я рассматриваю вариант поднятия холодного бэкапа из блока 1 правила 3-2-1 с еженедельным сбросом туда текущего состояния без исторических данных (либо с историческими, но прямо древних-древних) и не с спящим режимом

1 лайк