docs(cluster): procedura de oprire planificata + corectii stare HA reala

Runbook nou pentru oprirea controlata a celor 3 noduri (lucrari electrice,
mutare rack, mentenanta UPS) fara ca HA sa relocheze resursele si fara ca
watchdog-ul sa reseteze hard nodul ramas fara quorum.

Doua capcane documentate:
- /etc/pve/datacenter.cfg nu exista => shutdown_policy implicit `conditional`
  => poweroff pe nod declanseaza FAILOVER, nu freeze
- watchdog-ul face reset hard dupa ~60s pe nodul care pierde quorumul cu
  servicii HA inca active

Corectii in failover/README.md, verificate pe clusterul live:
- VM 201 ESTE in HA (grup ha-prefer-pvemini), docul spunea ca nu e
- CT 108 e in ha-prefer-pvemini (pvemini:100, pve1:50, pveelite:10),
  nu in ha-group-main cu pveelite:50/pve1:33
- replicare CT 108 si VM 201 la */15 min, nu */5 => RPO real 15 min

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RRyaDj39hPQ89SZS6URRpS
This commit is contained in:
Marius
2026-08-27 12:28:54 +03:00
parent 3ba36b6119
commit ff7e7da6d1
4 changed files with 316 additions and 6 deletions

View File

@@ -6,16 +6,33 @@ Strategia HA pe cluster, separată pe nivele de criticitate.
| Resursă | Criticitate | HA automat | Replicare | RPO |
|---------|-------------|------------|-----------|-----|
| CT 108 Oracle central | Nivel 0 | Da | pveelite `*/5` min, pve1 `*/5` min | 5 min |
| VM 201 Windows roacentral | Nivel 0 | **NU** (failover manual) | pveelite `*/5` min, pve1 `*/5` min | 5 min |
| 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 — failover manual
## VM 201 — HA automat + procedură manuală de rezervă
VM 201 (Windows production) **nu este în HA deliberat**. Incident anterior: când pvemini a fost scos temporar din HA pentru mentenanță, VM 201 a migrat automat — comportament nedorit pentru Windows production care cere fereastră de mentenanță controlată.
> **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)`, grup
> `ha-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](../docs/oprire-planificata-cluster.md).
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ă
@@ -68,9 +85,10 @@ Non-interactiv: adaugă `--yes`.
## CT 108 Oracle — HA automat
- Group `ha-group-main` (pvemini:100, pveelite:50, pve1:33)
- Group `ha-prefer-pvemini` (pvemini:100, pve1:50, pveelite:10) — *corectat 2026-08-27,
docul spunea `ha-group-main` cu alte priorități*
- `max_restart 3, max_relocate 2`
- Replicare 5 min → failover automat cu RPO 5 min
- Replicare `*/15` min → 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
@@ -103,3 +121,11 @@ ssh root@10.0.20.201 "pvesr run --id 108-1; pvesr run --id 201-1; pvesr run --id
# 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.
→ [Oprire planificată a clusterului](../docs/oprire-planificata-cluster.md)