Files
ROMFASTSQL/proxmox/cluster/ups/docs/UPS-BATTERY-REPLACEMENT.md
Marius 0b8e8f6892 fix(ups): testul lunar de baterie nu putea da alarma niciodata
Verdictul se calcula din CHARGE_DROP, dar la acest UPS battery.charge nu e o
masuratoare independenta: driverul nutdrv_qx / Voltronic-QS-Hex o deduce liniar
din tensiune intre battery.voltage.low (20.8V) si .high (26.0V). Verificat pe
toate probele din 11 luni: 25.76V -> 95.4% -> raportat 95%.

Traduse in tensiune, pragurile vechi cereau o cadere de 3.70V pentru FAIR (primul
prag care trimite severity warning) si 4.74V pentru POOR, intr-un test de 40 de
secunde. Maximul observat in 11 luni a fost 2.59V. De asta raportul a iesit
EXCELLENT 11 luni la rand si ar fi facut-o si cu bateria pe moarte.

Evaluarea se face acum pe tendinta: mediana ultimelor 3 rulari fata de mediana
primelor 6, plus o plasa de siguranta pe tensiune absoluta (<25.0V forteaza FAIR,
<24.0V forteaza POOR). Fereastra de 3 impiedica o luna atipica sa declanseze
singura alarma - verificat pe feb 2026 (2.59V), care nu bascuelaza verdictul.

Istoricul se tine in /var/log/ups-battery-trend.csv, populat cu cele 14 rulari
extrase din jurnal (2025-10-06 -> 2026-08-01), ca linia de baza sa fie valida
imediat si nu peste 9 luni.

Starea la zi: baza 1.82V, recent 2.12V, raport 1.16x -> EXCELLENT. Cresterea de
~16% in 10 luni e reala dar sub banda de avertizare; FAIR s-ar da la 2.73V.

Instalat pe pvemini in /opt/scripts/, verificat cap-coada cu testul de baterie
anulat, ca sa nu descarce bateria: tendinta calculata corect, template-urile
regenerate cu campurile noi, notificarea PVE::Notify trimisa cu succes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RRyaDj39hPQ89SZS6URRpS
2026-08-27 14:46:35 +03:00

14 KiB

Procedură Înlocuire Baterie UPS

Despre

Ghid complet pentru înlocuirea bateriei UPS când cluster-ul Proxmox este complet alimentat de UPS. Include scripturi automate, checklist-uri și proceduri de recovery.

⚠️ IMPORTANT: Toate cele 3 noduri (pve1, pvemini, pveelite) sunt pe același UPS, deci trebuie oprit complet cluster-ul.

Când Trebuie Înlocuită Bateria?

Indicatori din Testele Lunare:

Verdictul lunar se dă pe tendința căderii de tensiune față de linia de bază a bateriei, nu pe praguri absolute de încărcare (vezi UPS-MONTHLY-TEST.md pentru de ce).

Indicator Acțiune
Health: POOR (≥ 2.0x față de bază, sau minim < 24.0V) ⚠️ URGENT - Înlocuiește IMEDIAT
Health: FAIR (1.5-2.0x, sau minim < 25.0V) 📅 Planifică în 1-3 luni
Health: GOOD (1.25-1.5x) ✅ Monitorizează lunar
Health: EXCELLENT (< 1.25x) ✅ Baterie OK
Health: BASELINE Se colectează istoric, sub 9 rulări

Alte Semne:

  • Vârsta bateriei > 3-4 ani
  • UPS emite beep-uri frecvente
  • Timp de autonomie scăzut vizibil (< 5 minute cu sarcină normală)
  • Baterie umflată sau deteriorată fizic
  • 3+ teste lunare consecutive cu health FAIR/POOR

Pregătire

1. Comandă Baterie Nouă

Verifică specificațiile UPS-ului:

ssh root@10.0.20.201 "upsc nutdev1 2>/dev/null | grep -E 'battery.voltage.nominal|battery.type'"

Pentru UPS-ul tău (INNO TECH):

  • Tensiune nominală: 24V (2x 12V în serie)
  • Tip: Probabil 12V 7Ah sau 12V 9Ah (2 bucăți)

Verifică FIZIC bateria actuală înainte de comandă:

  • Model exact scris pe baterie
  • Capacitate (Ah)
  • Dimensiuni fizice

2. Planificare Fereastră de Mentenanță

Timpul estimat: 30-60 minute

