ZFS VDEV Expansion

mumblingsages

Member
Jan 19, 2022
2
1
8
52
Can someone please verify what I think is true. It is not possible to expand an existing zfs vdev with an additional physical disk until the following feature gets merged into main. The only way to increase an existing vdev is to back up the data and recreate. Is that correct?

https://github.com/openzfs/zfs/pull/12225
 
Yes, there isn't a "extension" of zfs vdev , which you get with regular raid by just adding disks and growing. Only way to grow now,is to replace current disks with bigger,or add a new vdev.
 
And even with that upcoming raidz expansion feature it would be better to destroy and recreate the raidz with more disks, as thats the only way how to decrease the parity loss and increase the performance.

Example:
3 disk raidz1: 33% parity loss, 2x throughput performance, 1x IOPS performance
3 disk raidz1 expanded to 7 disk raidz1: still 33% parity loss, 2x throughput performance, 1x IOPS performance
7 disk raidz1 created from scratch: 14% parity loss, 6x throughput performance, 1x IOPS performance
So with this example you would tripple the performance and half the wasted capacity by creating a bigger raidz from scratch instead of expanding it.

As raid never replaces a backup its always good to have a copy of all your data on another ZFS pool. And in that case its not a big problem to just destroy a pool to create a bigger one later, as its easy to copy all the contents using replication ("zfs send | zfs recv"). Only the downtime while copying the data might be a big problem, depending on the size of the pool.