Rulare detasata din dashboard/Discord: nssh local fara ssh la sine, CT 171 ramane pornit si moare odata cu pvemini (HA freeze il reporneste), email cu instructiunile de pornire, pauza si pentru testul DR si fereastra de patch. Garda CT 171 nu mai depinde de /proc/1/environ (era sarita fara root). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KddsXCqEbKMhdFJDYbAsx8
Failover & High Availability
Strategia HA pe cluster, separată pe nivele de criticitate.
Rezumat resurse critice
| Resursă | Criticitate | HA automat | Replicare | RPO |
|---|---|---|---|---|
| CT 108 Oracle central | Nivel 0 | Da | pveelite */15 min, pve1 */15 min |
15 min |
| VM 201 Windows roacentral | Nivel 0 | Da (din 2026, vezi mai jos) | pveelite */15 min, pve1 */15 min |
15 min |
| CT 171 claude-agent | Nivel 1 | Da | pveelite */15 min, pve1 */15 min |
15 min |
| CT 104 flowise | Nivel 2 | Da | zilnic 21:15 | 24h |
| CT 106 gitea | Nivel 2 | Da | */2 ore |
2h |
| CT 100 portainer | Nivel 2 | Da | zilnic | 24h |
VM 201 — HA automat + procedură manuală de rezervă
Corectat 2026-08-27. Docul spunea anterior că VM 201 nu este în HA. Nu mai este adevărat — verificat pe cluster live:
vm:201 (pvemini, started), grupha-prefer-pvemini,max_restart 3,max_relocate 2.
VM 201 (Windows production) este acum în HA, grup ha-prefer-pvemini
(pvemini:100, pve1:50, pveelite:10). Dacă pvemini cade, CRM-ul o repornește
automat pe pve1 din ultima replicare ZFS (RPO 15 min).
Motivul pentru care a stat inițial în afara HA: la o mentenanță în care pvemini a fost scos temporar din HA, VM 201 a migrat automat — comportament nedorit pentru Windows production, care cere fereastră de mentenanță controlată.
Acest risc rămâne valabil. Pentru orice oprire planificată setează
shutdown_policy=freeze înainte — vezi
Oprire planificată a clusterului.
Procedura manuală de mai jos rămâne validă ca rezervă, pentru cazul în care HA nu reușește recovery-ul (lipsă quorum, pveelite fără RAM, replicare rămasă în urmă).
Declanșator alertă
Cron pe pveelite verifică pvemini la fiecare minut:
- Script:
/opt/scripts/pvemini-down-alert.sh - După 2 minute DOWN consecutive → mail
mmarius28@gmail.comcu comanda failover ready-to-run
Execuție failover
Din orice sesiune SSH:
ssh root@10.0.20.202 /opt/scripts/failover-vm201.sh
Scriptul:
- Verifică pvemini efectiv DOWN (ping + ssh); abort dacă răspunde
- Verifică VM 201 nu rulează deja pe pveelite
- Afișează ultima replicare ZFS disponibilă local
- Cere confirmare interactivă (tastezi
DA) qm start 201pe pveelite- Trimite mail confirmare cu pași post-failover
Pentru automatizare (fără prompt):
ssh root@10.0.20.202 /opt/scripts/failover-vm201.sh --yes
După revenire pvemini — script interactiv
NU porni automat VM 201 pe pvemini. Date posibil divergente.
ssh root@10.0.20.202 /opt/scripts/recover-vm201-to-pvemini.sh
Scriptul verifică:
- pvemini uptime min. 30 min + erori recente
- pvemini reachable ssh + VM 201 nu rulează deja acolo (anti split-brain)
- VM 201 running local pe pveelite
Pași executați automat (cu confirmare):
qm shutdown 201pe pveelitepvesr create-local-job 201-2 pvemini --source pveelite+ run forțatqm migrate 201 pveminioffline- Cleanup job replicare inversă
qm start 201pe pvemini
Non-interactiv: adaugă --yes.
CT 108 Oracle — HA automat
- Group
ha-prefer-pvemini(pvemini:100, pve1:50, pveelite:10) — corectat 2026-08-27, docul spuneaha-group-maincu alte priorități max_restart 3, max_relocate 2- Replicare
*/15min → failover automat cu RPO 15 min - Constrângere RAM pveelite 16 GB: dacă pvemini cade, pveelite trebuie să aibă spațiu pentru CT 108 (8 GB) + CT 101 existent + eventual alte CT-uri HA
CT 171 claude-agent — HA automat
- Adăugat în HA pentru acces Claude Code continuu
- Dacă pvemini cade, CT 171 pornește pe pveelite cu ultima replicare (max 15 min în urmă)
- State = workspace files din
/workspace/— replicate ZFS
Fișiere relevante
| Fișier | Locație | Scop |
|---|---|---|
failover-vm201.sh |
/opt/scripts/ pe pveelite |
Failover manual VM 201 pvemini → pveelite |
recover-vm201-to-pvemini.sh |
/opt/scripts/ pe pveelite |
Recovery interactiv VM 201 pveelite → pvemini |
pvemini-down-alert.sh |
/opt/scripts/ pe pveelite |
Watchdog 1 min, mail dacă pvemini DOWN 2 min |
oom-alert.sh |
/opt/scripts/ pe toate nodurile |
Alertă OOM kills |
Comenzi utile
# Stare replicare
ssh root@10.0.20.201 "pvesr status"
# Stare HA
ssh root@10.0.20.201 "ha-manager status"
# Forțează replicare acum (util înainte de mentenanță)
ssh root@10.0.20.201 "pvesr run --id 108-1; pvesr run --id 201-1; pvesr run --id 171-1"
# Test script failover (dry — fără confirmare)
ssh root@10.0.20.202 "/opt/scripts/failover-vm201.sh" # va abort dacă pvemini răspunde
Oprire planificată a întregului cluster
Pentru lucrări electrice, mutare rack sau mentenanță UPS — nu folosi butonul
Shutdown direct. Politica implicită conditional relochează resursele HA, iar
watchdog-ul resetează hard nodul rămas fără quorum.