Ct by ct migration from lxd to incus

I want carefully migrate ct’s one by one from lxd to incus with minimal downtime.

Is it possible to add incus as remote to lxd and run lxc move to incus node?

Is it possible to install incus on lxd node in move locally only one ct at time to incus?

lxd-to-incus can only migrate all ct’s as far as I understand, but I’m afraid of compatibility issues so have to do it one by one.

I use zfs, so may be it is possible to just run incus init and then something like rename zfs dataset path of selected ct to incus subpath?

This is possible but a lot less tested and a lot riskier than moving everything in one shot through lxd-to-incus due to the risk of the two conflicting in some unexpected ways.

You’d need to install Incus on the system, configure it with its own networks and storage pools, then indeed use either the LXD or Incus CLI to access both daemons over the network.
That’s possible but only works with TLS based authentication and will not work with trust tokens or trust password. (So you need to manually lxc config trust add client.crt or incus config trust add-certificate client.crt).

Doing this, you’re going to have distinct storage, distinct networks and need to have both LXD and Incus listen on the network but on different ports.

The instances will end up on a different network and so get a different IP address.
Depending on your ZFS system, if you’ve been using a whole zpool rather than a dataset for LXD, then you’ll need a separate zpool for Incus.

We’ve had a few other folks asking questions around doing that before but haven’t heard back afterwards, so it’s not clear if they did end up doing it and it worked fine or they ended up going with moving everything in one shot.