将虚拟磁盘映像转换为 qcow2 格式,以便在 VM Runtime on GDC 中使用

本文档介绍如何手动将现有虚拟磁盘映像转换为 qcow2 格式,以便能够使用该来源映像在 VM Runtime on GDC 中创建和运行虚拟机。您将了解如何直接从该转换后的虚拟磁盘映像创建虚拟机。

本页面适用于希望在容器化环境中运行现有虚拟化工作负载的运维人员和开发者。如需详细了解我们在 Google Cloud 内容中提及的常见角色和示例任务,请参阅常见的 GKE Enterprise 用户角色和任务

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

准备工作

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

转换虚拟磁盘映像

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

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

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

    Ubuntu

    apt-get install qemu-utils
    

    RHEL

    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 使用 Secret 创建虚拟机启动磁盘。

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

  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。以下文档介绍了如何从这些来源创建虚拟机: