创建自定义镜像后,可将自定义镜像导出至对象存储OSS(Object Storage Service)后,下载镜像文件到本地,用于本地镜像分析、备份、迁移等。
适用范围
不支持导出加密镜像、基于云市场镜像创建的自定义镜像或Windows Server操作系统的镜像。
自定义镜像的单块数据盘容量超过 2 TiB不支持直接导出。
若需导出,可将数据分散到多块盘后导出。
操作步骤
准备工作
需在目标自定义镜像相同地域下准备一个OSS Bucket,用于中转存储导出的自定义镜像。导出时,仅支持选择标准存储或低频访问存储类型的OSS Bucket,不支持归档类型。如需新建,请参见创建存储空间。
将自定义镜像导出至对象存储OSS
控制台
访问ECS控制台-镜像,在页面左侧顶部,选择目标资源所在的资源组和地域。
在自定义镜像页签,找到目标镜像,单击操作列中的导出镜像。
仔细查看导出前准备事项,单击下一步。再次确认已完成前提条件所述配置,单击继续导出。
配置导出镜像文件的参数。
镜像格式:默认为自动检测,支持选择RAW、VHD、QCOW2、VDI和VMDK格式。
镜像存储空间(OSS Bucket):选择与自定义镜像所属地域相同的OSS Bucket。
镜像文件名前缀:以将Demo设为前缀为例,导出自定义镜像文件后,在OSS Bucket中的名称即为Demo-[系统自动生成的文件名]。
单击确定导出,开始导出自定义镜像。导出时间取决于镜像文件的大小和当前导出任务队列的繁忙程度,请耐心等待。
可前往ECS控制台-任务管理,通过任务ID查询任务实时进度,或中断取消导出自定义镜像任务,也可以登录OSS控制台查询任务结果。
API
可以调用API接口ExportImage导出自定义镜像。若需中断导出任务,可以调用API接口CancelTask取消正在运行的导出镜像任务。
下载与使用镜像文件
镜像成功导出到OSS后,可将其下载到本地进行进一步处理。
下载镜像文件至本地
镜像文件不超过5GB:可登录 OSS管理控制台,在目标OSS Bucket中找到镜像文件,并单击操作列的下载。
镜像文件大于5GB:推荐使用命令行工具ossutil进行下载。该工具支持断点续传、批量下载和多线程,更稳定高效。
解压镜像文件
若导出镜像时选择RAW作为镜像格式,导出后镜像文件扩展名默认为.raw.tar.gz,解压后扩展名为.raw。在Linux系统下,使用命令
tar -xzf <镜像文件名>.raw.tar.gz
进行解压。在macOS系统下,推荐使用
gnu-tar
工具进行解压,以避免兼容性问题。
(可选)转换镜像格式
若导出的RAW格式镜像需转换为其他格式,可使用开源工具qemu-img
,参见转换镜像格式进行操作。
计费说明
导出自定义镜像至OSS过程中,依赖的OSS资源会产生费用,主要包括:
OSS存储费用:导出的镜像文件作为对象(Object)存储在OSS Bucket中,按存储时长和文件大小计费。
OSS请求费用:导出过程中,系统调用OSS API进行文件读写,产生API请求费用。
在导出时,选择不同镜像格式会导致访问OSS API的读取次数不同,产生请求费用差异,建议选择读取次数较少的VHD格式。
OSS流量费用:将镜像文件从OSS Bucket下载到本地时,会产生外网流出费用。在阿里云同地域ECS实例内通过内网访问则免费。
成本优化建议:
及时清理:镜像下载到本地并验证可用后,及时删除OSS Bucket中的已确认不再使用的镜像文件,节省存储费用。
数据归档:若需长期备份存储导出的镜像文件,可为OSS Bucket设置生命周期规则,将文件在一定时间后自动转为成本更低的低频或归档存储。
常见问题
镜像导出失败后如何修复?
导出镜像遇到任务失败的问题后,可通过ECS控制台-任务管理界面或调用API接口DescribeTaskAttribute查看错误码,根据错误码确认问题详情并进行修复。
错误码 | 错误原因 | 原因定位 | 修复建议 |
IMAGE_ALREADY_EXIST | OSS Bucket中存在同名文件(Object)。 | 确认导出的OSS Bucket中是否存在同名文件(Object)。 |
|
如果单块数据盘的容量超过2 TiB,如何导出自定义镜像?
若数据盘容量超过2 TiB,需将数据分散拷贝到多块小于2 TiB的新数据盘上,再创建自定义镜像进行导出。具体操作如下:
远程登录创建的ECS实例,执行
df -h
命令查看数据盘实际容量,根据实际容量创建新的空数据盘(可按需创建多个),并挂载数据盘,然后将原数据盘的数据拷贝到新的数据盘。使用新的数据盘和系统盘创建快照。
使用快照创建自定义镜像,然后导出自定义镜像。
导出的镜像文件包含的多个文件分别是什么?
若自定义镜像包含数据盘快照,导出的结果中会有多个文件。文件名中带有 system
的为系统盘快照,带有 data
的为数据盘快照。数据盘文件通常还会包含挂载点标识(如 xvdb
、xvdc
),以便区分。
加密镜像支持解密后导出么?
加密是不可逆的操作,不支持对加密镜像进行解密导出,数据在加密状态下存储,即使导出后也无法解密其内容。
若需导出加密镜像中的数据,可使用加密镜像创建ECS实例,在实例中完成必要的配置和数据迁移,基于该实例创建一个新的未加密自定义镜像后导出。