Breakdown:

  • Shutdown cluster: ~10 minute
  • Înlocuire fizică baterie: 10-15 minute
  • Pornire și verificare cluster: 10-15 minute
  • Buffer pentru probleme: 15-20 minute

Moment recomandat:

  • Duminică 02:00-04:00 (minimal impact)
  • SAU orice fereastră de mentenanță aprobată

3. Anunță În Avans

Template email/notificare:

Subject: [IMPORTANT] Mentenanță Programată UPS - Duminică 02:00-04:00

Bună ziua,

Duminică, [DATA], între orele 02:00-04:00 va avea loc o intervenție
programată pentru înlocuirea bateriei UPS.

IMPACT:
- Toate serverele/serviciile vor fi indisponibile timp de ~45 minute
- Cluster Proxmox va fi oprit complet
- VM-uri și servicii vor fi oprite orchestrat și repornite automat

Ce se va întâmpla:
1. 02:00 - Shutdown orchestrat cluster (VM-uri + noduri)
2. 02:15 - Înlocuire fizică baterie UPS
3. 02:30 - Pornire noduri + verificare cluster
3. 02:45 - Pornire VM-uri și verificare servicii

În caz de probleme, timpul poate fi extins cu 30-60 minute.

Vă rugăm să salvați orice lucru în curs și să vă deconectați
de la servicii cu 10 minute înainte (01:50).

Mulțumim pentru înțelegere!

Procedură Pas-cu-Pas

ETAPA 1: Pre-Shutdown (15 minute înainte)

1.1. Conectare la pvemini:

ssh root@10.0.20.201

1.2. Verificare finală status cluster:

# Status cluster
pvecm status

# VM-uri running
qm list | grep running

# Status UPS
upsc nutdev1 ups.status battery.charge

# Backup-uri recente?
ls -lh /var/lib/vz/dump/ | tail -5

1.3. Notificare utilizatori (dacă aplicabil):

# Trimite mesaj pe toate nodurile (wall)
for node in pve1 pvemini pveelite; do
    ssh root@$node "wall 'ATENȚIE: Cluster se va opri în 15 minute pentru mentenanță UPS!'"
done

ETAPA 2: Shutdown Orchestrat

2.1. Rulare script automat:

cd /opt/scripts
./ups-maintenance-shutdown.sh

Scriptul va:

  • Cere confirmare (scrie DA)
  • Opri toate VM-urile (timeout 180s)
  • Opri containerele LXC
  • Opri nodurile secundare (pve1, pveelite)
  • Opri pvemini (ultimul)

2.2. Monitorizare (opțional):

Deschide un al doilea terminal SSH și monitorizează:

# Monitor log
tail -f /var/log/ups-maintenance.log

# Monitor VM-uri
watch -n 5 'qm list'

2.3. Așteptare:

  • Script va afișa countdown
  • Totul se va opri automat în ~10 minute
  • pvemini se va opri ultimul (2 minute după nodurile secundare)

ETAPA 3: Verificare Oprire Completă

3.1. Verifică LED-uri:

  • pve1: LED-uri stinse
  • pveelite: LED-uri stinse
  • pvemini: LED-uri stinse

3.2. Verifică ventilatoare:

  • Ascultă - toate ventilatoarele ar trebui să fie oprite

3.3. Dacă un nod nu s-a oprit:

  • Conectează monitor/keyboard la nod
  • SAU apasă lung butonul de power (10 secunde) pentru force shutdown
  • ULTIMĂ OPȚIUNE: Deconectează alimentarea

ETAPA 4: Înlocuire Fizică Baterie

⚠️ ATENȚIE LA SIGURANȚĂ:

  • Folosește mănuși izolante
  • NU scurtcircuita terminalele bateriei
  • Notează polaritatea (+/-)

4.1. Deconectare UPS:

1. Deconectează UPS de la priză (scoate din priză)
2. Apasă butonul de power al UPS-ului 5 secunde (descarcă condensatori)

4.2. Deschide UPS:

1. Identifică panoul de acces baterie (de obicei față sau spate)
2. Deșurubează/deschide panoul
3. Fotografiază conexiunile (pentru referință)

4.3. Deconectare baterie veche:

1. Notează polaritatea (+ la roșu, - la negru)
2. Deconectează mai întâi cablul NEGATIV (-)
3. Apoi deconectează cablul POZITIV (+)
4. Scoate bateria veche cu grijă

4.4. Instalare baterie nouă:

