本章节介绍如何捕获镜像。

通过云服务器备份捕获镜像

前提条件

已创建云服务器且云服务器处于关机状态。

制作新镜像

  1. 登录 QingCloud 管理控制台。

  2. 选择产品与服务 > 计算 > 云服务器,进入云服务器列表页面。

    vm server list
  3. 右键点击目标云服务器所在行,弹出菜单窗口,选择硬盘与镜像 > 制作成新镜像,弹出根据云服务器制作成新镜像窗口。

  4. 输入镜像名称,点击提交即可。

查看制作的新镜像

  1. 镜像制作完成后,选择计算 > 镜像 > 自有镜像,进入自有镜像页面。

  2. 查看根据云服务器制作的镜像。

    vm owner images

通过数据盘备份捕获镜像

用户也可以将自定义镜像上传到云服务器挂载的硬盘中,使用硬盘的快照制作成用户自定义的镜像。

约束限制

  • 挂载到云服务器的硬盘必须是本地盘,云盘不支持通过备份创建镜像。关于本地盘和云盘的详细信息,请参见 硬盘类型

  • 用户自定义的镜像创建的云服务器不能重置密码。

  • 某些监控信息可能采集不到。

  • 不支持使用 lvm 分区的镜像。

  • 根据自定义的镜像文件创建的云服务器在挂载硬盘后硬盘的映射关系无法显示(即 vol-XXX 和 /dev/sdX 之间的映射关系)。

  • 自定义的镜像的大小不能超过设置的值,公有云中不能超过 100G 不能小于 20G。

注意事项

  • 在使用自定义的系统盘创建自定义镜像时,务必保证 /etc/fstab 的信息和系统盘内分区一致。

  • 确保 /boot/grub/grub.cfg/boot/grub/menu.list (不同操作系统对应文件不一样)等文件可以正确引导启动。

  • 确保网口配置为 DHCP 能够自动获取 IP 地址。

操作步骤

示例:

将本地的 20G 系统盘的镜像上传到青云环境上。 务必确保本地系统盘上的 /etc/fstab/etc/network/ 等文件信息正确。

  1. 云服务器创建新的硬盘(硬盘类型选择为本地盘),大小也为 20G (和本地系统盘的大小一致;如果系统盘的大小小于 20G,也需要创建 20G 的硬盘)。

  2. 初始化新创建的硬盘,并挂载新创建的硬盘到某台云服务器上。

  3. 拷贝本地的 test2.img 镜像文件到云服务器上。

    scp -i $KEY_PATH test2.img root@eip:~/

  4. 云服务器安装 qemu 软件支持使用 qemu-img 转换格式,或者在本地转换也可以(如果用户本地转换格式,此步骤可省略)。

    sudo apt-get install qemu kernel-package linux-source build-essential

  5. 将 test2.img(假定是 qcow2 格式的镜像),转化为 raw 格式;也可以直接转化成 raw 格式后拷贝到云服务器。

    qemu-img convert -f qcow2 test2.img -p -O raw test_raw.img

  6. 如果镜像的大小小于新创建的硬盘,使用如下指令修改镜像的大小 (当镜像的大小和新创建的硬盘一致时,忽略此步骤)。 必须保证 raw 格式的镜像大小和硬盘大小一致,之后才能使用 dd 拷贝镜像到新创建的硬盘。

    例如:镜像的大小只有 128M ,此时将镜像的大小调整为新创建的硬盘的大小 20G 。

    qemu-img resize test.img +19G

    qemu-img resize test.img +896M

  7. 将 raw 格式的镜像文件拷贝到新创建的硬盘中。

    dd if=test_raw.img of=/dev/vdc

    完成之后, lsblk 如果没有显示 vdc 的分区信息,可以使用如下命令。

    partprobe /dev/vdc

    更新下硬盘的分区信息。

  8. 在左侧导航栏中,选择存储 > 硬盘,将新创建的硬盘制作备份。

  9. 选择存储 > 备份,将新硬盘的备份制作成新镜像,创建用户自定义镜像。

    capture image from vol snapshot
  10. 创建镜像完成后,选择计算 > 镜像 > 自有,可查看创建的镜像。

    勾选创建的镜像, 并点击基于镜像创建云服务器,可以创建新的云服务器。

    用户也可以自己制作云硬盘中的分区, 并将已有的镜像的分区逐个上传到硬盘中,再安装好 grub 和引导文件。