磁盘配额 - 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/exemptionstouch $id生成一个文件名为豁免用户的uid文件即可实现豁免,具体实现方法参看/login/usr/local/bin/diskquota-exempt以及diskquota update

查看配额

登录节点的登录提示显示配额限制是否将要启用或禁用,或当前的配额限制。

用户可运行sudo diskquota-show(或加参数)查看自己的存储占用及配额限制。

systemctl list-timer会列出磁盘配额的定时器的上次、下次运行时间。

管理员反对干预配额:反对提早运行或延后运行定时器,反对手动修改配额数字。

修正

若需修正本政策,需要提出issue。