Перейти к содержанию

Резервное копирование и восстановление

Инструкция соответствует НайсСофт — ИИ Студии 0.3.66.

Что изменилось по сравнению с 0.3.61

Начиная с 0.3.62 резервирование стало отдельным продуктовым контуром. В текущем выпуске есть внутренняя служба nicesoft-ai-studio-backup-manager, административная вкладка «Параметры → Резервное копирование», зашифрованный формат .nsbackup, проверка целостности и штатное восстановление. В 0.3.63 исправлена проверка/восстановление, а в 0.3.64 добавлена видимая индикация длительных операций.

Главное изменение

Старые инструкции про tar.gz и отсутствие команды restore для текущего выпуска больше не применимы. В 0.3.66 аварийный путь ./nicesoft.sh restore <файл.nsbackup> существует и использует ту же защищённую службу, что и веб-интерфейс.

Архитектура

Резервированием занимается отдельная внутренняя служба:

ADMIN в браузере
административный шлюз Студии
nicesoft-ai-studio-backup-manager
MongoDB / pgvector / файлы / YC / TLS / состояние модели

backup-manager:

  • не публикует порт на хост;
  • не получает Docker socket;
  • доступен только через административные серверные маршруты;
  • включён в общую проверку состояния и внутренний мониторинг.

Обычный USER не должен видеть вкладку резервного копирования и не может выполнять её серверные операции.

Что входит в .nsbackup

В копию включаются авторитетные данные, необходимые для восстановления рабочей Студии:

  • MongoDB: пользователи, диалоги, проекты и состояние основной платформы;
  • PostgreSQL/pgvector: векторное хранилище и состояние поиска по знаниям;
  • data/uploads и data/images;
  • база интеграции с Яндекс Облаком;
  • загруженный авторизованный ключ Яндекс Облака;
  • состояние службы управления моделями;
  • сертификаты, локальный центр доверия и состояние Let's Encrypt;
  • навыки и расширения;
  • librechat.yaml, compose.yml, .env, VERSION, UPSTREAM.lock и config/ как аварийный комплект развёртывания;
  • перечень локальных моделей и их объём.

По умолчанию намеренно не дублируются:

  • веса локальных моделей;
  • Redis;
  • Meilisearch;
  • история Prometheus;
  • журналы контейнеров.

Веса моделей считаются воспроизводимыми по сохранённому модельному состоянию. Для полностью изолированного контура организация должна отдельно резервировать сами модельные артефакты.

Формат и криптографическая защита

Файл резервной копии имеет расширение:

.nsbackup

Содержимое шифруется AES-256-CTR, а целостность шифротекста защищается HMAC-SHA256. Для конкретной установки создаётся уникальный 256-битный ключ восстановления.

Ключ восстановления не хранится внутри архива. Его нужно скачать отдельно и хранить вне сервера.

Потеря ключа = потеря возможности расшифровать резерв

Если одновременно потеряны сервер и ключ восстановления, штатно расшифровать .nsbackup невозможно. Храните не менее одной актуальной копии архива и ключа восстановления в отдельной защищённой зоне.

Перед восстановлением служба проверяет:

  1. HMAC всего шифротекста;
  2. безопасную структуру tar-контейнера после расшифрования;
  3. SHA-256 каждого объекта по манифесту;
  4. совместимость версии резервной копии.

Повреждённая копия отклоняется до изменения рабочих данных.

Где хранятся копии

Локальный каталог:

backups/

В интерфейсе показываются:

  • последняя резервная копия;
  • количество архивов;
  • свободное место;
  • суммарный объём копий;
  • состояние текущей операции;
  • расписание;
  • глубина хранения.

По умолчанию:

расписание: ежедневно в 03:00
хранение: последние 7 копий
минимум свободного места перед запуском: 2 ГиБ

Минимальный запас диска задаётся NICESOFT_BACKUP_MIN_FREE_BYTES.

Локальная копия на том же диске полезна против логической ошибки или неудачного изменения, но не защищает от потери ВМ или диска.

Действия в «Параметры → Резервное копирование»

Администратору доступны:

  • Создать копию сейчас;
  • Проверить;
  • Скачать;
  • Загрузить копию;
  • Восстановить;
  • Удалить;
  • Скачать ключ восстановления;
  • изменение расписания и числа хранимых копий.

Для длительных действий 0.3.64+ показывает текущую фазу и процент. Конфликтующие операции блокируются, пока активная операция не завершена.

Командный аварийный путь

Если веб-интерфейс недоступен:

./nicesoft.sh backup
./nicesoft.sh restore /путь/к/nicesoft-ai-studio-....nsbackup

Это не отдельная «упрощённая» реализация: команды используют тот же backup-manager и тот же формат.

Как выполняется восстановление

В веб-интерфейсе восстановление требует явного ввода:

ВОССТАНОВИТЬ

После подтверждения Студия:

  1. полностью проверяет архив;
  2. запрещает восстановление копии, созданной более новой версией продукта;
  3. включает режим обслуживания для обычного интерфейса;
  4. даёт активным запросам короткое время завершиться;
  5. восстанавливает MongoDB с заменой содержимого;
  6. восстанавливает PostgreSQL/pgvector;
  7. восстанавливает базу и ключ Яндекс Облака;
  8. возвращает загрузки, изображения, состояние моделей, TLS, навыки и расширения;
  9. выполняет контроль восстановленного состояния;
  10. снимает режим обслуживания.

Административный канал резервного контура остаётся доступным для наблюдения за ходом операции.

Почему .env и compose.yml не заменяются автоматически

Они находятся внутри резервной копии для полного аварийного восстановления, но при восстановлении работающего экземпляра текущие host-файлы запуска не подменяются скрытно.

Это защищает от неожиданного возврата:

  • старой сетевой конфигурации;
  • старых секретов;
  • старой схемы публикации портов;
  • несовместимого compose-профиля.

Если потерян весь сервер, эти файлы можно использовать как эталон для ручной сверки нового экземпляра.

Полная потеря сервера

Рекомендуемый порядок:

развернуть поддерживаемую версию Студии
задать сохранённый NICESOFT_BACKUP_ENCRYPTION_KEY
запустить инфраструктуру
загрузить .nsbackup
выполнить восстановление
повторно получить локальные модели
health + функциональные проверки

Не накатывайте резервную копию более новой версии на старую Студию. Сначала приведите программную часть к поддерживаемой совместимой версии.

Что проверить после восстановления

  • ./nicesoft.sh health проходит;
  • ADMIN может войти;
  • USER не получил административные права;
  • история и проекты доступны своим владельцам;
  • файлы и RAG работают;
  • активная модель соответствует ожидаемой;
  • ./nicesoft.sh yc-doctor проходит, если используется Яндекс Облако;
  • браузер получает ожидаемый сертификат;
  • интернет-поиск и подключённые сервисы соблюдают прежние политики;
  • отрицательные тесты безопасности проходят.

Что хранить вне сервера

Минимальный промышленный комплект:

актуальная .nsbackup
+ отдельный ключ восстановления
+ версия продукта
+ SHA-256 файла резервной копии/учётная запись хранилища
+ инструкция аварийного запуска

Для повышенной устойчивости добавьте immutable/offline-копию и регулярно выполняйте проверочное восстановление на отдельном стенде.

Связанные материалы