Files
admin/.tasks/bookva-es-snapshot-repo.md
vitya e001b8e331 feat(books-backup): bookva-es snapshot via Portainer path.repo
bookva-es (отдельный ES 7.10, Portainer stack 37) не снапшотился — path.repo
не сконфигурирован. Пересоздан через Portainer API (PUT /api/stacks/37) с
path.repo=/snapshots + bind /usr/docker/bookva-es/snapshots (uid 1000:0);
внешний том bookva-es-data сохранён (epz/products целы). Repo kreknin
зарегистрирован.

Добавлен Step 2b (bookva-es snapshot + prune) в run.sh.

Gotcha пойман на проверке приёмника ДО коммита: оба ES-каталога называются
`snapshots` → как отдельные rsync-источники сливаются в один dest/snapshots/
и портят оба репо (видно по двойному index-N). Fix: источник bookva-es =
родительский /usr/docker/bookva-es (basename bookva-es → dest/bookva-es/snapshots/).

Verified green: BOOKS-VDS backup OK 10m28s, на kreknin раздельно
snapshots/ (slovo, index-41, 795M) + bookva-es/snapshots/ (index-4, 801M),
по одному index-N в каждом → оба независимо рестораблельны.

Закрывает .tasks/bookva-es-snapshot-repo.md (🟢). bookva tenant полностью
покрыт (db/mongo/minio/es).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 11:56:19 +03:00

2.7 KiB
Raw Permalink Blame History

bookva-es-snapshot-repo — отдельный ES-снапшот для bookva tenant

Status: 🟢 closed 2026-06-12 (в ту же сессию). Сделано полностью — не отложено. Close note: Portainer stack 37 пересоздан (PUT API) с path.repo=/snapshots + bind /usr/docker/bookva-es/snapshots (1000:0), том bookva-es-data сохранён (epz/products целы). Repo kreknin зарегистрирован, snapshot-блок добавлен в run.sh. Поймана и устранена коллизия basename snapshots (rsync источник bookva-es = родительский /usr/docker/bookva-es). Verified green: BOOKS-VDS backup OK 10m28s, на kreknin раздельно snapshots/(slovo, index-41) и bookva-es/snapshots/(index-4).

Контекст

bookva-es (отдельный ES 7.10 контейнер на ../.wiki/entities/books-vds) не снапшотится: path.repo не сконфигурирован → REST _snapshot PUT невозможен (repos={}). bookva-db/mongo/minio уже в daily-бэкапе с 2026-06-12, bookva-es — нет.

Почему не горит: индексы bookva-es (epz 820604, products 105922) идентичны slovo ES (те же counts), который снапшотится daily в repo kreknin. То есть данные de-facto есть в бэкапе через slovo-снапшот. Плюс ES — derivative index, реконструируем reindex'ом из БД. Это покрытие-по-проксе, не source-of-truth дыра.

Что сделать (когда дойдут руки)

  1. Через Portainer (portainer.kzntsv.site, books-vds management plane — НЕ ssh+compose) отредактировать stack bookva-es:
    • добавить bind-mount под snapshot repo (напр. /usr/docker/bookva-es/snapshots:/snapshots),
    • добавить env path.repo=/snapshots,
    • recreate (ES restart ~30 сек).
  2. Зарегистрировать repo: curl -X PUT localhost:9200/_snapshot/kreknin -d '{"type":"fs","settings":{"location":"/snapshots"}}'.
  3. В /opt/stacks/backup/run.sh (и репо-копию) добавить второй ES-snapshot блок для bookva-es + rsync bookva-es/snapshots.
  4. Прогнать вручную, проверить green + артефакт на kreknin.

Decisions log

  • 2026-06-12 — заведена. bookva db/mongo/minio добавлены в backup в эту сессию; es отложен (нужен disruptive ES restart через Portainer, данные покрыты slovo-снапшотом). См. commit с bookva-backup.