Re: trying to avoid a lengthy quotacheck by deleting all quota data

Ben Myers
2015-02-24T17:33:08Z

Hi Harry,

On Tue, Feb 24, 2015 at 03:15:26PM +0000, Harry wrote:
> Hi there,
>
> We've got a moderately large disk (~2TB) into an inconsistent state,
> such that it's going to want a quotacheck the next time we mount it
> (it's currently mounted with quota accounting inactive). Our tests
> suggest this is going to take several hours, and cause an outage we
> can't afford.

The 'noquota' mount option will disable quotacheck at mount time. That
may do what you need.

> We're wondering whether there's a 'nuke the site from orbit' option
> that will let us avoid it. The plan would be to:
> - switch off quotas and delete them completely, using the commands:
> -- disable
> -- off
> -- remove
> - remount the drive with -o prjquota, hoping that there will not be
> a quotacheck, because we've deleted all the old quota data
> - run a script gradually restore all the quotas, one by one and in
> good time, from our own external backups (we've got the quotas in a
> database basically).
>
> So the questions are:
> - is there a way to remove all quota information from a mounted drive?
> (the current mount status seems to be that it tried to mount it with
> -o prjquota but that quota accounting is *not* active)
> - will it work and let us remount the drive with -o prjquota without
> causing a quotacheck?

Quotacheck is implemented by truncating the quota inode and then
rebuilding the dquots from scratch as it traverses all the inodes in the
filesystem. Unfortunately the filesystem needs to be idle during this
process or the accounting could be incorrect, so there is no gradual
option for restoring quotas.

Regards,
Ben