Устранение неполадок¶
Короткий FAQ. Полную таблицу устранения неполадок на стороне хоста для VM через SSH (permission-denied, проверка ключа хоста, отсутствующие переменные шаблона и другое) см. в руководстве по резервному копированию VM через SSH на GitHub.
Что-то подключено неправильно¶
Откройте /spike в веб-интерфейсе. Проверка интеграции с хостом проверяет каждое монтирование и CLI (сокет Docker, libvirt, restic, qemu-img, rclone) и сообщает о любых недостающих частях. Начните здесь, прежде чем предполагать ошибку: отсутствующее монтирование или недостижимый хост проявляются немедленно.
Я не могу достучаться до веб-интерфейса¶
BombVault обслуживает HTTPS из коробки на порту 3443 (самоподписанный сертификат), поэтому откройте https://<your-unraid-ip>:3443. Примите предупреждение о самоподписанном сертификате или поместите BombVault за обратный прокси со своим собственным сертификатом. Если вы работаете с HTTP_ONLY=true, он обслуживает обычный HTTP на порту 3000 вместо этого (предназначено для использования за прокси, завершающим TLS).
Я потерял свой APP_KEY¶
APP_KEY выводит пароль репозитория restic. Без него (и без набора для восстановления ключа шифрования) зашифрованные резервные копии не могут быть восстановлены. Вот почему Панель пилит вас, чтобы вы загрузили набор для восстановления. См. Внешняя копия и восстановление. Сгенерируйте ключ командой openssl rand -hex 32 и храните его вне сервера, прежде чем полагаться на какую-либо резервную копию.
Резервное копирование VM не подключается¶
Резервное копирование VM обращается к libvirt через SSH, никогда через монтирование.
- Убедитесь, что SSH включён на хосте и публичный ключ BombVault авторизован в
/root/.ssh/authorized_keys(Настройки, Интеграции, SSH хоста показывает ключ и кнопку Проверить соединение). - В пользовательской сети
br0.xустановитеLIBVIRT_HOSTна LAN-IP вашего Unraid (контейнер не может достучаться до хоста черезhost.docker.internalтам). Включите Settings, Docker, Host access to custom networks. - Если вы изменили SSH-порт Unraid, установите
LIBVIRT_SSH_PORTв соответствие. - Полная пошаговая диагностика (тест достижимости, маршрутизация VLAN,
Permission denied (publickey),Host key verification failed) находится в руководстве по резервному копированию VM через SSH.
Живой снимок VM не выполнился¶
Живым снимкам нужен qemu guest agent, установленный в VM, и диск на /mnt/cache (или /mnt/diskX), не /mnt/user. На выключенной VM живой автоматически откатывается к корректному. Корректное резервное копирование выключает VM, резервирует диски, затем перезапускает её, поэтому оно всегда согласовано.
Резервное копирование завершилось с ошибкой "repository is already locked"¶
Обычно это осиротевшая блокировка restic, оставленная, когда контейнер обновлялся или перезапускался в середине операции. BombVault обнаруживает доказуемо осиротевшую блокировку, принудительно снимает её и один раз повторяет, автоматически. Если это сохраняется, используйте Настройки, Целостность, Разблокировать для затронутого домена, чтобы снять зависшую блокировку вручную. Настоящая проблема всё равно проявляется, а не скрывается. После перезапуска BombVault ждёт, пока такая блокировка десять минут не обновлялась. Ещё работающий restic, например во втором BombVault на том же репозитории, обновляет свою блокировку каждые пять минут.
Моя внешняя копия не произошла после резервного копирования¶
Внешняя репликация по замыслу работает по принципу максимальных усилий, поэтому сбой внешней копии никогда не проваливает локальную резервную копию. Проверьте расписание внешней копии для этого домена (Настройки, Расписания): пустое расписание реплицирует после каждой локальной резервной копии, а частота отправляет реже. Используйте Реплицировать сейчас на странице Внешнее для запуска по требованию и следите за индикатором репликации на Панели.
Восстановление прервалось прежде, чем началось¶
Прежде чем что-либо останавливается или удаляется, восстановление выполняет предполётную проверку конфликтов: оно проверяет, что статический IP контейнера и опубликованные порты хоста свободны. Если другой контейнер уже держит один из них, оно прерывается с ясным, действенным сообщением вместо того, чтобы оставить наполовину завершённое восстановление. Освободите конфликтующий порт или IP, затем повторите.
Обычный экспорт завершился ошибкой вместо записи файла¶
Если шифрование age включено (Настройки), но не задан действительный получатель, экспорт завершается ясной ошибкой вместо записи открытого текста. Добавьте действительного получателя (публичный ключ age или публичный ключ SSH) или отключите шифрование, если вы намерены, чтобы экспорт был в открытом виде. См. Возможности.
Дамп базы данных не удался¶
Неудачный дамп никогда не роняет резервное копирование вокруг себя; он записывается как отдельный неудачный запуск, а причина называет, что исправить.
- Отказ во входе. Дамп входит с переменными пароля самого контейнера (
POSTGRES_PASSWORD,MARIADB_ROOT_PASSWORD,MYSQL_ROOT_PASSWORDили их версиями_FILE). Проверьте их на контейнере базы данных. Переменная_FILE, указывающая на секрет, который пользователь контейнера не может прочитать, даёт тот же отказ. - Не хватает прав. Со случайным паролем root дамп может войти только как пользователь приложения, поэтому содержит одну эту базу, а MySQL 8.4 и новее может отказать вовсе. Задайте контейнеру настоящий пароль root или выключите для него дамп.
- Системным таблицам нужен апгрейд. MariaDB отказывается отдавать дамп, когда её системные таблицы пришли из более старой версии (ошибка 1558). Добавьте переменную
MARIADB_AUTO_UPGRADE=1и перезапустите контейнер или выполните внутри негоmariadb-upgradeодин раз. - Нет инструмента для дампа. Облегчённый или самодельный образ без
pg_dump,mysqldumpилиmariadb-dumpснять нельзя. Возьмите официальный образ или выключите дамп. - Ограничение по времени. Дампу отведено
DB_DUMP_MAX_HOURS(по умолчанию 6), всему резервному копированию вокруг негоBACKUP_MAX_HOURS, а дамп, переставший продвигаться, обрывается черезBACKUP_STALL_HOURS. За последним обычно стоит блокировка, которую держит приложение. Поднимите сработавший предел или снимайте дамп, когда приложение спокойно. - Контейнер приостановлен или перезапускается. Дамп разговаривает с работающим сервером. Если контейнер перезапускается снова и снова, его собственный журнал скажет почему.
- Повреждённый дамп не удалось убрать. Дамп, который BombVault не смог довести до конца, удаляется. Когда это удаление не проходит, дамп остаётся в списке с пометкой о повреждении, и вы можете удалить его там.
Импорт не удался¶
Импорт останавливает контейнер, отодвигает его папку данных в сторону и даёт образу создать на её месте пустую. Если отказывает шаг до самого импорта, старая папка возвращается на место сама. Если отказывает импорт, контейнер остаётся со свежей папкой, а старая лежит рядом как <папка данных>.bombvault-before-import-<отметка времени>; сообщение об ошибке запуска называет точный путь.
Вернуть вручную: остановите контейнер, переименуйте текущую папку данных, чтобы убрать её с дороги, верните сохранённой папке исходное имя и запустите контейнер. На Unraid это делает файловый менеджер на вкладке Shares.
Копия набора данных ZFS завершилась ошибкой или пропустила набор¶
У каждой проблемы есть код причины в квадратных скобках, а страница Наборы данных ZFS перечисляет их все с решением. Три самых частых:
snapshot-loop: снимок не дошёл до BombVault, потому что Host Data не передаёт новые монтирования. Измените контейнер, установите Access Mode для Host Data в Read/Write - Slave и перезапустите BombVault.key-not-loaded: зашифрованный набор, ключ которого не загружен, пропускается. Загрузите ключ командойzfs load-keyи смонтируйте набор; следующая копия его включит.ssh-auth: сервер отклонил ключ BombVault. Карточка подключения на странице ZFS показывает команду, которая его разрешает; выполните её один раз на сервере.
Элемент застрял на "Учится N/10"¶
Большинство проверок аномалий начинается после 10 успешных копий элемента, а счёт начинается заново после Отметить как ожидаемое и после изменения выбора элемента. Элемент без расписания не учится, а контейнеру без appdata не на чем учиться, о чём говорит и его значок.
Хранение перестало удалять старые копии одного элемента¶
Их удерживает открытая критическая аномалия: источник элемента почти пуст, сильно уменьшился, или копия заново сохранила большую часть данных. Откройте аномалию через значок у элемента. Если данных не хватает или они были зашифрованы, сначала восстановите их из указанной последней хорошей копии. Затем подтвердите аномалию или отметьте её как ожидаемую, если изменение ваше, и следующий запуск почистит как обычно. Предпросмотр хранения помечает такой элемент как сохранённый. У элемента ZFS старые копии сохраняет только набор данных, названный в аномалии; остальные наборы данных дерева очищаются как обычно.
Ручная очистка сообщает, что некоторые элементы сохранены¶
Та же причина: очистка не трогает старые копии элемента с такой аномалией и называет его в своём сообщении. Всё остальное очищается как обычно.
Импорт истории сообщает, что репозиторий не удалось прочитать¶
После обновления BombVault один раз считывает размеры прежних копий из каждого репозитория. Репозиторий, недоступный в тот момент, например отключённая внешняя цель или не смонтированная общая папка, указывается на карточке Аномалии в разделе Настройки, Целостность и пробуется снова раз в день. Тем временем его элементы учатся на новых копиях.
Предупреждение о месте на диске не совпадает с панелью Unraid¶
На пользовательской общей папке Unraid (/mnt/user) свободное место относится ко всему массиву, а не к одному диску. Удалённые репозитории измеряются только через удалённые хранилища rclone, которые сообщают свободное место; у репозиториев S3, B2, REST и SFTP данных нет, и на карточке Аномалии они указаны как неизмеряемые.
ИИ-ассистент не может подключиться¶
На странице Сервер MCP описано, что означает каждый код состояния и каждый отказ точки подключения MCP и что с этим делать.
Контейнер постоянно перезапускается или выглядит неработоспособным¶
BombVault сообщает о работоспособности/неработоспособности из собственного /api/health. Инструмент авто-восстановления (такой как Autoheal) может перезапустить его автоматически, если движок когда-либо зависнет. Проверьте журнал контейнера и отчёт /spike на предмет основной причины.
Всё ещё застряли?¶
- Прочитайте полные страницы Конфигурация и Внешняя копия и восстановление.
- Спросите в ветке поддержки Unraid.
- Откройте issue на GitHub.