使用不同加密方式重新调整卷大小¶
https://blueprints.launchpad.net/cinder/+spec/retype-encrypted-volume
启用更改卷的功能,将卷 [1] 重新调整为具有不同加密方式的卷类型。
问题描述¶
目前 Cinder 阻止将卷重新调整为具有不同加密方式的卷类型。
用例¶
客户使用未加密的卷,但后来希望将这些卷更改为加密卷。
客户使用加密的卷,后来希望更改为未加密卷。
客户希望更改卷的加密方式。
提议的变更¶
允许在加密和未加密的卷之间重新调整。与当前的重新调整机制相同,它允许重新调整可用和正在使用的卷。
如果卷处于可用状态,详细过程将是
根据新的 volume_type 创建一个新卷。
将两个卷映射到卷宿主机。
如果卷已加密,则使用 dm-crypt 打开设备。这通过 os-brick/encryptors [2] 完成。
将数据从原始卷复制到新卷。
关闭 dm-crypt 并分离卷。
删除后端存储中的原始卷。
如果卷处于使用中状态,除了错误修复 [3] 之外,无需更改任何内容。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
有了此功能,用户就可以将卷重新调整为不同的加密方式。
安全影响¶
Cinder 需要访问加密密钥并解密数据。
通知影响¶
将在当前的重新调整通知中添加一个标志,以显示是否需要更改加密方式。
其他最终用户影响¶
在重新调整具有不同加密方式的卷时,Cinder 需要获取密钥。但是 Barbican 只能配置为向租户提供密钥材料,而不是管理员。这可能导致管理员无法成功重新调整卷。在这种情况下,Cinder 将捕获异常,记录错误。要重新调整的卷将设置为原始状态。由于 os-brick/encryptors 不适用于 RBD、Sheepdog 卷,因此重新调整此类卷以更改加密方式的功能将失败,并且卷将设置为原始状态。
性能影响¶
它在重新调整过程中增加了加密/解密数据的步骤,影响取决于加密的性能。
其他部署者影响¶
此功能依赖于 Castellan [4]。同时,Barbican [5] 是 Castellan 目前唯一支持的密钥管理后端。这两个软件包都是必需的。
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
LisaLi <xiaoyan.li@intel.com>
工作项¶
移除当前阻止重新调整的限制。
通过 dm-crypt 附加/分离加密卷。
依赖项¶
无
测试¶
需要创建单元测试来覆盖“提议的更改”中提到的代码更改。在当前的重新调整测试 [6] 之后,将添加新的 tempest 测试用例。
文档影响¶
需要更新 cinder API 文档以描述此更改。