You remove all existing data from that pool and write it back. There is no way to only move the metadata to the special device without also moving all the data. Same procedure as when trying to defrag your pool.
You could for example use "zfs send ... | zfs recv ..." to create a local copy of all datasets/zvols (in case you got enough space), destroy the original data, use the "zfs send ... | zfs recv" again to copy the copied data back to the original place. Then destroy the copy of the datasets/zvols.
In case you don't got the space you need another ZFS pool with enough space on the same or some other host. Then you do the same but sending the copy to that other pool.
You could for example use "zfs send ... | zfs recv ..." to create a local copy of all datasets/zvols (in case you got enough space), destroy the original data, use the "zfs send ... | zfs recv" again to copy the copied data back to the original place. Then destroy the copy of the datasets/zvols.
In case you don't got the space you need another ZFS pool with enough space on the same or some other host. Then you do the same but sending the copy to that other pool.
Last edited: