- 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>
71 lines
5.8 KiB
Markdown
71 lines
5.8 KiB
Markdown
# 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», «План ремонта».
|