Document VM 201 power outage incident and update HA configuration
- 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 <noreply@anthropic.com>
This commit is contained in:
202
proxmox/vm201-troubleshooting-pana-curent-2026-01-11.md
Normal file
202
proxmox/vm201-troubleshooting-pana-curent-2026-01-11.md
Normal file
@@ -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
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user