# 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:** ```bash 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:** ```bash ssh root@10.0.20.201 ``` **1.2. Verificare finală status cluster:** ```bash # 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):** ```bash # 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:** ```bash 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ă: ```bash # 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:** ```bash # Așteaptă până poți face SSH ssh root@10.0.20.201 ``` ### ETAPA 6: Verificări Post-Pornire **6.1. Verificare cluster:** ```bash # 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:** ```bash # 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:** ```bash 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:** ```bash # 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:** ```bash # 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:** ```bash # 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:** ```bash # Test automat /opt/scripts/ups-monthly-test.sh # Monitorizează log tail -f /var/log/ups-monthly-test.log ``` **8.2. Verificare rezultat test:** ```bash # 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):** ```bash # 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:** ```bash 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:** ```bash # Î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:** ```bash # 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:** ```bash # 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:** ```bash # 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:** ```bash # 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:** ```bash # 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`](UPS-SHUTDOWN-README.md) --- **Autor:** Claude Code **Data:** 2025-10-06 **Versiune:** 1.0