Spec Lite: 向共享管理中添加人类可读的导出位置¶
- 问题:
目前,共享通过
mount_point_name字段支持人类可读的导出位置。但是,在共享管理之前无法确定导出位置,并且对于已管理的共享,人类可读的导出位置不可用。使用当前逻辑,已管理的共享仅使用默认模板(例如 NetApp 驱动程序中的 volume_name)进行全新挂载。- 解决方案:
我们可以引入一个新的可选字段来管理共享,用户可以在其中指定自定义导出位置,就像在共享创建中一样。如果需要再次挂载共享,这应该更容易让他们记住共享的导出位置。如果未提供此选项,则已管理的共享将使用默认模板进行挂载,就像现有的工作流程一样。如果在此管理共享请求期间指定了此字段,则支持此功能的后端将能够使用该值为已管理的共享创建多个导出位置,并且用户可以使用人类可读的导出位置或其他导出位置(如果存在)来挂载共享。 实施此功能的后端可能只能提供一个导出路径。 新字段将称为
mount_point_name。 此字段不接受除下划线或连字符以外的特殊字符。 如果提供除下划线或连字符以外的特殊字符,manila api 服务将引发 HTTP BadRequest,警告不允许使用这些字符。 当收到管理共享的请求时,如果提供了mount_point_name,则共享类型中的provisioning:mount_point_prefix规范或default_mount_point_prefix配置将被添加到其前面。 用户提供的字符数加上前缀中的字符数不能超过 255 个字符,否则请求将被拒绝。 因此,manila 共享服务将查找重复的mount_point_name值,如果找到任何重复值,共享管理将失败。 可能会发生用户在管理共享时意外设置相同mount_point_name的情况。 在这种情况下,共享将不会被管理,其状态将被设置为 manage_error。 与共享创建一样,管理员需要创建带有mount_point_name_support附加规范的共享类型,将其设置为True。 由于 manila 共享管理 API 将使用此附加规范执行验证,因此它必须始终对租户可见。 通过拥有此附加规范,调度器还可以过滤掉不支持此功能的后端。- 影响:
- REST API 影响。
共享管理 API 的微版本更新。
API 将接受该字段
mount_point_name作为选项。
- 文档影响
API 参考
- 数据库影响
无
- Python-manilaclient 和 OSClient 影响
共享
adopt命令将被修改为接受--mount-point-name参数作为选项。
此实现不应影响任何方面的性能。
- 替代方案:
作为替代方案,驱动程序可以重用共享的名称和描述来生成人类可读的导出位置,但名称可能会重复,并且后端可能会因该原因而失败。
- 时间线:
包含在 Gazpacho 版本中。
- 链接:
https://blueprints.launchpad.net/manila/+spec/manage-with-mount-point-name
- 负责人:
eunkyung(ek121.kim@samsung.com)