Files
admin/windows-recovery-host.md
vitya c86750b75d docs(.wiki): ingest NAS recovery session 2026-05-18/19
15-hour cross-hypervisor recovery from WD40EFAX SMR RAID5
cascade failure. 5 entities + 7 concepts + 1 source documenting:

- Root cause: WD40EFAX SMR cascade in 3-disk RAID 5
- Hyper Backup .hbk structure + SFTP-jail / ACL workarounds
- OVA from Synology VMM (KVM) → VirtualBox: SCSI→SATA,
  Hyper-V driver disable, paravirt=kvm, GA install, NAT switch
- MSSQL restore via named volume + chown, sqlcmd -x, mssql-conf
- Web.config UTF-16 vs UTF-8 BOM IIS 500.19 trap
- Traefik on Windows DD: configFile, named volume for acme.json,
  file-provider as docker.sock workaround
- Snapshot of current recovery architecture + SPOF list
- Placeholder for future resilient-architecture work

Plus .tasks/nas-recovery.md and STATUS.md updates closing the task.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-19 11:07:38 +03:00

70 lines
4.2 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.
---
title: Windows Recovery Host (рабочий PC пользователя)
type: entity
tags: [hardware, windows, docker, virtualbox, iis, recovery]
sources: [../sources/nas-recovery-session-2026-05-18.md]
updated: 2026-05-19
---
# Windows Recovery Host
Личный Windows-PC пользователя, который во время recovery стал production-сервером для всех клиентских сайтов.
## Hardware / OS
- **Hostname:** DESKTOP-NSEF0UK
- **OS:** Windows 11 Pro (предположительно — поддерживает Hyper-V, IIS, .NET Framework)
- **LAN-MAC:** 88:66:5A:2F:AA:68 (Broadcom 802.11ac WiFi)
- **LAN-IP:** 192.168.1.143 (DHCP-резервация на [[openwrt-router]])
- **Диск C:** ~700 GB total, на старте recovery ~352 GB free, после — ~150 GB free.
- **Юзер:** vitya (admin)
## Установленный стек
- **.NET Framework:** 4.8.1
- **IIS** (W3SVC, на 80, мы планировали остановить — но не остановили, traefik на 8000/4443 не конфликтует)
- **Docker Engine 29.3.1** (Docker Desktop с WSL2 backend)
- **VirtualBox 7.2.8** (установлен в сессии 2026-05-18, через winget)
- **OpenSSH client** (для ssh/scp к kreknin и VM)
- **FileZilla client** (для пользовательских SFTP-перетаскиваний)
## Сетевое положение
- За **OpenWRT 23.05.4** [[openwrt-router]]
- Соединение с интернетом через **WiFi** (Broadcom 802.11ac, 288 Mbps)
- За **VLESS-клиентом v2rayN** (роутер default-route шёл через VPN, пришлось настроить **Bypass LAN** правило с `geoip:private` → direct, иначе входящие 80/443 терялись через asymmetric routing)
## Что хостит сейчас (после recovery)
| Что | Где | Порт (host) |
|---|---|---|
| **VirtualBox `snolla-recovery` VM** | C:\Users\vitya\VirtualBox VMs\snolla-recovery\ | VRDE 13389, NAT-RDP 23389, NAT-SSH 8022, NAT-HTTP 18080/18180/18181/18189 |
| **traefik 2.6.6** | Docker, network `proxy` | 8000 (http), 4443 (https), 8080 (dashboard) |
| **MSSQL 2019** | Docker, named volume `mssql_mssql_data` | 1433 |
| **MinIO** | Docker, bind-mount `./data` | 9000 |
| **Elasticsearch 7.10.1** | Docker, bind-mount `./data` | 9200 |
| **imgproxy** | Docker | 8787 |
| **imgproxy-nginx** | Docker | 8788 |
Также установлен IIS, но Default Web Site пустой / неактивно используется. Должен быть остановлен в админ-PowerShell когда руки дойдут (для оптимизации; на 8000/4443 traefik не конфликтует с IIS на 80).
## Ключевые папки
- `C:\Users\vitya\projects\docker\diskstation\` — compose'ы и данные docker-стеков
- `mssql/`, `minio/`, `elasticsearch/`, `imgproxy/`, `traefik/`
- `traefik/data/custom/*.yml` — file-provider routes для всех 13 client доменов + ES/MinIO/imgproxy
- `C:\Users\vitya\VirtualBox VMs\snolla-recovery\` — VM home (VMDK на SATA controller, 42.5 GB extract из OVA)
- `C:\nas-recovery\backup\snolla\snolla.ova` — оригинал OVA (45.6 GB, для повторного импорта если что)
- `C:\nas-recovery\vm-sites\wwwroot\`, `C:\nas-recovery\vm-sites\stayer\` — резервная копия IIS-сайтов из VM (на случай дрожи VM)
- `C:\Users\vitya\projects\MoreThenCms\` — git-репо с исходниками CMS (важно — у нас есть и source code)
## SSH-ключи на этой машине
- `~/.ssh/id_ed25519_kreknin` — для [[kreknin-synology]] (vitya@195.19.90.188)
- `~/.ssh/id_ed25519_openwrt` — для [[openwrt-router]] (root@192.168.1.1)
- `~/.ssh/id_ed25519_snolla_vm` — для [[snolla-recovery-vm]] (vitya@127.0.0.1:8022, в admin-keys VM)
## Что должно случиться, если этот PC погаснет
- **Всё** — все сайты лягут. **Single point of failure** — главное замечание для [[future-resilient-architecture-goals]].