Replace HDD's w/ SSD's, merging 2 pools

I’ve looked through the community forum and user manual and I can find some topics which are related, but nothing exactly like my situation. If someone can direct me to a relevant post, I would be grateful.

I have “FreeBSD 13.1-RELEASE-p7 n245418-79e75956dbb TRUENAS” with 5 disks:

  • 128G SSD - the TRUENAS system drive
  • 2 3 TB HDDs, mirrored, with 1 pool “netstore”
  • 2 1TB HDDs, mirrored, with 1 pool “netstore2”

I would like to replace the 4 HDDs with 2 4TB SSDs and put both pools onto these. I have 1 spare SATA socket.

So, my plan is to put 1 new 4TB SSD in the spare SATA socket and add this to the “netstore” pool. Then remove one of the 3TB HDDs from that pool, put the other new 4TB SSD in the now vacant slot, add it to the “netstore” pool and then remove the 2nd 3TB HDD.

Now, I think all that’s left is to migrate the “netstore2” pool onto the new SSD pair. I don’t know how to do that (I suspect a sequence of export, shut down, import steps, but I’m not clear). I also don’t know if I need to do anything with the new SSDs to prepare for this before I do anything else, e.g., partition the disks.

Any help much appreciated. Let me know if any further information would be useful.

Adding the drive to the vdev would make a 3-way mirror.
Adding the drive as a single drive vdev would create a point of failure.
Rather, replace a drive with the new one: Install the drive (don’t remove the old one yet), go to Storage > Pool > (gear) > Status > (drive) > (3-dot menu) > Replace. Remove the old one when ZFS is done, and repeat.

If you want to keep separate datasets, replicate the content of netstore2 to netstore.
If you want to merge everything into a single dataset, copy the files.

Thx. That’s very helpful.

With respect to the migrating of netstore2 to the new drive pair, one possible complication is that netstore2 has a NextCloud jail (there are no jails on netstore). Will a replicate operation handle that? I don’t actually need to have separate datasets (there are 2 for historical reasons), but if I don’t, do I need to install the NextCloud jail in the netstore pool? Perhaps after copying everything (including the “jails” directory) I would only need to update the NextCloud mount points?

I guess so.
Or replace netstore2, and copy netstore into netstore2.