Files
ROMFASTSQL/proxmox/ups/docs/UPS-BATTERY-REPLACEMENT.md
Marius cc72a5f96e Add UPS battery replacement procedure and maintenance shutdown script
Adds complete procedure for replacing UPS battery when entire cluster
is powered by the same UPS, requiring full cluster shutdown.

New files:
- scripts/ups-maintenance-shutdown.sh: Automated orchestrated shutdown
  for maintenance operations with confirmation prompts and progress display
- docs/UPS-BATTERY-REPLACEMENT.md: Complete step-by-step guide for battery
  replacement including pre-shutdown, physical replacement, and post-startup
  verification procedures

Features:
- Orchestrated shutdown: VMs → LXC containers → secondary nodes → primary
- Interactive confirmation before shutdown
- Color-coded progress indicators
- Countdown timers for each phase
- Post-replacement verification checklist
- Troubleshooting guide for common issues
- Recovery procedures for cluster/quorum problems

The procedure accounts for all 3 cluster nodes (pve1, pvemini, pveelite)
being on the same UPS, requiring complete infrastructure shutdown.

Documentation includes:
- When to replace battery (based on monthly test results)
- Pre-planning and user notification templates
- Physical battery replacement safety procedures
- Cluster recovery and VM restart procedures
- Post-replacement testing and verification
- 24-hour and 1-week monitoring checklists

Estimated maintenance window: 30-60 minutes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 21:46:28 +03:00

13 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:

Indicator Acțiune
Health: POOR (charge drop > 55%) ⚠️ URGENT - Înlocuiește IMEDIAT
Health: FAIR (charge drop 35-55%) 📅 Planifică în 1-3 luni
Health: GOOD (charge drop 15-35%) Monitorizează lunar
Health: EXCELLENT (charge drop < 15%) Baterie OK

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ă:

  • Charge drop: < 10% (EXCELLENT)
  • 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