From f48120e46bf4ac5d18a3bfb5f9e29efd65356073 Mon Sep 17 00:00:00 2001 From: Marius Date: Tue, 11 Aug 2026 00:57:29 +0300 Subject: [PATCH] docs(proxmox): cum se converteste un linked clone in full clone pe local-zfs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `qm move-disk local-zfs --delete 1` esueaza intotdeauna pentru zvol-uri: PVE respinge mutarea pe acelasi storage, iar conditia din Qemu.pm:4688 e mereu adevarata fiindca numele volumului n-are sufix de format. Nici storage-ul `local` nu e ruta de ocolire — n-are `images` in content. Documentata metoda care functioneaza (zfs send/recv local + swap de volid), asa cum a fost aplicata pe VM 303. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01MoFGxftQw92PX4Sdkn94pv --- proxmox/cluster/README.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) 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