MrToddsFriends
Documentation Browser
- Joined
- Jan 12, 2015
- Messages
- 1,338
I'm currently playing with the quota ("Quota for this dataset and all children" in the GUI) and refquota ("Quota for this dataset" in the GUI) properties to achieve the following goals:
1) The underlying pool (used for several datasets) should never get full.
2) The creation of snapshots should never fail with an "out of space" error due to (ref-)quota restrictions.
3) If possible, the need for administrative interventions should be kept small.
While requirement 1) could be easily achieved using appropriate quota alone, I'm not sure if the creation of a snapshot could fail if the quota for a dataset is fully exhausted. In my tests I performed so far I was not able to produce a failure during snapshot creation while quota is exhausted, but I'm not sure if I'm overlooking something.
Using refquota alone should never be an obstacle for snaposhot creation (as long as the pool is not full) but in this way the used property of a dataset can grow much larger than the refquota value, depending of the number of snapshots and the usage of the dataset (e.g. how much of the data are modified or overwritten). So using refquota is in contradiction of requirement 1).
Now to requirement 3): The downside of using quota is that users might not be able to free up usable space by deleting data as the used property doesn't necessarily decrease due to deletion if snapshots are present. As the refer property does decrease on deletion, users are able to free up usable space without administrative intervention [edit: when using refquota].
So my question is: Is there some sort of best practice, maybe by using a combination of quota and refquota properties, which is known to work flawlessly in most use cases?
1) The underlying pool (used for several datasets) should never get full.
2) The creation of snapshots should never fail with an "out of space" error due to (ref-)quota restrictions.
3) If possible, the need for administrative interventions should be kept small.
While requirement 1) could be easily achieved using appropriate quota alone, I'm not sure if the creation of a snapshot could fail if the quota for a dataset is fully exhausted. In my tests I performed so far I was not able to produce a failure during snapshot creation while quota is exhausted, but I'm not sure if I'm overlooking something.
Using refquota alone should never be an obstacle for snaposhot creation (as long as the pool is not full) but in this way the used property of a dataset can grow much larger than the refquota value, depending of the number of snapshots and the usage of the dataset (e.g. how much of the data are modified or overwritten). So using refquota is in contradiction of requirement 1).
Now to requirement 3): The downside of using quota is that users might not be able to free up usable space by deleting data as the used property doesn't necessarily decrease due to deletion if snapshots are present. As the refer property does decrease on deletion, users are able to free up usable space without administrative intervention [edit: when using refquota].
So my question is: Is there some sort of best practice, maybe by using a combination of quota and refquota properties, which is known to work flawlessly in most use cases?
Last edited: