On Shares is presenting error "Share size enforcement is temporarily disabled due to incomplete support in BTRFS. Until this status changes, the effective size of a Share is equal to the size of the Pool it belongs to. " how can i solve the problem? I’ve done a lot of research but I couldn’t find the right solution.
@coolbit Welcome to the Rockstor community.
Sorry for the delay in publishing this forum post. As it was a cut and paste from an email to me via support the forum flagged it as having been ‘typed’ suspiciously fast. And as per my email response I’m not going to be able to address this myself for a few days properly due to time constraints related to the backlog for the Rockstor 4 release.
But I can start the ball rolling here for others to pick up hopefully.
In short it is very highly recommended that one does not re-enable share quote enforcement in anything less that Rockstor 4, our new built on openSUSE variant which has many modern btrfs backports to a kernel that is aready at 5.3 base. Where as our CentOS kernel is version 4.12 with zero btrfs backports as it’s a mainline from elrepo. Therefore if this is to be entertained at all one should first be familiar with installer one’s own kernel and familiar with how to integrate that into Rockstor, which would in turn require at least the Stable channel variant of 3 in order that Rockstor’s can account for changes in how btrfs works in the newer kernels, specifically around quotes.
So my plan when I get the time is to start a fresh technical wiki on how to disable Rockstor’s current maxing our of all quotes that was introduced, to avoid many btrfs instabilities/quote maturities at the time. Although others are welcome to beat me to this if they have the time/interest.
The message you referenced was introduced in the following commit on 18th Aug 2015:
And the following low level code (from Rockstor’s perspective) is where we changed from actually enforcing the quotes to the size of the share to setting them at “none”, i.e. unlimited:
And the key change here, from enforcing share limits to setting then to"none", was added in the following commit:
To address this issue:
Where the Rockstor project’s founder @suman contacted the btrfs developers at the time to advise on issues we were having with our then current kernel and quota behaviour:
I got the confirmation from the qgroup developer(at least one of them anyway) that support is much better in 4.2. So for now, I’ve made the change that’s referenced above to temporarily disable Share size enforcement and display appropriate warnings in the UI.
A few months later we have a follow up of:
Ok, I have news about this issue. Looks like btrfs qgroup stuff is working now. I’ve tested it on 4.3.3 and also added bin/qgroup-test test script that tests the behavior. Still not comfortable pushing the changes to Testing, but definitely a great sign.
As the current maintainer I have been unwilling to re-enable this quota enforcement until we completed our ‘Built on openSUSE’ move so that we at least had ongoing upstream kernel fixes, which in our CentOS variant we failed to maintain for ourselves.
So given the Rockstor 4 installer can at least now be made:
I think we can again entertain the option to re-enable this ‘hobbled’ facility. Especially given, in the mean time, we have added the new option of completely disabling quotas. Although this of course also bring with it the necessity to be compatible with a quote disabled situation when trying to enforce share (btrfs subvol) quote limits. And a requirement to re-enforce those same limits upon quotes being re-enabled. Considerations for whoever ends up having a go at re-enabling this share size enforcement capability against the indicated issue above.
I have now updated that same referenced issue to link to this most recent forum thread:
Hope that helps.