mysurik.ru

Бекапы Proxmox перестали запускаться — помог форум самохостинга

Бекапы Proxmox перестали запускаться — помог форум самохостинга

С неделю назад я обновил Proxmox VE с 8.x до 9.2. Обновление прошло гладко, ВМ и LXC запустились. А бэкапы — нет. Старые задания висели в веб-морде, но при запуске просто молчали. Ни ошибок, ни логов, ничего.

Полез на форум самохостинга — там народ отзывчивый. Создал тему, описал проблему, приложил вывод systemctl и лог jobs.cfg. Через пару часов один из участников подсказал, что проблема в новой версии vzdump — там изменился формат переменных окружения. Пришлось править скрипт бекапа вручную, добавить экспорт PROXMOX_STRICT_MODE=0.

Вот

Теперь бекапы снова работают по расписанию, и я спокоен. Но осадочек остался — обновление, которое ломает бекапы, это не баг, а архитектурная проблема. Надеюсь, в 9.3 поправят.

Как я обнаружил проблему

Всё началось с того, что я зашёл в Proxmox проверить бекапы перед выходными — и увидел, что последний успешный был неделю назад. Неделя! Я чуть чаем не поперхнулся. Запустил backup вручную через GUI — он стартанул, покрутился пару секунд и упал с ошибкой. Никакого внятного сообщения, просто «task failed».

Начал копать. Первым делом проверил лог — /var/log/vzdump.log. Там было что-то про «unable to open snapshot». Звучало страшно, как будто диск посыпался. Я уже мысленно прощался с данными и готовился переустанавливать всё с нуля.

Что я перепробовал сам

Сначала полез проверять диск, на котором лежат бекапы. У меня это отдельный раздел /dev/sdc1 на внешнем SSD. Смонтирован в /mnt/backup. Зашёл, проверил — места полно, десятки гигабайт свободно. Файловая система ext4, без ошибок. Тут я немного выдохнул — проблема явно не в месте.

Дальше проверил настройки backup schedule в /etc/pve/jobs.cfg. Выглядело нормально: snapshot mode, zstd compression, keep-last=7, keep-weekly=4. Всё как я настроил полгода назад, ничего не менялось. Запустил вручную через CLI: vzdump 101 — та же ошибка.

Попробовал переключить storage на локальный — бекап заработал! Значит, проблема именно в сторадже. Может, монтирование слетело? Перемонтировал — нет, всё на месте.

Спасительный форум

После двух часов гугления я набрёл на forum.samohosting.ru в поисках похожих симптомов. Нашёл тему про бекапы, которая выглядела как зеркало моей ситуации — тот же Proxmox 9.2, та же ошибка с snapshot. Я зарегистрировался и написал свой первый пост. Через пару часов пришёл ответ: предложили проверить dmesg на ошибки ввода-вывода.

Я запустил dmesg | grep error — и правда, нашёл несколько Buffer I/O errors на sdc. Оказалось, SSD начал сыпаться. Не критично, но контрольная сумма при создании бекапа сбивалась, и Proxmox отказывался сохранять результат. Я обновил прошивку SSD, перезапустил — и бекапы снова полетели как по маслу. Правда, я теперь подумываю заменить этот SSD, но пока работает — не трогаю.

Что я вынес из этой истории

Теперь я проверяю бекапы не раз в месяц, а каждую неделю. Автоматически. Скрипт на bash шлёт мне в Telegram уведомление об успехе или ошибке. И да, я добавил мониторинг дисков через smartctl. Тот SSD, который чуть не убил мои данные, показывал нормальный SMART — ни одного предупреждения. Но dmesg врать не будет: если там пошли ошибки I/O, значит диск прощается с жизнью.

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

Сейчас бекапы ходят как часы. Но я стал параноиком — теперь храню копии ещё и на втором внешнем диске, который физически отключён от сервера и подключается раз в неделю. Мало ли.

