这是我参与8月更文挑战的第11天,活动详情查看:8月更文挑战”、
原理介绍
在 NAS 文件服务环境中,通常以共享目录的方式将资源提供给使用的部门、组织或个 人。而每个部门或个人,都有其独特的资源需求或限制。因此,系统需要基于共享目 录,因地制宜地对各个使用者,进行资源分配和限制。 文件系统配额特性称为 SmartQuota,正是用于满足此需求的技术,该技术可以针对 目录、用户、用户组这三类资源的使用者分别进行资源控制。SmartQuota 可配置的 配额选项有容量软配额、容量硬配额、文件软配额、文件硬配额。
容量软配额(space soft quota):配额对象上用于空间容量告警的配置值。当配 额对象已用空间超过所设置的容量软配额时,向系统告警提示空间资源紧张,提 醒用户删除不用的文件或扩大配额。此时用户仍然可以继续写入数据。
容量硬配额(space hard quota):配额对象上用于限制最大可用容量的配置 值。当配额对象已用空间到达所设置的硬配额时,如果用户继续写入新数据, 向用 户返回空间不足的错误。
文件软配额(file soft quota):配额对象上用于文件数告警的配置值。当配额对 象已用文件数超过所设置的文件软配额时,向系统告警提示文件资源紧张,提醒 用户删除不用的文件或扩大配额。
文件硬配额(file hard quota):配额对象上用于限制最大可用文件数的配置值。 与容量硬配额一样,当配额对象的已用文件数到达所设置的硬配额时,向用户返 回空间不足的错误,保证使用文件数不得超出该值。 SmartQuota 使用硬配额(包括容量硬配额和文件数硬配额)来限制每个使用者最多 可以使用的资源。
关键流程
-
在每次写 I/O 操作时,将配额的已用容量和文件数,累加本次操作增加的容量和 文件数,检查其和值是否超出硬配额。
a. 若和值未超出硬配额,则允许操作向下执行;
b. 否则,写 I/O 操作失败。
-
在检查到写 I/O 操作被允许之后,需将增量的容量和文件数,累加到之前的容量 和文件数上。
-
然后,将配额更新(即容量和文件数的最新和值)和 I/O 数据一起写入文件系 统。 整个 I/O 操作及配额更新,要么全部成功,要么完全失败。这样保证了已用容量在每 次写 I/O 检查时,都是准确无误的。