We have a pool that’s reaching it’s storage capacity and I’m looking to increase the size on it. From what I’ve read online (such as here Add drive to RAIDZ2 pool in TrueNAS SCALE | TrueNAS Community) it appears increasing pool size is not possible.
“ZFS supports adding VDEVs to an existing ZFS pool to increase the capacity or performance of the pool”
Now, reading this, it looks like the above forum link actually talks about increasing pool vdev size, not the size of pool itself and we can certainly increase pool size just by introducing a new vdev. Can you folks please confirm if I’m understanding this correctly or am I missing something here?
Yeah, the title of the post the OP refers to says “Adding drive to RAIDZ2 pool”, you will not add a single drive to it. I guess that’s why you are confused perhaps? That is different than adding a vdev which will be more than one.
Just to clarify further, there is (as I understand it) no such thing as a RAIDZ2 POOL but rather a RAIDZ2 vDev.
AFAIK you cannot (as yet) add an extra disk to a RAIDZ2 vDev, but if you create another vDev you can add it to an existing pool.
That said, if your existing vDev is a RAIDZ2, the most appropriate choice for a 2nd vDev would also be RAIDZ2. Other vDev types would probably work, but the performance characteristics might be a little odd.
Mixing different types of vdevs works, but performance and resiliency are limited by the worst vdev in the mix (e.g.: add a single drive vdev to a pool; if that drive goes down the whole pool is dead). So consistency is recommended…
Thanks for the valuable suggestions @Protopia and @etorix. current vdev is raidz2. I’m thinking of having raidz3 for the new vdev to have 3 drive redundancy. I understand that raidz2 would still be the weak link in the pool so I’m thinking of rebuilding it with raidz3 before introducing the second vdev.
thanks @Protopia this surely is a better plan than what I had in mind. I was going to destroy pool, create new one with raidz3 vdevs and then copy data from pool in a backup NAS to the new pool. This one’s way quicker and less desruptive.
Actually, I am not sure that the pool needs to be renamed - but I think I did miss a step at the end…
Remount the new pool at the same mount point as the original pool.
There probably also need to be some additional steps to stop all apps from running and then restart them. Others have suggested elsewhere that you do this by deallocating the pool for apps. But I don’t have enough expertise to know whether this is correct or not.