1. Plasează bateria nouă în suport
2. Conectează cablul POZITIV (+) PRIMUL
3. Apoi conectează cablul NEGATIV (-)
4. Verifică că conexiunile sunt ferme
5. Asigură-te că bateria nu se mișcă

4.5. Închide UPS:

1. Închide panoul de acces
2. Fixează șuruburile

4.6. Reconectare:

1. Conectează UPS la priză
2. Pornește UPS (buton de power)
3. Verifică LED-uri: ar trebui să vadă "charging" sau "online"
4. Ascultă beep-uri - normal este 1 beep la pornire

4.7. Așteptare încărcare inițială:

  • Lasă UPS-ul conectat 2-3 minute să încarce bateria nouă
  • Verifică că nu sunt erori pe display

ETAPA 5: Pornire Cluster

5.1. Pornire noduri - Ordine inversă:

Primul: Noduri secundare (pve1, pveelite)

1. Apasă butonul de power pe pve1
2. Apasă butonul de power pe pveelite
3. Așteaptă 2 minute pentru boot

Al doilea: Nod primary (pvemini)

1. Apasă butonul de power pe pvemini
2. Așteaptă 3 minute pentru boot complet

5.2. Conectare la pvemini când e disponibil:

# Așteaptă până poți face SSH
ssh root@10.0.20.201

ETAPA 6: Verificări Post-Pornire

6.1. Verificare cluster:

# Status cluster - ar trebui să vezi toate cele 3 noduri
pvecm status

# Verifică quorum
corosync-quorumtool -s

# Toate nodurile online?
pvecm nodes

Așteptat:

Quorate: Yes
Expected votes: 3
Total votes: 3

Nodeid: 1 (pve1) - online
Nodeid: 2 (pvemini) - online
Nodeid: 3 (pveelite) - online

6.2. Verificare UPS:

# Status UPS
upsc nutdev1

# Valori importante:
upsc nutdev1 ups.status          # Ar trebui: OL (Online)
upsc nutdev1 battery.charge      # Poate fi 50-80% (baterie nouă în încărcare)
upsc nutdev1 battery.voltage     # ~24-27V

6.3. Verificare servicii NUT:

systemctl status nut-server
systemctl status nut-monitor

# Logs pentru erori
journalctl -u nut-server -n 50

ETAPA 7: Pornire VM-uri

7.1. Verifică ce VM-uri au autostart:

# VM-uri cu onboot=1
grep -r "onboot: 1" /etc/pve/qemu-server/

