Files
admin/.wiki/entities/kreknin-synology.md

11 KiB
Raw Blame History

title, type, tags, sources, updated
title type tags sources updated
Kreknin Synology (backup target + DDNS) entity
hardware
nas
synology
backup
hyperbackup
../sources/nas-recovery-session-2026-05-18.md
2026-08-10

Kreknin Synology

Удалённая (географически в другом месте) Synology, которая держит Hyper Backup-репо мёртвой синки и сама работает как живой сервер.

Доступ

  • Public IP: 195.19.90.188
  • DDNS: kreknin.site (резолвится на 195.19.90.188)
  • DSM web: http://kreknin.site:5000 (HTTP; HTTPS 5001 наружу НЕ проброшен)
  • SSH: vitya@195.19.90.188:22 (был пароль, сейчас SSH-ключ установлен — id_ed25519_kreknin)
  • Канал: "не очень надёжный" по словам пользователя — поэтому неудобно держать там production-сайты.

Ограничения SFTP

  • SFTP-подсистема DSM запускается отдельно от SSH — Control Panel → File Services → FTP → SFTP. Изначально не была включена.
  • После включения SFTP — DSM jail-chroot'ит подсистему в home юзера. То есть vitya через SFTP видит только /volume1/homes/vitya/, не /volume1/backup/....
  • Обход: scp -O (legacy SCP протокол) использует чистый SSH-channel мимо SFTP-subsystem → даёт доступ ко всему, что shell-пользователь видит.

Структура

  • Volume: один том /volume1, 7.0 TB, ~1.2 TB used до восстановления.
  • /volume1/NetBackup/diskstation_1.hbk — Hyper Backup репо с мёртвой синки. 430 GB compressed (deduplicated), последняя успешная backup-версия 2026-05-09 05:06.
  • Hyper Backup Vault установлен как пакет на этой синке (см. hyper-backup-structure-and-recovery).
  • Owner данных в репо — vitya:users (POSIX) с ACL под +. ACL даёт vitya read, но individual файлы .bak/.acme.json могут иметь -rw------- — для них нужен chmod -R a+rX из root SSH.

VMM статус

  • Установлен (виден @SavedVM в /volume1/).
  • В сессии 2026-05-18 рассматривался вариант поднять snolla.ova прямо здесь через VMM как альтернатива переезду на Windows — отвергнут потому что канал не надёжный.

Роль в recovery

  • Источник всех данных: OVA, sql дампы, docker volumes (mssql, minio, elasticsearch, imgproxy/nginx) — всё тащилось отсюда.
  • Не было записи на этот NAS во время recovery — только чтение / Hyper Backup restore во временную папку /volume1/NetBackup/restore-tmp/, потом backup-shares /volume1/backup/, /volume1/docker/, /volume1/work/.

Гипотеза по будущему backup pipeline

  • Эта синка остаётся как backup target, на ней нет SMR-дисков (тип неизвестен на момент сессии, но кратко проверить через ls /dev/sd* + smartctl до тяжёлой нагрузки).
  • Будущая future-resilient-architecture-goals: добавить второй backup target (или облачный — Backblaze B2 / S3 Glacier), чтобы не зависеть от одной коробки.

Роль источника для миграции на VDS (2026-05-20)

В сессии vds-kzntsv-bootstrap-2026-05-20 kreknin сыграл вторую роль — источник данных для миграции инфра-сервисов на vds-kzntsv. Из restored backup'а (Hyper Backup .hbk мёртвой синки):

  • Giteatar c -C /volume1/docker/gitea data postgres docker-compose.yml | ssh vds tar x (sudo Pryakhin9 для read postgres datadir uid 999). 2.7G total за 8 мин.
  • Verdacciorsync /volume1/docker/personal/verdaccio/{storage,config,plugins} → vds:/opt/stacks/verdaccio/. 9G за 18 мин.
  • Registry — GC на kreknin (registry:2.8.3 garbage-collect -m) сжал 99G → 35G; затем user принял решение abandon миграцию и fresh install на VDS. Старый registry data остаётся на kreknin как backup-reference.

Roadmap как backup target для VDS

Планируется ежедневный pull rsync VDS → kreknin в /volume1/NetBackup/vds-kzntsv/ (см. follow-up task .tasks/vds-backup-rsync-kreknin.md). Дополнительный pipe — backup pipe для production-CMS windows-recovery-host → тут же на kreknin — пока не реализован.

Диски (инвентарь, после инцидента 2026-07-31)

Xpenology (DSM 7.1.1, apollolake) на обычном ПК-корпусеНЕ настоящий Synology, без hot-swap лотков, диски на обычных SATA-кабелях. Урок: компрессорная продувка срывает SATA-кабели.