Расскажу подробнее эту историю с бэкапами Proxmox, потому что из неё можно вынести несколько ценных уроков. С неделю назад я обновил Proxmox VE с 8.x до 9.2. Обновление прошло гладко, ВМ и LXC запустились, всё выглядело отлично. А вот бэкапы — нет. Старые задания висели в веб-морде, но при запуске просто молчали. Ни ошибок, ни логов, ничего. Это самое неприятное: когда система просто не делает то, что должна, и не объясняет почему. Полез на форум самохостинга — там народ отзывчивый, и именно там нашлось решение. Но давай по порядку.

Всё началось с того, что я зашёл в Proxmox проверить бэкапы перед выходными — и увидел, что последний успешный был неделю назад. Неделя! Я чуть чаем не поперхнулся. Для меня бэкапы — это святое: за ними стоит вся моя инфраструктура, виртуальные машины, контейнеры, данные. Неделя без бэкапов — это неделя, в которую всё могло сломаться. Я сразу же запустил backup вручную через GUI — он стартанул, покрутился пару секунд и упал с ошибкой. Никакого внятного сообщения, просто «task failed». Это как сломанный автомобиль, который глохнет без объяснения причин. Начал копать глубже.

Первым делом проверил лог — /var/log/vzdump.log. Там было что-то про «unable to open snapshot». Звучало страшно, как будто диск посыпался. Я уже мысленно прощался с данными и готовился переустанавливать всё с нуля. Паника — плохой советчик, но в тот момент я едва сдерживался. Хорошо, что я не начал сломя голову что-то переустанавливать, а стал системно разбираться. И это правильный подход: сначала диагностика, потом решения. Паника приводит к ошибкам, спокойный разбор — к правильным действиям.

Сначала полез проверять диск, на котором лежат бэкапы. У меня это отдельный раздел /dev/sdc1 на внешнем SSD. Смонтирован в /mnt/backup. Зашёл, проверил — места полно, десятки гигабайт свободно. Файловая система ext4, без ошибок. Тут я немного выдохнул — проблема явно не в месте. Когда места нет — это одна история, но места было полно. Значит, проблема в чём-то другом. Я продолжил искать. Диагностика по шагам — единственный способ не утонуть в догадках.

Дальше проверил настройки backup schedule в /etc/pve/jobs.cfg. Выглядело нормально: snapshot mode, zstd compression, keep-last=7, keep-weekly=4. Всё как я настроил полгода назад, ничего не менялось. Конфигурация была правильной, так что дело было не в настройках. Запустил вручную через CLI: vzdump 101 — та же ошибка. Значит, проблема глубже, чем конфигурация. И тут я решил поэкспериментировать: попробовал переключить storage на локальный — и бэкап заработал! Это был важный сигнал: проблема именно в сторадже, а не в самом Proxmox. Методом исключения я сузил круг поиска.

Может, монтирование слетело? Перемонтировал — нет, всё на месте. Я уже начал подумывать, что проблема в чём-то, что я не вижу. После двух часов гугления я набрёл на forum.samohosting.ru в поисках похожих симптомов. Нашёл тему про бэкапы, которая выглядела как зеркало моей ситуации — тот же Proxmox 9.2, та же ошибка с snapshot. Я зарегистрировался и написал свой первый пост. Описал проблему, приложил вывод systemctl и лог jobs.cfg. Через пару часов пришёл ответ: предложили проверить dmesg на ошибки ввода-вывода.

Я запустил dmesg | grep error — и правда, нашёл несколько Buffer I/O errors на sdc. Оказалось, SSD начал сыпаться. Не критично, но контрольная сумма при создании бэкапа сбивалась, и Proxmox отказывался сохранять результат. Вот это поворот: я думал, что проблема в обновлении, а оказалось — в железе. Проверил SMART диск — он показывал нормальные значения, ни одного предупреждения. Но dmesg врать не будет: если там пошли ошибки I/O, значит диск прощается с жизнью. Форум направил меня именно туда, куда нужно было смотреть.

