Incident 2026-05-28 ~05:45–13:52 MSK на vds-kzntsv. ~2.5ч активного outage + ~5.5ч на эфемерной статике до окончательного fix хостером. Revised RCA: наш netplan+systemd-networkd конфликтовал с provider's expected ifupdown stack. Их start/ipadd procedure ожидает чистый ifupdown и не может auto-recover когда networkd «держит» eth0. 8 дней работало потому что networkd сам тянул DHCP. Когда что-то на стороне Rusonyx разорвало DHCP-binding — auto-recovery не сработала. Fix: systemctl mask netplan + systemd-networkd* (на running system без stop — IP и SSH сохранились), Rusonyx ребутнул VM и положил чистый /etc/network/interfaces.d/ifcfg-eth0 через свой start/ipadd. Netmask /18, gw 89.253.192.1, чистый ifupdown. Wiki: - NEW concepts/vds-kzntsv-dhcp-outage-2026-05-28 — full RCA + recovery runbook (эфемерная статика + permanent-fix via ifupdown) + diagnostic dot-graph + revised lessons-learned + anti-pattern - NEW sources/vds-kzntsv-incident-2026-05-28 — timeline 05:25 backup OK → 08:43 statics → 13:52 final reset; provider's ifcfg-eth0 content; ticket text reference - UPDATE entities/vds-kzntsv — mask /18, ifupdown stack, kernel cmdline net.ifnames=0 объясняет eth0 naming, hypervisor hw80, pass-store путь, Known issues § - UPDATE concepts/rusonyx-vps-onboarding-quirks — quirk #9 переписан про /18 layout + canonical ifcfg, quirk #10 NEW про ifupdown vs netplan stack choice + bootstrap mask commands - UPDATE index.md + log.md Tasks: - STATUS header: incident RESOLVED summary - NEXT_SESSION: следующая сессия — cleanup netplan-artifacts (optional), registry GC (~20G pending), board-viewer-build unhealthy разбор Memory (out-of-repo): vds-kzntsv-rusonyx-network-recovery переписан с revised RCA — canonical bootstrap step «mask netplan/networkd» для всех Rusonyx Ubuntu VDS. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6.1 KiB
_last_updated_, session_id
| _last_updated_ | session_id |
|---|---|
| 2026-05-28T14:15:00+03:00 | 2026-05-28-vds-kzntsv-network-stack-mismatch |
Next session handoff
Контекст сессии
vds-kzntsv (89.253.255.94) был недоступен по сети ~05:45–08:30 MSK 28 мая 2026 (~2.5ч активного outage). С 08:43 жил на эфемерной статике (через VNC) до окончательного fix хостером в 13:52 MSK — они переписали конфиг через свой start/ipadd procedure, мы предварительно masked netplan + systemd-networkd через SSH.
Revised RCA (после resolution): наш сетевой стек был mixed (netplan+networkd поверх provider's expected ifupdown). 8 дней работало потому что networkd сам получал DHCP. Когда что-то на стороне Rusonyx разорвало DHCP-binding (28.05 утром) — их auto-recovery start/ipadd не смогла применить static config, потому что networkd «держал» eth0. Fix = mask netplan/networkd, оставить только ifupdown.
LIVE сейчас
- vds-kzntsv работает на чистом ifupdown stack:
/etc/network/interfaces.d/ifcfg-eth0(provider-managed), netmask /18 (255.255.192.0), gw89.253.192.1.netplan+systemd-networkd*masked. - 24 docker контейнера up включая весь стек (gitea, registry, verdaccio, postgres, mariadb, mongo, redis, owncloud/oCIS, modulair-rag×4, mssql, board-viewer, traefik, portainer, ntfy, vds-ops-mcp, vds-docker-proxy-ro). 1 unhealthy —
board-viewer-build(предсуществующий, не связан с инцидентом). - Диск 79% (118G/158G) — после quick GC сегодня утром (build cache 10.6G + dangling 0.3G + container logs ~3G truncated). Registry GC ~20G storage не сделан — pending.
- Wiki, memory, STATUS — обновлены с финальным RCA. Commit за сессию pending (см. ниже).
Что делать на следующей сессии (по приоритету)
1. Cleanup netplan-artifacts (опционально, низкий приоритет)
После resolution на сервере остались netplan конфиги (не активны, netplan masked, но лежат):
/etc/netplan/01-eth0.yaml— мы создали 28.05 утром при попытке fix через netplan/etc/netplan/50-cloud-init.yaml— от cloud-init/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg— мы создали (с опечаткойdisbaledв одной из попыток, потом исправили)
Можно удалить или оставить — они не влияют (netplan masked). Если соберёмся когда-нибудь снять mask с netplan — следует тогда clean up. Сейчас не трогаем.
2. Registry GC (~20G storage reclaim — pending)
Из task #2 в TaskList. Окно read-only=true на 5-15 мин. Делать только в low-traffic окно — registry push/pull временно недоступен.
# на VDS
sudo docker exec registry registry garbage-collect --delete-untagged=true /etc/docker/registry/config.yml
# проверка размера до/после
sudo du -sh /opt/stacks/registry
3. board-viewer-build unhealthy — разбор
Предсуществующий, не связан с инцидентом. Если беспокоит — sudo docker logs board-viewer-build | tail -50 + проверить healthcheck в compose. Иначе можно --no-healthcheck если он не нужен в running container.
4. SLA / RCA от Rusonyx — follow up (опционально)
В первом нашем тикете запрашивали технический RCA + SLA-компенсацию. User просил это не муссировать. На усмотрение — можно через несколько дней спросить «приходил ли формальный RCA», но force'ить не нужно.
Спроси user'а
- Registry GC — окно ~5-15 мин в read-only=true, делать ночью или сейчас?
- Cleanup netplan artifacts — оставить как есть или зачистить
/etc/netplan/*? (Low-priority) - Push wiki + memory + tasks — push'нуть commit'нутые изменения в origin? (Per project-discipline нужен per-session grant, пока не давал)
Не делать (preemptive guards)
- НЕ unmask netplan/systemd-networkd на vds-kzntsv. Anti-pattern для Rusonyx (см. concept).
- НЕ редактировать
/etc/network/interfacesили/etc/network/interfaces.d/ifcfg-eth0— provider's start/ipadd procedure перезапишет при любых их manipulations с VM (resize, network reset). - НЕ reboot VDS без необходимости — конфиг теперь правильный, но любой их network-action может что-то поменять, и проверить новое состояние придётся через VNC.
- НЕ делать registry GC без
read-only=truemode — rogue push может corrupt'ить blobs.
Memory updates за сессию
- UPDATE
vds-kzntsv-rusonyx-network-recovery.md— переписан с revised RCA: provider stack = ifupdown, netmask /18, canonical bootstrap-stepmask netplan/networkd. Anti-pattern: netplan на Rusonyx. - Уточнение паттерна: при сетевых проблемах на Rusonyx VDS первым делом проверять что стек = ifupdown (не netplan).
systemctl is-enabled netplan systemd-networkd networking— должно бытьmasked masked enabled.
Recent commits
- (pending — этот сеанс ещё не commit'ил; wiki + memory + STATUS + NEXT_SESSION готовы к одному commit'у).