ZFS pool migration on SmartOS: best way to migrate data

Hi all,

I’m planning to migrate off a degraded RAIDZ1 pool on aging hardware (SmartOS global zone, ~7 years old) and would appreciate input on the cleanest way to do this.

I’ll be adding 3x new 4TB SATA enterprise disks (likely Seagate Exos), and the plan is to:

  1. Create a new pool with the new drives (RAIDZ1)
  2. Migrate all data from the current zones pool
  3. Preserve existing dataset structure and mountpoints
  4. Retire the old pool

Is zfs send the best (and only) proper way to do this migration on SmartOS, especially for datasets like zones and images? Can I do that in a way that the new pool is called zones as well in the end? Ideally SmartOS would just accept the new pool after the migration.

Anything I should watch out for?

Also, would anyone advise against the Seagate Exos drives for this use? Didn’t buy new hardware for a while…

Thanks,
Adrian

To answer myself, I found this post on Reddit and I think that’s what I want in the end, with the added resilvering in the beginning to replace the one faulty disk.

https://www.reddit.com/r/zfs/comments/qg4dzb/comment/hi3puk9/

The comment says:

  1. Identify one disk at a time by serial number
  2. zpool offline zpool0 <disk ID>
  3. Remove the drive
  4. Replace with the larger drive
  5. zpool replace zpool0 <old disk ID> <new disk ID>
  6. Wait for resilver to complete
  7. Repeat from 1. until all disks are replaced
  8. zpool online -e zpool0 <new disk ID> for each drive
  9. The pool automatically expands

Credits to gargravarr2112 on Reddit.