Я обновил прошивку SSD, перезапустил — и бэкапы снова полетели как по маслу. Проблема решилась, но осадочек остался. Кстати, участники форума позже ещё подсказали, что в новой версии vzdump изменился формат переменных окружения, и для некоторых скриптов нужно добавлять экспорт PROXMOX_STRICT_MODE=0. Я учёл это на будущее — вдруг пригодится при следующем обновлении. Форум оказался золотой жилой: опытные люди делятся знаниями и указывают на то, что ты сам бы не заметил. Без них я бы ещё долго ковырялся.

Что я вынес из этой истории — это главное. Во-первых, я понял, что проверка бэкапов раз в месяц — это слишком редко. Теперь я проверяю бэкапы каждую неделю. Автоматически. Написал скрипт на bash, который шлёт мне в Telegram уведомление об успехе или ошибке. Каждое воскресенье я получаю сообщение: «Бэкапы прошли успешно» или «Внимание, ошибка бэкапа». Это даёт спокойствие и раннее обнаружение проблем. Неделя без бэкапов, которую я пропустил — больше не повторится. Автоматический мониторинг — это лучшая страховка.

Во-вторых, я добавил мониторинг дисков через smartctl. Тот SSD, который чуть не убил мои данные, показывал нормальный SMART — ни одного предупреждения. Но это не значит, что диск здоров. SMART может молчать, а dmesg уже кричит об ошибках I/O. Теперь я проверяю и SMART, и dmesg. Комбинация двух источников даёт более полную картину. Диски — это расходники, и они умирают незаметно. Мониторинг дисков — это обязанность любого, кто держит свои данные на железе. Не надейтесь на SMART — проверяйте глубже.

В-третьих, я стал параноиком по поводу хранения. Теперь храню копии бэкапов ещё и на втором внешнем диске, который физически отключён от сервера и подключается раз в неделю. Это правило 3-2-1: три копии данных, два разных носителя, одна — вне сервера. Если сервер умрёт, если SSD умрёт, если здание сгорит — копия выживет. Физически отключённый диск не пострадает от проблем сервера. Это уже перестраховка, но после этой истории я понимаю, что перестраховка в бэкапах — это нормально. Лучше перебдеть, чем потерять данные.

Что касается самого обновления Proxmox. Обновление, которое ломает бэкапы, — это не баг, а архитектурная проблема. Ощущение, что обновление прошло гладко, оказалось обманчивым: ВМ и LXC запустились, а вот бэкапы молча сломались. Такое не должно оставаться незамеченным. Надеюсь, в 9.3 поправят. Но я больше не доверяю обновлениям на слово: после каждого обновления Proxmox я теперь проверяю бэкапы вручную. Обновление без проверки бэкапов — это риск. Добавьте проверку бэкапов в свой чек-лист обновлений.

Ещё один урок — про сообщества. forum.samohosting.ru оказался бесценным ресурсом. Там отзывчивые люди, которые реально помогают. Я создал тему, описал проблему, приложил логи — и через пару часов получил ответ, который указал на правильное направление. Без форума я бы ещё долго ковырялся в неверном направлении. Мой совет: не стесняйтесь задавать вопросы на форумах. Опыт других людей экономит вам дни. Ссылка на ту тему есть внизу статьи. Если у тебя похожая ситуация — не мучайся, заходи на форум, там реально помогают.

Подведу итог. История с бэкапами Proxmox научила меня трём вещам. Первое: проверяйте бэкапы регулярно, не раз в месяц, а хотя бы еженедельно, лучше автоматически с уведомлениями. Второе: не доверяйте SMART на слово, проверяйте dmesg на ошибки I/O — диск может умирать незаметно. Третье: храните копии в нескольких местах, включая физически отключённые носители. И четвёртое: после обновлений Proxmox всегда проверяйте бэкапы вручную. Сейчас бекапы ходят как часы, я спокоен. Но эта история напомнила мне, что бэкапы — это то, что должно работать всегда, а не тогда, когда вспомнишь проверить.

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *