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

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.