Unfortunately I don’t have much time left to spend on this project so I would have to leave this for a follow-on project. I think that it shouldn’t be much more work to do this as an extension, where we have RAIDZ Expansion for a while and then we add “RAIDZ Expansion improved space accounting”, and blocks written after that point would have the improved accounting (that is, assuming it’s possible at all).
Why doesn’t the TrueNAS GUI just use zpool (against the pool itself), rather than zfs (against the root dataset) when presenting capacity info in the dashboard?
In order to account for freed space, the deflate ratio of a freed block needs to be known.
This is initially the original parity ratio. And in theory should change for newer blocks.
Rather than have different deflate ratios for pre/post expansion blocks, the deflate ratio is simply never changed.
And it all works.
The only issue is that your bytes are now made out of fatter bits.
Zpool doesn’t include parity/redundancy cost
You could derive the capacity by working out the capacity from each VDev based on its structure, but the allocated space is still wrong, so you can’t tell the free that way.
It gets complicated with multiple vdevs.
If you can find out the “free deflated space” for a given vdev then you can convert that to the new parity ratio in the gui, then sum up for each VDev.
Poor @joeschmuck. He probably thinks I’m a psychopath with the way I retract/edit my posts. Eating apple-flavored glue sticks and selling pickle-flavored ice cream.
LOL, pulling me back into this thread I see. I do like Apples and I like Ice Cream. But wait, I like Tootsie Pops, Banana Pudding, and Kielbasa. Not all together. Now I want an Apple Pie. Damn you @winnielinnie !
Thankfully the wife has a Pumpkin Pie and a can of Whip Cream. Do you know why they use N2O for this stuff? I thought it was so we could suck on it but the real reason is it makes the whipped cream, fluffier and smoother. A full body I guess. But it is too early in the morning to eat that pie. I may finish it all if I start now.
I did just purchase a rear brake kit for my wife’s car. She said it was making squealing noises, she was right, metal on metal on both sides. When those arrive tomorrow, I will have another item on the honey do list to complete. Maybe Apple Pie after that.
And how about that RAIDZ Expansion, isn’t it great? (felt I had to mention it in this thread at least once)
If I understand you correctly, that is exactly what I did with my tests a few posts up. I first expanded an empty pool and then filled it up with dd up to the brim. The “estimated” numbers for the pool size did not change whether it was empty or full.
Yes. I was able to store as much data as was physically possible. The system did not limit me to the amount that was calculated wrong. So at least we can use all the space we pay for, “only” the calculations are wrong