This is an automated archive made by the Lemmit Bot.
The original was posted on /r/selfhosted by /u/munkiemagik on 2025-04-02 20:28:54+00:00.
Despite having spent the last year getting more and more into self-hosting and spinning up all maner of servers using ZFS vdevs and zpools for underlying data structures etc, truth be told im not as fluent in navigating ZFS as I am with other file systems. I've somehow ignorantly bumbled my way through all of it, 'fake it till you make it' approach as they say, pretending like I know what Im doing, lol
Reason I am asking this is I want to add another mirrored vdev to my NAS but I want to redistribute the existing data equally across the existing and new vdevs. The current zpools have child datasets and have different SMB shares created on them and fstab mounted into multiple different servers
I'm just not sure what would be the most efficient way to do that. My current thought is that when I purchase the 2 new disks for the new mirrored vdev also purchase another large enough disk that can accomodate all the existing data as a temporary store. However I'm not exactly sure what process would 'transfer' all the existing data out and then back in while maintaining its existing structure withotu having to re-jig everythign around or break anything.
Example: Currently I have multiple zpools with child datasets on a mirrored vdev. I know I could manually mount the temp disk into my NAS and just drag and drop everything from each SMB share to its own location on the temp disk and then drag it all back once the additional vdevs and pools/datasets have been recreated.
but is there a simpler way that maintains my existing pools and datasets that doesnt involve SMB 'drag & drop' cheat method?