Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rewrite narrow stripes after RAIDZ expansion #15679

Open
TurkeyMan opened this issue Dec 16, 2023 · 4 comments
Open

Rewrite narrow stripes after RAIDZ expansion #15679

TurkeyMan opened this issue Dec 16, 2023 · 4 comments
Labels
Type: Feature Feature request or new feature

Comments

@TurkeyMan
Copy link

Describe the feature would like to see added to OpenZFS

I'd really love a tool to locate any narrow stripes and rewrite them at the new stripe width after expansion has completed.

How will this feature improve OpenZFS?

RAIDZ expansion works by reordering the data on the drives; where existing data retains its original stripe width.
After expansion is complete, it may be desirable to reclaim disk space by rewriting old stripes at the new full stripe width.
There is no user-driven process to identify data written with the old stripe width and atomically rewrite the data with the new strip width. Work-arounds require copying data around the filesystem, they're not atomic, they also affect the file metadata/timestamps, etc.

@TurkeyMan TurkeyMan added the Type: Feature Feature request or new feature label Dec 16, 2023
@NicholasRush
Copy link

If ZFS could do this, it would mean that it has to rewrite all data on the expanded vdev. A better way would be to implement a raid-dp like raid model. In the raid-dp model, you can add everytime drives to an existing raid group without the need to rewrite everything. This is possible, because you have separate parity drives like raid-4.

@TurkeyMan
Copy link
Author

If ZFS could do this, it would mean that it has to rewrite all data on the expanded vdev.

Yes, it would. That's exactly the goal. A better way might be to do it while expanding, but my understanding is that's not on the table; the expansion strategy was chosen because it's extremely safe and simple... (?)

@ericloewe
Copy link

This is not going to happen anytime soon since it would require block pointer rewrite.

@TheManchineel
Copy link

SnapRAID/Unraid it is 🤷

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Type: Feature Feature request or new feature
Projects
None yet
Development

No branches or pull requests

4 participants