You already understand the “risks”.
Upgrading a pool is a one-way operation.
The only way to assure you can “undo” an upgrade is to create a checkpoint before you go through the upgrade and RAIDZ expansion process.
Keep in mind that you’re not meant to write any new important data (that you wish to keep)[1] after the checkpoint’s creation, if you plan to immediately rewind back to the checkpoint.
TL;DR:
- You create a checkpoint
- You upgrade the pool
- You expand your RAIDZ vdev
- You immediately regret it
- You rewind back to the checkpoint.
- Everything from steps 2 through 3 “never happened”
Alternative TL;DR:
- You create a checkpoint
- You upgrade the pool
- You expand your RAIDZ vdev
- You like the results
- You discard the checkpoint
Understand the nuances of checkpoints, and the differences between importing pools on TrueNAS vs vanilla ZFS.
That’s why if you write new files between steps 2 through 3, you will lose them after rewinding to the checkpoint. ↩︎