文章目录
在 AWS 中导入 qcow2 镜像
当我们在多云环境中部署应用时,有时候可能需要把基于 qemu 的虚拟化环境的磁盘镜像或快照迁移到如AWS、阿里云、腾讯云等公共云平台。本文将讲述如何将 qcow2 镜像导入 AWS 公有云的过程。
使用的格式和问题
qcow2 是 qmeu 使用的磁盘镜像的最常见且本机的格式。但不幸的是,AWS 的 import-image
工具不能直接导入 qcow2 格式 - 该工具目前只支持 vmdk、vhd(x) 和 raw等格式。因此,需要额外的步骤将 qcow2 格式的镜像转换为 AWS 可以导入的 raw 格式。
步骤概述
本文将介绍如何将 qcow2 镜像导入 AWS 作为快照。只要将镜像导入为snapshot,就可以从该快照创建 AMI(可以参照我之前写过的 CHR 导入为 AMI 的文章,这里不多赘述),并用于启动新的实例。本文该过程需要在运行 Ubuntu 22.04上运行,此过程需要访问 AWS S3 服务用于存储镜像。最好是在 AWS 的 EC2 上执行这个过程以便更快地在 S3 上传输数据。
前提条件
在继续之前,需要满足以下先决条件:
- 假设要转换或导入的 qcow2 镜像位于当前用户主目录
~/ubundu.qcow2
。 - 确保 Linux 主机上有足够的磁盘空间来容纳扩展后的 RAW 镜像,这里可以使用以下命令查找镜像的虚拟大小:
$ qemu-img info ubuntu.qcow2
➜ ~ qemu-img info
image: /home/ubuntu/ubuntu.img
file format: qcow2
virtual size: 1.57 GiB (1686110208 bytes)
disk size: 1.58 GiB
Child node '/file':
filename: /home/ubuntu/ubuntu.img
protocol type: file
file length: 1.57 GiB (1686110208 bytes)
disk size: 1.58 GiB
- 安装
qemu-utils
包,以便获取qemu-img
工具:
$ sudo apt-get install qemu-utils
- 安装 AWS 命令行工具 (AWS CLI):
$ sudo apt-get install awscli
- 将你的 AWS Access Key 登录凭据添加到文件
~/.aws/config
中,如下所示: