docs(cluster): pveelite - cauza confirmata, resetul adaptorului USB LAN
Nodul nu s-a oprit niciodata. La verificarea de azi avea uptime 17h46m, cu boot
pornit la 27.08 ora 16:03:06 - a mers toata noaptea, fara retea. Jurnalul
continua cu 58.454 de linii dupa 17:26:44, ceea ce inchide definitiv discutia
alimentare vs retea.
Vinovatul, din jurnalul kernel: Realtek RTL8156B (0bda:8156, driver r8152) pe
usb 2-3. La 16:01:45 si la 17:26:41 adaptorul s-a resetat si a fost re-enumerat.
Kernelul sterge interfata si o recreeaza - dar nimeni nu o readauga in vmbr0 si
nu o ridica, pentru ca nu exista regula de hotplug. Din acel moment masina merge
perfect si e invizibila in retea.
Partea care merita retinuta e de ce la 16:01 si-a revenit si la 17:26 nu. La
16:01 LRM-ul HA era activ, deci watchdog-ul era armat: pierderea retelei a dus la
pierderea quorumului, watchdog-mux a expirat la 16:02:39 si a resetat masina la
16:02:44 - repornire care a readus reteaua din intamplare, pentru ca la boot
interfetele se ridica prin auto. La 17:26 fence-ul mutase deja vm:109 pe pvemini,
LRM-ul era idle, watchdog-ul nearmat. Nimic nu a mai repornit masina. Singurul
lucru care "repara" defectul asta era un efect secundar, nu un mecanism proiectat
- pe un nod fara servicii HA, aceeasi defectiune devine permanenta si tacuta.
Reparat cu ifreload -a de la consola, la 09:49. Restul verificarii e curat: ZFS
ONLINE fara erori, cluster 3/3, SMART fara FAILED, replicarea se reia singura.
Reparatia de fond intra in Tier 1: eno1 exista si e functional, doar ca nu are
cablu (Link detected: no). Adaptorul USB e cauza a doua incidente pe nodul asta.
Am scris si ordinea operatiilor, pentru ca inversata te lasa fara retea cu drum
pana la nod.
Prima rulare reala a scriptului a scos la iveala trei defecte ale lui, toate
reparate aici:
- tiparele de semnatura hardware prindeau linii normale de boot ("Registered
thermal governor", "NMI watchdog: Enabled", "EDAC MC: Ver: 3.0.0") si produceau
un verdict de defect hardware care contrazicea concluzia corecta din acelasi
bilant. Strans tiparele si filtrat prin -p warning; verificat pe nod: 0
potriviri.
- LRM idle era raportat ca "stare neclara". E starea normala a unui nod fara
servicii HA - iar scriptul spune acum explicit ca idle inseamna watchdog
nearmat, adica exact motivul pentru care caderea de la 17:26 nu s-a auto-reparat.
- Tailscale era raportat [ok] desi e delogat: systemctl is-active zice active, dar
tailscale status zice "Logged out". De aici si cele 27 de zile de offline.
Consemnat si raspunsul la intrebarea cu magic packet, cu MAC-urile ambelor
interfete, ca sa nu se reia: WoL nu ar fi ajutat oricum, masina nu era oprita.
Dupa mutarea pe eno1 devine insa realmente utilizabil.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VAEUqrv26jCM5KwAPtkHb8
This commit is contained in:
@@ -67,8 +67,18 @@ $IncidentStart = '2026-08-27 13:20' # boot-ul de dupa oprirea planificata
|
||||
|
||||
# Tipare de eroare hardware in jurnalul kernel. Daca NICIUNUL nu apare, verdictul
|
||||
# inclina spre alimentare (masina nu apuca sa scrie nimic inainte sa dispara).
|
||||
$TipareHw = 'mce|machine check|hardware error|thermal|temperature above|critical temp|' +
|
||||
'nmi|kernel panic|oops|BUG:|edac|pcieport.*error|ATA bus error|I/O error'
|
||||
#
|
||||
# Tiparele sunt deliberat STRANSE. Prima versiune cauta 'thermal', 'nmi', 'edac',
|
||||
# 'BUG:' si a raportat fals pozitiv la rularea din 28.08: liniile normale de boot
|
||||
# ("Registered thermal governor", "NMI watchdog: Enabled", "EDAC MC: Ver: 3.0.0",
|
||||
# "DPC: error containment capabilities") au declansat un verdict de defect hardware
|
||||
# care contrazicea concluzia corecta. Un fals pozitiv aici nu e zgomot inofensiv -
|
||||
# trimite pe pista gresita exact cand trebuie luata o decizie.
|
||||
$TipareHw = 'Machine Check|mce: |Hardware Error|Uncorrected error|' +
|
||||
'temperature above threshold|critical temperature|' +
|
||||
'Kernel panic|Oops: |watchdog: BUG: soft lockup|' +
|
||||
'EDAC.*(CE|UE) .*error|AER: .*error|Buffer I/O error|' +
|
||||
'blk_update_request.*I/O error|ATA bus error'
|
||||
|
||||
$ReplJobs = 9 # 9 job-uri de replicare au pveelite ca tinta
|
||||
|
||||
@@ -241,14 +251,16 @@ if ($usbEv) {
|
||||
# Cautarea tintita de semnaturi hardware, peste toate boot-urile de ieri.
|
||||
Write-Host ""
|
||||
Write-Info "--- semnaturi hardware in jurnal (MCE / termic / panic / EDAC) ---"
|
||||
# -p warning taie zgomotul de boot inainte de a ajunge la grep: mesajele de
|
||||
# inregistrare a guvernatorilor termici, EDAC si NMI sunt de nivel info.
|
||||
$hw = Invoke-Node -Node pveelite -Command `
|
||||
"journalctl --since '$IncidentStart' --no-pager | grep -iE '$TipareHw' | tail -25"
|
||||
"journalctl --since '$IncidentStart' -p warning --no-pager | grep -E '$TipareHw' | tail -25"
|
||||
|
||||
$verdictHw = $false
|
||||
if ($hw) {
|
||||
Write-Bad "GASIT - nodul a lasat urme de eroare hardware:"
|
||||
$hw | ForEach-Object { Write-Host " $_" -ForegroundColor Red }
|
||||
Add-Rezultat 'Cauza caderii' 'bad' 'semnaturi hardware in jurnal - vezi liniile de mai sus'
|
||||
Add-Rezultat 'Semnaturi hardware' 'bad' 'erori hardware in jurnal - vezi liniile de mai sus'
|
||||
$verdictHw = $true
|
||||
} else {
|
||||
Write-Info "niciun MCE, eroare termica, panic sau EDAC in jurnal"
|
||||
@@ -354,6 +366,16 @@ $ha | ForEach-Object { Write-Info $_ }
|
||||
if ($ha -match 'lrm pveelite \(active') {
|
||||
Write-Ok "LRM pveelite activ"
|
||||
Add-Rezultat 'HA' 'ok' 'LRM activ'
|
||||
} elseif ($ha -match 'lrm pveelite \(idle') {
|
||||
# 'idle' e starea normala pentru un nod fara servicii HA asignate - si e
|
||||
# exact cazul lui pveelite dupa ce fence-ul a mutat vm:109 pe pvemini.
|
||||
# ATENTIE: cu LRM idle, watchdog-ul NU e armat. La 16:01 watchdog-ul a
|
||||
# repornit nodul si i-a readus reteaua; la 17:26, fara el, nodul a ramas
|
||||
# pornit si fara retea pana dimineata.
|
||||
Write-Ok "LRM pveelite idle - normal, nodul nu are servicii HA asignate"
|
||||
Write-Info "Consecinta: watchdog-ul nu e armat, deci o cadere de retea nu se"
|
||||
Write-Info "mai auto-repara prin reboot, cum s-a intamplat la 16:01."
|
||||
Add-Rezultat 'HA' 'ok' 'LRM idle (fara servicii asignate) - watchdog nearmat'
|
||||
} elseif ($ha -match 'lrm pveelite.*old timestamp') {
|
||||
Write-Warn "LRM pveelite inca 'dead' - poate dura un minut dupa boot; reverifica"
|
||||
Add-Rezultat 'HA' 'warn' "LRM inca 'old timestamp'"
|
||||
@@ -406,8 +428,16 @@ Write-Info "viitoare a nodului cere din nou deplasare fizica."
|
||||
$ts = Invoke-Node -Node pveelite -Command 'systemctl is-active tailscaled 2>/dev/null; tailscale status 2>&1 | head -3'
|
||||
$ts | ForEach-Object { Write-Info $_ }
|
||||
|
||||
if ($ts -match '^active') {
|
||||
Write-Ok "tailscaled activ"
|
||||
if ($ts -match 'Logged out|Stopped') {
|
||||
# Capcana: serviciul poate fi 'active' si totusi inutilizabil. Exact asa arata
|
||||
# pveelite la 28.08 - tailscaled pornit, dar delogat, ceea ce explica cele 27
|
||||
# de zile de "offline". A verifica doar systemctl is-active da un fals OK.
|
||||
Write-Bad "tailscaled ruleaza, dar e DELOGAT - nu exista acces out-of-band"
|
||||
Write-Info "Reautentificare (cere deschiderea link-ului afisat intr-un browser):"
|
||||
Write-Info " ssh root@$($NodeIp.pveelite) 'tailscale up'"
|
||||
Add-Rezultat 'Tailscale' 'bad' 'delogat - fara acces out-of-band'
|
||||
} elseif ($ts -match '^active') {
|
||||
Write-Ok "tailscaled activ si autentificat"
|
||||
Add-Rezultat 'Tailscale' 'ok' 'activ'
|
||||
} else {
|
||||
Write-Warn "tailscaled NU e activ - reactiveaza-l acum:"
|
||||
|
||||
Reference in New Issue
Block a user