Technical

Fix Proxmox Remote Migration with Shared Storage Not Working

Fix Proxmox Remote Migration with Shared Storage Not Working

Remote migration with shared storage not working is almost always NFS permissions. The Proxmox logs show a generic error, but the real problem is TrueNAS rejecting the write. Fix the mapping and it works.

Closeup of many cables with blue wires plugged in modern switch with similar adapters on blurred background in modern st

What the error actually says

You try to migrate a VM and get something like storage migration failed: error with cfs-locked 'storage-...' or can't migrate VM with local disk. That second one is misleading. It means Proxmox doesn’t see the shared storage as shared, so it thinks the disk is local to the source node.

Check the obvious first

On both Proxmox nodes, run pvesm status. The shared storage should show as active on both. If it’s only active on one, the other node can’t mount the NFS export. That’s your problem.

Now check /etc/pve/storage.cfg. The storage definition must have shared 1 and the same path on both nodes. If the path differs, Proxmox treats it as local storage and refuses remote migration.

From below of fiber optic switch with sockets and connected rubber cables on blurred background

NFS permissions on TrueNAS

This is where it usually goes wrong. TrueNAS defaults to root squash, which means Proxmox’s root user gets mapped to nobody. That breaks migration because Proxmox needs to write as root to the shared dataset.

On TrueNAS, edit the NFS share and set Maproot User to root and Maproot Group to wheel. If you’re using an unprivileged LXC, you’ll also need to map the container’s root to an unprivileged user on the NAS. I wrote about that headache in proxmox backup skips bind-mounted NAS datasets in unprivileged LXC containers.

After changing the maproot, restart the NFS service on TrueNAS. On Proxmox, remount the storage: umount /mnt/pve/nas-share && mount /mnt/pve/nas-share. Then test with touch /mnt/pve/nas-share/testfile as root. If that works, migration should too.

One more thing: the storage name

Proxmox matches storage by name, not by path. If you added the NFS share with different names on each node (like nas1 on one and nas2 on the other), remote migration fails silently. Rename them so they match exactly in storage.cfg.

This is the kind of thing that wastes an evening. The fix is simple once you see it, but the error message points you nowhere. Check permissions, check the path, check the name. One of those is wrong.

Leave a comment

Comments are reviewed before they appear. Your email is never published.