Files
admin/.tasks/kreknin-repair-md3-rebuild.md
vitya 1a901b1396 meta(handoff): kreknin rescue session — sdd/VM-volume restore + full rescue to USB + backups paused (→ repair)
- kreknin Xpenology degraded after compressor dusting (sdb cable lost, md3 degraded, sda/sdc flaky cables)
- sdd/VM-volume (md2, /volume2) restored: DSM Repair + "Convert to read/write", scrub 0 errors
- full rescue 2026-08-02 → USB 2TB btrfs /mnt/rescue (netbackup/*.tar incl. diskstation_1.hbk 430G + 5 user shares)
- daily backups DISABLED (vds-kzntsv 05:00 + books-vds 06:00) — re-enable after repair
- wiki entity kreknin-synology: disk inventory, incident, repair, rescue, plan
- task kreknin-repair-md3-rebuild created (power-off → reseat cables → Repair md3 → re-enable backups)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-03 12:40:51 +03:00

71 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# kreknin-repair-md3-rebuild
## Goal
Восстановить [[kreknin-synology]] md3 raid5 (data `/volume1`) до полной избыточности после продувки компрессором 2026-07-31. sdb (WD-WX32D12L8HTE) не определяется → переподключить/заменить → ребилд md3. Заодно починить кабели sda (1.5 Gbps / 213 CRC) и sdc, и **вернуть ежедневные бэкапы** (сейчас DISABLED).
## Context
- **Инцидент 2026-07-31:** Алексей продул NAS пром-компрессором → срыв SATA-кабелей. sdb выпал (md3 `[_UU]` degraded), sdd (VMM SSD) выкинут DSM из md2 (восстановлен в тот же день: Repair пула + «Преобразовать в чтение/запись» → `/volume2` rw, scrub 53GiB 0 ошибок), sda кабель (213 CRC, линк 6→1.5 Gbps), sdc bursts при трясе кабелей (без тряса стабилен).
- **Rescue 2026-07-31→08-02:** полный слив в `/mnt/rescue` (USB 2TB btrfs): `netbackup/*.tar` (diskstation_1.hbk 430G, windows-host 160G, vds-kzntsv 84G, ruvds-iis 62G, books-vds 24G, openwrt 20K) + `userdata/*.tar` (docker 130G, homes 118G, work 32G, downloads 25G, documents 5.9G). Итого 1.1TB / 726G free. Данные в безопасности → **риск power-off приемлем**.
- **Бэкапы ЗАГЛУШЕНЫ** (не нагружать больной массив): vds-kzntsv `/etc/cron.d/vds-backup` (05:00), books-vds `/etc/cron.d/books-vds-backup` (06:00) — строки закомментированы (`#DISABLED-kreknin-sick`), бэкап-файлы `.bak.20260731` сохранены.
## Open questions
- [ ] Координация power-off с Алексеем (физическая работа на месте).
- [ ] Свежие SATA-кабели наготове?
- [ ] sdb реально мёртв или просто отвал кабеля? (решится после перетыка)
- [ ] 4TB замена, если sdb дохлый.
## Steps
1. **Подготовка (до power-off)**
- [ ] Rescue полный и `.tar` на месте (проверено: 11 файлов, 1.1TB, все rc=0 кроме docker rc=1 = норма для живых данных)
- [ ] Бэкапы DISABLED (проверено: оба cron закомментированы)
2. **Power-off** — плановый, с Алексеем. Graceful shutdown DSM (`synopoweroff` / DSM Shutdown), не грубое выдёргивание.
3. **Переподключение кабелей** (Алексей физически)
- [ ] sda (ata1): свежий SATA data + питание
- [ ] sdc (ata3): свежий SATA data + питание
- [ ] sdb: питание + SATA
- [ ] sdd (ata4): проверить контакт (уже восстановлен, перетык не помешает)
4. **Power-on + верификация**
- [ ] все в `/dev/sd?`: sda sdc sdd (и sdb если ожил)
- [ ] SMART каждого: CRC/pending/reallocated
- [ ] sda линк 6.0 Gbps (не 1.5), CRC не растёт
- [ ] `mdstat`: md0/1/2 healthy, md3 всё ещё `[_UU]` (sdb ещё не в массиве — норм)
- [ ] `/volume1` rw, `/volume2` rw
5. **sdb recovery**
- [ ] sdb определился + SMART ок → DSM Storage Manager → **Repair md3** (выбрать sdb) → ребилд
- [ ] sdb не определился/дохлый → 4TB замена → Repair md3
6. **Мониторинг ребилда**
- [ ] `/proc/mdstat` resync %, скорость, ETA
- [ ] sda/sdc НЕ дают новых ошибок во время ребилда (кабель-фикс должен удержать)
- [ ] не выключать и не трогать кабели до завершения
7. **Пост-ремонт**
- [ ] md3 `[UUU]` clean
- [ ] `btrfs scrub /volume1` (верификация целостности после долгого degraded-периода)
- [ ] VMM виртуалки (sdd) работают, `/volume2` rw
8. **Вернуть бэкапы**
- [ ] vds-kzntsv: раскомментировать `/etc/cron.d/vds-backup`
- [ ] books-vds: раскомментировать `/etc/cron.d/books-vds-backup`
- [ ] ручной прогон каждого rsync → green (email/ntfy)
- [ ] снять `.bak.20260731` после успешного прогона
9. **Hygiene**
- [ ] Rescue-диск `/mnt/rescue`: решить судьбу (оставить/отключить, содержимое = доп. копия)
- [ ] обновить вики/память статусом после ремонта
## Verification
- `cat /proc/mdstat` → md3 `[UUU]` active clean, resync не бежит
- `smartctl -d ata -A /dev/sda` → CRC `199` стабилен (не растёт), линк 6.0 Gbps
- `btrfs scrub /volume1` → 0 errors
- `/volume1/NetBackup/vds-kzntsv/latest` свежий (новый rsync-проход)
- backup cron активен (оба раскомментированы), один реальный прогон green
## Notes
- **Порядок критичен:** кабели зафиксировать и проверить ДО запуска ребилда md3 (rebuild — самый стрессовый момент для массива).
- Урок сессии: GNU tar на DSM = `--numeric-owner`, НЕ `--numeric-ids` (это bsdtar).
- Урок сессии: DSM «Преобразовать в чтение/запись» снимает ro-состояние btrfs после transient EIO (sdd case) — без mdadm-ручнины.
- Rescue-содержимое и диск-раскладка: `.wiki/entities/kreknin-synology.md` § «Диски», «Rescue», «План ремонта».