Hi!
Recently I’ve added a new big storage device to my Incus host and I’d like to move my container instances to that new storage. Both storages are ZFS-based, so I’d like to make use of the ZFS sync feature. As this comment by @tomp states, in this case, ZFS sync should be used in the background if I utilize the “incus move -s …” command.
That is fine, but with a 300+ GB container, it will certainly take a while. I was wondering if there is a better way. I think of something like that:
- Taking a snapshot of the old storage while the container is running
- “zfs sync” that snapshot to the new storage
- When it’s finished, stop the container, transfer diff to new storage via zfs sync -i (incremental).
- Switch container to new storage, start it.
- (delete snapshot of old storage)
This would drastically reduce downtime, as the vast majority of data can be synced in the background without affecting the running container. Only during the finishing diff sync (ZFS incremental sync) there will be a container downtime of few seconds.
Regarding this way of moving the container data, I have two questions:
- Has this been considered to be a supported way of moving container data? e.g. by an “incus move –prepare -s mynewstorage” command and an “incus move –finish” command, that only transfers the diff very quickly? I’d love to see this feature!

- I guess this process can be done manually while working around Incus a bit. I could create a ZFS snapshot and sync manually by using ZFS commands. But what about the Incus part? Probably I need to manipulate the Incus database to point to the new storage, right? Does this create any pitfalls or do you have hints how to “zfs sync -i” without causing any trouble to Incus?
Thank you very much! Incus is one of my very favorite tools! ![]()