# Sau
qm list | head -1 && grep "^onboot" /etc/pve/qemu-server/*.conf | grep "onboot: 1"

7.2. Pornire VM-uri critice manual:

# Listează toate VM-urile
qm list

# Pornește VM-uri importante
qm start 201  # roacentral (Windows 11)
# Adaugă alte VM-uri critice

# Sau pornește toate VM-urile care erau running:
for vmid in $(qm list | awk 'NR>1 {print $1}'); do
    qm start $vmid
done

7.3. Verificare VM-uri:

# Status VM-uri
qm list

# Pentru fiecare VM important, verifică:
qm status 201

ETAPA 8: Test Final Baterie Nouă

8.1. Rulare test baterie NUT:

# Test automat
/opt/scripts/ups-monthly-test.sh

# Monitorizează log
tail -f /var/log/ups-monthly-test.log

8.2. Verificare rezultat test:

# Ar trebui să vezi EXCELLENT sau GOOD pentru baterie nouă
tail -30 /var/log/ups-monthly-test.log | grep -A 5 "Sănătate baterie"

Așteptat pentru baterie nouă:

  • Raport față de linia de bază: < 1.25x (EXCELLENT)

După înlocuire, linia de bază trebuie resetată — altfel bateria nouă se compară cu media celei vechi și verdictul iese fals de bun:

mv /var/log/ups-battery-trend.csv /var/log/ups-battery-trend.csv.$(date +%Y%m%d).vechi
# primele 9 rulări vor raporta BASELINE, apoi verdictul redevine valid

Notează data înlocuirii în acest document — jurnalul nu o conține, iar vârsta bateriei nu se poate deduce din software.

  • Voltage drop: 1-2V
  • Recuperare rapidă: < 60 secunde

8.3. Test fizic (opțional dar recomandat):

# Deconectează UPS de la priză 10 secunde
# Monitorizează în WinNUT pe VM 201
# UPS ar trebui să susțină sarcina fără probleme
# Reconectează la priză

ETAPA 9: Notificare Finalizare

9.1. Email/notificare utilizatori:

Subject: Mentenanță UPS Finalizată Cu Succes

Mentenanța programată a fost finalizată cu succes.

STATUS:
✅ Baterie UPS înlocuită
✅ Toate nodurile cluster online
✅ Quorum OK
✅ VM-uri repornite
✅ Test baterie: [EXCELLENT/GOOD]

Serviciile sunt disponibile.

Durata totală: [XX] minute

Mulțumim pentru răbdare!

9.2. Documentare în log:

echo "[$(date)] UPS Battery replaced. Old battery removed, new battery installed. Test result: [RESULT]. Cluster fully operational." >> /var/log/ups-maintenance.log

Troubleshooting

Problema 1: Un nod nu pornește după shutdown

Verificări:

# Încearcă SSH
ssh root@[IP-NOD]

# Dacă nu răspunde:
# 1. Verifică LED-uri de pe nod - sunt aprinse?
# 2. Conectează monitor la nod - ce erori apar?
# 3. Verifică cablul de rețea
# 4. Hard reset: butoane power lung (10s) apoi pornește din nou

Recovery:

# Dacă nodul lipsește din cluster:
pvecm nodes

# Forțează quorum cu 2 noduri (ULTIMĂ OPȚIUNE):
pvecm expected 2

Problema 2: UPS nu funcționează după înlocuire baterie

Verificări:

  • LED-uri UPS - ce culoare?
  • Beep-uri - ce pattern?
  • Polaritate baterie corectă? (+ la +, - la -)
  • Conexiuni ferme?

Soluții:

# Verifică ce raportează NUT
upsc nutdev1

# Dacă nu răspunde:
systemctl restart nut-driver@nutdev1
systemctl restart nut-server

Problema 3: Baterie nouă se descarcă prea repede în test

Normal pentru bateriile noi:

  • Primele 2-3 cicluri de încărcare pot fi instabile
  • Bateria trebuie "condiționată" (câteva cicluri complete)

Verificare:

# Rulează test din nou după 24 ore
/opt/scripts/ups-monthly-test.sh

# Dacă și al 2-lea test e POOR:
# -> Baterie defectă, returnează la furnizor

Problema 4: Cluster nu formează quorum

Verificări:

# Status pe fiecare nod
ssh root@10.0.20.200 "pvecm status"
ssh root@10.0.20.201 "pvecm status"
ssh root@10.0.20.202 "pvecm status"

# Corosync funcționează?
ssh root@10.0.20.201 "systemctl status corosync"

Recovery:

# Restart corosync pe toate nodurile
for node in 10.0.20.200 10.0.20.201 10.0.20.202; do
    ssh root@$node "systemctl restart corosync pve-cluster"
done

# Așteaptă 30 secunde
sleep 30

# Verifică din nou
pvecm status

Checklist Post-Înlocuire

Verificare Imediată (primele 24 ore):

  • Toate nodurile online în cluster
  • Quorum OK (pvecm status)
  • UPS status: OL (Online)
  • Baterie nouă se încarcă (battery.charge crește)
  • Test automat baterie: EXCELLENT sau GOOD
  • VM-uri critice pornite și funcționale
  • Servicii în producție OK
  • Notificare utilizatori trimisă
  • Documentat în log (/var/log/ups-maintenance.log)

Monitorizare Prima Săptămână:

  • Zi 1: Verificare battery.charge ajunge la 100%
  • Zi 3: Test fizic scurt (deconectare 10s)
  • Zi 7: Test baterie complet (rulare script lunar manual)

Acțiuni După 1 Lună:

  • Verificare test lunar automat (1 ale lunii)
  • Rezultat ar trebui să fie în continuare EXCELLENT/GOOD
  • Dacă nu: verifică baterie/conexiuni

Checklist Înainte de Următoarea Mentenanță

Pentru mentenanța viitoare (peste 3-4 ani), verifică că:

  • Acest document este actualizat
  • IP-urile nodurilor sunt corecte în script
  • Backup-uri recente există
  • Procedura a fost testată/revizuită
  • Ai bateria de rezervă comandată din timp

Referințe

  • Script shutdown: /opt/scripts/ups-maintenance-shutdown.sh
  • Log mentenanță: /var/log/ups-maintenance.log
  • Test lunar: /opt/scripts/ups-monthly-test.sh
  • Documentație UPS: UPS-SHUTDOWN-README.md

Autor: Claude Code Data: 2025-10-06 Versiune: 1.0