共享大小可以由共享类型限制

https://blueprints.launchpad.net/manila/+spec/share-size-limited-by-share-type

添加支持通过共享类型限制共享的大小,用户创建的共享大小不得大于在共享类型中设置的最大值,也不得小于设置的最小值。当然,根据使用场景,可以只设置最大值或最小值。

问题描述

在某些使用场景中,我们不希望用户创建过大的共享大小,从而影响可以创建的共享数量,可能受到项目配额或后端存储的限制,或者在某些使用场景中,创建过小的共享没有意义。因此,管理员迫切需要一种限制用户创建的共享大小的方法。

用例

在存储后端容量较小或项目配额有限且用户数量较多的情况下,为了使更多用户能够创建自己的共享,管理员需要限制每个共享的最大大小。在其他场景中,如果共享太小无法保证业务的正常运行,管理员需要设置每个共享的最小值。管理员还可以根据实际需要设置共享的最大值和最小值。

提议的变更

提出以下更改:

  • 添加了共享类型两个新的 extra_specs 键,用于支持设置最小共享大小和最大共享大小。

    • provisioning:min_share_size 通过共享类型设置共享的最小大小。

    • provisioning:max_share_size 通过共享类型设置共享的最大大小。

  • 这些键的值是正整数,单位默认为 GB。

  • 这两个 extra specifications 将对最终用户可见。如果未设置,则假定共享类型没有强制执行共享大小限制,但限制可能由服务和用户的配额强制执行。

备选方案

数据模型影响

REST API 影响

将在 API 级别检查大小限制,作为共享创建、扩展、缩小或迁移的一部分。

安全影响

通知影响

无。

其他最终用户影响

如果设置了共享类型中 extra_specs 中的指定键,则最终用户创建的共享大小将受到共享类型的限制。扩展、缩小和迁移操作也受到此限制的约束。

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人

haixin<haixin@inspur.com>

工作项

  • 在 API 级别添加大小检查

  • 添加相关的单元测试和功能测试

  • 添加文档更新

依赖项

测试

  1. 单元测试,以测试这些键的限制是否生效。

  2. Tempest 测试,以测试从 API 角度设置的键是否工作正常。

文档影响

  1. Manila API 文档需要更新,以反映 extra_specs of 共享类型支持两个额外的键。

参考资料