Files
ROMFASTSQL/proxmox/cluster/config/usb-lan-hotplug/usb-lan-hotplug@.service
Marius d7b4007af8 feat(cluster): corosync ring1 pe insula, test de repornire cu WoL, fixuri in scripturi
Ring1 aplicat si verificat pe cluster live: config_version 17, ring1_addr pe
10.10.10.20x la fiecare nod, interface{linknumber:1}. Validat cu `corosync -t`
inainte de instalare. Testat prin oprirea reala a lui ring0 pe pveelite: link0
disconnected, link1 connected, cvorum 3/3 neatins - exact scenariul care pe
27 august a lasat nodul mort 16 ore.

Test de repornire completa a clusterului, cu Wake-on-LAN (trezire in ~15s).
Insula a urcat singura pe toate trei nodurile; ipoteza enumerarii tarzii a
USB-ului nu s-a materializat. Unealta noua: wake-cluster.ps1.

Testul a scos la iveala o linie ramasa in /etc/fstab pe pve1 si pveelite, care
monta storage-ul NFS de pe IP-ul de productie inaintea lui pvestatd. Backup-ul
trecea tacut pe reteaua gresita, cu storage.cfg corect. cluster-startup verifica
acum asta automat, impreuna cu IP-urile de insula si conectivitatea reala.

Patru bug-uri gasite prin rulare pe cluster live:

- sonda Oracle nu avea timeout: un sqlplus agatat pe o instanta in pornire a
  blocat cluster-startup 14 minute, fara mesaj, cu propriul prag de 600s
  nefolosit, fiindca bucla n-a apucat o iteratie;
- `bash -c` in loc de `bash -lc`: sqlplus lipsea din PATH, deci baza nu se
  oprea si containerul s-ar fi inchis peste ea;
- PowerShell 5.1 pierde ghilimelele duble catre exe-uri native, deci comanda
  ajungea rupta pe nod - trecut pe trimitere codificata base64;
- backup-ul de crontab si fisierul de stare se rescriau la o a doua rulare,
  lasand monitorizarea oprita permanent si lista de repornit goala.

Documentatia de oprire planificata pornea de la o afirmatie devenita falsa
("nu exista datacenter.cfg") si de la o comanda care ar fi adaugat o a doua
linie `ha:`. Actualizata, impreuna cu inventarul de guest-uri (VM 304 lipsea
din toate listele de ordine si cadea in maturarea de dupa Oracle).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RJFQZcA7uerXRaL1NrsXpS
2026-08-29 21:13:34 +03:00

28 lines
1.1 KiB
Desktop File

[Unit]
Description=Reaplica configuratia de retea pentru adaptorul USB LAN %I dupa un reset USB
Documentation=file:///etc/udev/rules.d/70-usb-lan-hotplug.rules
After=network.target
[Service]
Type=oneshot
# Dispozitivul tocmai a fost re-enumerat: driverul r8152 se incarca, interfata e
# redenumita din ethN in enxMAC, iar linkul negociaza. Reaplicarea configuratiei
# inainte ca astea sa se aseze prinde interfata intr-o stare intermediara.
ExecStartPre=/bin/sleep 3
# ifreload -a, nu ifup: e comanda verificata in teren - exact ea a readus pveelite
# in retea pe 28.08 la 09:49, de la consola fizica. Atunci interfata era port de
# punte si doar ifreload refacea legatura cu vmbr0; din 2026-08-29 are strofa
# proprie cu IP static pe reteaua de cluster, pe care ifreload o reaplica la fel.
# Aplica numai diferentele fata de /etc/network/interfaces, deci nu atinge
# interfetele tap/veth ale guest-urilor.
ExecStart=/usr/sbin/ifreload -a
# Reteaua e deja rupta cand ajungem aici; o incercare esuata nu trebuie sa lase
# unitatea in "failed" si sa blocheze urmatoarea reaparitie a interfetei.
SuccessExitStatus=0 1
[Install]
WantedBy=multi-user.target