将虚拟磁盘映像转换为 qcow2 格式,以用于 Google Distributed Cloud 上的虚拟机运行时

本文档适用于在 Google Distributed Cloud 上的 VM Runtime 中运行虚拟机 (VM) 的平台管理员和应用所有者。本文档介绍如何手动将现有虚拟磁盘映像转换为 qcow2 格式,以便能够使用该来源映像在 Anthos 虚拟机运行时中创建和运行虚拟机。您将了解如何直接从该转换后的虚拟磁盘映像创建虚拟机。

Google Distributed Cloud 上的 VM Runtime 可根据需要在部署期间将现有磁盘映像自动转换为 qcow2 格式。但是,如果要通过非 qcow2 虚拟磁盘映像创建多个虚拟机,Google Distributed Cloud 上的 VM Runtime 每次都必须转换该映像。将映像转换为 qcow2 格式的过程会增加创建和启动虚拟机所花费的时间。为了减少创建每个虚拟机所花费的时间,请先将虚拟磁盘映像转换为 qcow2 格式,如本文档中所示。

准备工作

如需在转换现有虚拟磁盘映像后创建虚拟机,您需要访问以下资源:

转换虚拟磁盘映像

在本文档中,您将使用 QEMU 磁盘映像实用程序将现有虚拟磁盘映像转换为 qcow2 格式。qemu-img 工具可以将虚拟磁盘映像从多种格式(例如 vmdkvhdx)转换为 qcow2 格式,以便与 Google Distributed Cloud 上的 VM Runtime 搭配使用。

如需将虚拟磁盘映像转换为 qcow2 格式,请完成以下步骤:

  1. 使用 Linux 发行版的软件包管理器安装 qemu-utils 软件包。

    Ubuntu

    apt-get install qemu-utils
    

    RHEL/CentOS

    yum install qemu-utils
    
  2. 使用 qemu-img 转换现有虚拟磁盘映像:

    qemu-img convert -f EXISTING_DISK_IMAGE_FORMAT -O qcow2 \
      EXISTING_DISK_IMAGE_NAME \
      CONVERTED_DISK_IMAGE_NAME.qcow2
    

    替换以下值:

    • EXISTING_DISK_IMAGE_FORMAT:现有虚拟磁盘映像的格式,例如 vmdk
    • EXISTING_DISK_IMAGE_NAME:现有虚拟磁盘映像的路径和名称。
    • CONVERTED_DISK_IMAGE_NAME:转换后的 qcow2 虚拟磁盘映像的路径和名称。

    如需详细了解 qemu-img 工具(例如各种映像格式选项),请参阅 QEMU 磁盘映像实用程序文档

使用转换后的映像创建虚拟机

如果您想了解转换后的虚拟磁盘映像的实际应用,请创建虚拟机并使用上一部分中创建的 qcow2 格式的本地映像。对于生产用途,您应该将转换后的虚拟磁盘映像上传到中央代码库,然后从 HTTP 来源创建虚拟机启动磁盘从 Cloud Storage 使用密文创建虚拟机启动磁盘。

如需使用转换后的本地虚拟磁盘映像,请完成以下步骤:

  1. 在集群中创建虚拟机:

    kubectl virt create vm VM_NAME \
      --os-type OS_TYPE \
      --image CONVERTED_DISK_IMAGE_NAME.qcow2
    

    此命令会创建一个默认使用 2 个 CPU、4 Gi 内存的虚拟机。

    替换以下值:

    • VM_NAME:虚拟机的名称
    • OS_TYPE:转换后的虚拟磁盘映像的操作系统类型。可以是 linuxwindows
    • CONVERTED_DISK_IMAGE_NAME:上一部分中转换后的 qcow2 虚拟磁盘映像的路径和名称。
  2. 可能需要 10 至 20 分钟才能从转换后的本地虚拟磁盘映像创建虚拟机,具体取决于映像的大小。使用 kubectl 命令检查虚拟机的状态:

    kubectl get gvm VM_NAME
    

    VM_NAME 替换为虚拟机名称。

    以下示例输出显示该过程完成后处于 Running 状态的虚拟机:

    NAME    STATUS    AGE   IP
    MY_VM   Running   64s   192.168.2.124
    

后续步骤

您可以将转换后的虚拟磁盘映像(qcow2 格式)上传到 HTTP 来源或 Cloud Storage。以下文档介绍了如何从这些来源创建虚拟机: