Reduce pool aging (fragmentation) by setting aside metaslabs for quota/reservation? #11604
drjohnnyfever1
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I was watching Allan's talk on per-vdev properties, and I saw Matt's commit for 'Set aside a metaslab for ZIL blocks' and it gave me an idea. It might not be useful but I wanted to throw it out there.
If there was a way to constrain a dataset or zvol with a quota so it can only allocate or prefers to allocate from some subset of metaslabs, in theory if you have a large pool you could have smaller datasets or zvols that are serving databases or VMs where the activity would be relatively contained and when the dataset is destroyed you're going to get a relatively contiguous block of free space back. At least that is my understanding.
To some extent this would be a bit like having multiple pools, but it would be a bit cheaper and easier to carve up these 'subpools' using dataset/zvol semantics.
The obvious downsides are you are going to force reduced write performance on such a dataset as it approaches the quota, It'll start acting like it is on a full pool, but it might be a useful tradeoff in some circumstances.
Beta Was this translation helpful? Give feedback.
All reactions