zfs, raidz-N…

http://genetics.wustl.edu/technology/replacing-a-bad-zfs-drive-with-larger-drive/

zpool set autoexpand=on pool-name

After that, follow the steps below.

  1. Identify one disk at a time by serial number
  2. zpool offline pool-name <disk ID>
  3. Remove the drive
  4. Replace with the larger drive
  5. zpool replace pool-name <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 pool-name <new disk ID> for each drive
  9. The pool automatically expands

To find the guid for the disks use…

sudo zdb

Now, there are some information out there stating that you need to enable GPT on the disk. To do so, use parted for the newly added disk;

parted /dev/sdX
(parted) mklabel GPT
(parted) q

I will update this post once I know exactly what to do when swapping in larger disks to a raidz-N pool.

Update 2023-04-10
First of all, no need to first take the disk offline, just power off the machine and replace the old disk with the new one and then start it again. That makes it a lot easier to identify which disk was replaced.
As root
zpool offline thepool 7332652462506561914
zpool replace thepool 7332652462506561914 /dev/disk/by-id/ata-Samsung_SSD_850_EVO_500GB_…

Then wait for the resilvering. Once done, do the next disk.
This took ~3 minutes to complete but will take considerably longer with larger disks. Replaced a 12TB spinning disk which took just under 10 hours.

And after adding the last SSD to the pool it automagically expanded from 222GB to 1.2TB free space. Now it’s time to restore some virtual machines from another proxmox host.