I recently upgraded my Proxmox VE 8.4.0 homelab and added a dedicated 1TB SSD using ZFS. After setting up the new ZFS pool (zfs-ssd
), I needed to migrate my existing VMs from local-lvm
(LVM-Thin) to ZFS.
This post documents my complete migration process.
🖥️ System Overview
- Proxmox VE Version: 8.4.0
- Existing Storage: local-lvm (LVM-Thin)
- New Storage: zfs-ssd (ZFS pool on 1TB SSD)
🧭 Migration Method
The migration process uses Proxmox’s built-in disk move functionality. This converts LVM-Thin volumes into ZFS ZVOLs automatically.
⚠ Note: Live migration is not supported when moving between different storage types (LVM-Thin ➔ ZFS). VM must be offline during disk move.
🧪 Step-by-Step VM Disk Migration
1️⃣ Shutdown the VM (highly recommended)
You can perform offline moves by shutting down the VM prior to moving disks.
2️⃣ Verify current VM disk config
qm config <VMID>
Example:
qm config 105
Output:
scsi0: local-lvm:vm-105-disk-0,size=32G
Take note of the disk bus (e.g., scsi0
, virtio0
, etc.).
3️⃣ Perform disk move via GUI (Proxmox 8.4.0+)
Path:
Datacenter → Node → VM → Resources → Root Disk → Volume Actions → Move Volume
- Target Storage:
zfs-ssd
- Format: leave default
- Delete Source:
- Unchecked for first few migrations (safer).
- Checked after you verify VM boots correctly from new storage.
Proxmox will handle the data copy and configuration update.
4️⃣ Verify VM disk moved
After move completes, verify VM config:
qm config <VMID>
Example output:
scsi0: zfs-ssd:vm-105-disk-0,size=32G
5️⃣ Start VM and validate
- Boot the VM.
- Confirm functionality.
6️⃣ Cleanup local-lvm (optional)
After successful migrations, old unused volumes can be deleted from local-lvm
to reclaim space.
List LVM volumes:
lvs
Remove old unused volumes:
lvremove /dev/pve/vm-XXX-disk-0
🩺 Common Errors & Notes
Parse error in datacenter.cfg:
During my first migration, I encountered:
parse error in '/etc/pve/datacenter.cfg' - 'banner': property is not defined in schema and the schema does not allow additional properties
Solution:
Remove invalid banner:
line from /etc/pve/datacenter.cfg
if present.
Live disk move not supported for LVM-Thin ➔ ZFS
Due to storage format differences, live disk moves are not supported between LVM-Thin and ZFS. Offline moves are required.