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