Диск Порт Модель Роль Статус 2026-07-31
sda ata1 WD40EFPX-68C6CN0 4TB (6682ч) md3 raid5 slot 3 жив; 213 UDMA CRC, линк упал до 1.5 Gbps = кабель
sdb WD-WX32D12L8HTE (4TB) md3 raid5 slot 0 не определяется — отвал кабеля (питание/дата) после продувки, вероятно оживает перетыком
sdc ata3 WD40EFAX-68JH4N1 4TB SMR (30373ч) md3 raid5 slot 1 жив; WRITE FPDMA bursts 09:58/12:09 — только при ручном трясе кабелей
sdd ata4 Kingston SA400S37120G SSD (30460ч) md2 raid1 = VMM volume /volume2 восстановлен 2026-07-31

md3 = /volume1 (btrfs, бэкапы), degraded [_UU] (sdb выпал), держится на sda+sdc.

Инцидент 2026-07-31 (продувка компрессором)

Алексей продул NAS пром-компрессором → срыв SATA-кабелей:

  • sdb исчез (не определяется), md3 degraded
  • sdd DSM выкинул из md2 при загрузочной тряске (07:47) → /volume2 ушёл в ro (transient EIO)
  • sda: 213 CRC, линк 6→1.5 Gbps; sdc: bursts при трясе, без тряса стабилен

Ремонт (сделано 2026-07-31)

  • sdd/md2: DSM Storage Manager → Repair пула → sdd вернулся (но faulty active sync), затем в DSM на /volume2 кнопка «Преобразовать в чтение/запись» → rw, scrub 53GiB 0 ошибок. Урок: «Convert to read/write» в DSM снимает ro-состояние после transient EIO без mdadm-ручнины.
  • Ежедневные бэкапы на kreknin ЗАГЛУШЕНЫ (не нагружать больной массив):
    • vds-kzntsv: /etc/cron.d/vds-backup (05:00) — закомментирован, бэкап .bak.20260731
    • books-vds: /etc/cron.d/books-vds-backup (06:00) — закомментирован, бэкап .bak.20260731
    • ⚠️ ВЕРНУТЬ после починки (раскомментировать строку)

Rescue 2026-07-31 → 08-02 (полный)

USB 2TB WD20EARX (sdq) отформатирован в один btrfs, смонтирован /mnt/rescue. GNU tar --numeric-owner (хардлинки preserved; --numeric-idsНЕ GNU-флаг, это bsdtar).

  • /mnt/rescue/netbackup/: diskstation_1.hbk.tar 430G, windows-host.tar 160G, vds-kzntsv.tar 84G, ruvds-iis.tar 62G, books-vds.tar 24G, openwrt.tar 20K
  • /mnt/rescue/userdata/: docker.tar 130G (rc=1 — файлы менялись при чтении, архив валиден), homes.tar 118G, work.tar 32G, downloads.tar 25G, documents.tar 5.9G
  • Итого 1.1TB / 726G свободно. Массив за 2 суток последовательного чтения — ноль новых ошибок.

Ремонт 2026-08-10 (кабели перетыкнуты vitya, rebuild запущен)

Съезд к Алексею: power-off, переподключены SATA (sda/sdc/sdb), свежие кабели. Проверка через SSH (ключ id_ed25519_kreknin):

  • sdb (WD-WX32D12L8HTE) — снова определяется, разделы на месте, SMART PASSED (0 realloc/pending)
  • sda (WD40EFPX) — линк вернулся на 6.0 Gbps (было 1.5), SMART PASSED, CRC=10 (не растёт)
  • sdc (WD40EFAX SMR) — SMART PASSED, CRC=213 (историческое, кабельное)
  • Все 3 диска на 6.0 Gb/s. Заметка: в таблице выше у sda/sdc POH перепутаны местами — реально WD40EFPX=30492ч, WD40EFAX=6800ч.

Repair md3: mdadm --add /dev/md3 /dev/sdb3 (sdb3 валидный stale-член, тот же UUID 717d6154…, роль slot 0, Events 82069 vs массив 132876). Rebuild запущен 2026-08-10 07:57, State: active, degraded, recovering, sdb3 = spare rebuilding. Скорость ~10-25 MB/s, оценка 43-106 ч — старые диски (30k ч) + live-нагрузка (ownCloud cron, VMM etcd, docker). Не форсировать — массив живой.

btrfs /volume1: corruption_errs 1 (счётчик с инцидента) — после ребилда прогнать btrfs scrub.

VMM (win10): md2/volume2 здоровы (clean, rw OK). ВМ win10 определена (4 vcpu, autorun=1), libvirtd/etcd живы. Образ vdisk не искал find'ом (не грузить массив во время ребилда) — проверить в DSM VMM GUI.

Бэкапы: всё ещё ЗАГЛУШЕНЫ (vds-backup + books-vds-backup на vds-kzntsv) — вернуть ТОЛЬКО после завершения ребилда + scrub.

План ремонта (статус)

  1. Power-off сделано vitya 2026-08-10
  2. Переподключить SATA сделано (sda/sdc/sdb), все на 6 Gbps
  3. Repair md3 — В ПРОЦЕССЕ (rebuild ~43-106ч, мониторинг активен)
  4. sda вернулся на 6 Gbps, CRC=10 (не растёт)
  5. Вернуть бэкапы после ребилда + scrub
  6. VMM win10 — проверить в GUI (storage здоров)