From 00c6410dbddd50b919ec7e394bd2e967a1af63f3 Mon Sep 17 00:00:00 2001 From: Marius Date: Sun, 11 Jan 2026 15:28:00 +0200 Subject: [PATCH] Document VM 201 power outage incident and update HA configuration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add troubleshooting guide for 2026-01-11 power outage incident - Update vm201-windows11.md with correct storage details (disk-1, disk-3) - Remove HA configuration, document manual failover procedure - Add ZFS replication status and commands - Document lessons learned: ISO attachments block migration 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- ...-troubleshooting-pana-curent-2026-01-11.md | 202 ++++++++++++++++++ proxmox/vm201-windows11.md | 58 ++++- 2 files changed, 251 insertions(+), 9 deletions(-) create mode 100644 proxmox/vm201-troubleshooting-pana-curent-2026-01-11.md diff --git a/proxmox/vm201-troubleshooting-pana-curent-2026-01-11.md b/proxmox/vm201-troubleshooting-pana-curent-2026-01-11.md new file mode 100644 index 0000000..7a652ed --- /dev/null +++ b/proxmox/vm201-troubleshooting-pana-curent-2026-01-11.md @@ -0,0 +1,202 @@ +# VM 201 - Troubleshooting Pană de Curent (2026-01-11) + +## Rezumat Incident + +**Data:** 2026-01-11 +**Problemă:** VM 201 nu pornea după o pană de curent +**Cauză root:** HA blocat în starea "migrate" din cauza dependențelor de storage indisponibil +**Rezoluție:** Migrare manuală, eliminare HA, configurare replicare + +--- + +## Cronologie Incident + +### 1. Stare Inițială +- VM 201 era configurat pe **pveelite** (migrat anterior de HA) +- Replicare configurată: pveelite → pve1, pvemini +- HA activ în `ha-group-main` (prioritate: pvemini:100 > pveelite:50) + +### 2. Ce s-a întâmplat la pana de curent +1. pvemini a căzut +2. HA a încercat să migreze VM 201 pe pveelite +3. Migrarea a eșuat din cauza ISO atașat de pe storage `backup` +4. Când pvemini a revenit, HA a încercat să migreze înapoi +5. HA a rămas blocat în starea "migrate", reîncercând la fiecare 10 secunde + +### 3. Erori întâlnite +``` +storage 'backup' is not available on node 'pveelite' +migration aborted +``` + +--- + +## Probleme Identificate + +| Problemă | Impact | Rezolvare | +|----------|--------|-----------| +| ISO atașat de pe storage local (`backup:iso/virtio-win-latest.iso`) | Blochează migrarea automată | Detașat ISO: `qm set 201 --ide1 none` | +| Snapshot-uri cu referințe la storage `backup` | Blochează migrarea | Șterse snapshot-uri | +| Replicare configurată invers | Discuri pe nod greșit | Recreat job-uri replicare | +| Clone ZFS (base-300) legat de discuri VM 201 | Blochează ștergerea | Promovat clone: `zfs promote` | +| HA cu failback automat | Încerca să mute înapoi VM-ul | Eliminat din HA | + +--- + +## Pași de Rezolvare + +### Pas 1: Diagnostic +```bash +# Verificare unde e VM-ul +find /etc/pve/nodes -name '201.conf' + +# Verificare stare HA +ha-manager status | grep 201 + +# Verificare erori +ssh root@10.0.20.202 "journalctl -u pve-ha-lrm -n 50" +``` + +### Pas 2: Dezactivare HA temporar +```bash +ha-manager set vm:201 --state disabled +# Sau eliminare completă: +ha-manager remove vm:201 +``` + +### Pas 3: Detașare ISO +```bash +qm set 201 --ide1 none +``` + +### Pas 4: Ștergere snapshot-uri cu referințe problematice +```bash +qm delsnapshot 201 Windows11VisualSVNROAUpdate +qm delsnapshot 201 Windows11Debloated +qm delsnapshot 201 Windows11ProaspatInstalat +``` + +### Pas 5: Ștergere job-uri replicare corupte +```bash +pvesr delete 201-0 --force +pvesr delete 201-1 --force +``` + +### Pas 6: Migrare manuală +```bash +qm migrate 201 pvemini +``` + +### Pas 7: Recreare job-uri replicare +```bash +pvesr create-local-job 201-0 pve1 --schedule '*/30' --comment 'central W11' +pvesr create-local-job 201-1 pveelite --schedule '*/30' --comment 'central W11' +``` + +### Pas 8: Curățare discuri vechi nefolosite +```bash +# Promovare clone (dacă există) +zfs promote rpool/data/base-300-disk-0 +zfs promote rpool/data/base-300-disk-1 + +# Ștergere discuri vechi +zfs destroy -r rpool/data/vm-201-disk-0 +zfs destroy -r rpool/data/vm-201-disk-2 +``` + +--- + +## Configurație Finală + +### VM 201 +- **Nod:** pvemini (10.0.20.201) +- **IP:** 10.0.20.122 +- **Discuri:** vm-201-disk-1 (EFI), vm-201-disk-3 (500GB) + +### HA +- **Status:** ELIMINAT (control manual) +- **Motiv:** Evitare blocaje la migrare automată + +### Replicare +- **201-0:** pvemini → pve1 (*/30) +- **201-1:** pvemini → pveelite (*/30) + +--- + +## Lecții Învățate + +### 1. NU atașa ISO-uri de pe storage local +Storage-ul `backup` este local pe pvemini și nu e disponibil pe alte noduri. Asta blochează migrarea. + +**Soluție:** Detașează ISO-urile când nu sunt necesare: +```bash +qm set 201 --ide1 none --ide2 none +``` + +### 2. NU crea snapshot-uri cu ISO atașat +Snapshot-urile salvează referințele la storage, care blochează migrarea ulterioară. + +### 3. Replicarea și HA sunt independente +- **Replicare (pvesr):** Copiază discurile ZFS între noduri +- **HA:** Gestionează pornirea/migrarea automată + +Poți avea replicare fără HA. + +### 4. `/etc/pve` este partajat în cluster +Chiar dacă un nod e offline, fișierele de configurare sunt accesibile de pe alte noduri prin pmxcfs. + +### 5. Clone-urile ZFS blochează ștergerea +Dacă ai creat un VM template dintr-un snapshot, clone-ul trebuie promovat înainte de a șterge volumul părinte: +```bash +zfs promote rpool/data/base-XXX-disk-Y +``` + +--- + +## Procedură Failover Manual (Viitor) + +### Când pvemini cade: +```bash +# De pe pveelite sau pve1: +mv /etc/pve/nodes/pvemini/qemu-server/201.conf /etc/pve/nodes/pveelite/qemu-server/201.conf +qm start 201 +``` + +### Când pvemini revine (failback): +```bash +qm migrate 201 pvemini --online +``` + +--- + +## Comenzi Utile + +```bash +# Status replicare +pvesr status | grep 201 + +# Forțare replicare imediată +pvesr schedule-now 201-0 && pvesr schedule-now 201-1 + +# Verificare discuri pe noduri +ssh root@10.0.20.201 "zfs list | grep vm-201" +ssh root@10.0.20.202 "zfs list | grep vm-201" +ssh root@10.0.20.200 "zfs list | grep vm-201" + +# Verificare configurare VM +qm config 201 | grep -E 'disk|efidisk|virtio|ide' +``` + +--- + +## Referințe + +- **Documentație VM 201:** `vm201-windows11.md` +- **Proxmox Replication:** https://pve.proxmox.com/wiki/Storage_Replication +- **Proxmox HA:** https://pve.proxmox.com/wiki/High_Availability + +--- + +**Data rezolvare:** 2026-01-11 +**Durată incident:** ~2 ore +**Autor:** Marius Mutu diff --git a/proxmox/vm201-windows11.md b/proxmox/vm201-windows11.md index 45bc7f1..0ab0d88 100644 --- a/proxmox/vm201-windows11.md +++ b/proxmox/vm201-windows11.md @@ -24,12 +24,17 @@ ### Storage Details ```bash # Verificare disk usage -ssh root@10.0.20.201 "qm config 201 | grep scsi" +ssh root@10.0.20.201 "qm config 201 | grep -E 'efidisk|virtio'" # Output: -# scsi0: local-zfs:vm-201-disk-0,size=500G +# efidisk0: local-zfs:vm-201-disk-1,efitype=4m,pre-enrolled-keys=1,size=528K +# virtio0: local-zfs:vm-201-disk-3,size=500G ``` +**Discuri active:** +- `vm-201-disk-1` - EFI disk (528K) +- `vm-201-disk-3` - Disk principal Windows (500GB, ~89GB utilizat) + ### Network Configuration - **Interface:** net0 - virtio bridge=vmbr0 - **IP Assignment:** DHCP (managed by network DHCP server) @@ -335,6 +340,7 @@ ssh root@10.0.20.201 "qm delsnapshot 201 pre-update-snapshot" ### Documentație VM 201 Specifică - **SSL Certificates IIS:** `vm201-certificat-letsencrypt-iis.md` - **Troubleshooting Incident 2025-10-08:** `vm201-troubleshooting-backup-nfs.md` +- **Troubleshooting Pană Curent 2026-01-11:** `vm201-troubleshooting-pana-curent-2026-01-11.md` ### Documentație Infrastructură Generală - **Proxmox Cluster General:** `proxmox-ssh-guide.md` @@ -367,13 +373,47 @@ ssh root@10.0.20.201 "qm delsnapshot 201 pre-update-snapshot" - Gitea: 10.0.20.165:3000 - Portainer: 10.0.20.170:9443 -### High Availability -- **HA Status:** Enabled (managed by pve-ha-crm) -- **Priority:** Normal -- **Autostart:** Enabled (onboot: 1) -- **Recovery:** Automatic VM migration în caz de node failure +### High Availability și Replicare -**Troubleshooting HA:** Vezi `vm201-troubleshooting-backup-nfs.md` → "VM 201 - HA Error" +#### HA Status: DEZACTIVAT (Control Manual) +- **HA:** Eliminat din cluster HA (decizie post-incident 2026-01-11) +- **Motiv:** Control manual asupra failover-ului pentru a evita blocaje +- **Autostart:** Enabled (onboot: 1) - pornește automat când nodul bootează + +#### Replicare ZFS (Activă) +- **Job 201-0:** pvemini → pve1 (la fiecare 30 min) +- **Job 201-1:** pvemini → pveelite (la fiecare 30 min) + +```bash +# Verificare status replicare +ssh root@10.0.20.201 "pvesr status | grep 201" + +# Forțare replicare imediată +ssh root@10.0.20.201 "pvesr schedule-now 201-0 && pvesr schedule-now 201-1" +``` + +#### Procedură Failover Manual (când pvemini cade) + +**Important:** `/etc/pve` este un filesystem partajat (pmxcfs). Chiar dacă pvemini e offline, configurarea VM-ului e accesibilă de pe orice nod din cluster. + +```bash +# De pe pveelite (10.0.20.202) sau pve1 (10.0.20.200): + +# 1. Mută configurarea pe nodul unde vrei să pornești +mv /etc/pve/nodes/pvemini/qemu-server/201.conf /etc/pve/nodes/pveelite/qemu-server/201.conf + +# 2. Pornește VM-ul (discurile sunt deja replicate) +qm start 201 +``` + +#### Procedură Failback (migrare înapoi pe pvemini) + +```bash +# Când pvemini e din nou online, migrează VM-ul înapoi +qm migrate 201 pvemini --online +``` + +**Troubleshooting:** Vezi `vm201-troubleshooting-pana-curent-2026-01-11.md` --- @@ -402,6 +442,6 @@ ssh root@10.0.20.201 "qm delsnapshot 201 pre-update-snapshot" --- -**Ultima actualizare:** 2025-11-19 +**Ultima actualizare:** 2026-01-11 **Autor:** Marius Mutu **Proiect:** ROMFASTSQL - VM 201 Documentation