本文关键词:云平台、私有镜像、导入
引言:
镜像管理服务是天翼云公有云和私有云平台中最基本的一项基础服务,用来管理开通虚机用的镜像模板,包括公共镜像和私有镜像。本文主要介绍在云平台中的私有镜像导入功能。
背景:
当用户需要从其他云平台中导出镜像文件,然后上传到公有云平台中来使用的时候,云平台的镜像管理服务就需要支持私有镜像导入功能。同时需要支持导入多种格式的镜像文件,包括kvm平台的raw和qcow2格式的镜像文件、vmware平台的vmdk格式镜像文件,以及hyperv平台的vhd、vhdx等格式的镜像文件。
架构:
图1 私有镜像导入架构图
如图所示为私有镜像导入的总体架构图,其中包括了前端云管系统yacos、对象存储资源池、云平台服务中的镜像管理组件服务以及块存储资源池等。
图2 私有镜像导入任务流
如图所示为镜像管理服务中的镜像文件导入任务流,采用 taskflow 框架,包括如下几个子任务:
1) _CreateImage:创建镜像数据库条目;
2) _ImportToStore: 调用镜像服务后端 glance_store 的驱动 rbd 后端来导入镜像文件到镜像后端存储池中。 采用 qemu-img convert 命令将远端对象存储的镜像文件作为源文件导入到块存储中并转换格式为 raw 格式。在导入镜像之前还会采用 qemu-img info 命令查看镜像文件的格式, 如果不再支持的镜像格式列表(raw、 qcow2、 vmdk、 vhd) 中,则返回镜像文件格式不支持,并执行回滚操作删除镜像数据库条目;
3) _SaveImage: 镜像文件导入完成,设置镜像文件的状态为可用 active;
4) _CompleteTask:更新任务 task 的状态 status 为 success。
当用户导入的私有镜像是其他虚拟化平台如vmware、hyperv等,则在导入天翼云平台对象存储之前需要先给镜像模板系统安装好virtio驱动。在导入到天翼云平台后才能在基于kvm平台下开通基于virtio驱动模式的虚机。
总结:
天翼云实现了云平台中的私有镜像导入功能,支持导入其他平台的私有镜像文件,支持多种镜像格式,导入到云平台中能正常开通虚机资源,实现了用户的线下和其他平台的项目上云需求。