ZFS Expansion Question ... Sooner or Later

I have a 45Drives 15-bay enclosure that replaced a 2U 12 bay Supermicro. So, it has 12 drives in a RAID Z2 and the other three slots free. I have no pressing need to expand the pool (@ 63%), but have three drives sitting on the shelf that were waiting fror this recent TrueNAS release adding the expansion feature.

Of course a 15-drive Z2 VDEV isn’t ideal, but I don’t have the time, space or budget to rework this to 2 VDEVs right now.

My question is; is it better doing the expansion now, with less data in the pool, adding all three disks; or, is it better to wait until available pool space is running low and add the drives one by one as the new space keeps filling up?

As an aside, can I get a pool space growth report in Netdata? The only pool report I seem to see is re pool status.

Tom did a video on this, and I think I asked a question here in the forums. From what I gather, only new information gets placed on the new disks. What happens with the parity data I’m not sure.

I will tell you that I’m buying a new server based on this new feature, not filling all the drive slots when I buy it and planning to expand later if needed.

1 Like

ZFS stores data in chunks that consist of several data blocks and their parity blocks. Existing chunks maintain their old data to parity ratio, meaning those chunks use more space than newly written chunks. But the expansion redistributes the chunks across all the drives. More details here: raidz expansion feature by don-brady · Pull Request #15022 · openzfs/zfs · GitHub

I would expand before you reach the 80% mark.

1 Like

Thanks, I remember reading or seeing something about that now. If I’m interpreting that info correctly, it means that I should probably add the three empty disks now.

I might still wait for a 24.10.1 or 24.10.2 to catch any post-releast bugs.

If it is a production system, yes I’d wait. Lab system? It would probably only wait until I had time to fool with it.

I should probably tear mine down again and try this out. Right now I only have 512GB disks in my lab system (8 of them). I do have some old used 1TB disks, so I should probably tear it down and install 4 of the 1TB disks, get some stuff running on it, then add more 1TB disks to see what happens.

The only thing I don’t like about doing testing this way is that I can really only use RAIDz1 with the 4 disks, and going out to 8 disks it would be nicer to have RAIDz2. But from what Tom said, you can not change your parity type when you add drives.