diff --git a/proxmox/cluster/README.md b/proxmox/cluster/README.md index dccdeff..a07c098 100644 --- a/proxmox/cluster/README.md +++ b/proxmox/cluster/README.md @@ -107,6 +107,38 @@ rpool/data # ZFS pool pentru VM/LXC /var/lib/vz/template/cache/ # LXC templates ``` +### ⚠️ Linked clone → full clone: `qm move-disk` NU merge pe `local-zfs` + +Un VM clonat din template rămâne **linked clone** (`zfs list -o name,origin` arată un +`origin`), iar template-ul sursă nu poate fi șters cât timp există. Metoda evidentă — +`qm move-disk virtio0 local-zfs --delete 1` — **eșuează întotdeauna**. PVE respinge +mutarea pe același storage (`/usr/share/perl5/PVE/API2/Qemu.pm:4688`): + +```perl +die "you can't move to the same storage with same format\n" + if $oldstoreid eq $storeid && (!$format || !$oldfmt || $oldfmt eq $format); +``` + +Pentru zvol-uri `$oldfmt` e mereu `undef` (numele n-are sufix `.raw`), deci condiția e +adevărată indiferent de parametri. Nici storage-ul `local` nu e o rută de ocolire — are +`content iso,vztmpl,backup`, fără `images`. + +**Ce funcționează** (aplicat pe VM 303 în 2026-08-11, ~8 min downtime pentru 64 GB): backup +`vzdump` întâi, apoi ștergerea snapshot-urilor VM-ului (blochează detașarea sursei), oprire +curată, și copie ZFS locală cu swap de volid în `/etc/pve/qemu-server/.conf`: + +```bash +zfs snapshot rpool/data/vm-303-disk-1@fullclone +zfs send rpool/data/vm-303-disk-1@fullclone | zfs recv rpool/data/vm-303-disk-2 +zfs destroy rpool/data/vm-303-disk-2@fullclone +zfs destroy rpool/data/vm-303-disk-1@fullclone +zfs set refreservation=none rpool/data/vm-303-disk-2 # local-zfs e sparse 1 +``` + +`zfs send` fără `-i` produce un flux complet, deci datasetul rezultat nu are `origin`. +În config, discul vechi se lasă ca `unusedN` — rollback prin swap invers, ~1 minut. Ambele +discuri trebuie tratate, inclusiv `efidisk0`. + ## Comenzi Utile Proxmox ### Gestiune VM-uri