磁盘配额 - lyulyul/shine-cluster GitHub Wiki
磁盘配额由diskquota程序实现。
本政策由Issue 38和PR 45、登录节点的登录提示,公示4个月有余通过。
启用及禁用磁盘配额
- 当
/home
分区磁盘占用达到50%,启动磁盘配额。 - (管理员动作)当
/home
分区磁盘占用达到70%,申请额外硬盘。 - 当
/home
分区磁盘占用小于40%,取消磁盘配额。
计算配额
磁盘配额由定时器每7+天计算一次。diskquota limit
读取用户目录的当前大小,其大小平均值加2倍标准差为配额上限。
(根据切比雪夫不等式,受到配额限制的比例不会多于四分之一。)
用户目录的当前大小由底层btrfs提供,不是实时计算。
强制配额 Enforce Quota
配额数字计算出来后,diskquota update
负责把配额数字强制到用户帐户。diskquota update
由定时器每天运行一次。
例如新用户创建后,他的存储空间是没有限制的,因为配额尚未被强制。最多一天后,diskquota update
运行,他的存储空间才受到限制。
如果diskquota update
运行,它会检测磁盘占用百分比,启用或禁用磁盘配额。
配额豁免
为了支持平等、包容、多样,用户可以获得配额豁免。
豁免配额的条件:当前用户存储大于等于配额的90%。
由谁提出 | 豁免期 | 可以renew | |
---|---|---|---|
一级豁免 | 用户 | 3个月 | 否* |
二级豁免 | 导师 | 6个月 | 是 |
若符合条件,用户可以要求一级配额豁免。时间到后,若符合条件,需要由导师要求二级豁免。时间到后,若符合条件,需要由导师继续要求二级豁免。
*若用户存储一度低于配额或磁盘配额曾禁用,若符合条件,则用户可以重新开始要求一级豁免。
建议:当/home
分区磁盘占用达到90%,停止授予新豁免。
配额豁免同样由diskquota update
实施,即每天运行一次。今天获得配额豁免,可能明天才会在集群上反映出来。
处于配额豁免状态的用户,其磁盘占用在计算配额时被计算为其他用户里的最大值。
在/etc/diskquota/exemptions
用touch $id
生成一个文件名为豁免用户的uid文件即可实现豁免,具体实现方法参看/login/usr/local/bin/diskquota-exempt
以及diskquota update
。
查看配额
登录节点的登录提示显示配额限制是否将要启用或禁用,或当前的配额限制。
用户可运行sudo diskquota-show
(或加参数)查看自己的存储占用及配额限制。
systemctl list-timer
会列出磁盘配额的定时器的上次、下次运行时间。
管理员反对干预配额:反对提早运行或延后运行定时器,反对手动修改配额数字。
修正
若需修正本政策,需要提出issue。