第 8 章 配额管理架构
启用配额管理功能后,单独的 blob 大小在存储库和命名空间级别总和。例如,如果同一存储库中的两个标签引用同一 blob,则该 Blob 的大小仅计算为仓库总计一次。另外,清单列表总数计算为存储库总计。
因为清单列表总数被计算为仓库总计,所以从以前的 Red Hat Quay 版本升级时消耗的总配额可能会在 Red Hat Quay 3.9 中被报告不同。在某些情况下,新总数可能会超过存储库的之前设置的限制。Red Hat Quay 管理员可能需要调整存储库所分配的配额,以考虑这些更改。
配额管理功能的工作原理是,使用回填 worker 计算现有存储库和命名空间的大小,然后从总镜像添加或减去,这些镜像被推送或垃圾收集到每个镜像。另外,在收集清单时,从总的减法中减去。
因为减法发生在清单垃圾回收时的总数,所以大小计算会有一个延迟,直到它能够收集垃圾回收为止。有关垃圾回收的更多信息,请参阅 Red Hat Quay 垃圾回收。
以下数据库表包含机构中 Red Hat Quay 仓库的配额存储库大小、配额命名空间大小和配额 registry 大小(以字节为单位):
-
QuotaRepositorySize
-
QuotaNameSpaceSize
-
QuotaRegistrySize
组织大小由回填 worker 计算,以确保不会重复。初始化镜像推送时,会验证用户的机构存储来检查它是否超出配置的配额限制。如果镜像推送超过定义的配额限制,则会出现软或硬检查:
- 对于软检查,用户会收到通知。
- 对于硬检查,推送将停止。
如果存储消耗在配置的配额限制内,则允许推送进行。
镜像清单删除遵循类似的流程,其中关联的镜像标签和清单之间的链接会被删除。另外,在镜像清单被删除后,会在 QuotaRepositorySize
、QuotaNameSpaceSize
和 QuotaRegistrySize
表中重新计算和更新存储库大小。