图像基本转换

https://blueprints.launchpad.net/glance/+spec/basic-import-conversion

有些存储引擎在使用特定图像格式时效果更好。例如,对于 Ceph 而言,使用原始图像可以提高性能,并允许 Ceph 对图像数据进行更智能的操作。因此,本规范建议添加基本的图像转换支持,以便为操作员提供对目标格式的完全控制。 提议的更改是更复杂的转换操作的起点。

问题描述

借助异步操作的支持和 Glance 中的新导入工作流(请参阅依赖树),在导入图像时可以即时进行图像格式转换。

转换将由导入工作流的插件提供。该插件可以根据部署者的配置激活或不激活。这意味着部署者需要指定部署的图像的首选格式。

此蓝图将处理 qemu-img convert 支持的格式转换:raw、qcow2、vdi、vmdk 和 vpc。

在内部,Glance 将以 XX 格式接收图像的比特流。这些比特流将存储在临时位置。插件将被触发将图像转换为目标格式 YY 并移动到最终目的地。任务完成后,临时位置将被删除。这意味着最初上传的格式不会被 Glance 保留。

提议的变更

使用 Glance 的异步工作器,我们可以执行一个后台任务,将图像从源格式转换为预配置格式。

备选方案

让用户自行转换图像并上传最终转换后的文件。

数据模型影响

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

基于最大工作器数量以及管理员为转换工作区配置的大小,如果操作员错误配置了最大工作器数量和分配的工作区,性能可能会受到负面影响。

除此之外,还需要考虑将图像下载到本地、转换它然后上传到最终存储库所需的时间。该实现建议使用 qemu-image,它对图像数据执行随机访问。

其他部署者影响

配置此功能时,操作员需要了解他们正在管理的图像的平均大小,并适当地配置 max_workers 设置以及工作器可用的适当空间量。

开发人员影响

实现

负责人

主要负责人

flaper87

其他贡献者

评审人员

核心评审人

jokke_ nikhil-komawar kragniz icordasc

工作项

  • 为不同的转换任务创建特定的工作器

  • 创建任务工作流

  • 使用添加更新配置文件

  • 更新配置文档

依赖项

这取决于 Glance 的异步工作器

测试

需要对转换任务和新的任务流程进行单元测试。

文档影响

这可能会对文档的升级和安装部分产生影响。对于升级的操作员,他们需要了解如何正确配置用于图像转换的系统。对于新用户,需要警告他们适当地分配工作器使用的空间,并且可能在确定适当数量之前选择比默认值更保守的最大工作器数量。

参考资料