本文档适用于在 Google Distributed Cloud 上的 VM Runtime 中运行虚拟机 (VM) 的平台管理员和应用所有者。本文档介绍如何手动将现有虚拟磁盘映像转换为 qcow2
格式,以便能够使用该来源映像在 Anthos 虚拟机运行时中创建和运行虚拟机。您将了解如何直接从该转换后的虚拟磁盘映像创建虚拟机。
Google Distributed Cloud 上的 VM Runtime 可根据需要在部署期间将现有磁盘映像自动转换为 qcow2
格式。但是,如果要通过非 qcow2
虚拟磁盘映像创建多个虚拟机,Google Distributed Cloud 上的 VM Runtime 每次都必须转换该映像。将映像转换为 qcow2
格式的过程会增加创建和启动虚拟机所花费的时间。为了减少创建每个虚拟机所花费的时间,请先将虚拟磁盘映像转换为 qcow2
格式,如本文档中所示。
准备工作
如需在转换现有虚拟磁盘映像后创建虚拟机,您需要访问以下资源:
- GKE on Bare Metal 1.12.0 版 (
anthosBareMetalVersion: 1.12.0
) 或更高版本集群的访问权限。您可以使用任何能够运行工作负载的集群类型。如果需要,请在 Compute Engine 上试用 GKE on Bare Metal,或查看集群创建概览。 - 作为
kubectl
的插件安装的virtctl
客户端工具。如果需要,请安装 virtctl 客户端工具。
转换虚拟磁盘映像
在本文档中,您将使用 QEMU 磁盘映像实用程序将现有虚拟磁盘映像转换为 qcow2
格式。qemu-img
工具可以将虚拟磁盘映像从多种格式(例如 vmdk
或 vhdx
)转换为 qcow2
格式,以便与 Google Distributed Cloud 上的 VM Runtime 搭配使用。
如需将虚拟磁盘映像转换为 qcow2
格式,请完成以下步骤:
使用 Linux 发行版的软件包管理器安装
qemu-utils
软件包。Ubuntu
apt-get install qemu-utils
RHEL/CentOS
yum install qemu-utils
使用
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 使用密文创建虚拟机启动磁盘。
如需使用转换后的本地虚拟磁盘映像,请完成以下步骤:
在集群中创建虚拟机:
kubectl virt create vm VM_NAME \ --os-type OS_TYPE \ --image CONVERTED_DISK_IMAGE_NAME.qcow2
此命令会创建一个默认使用 2 个 CPU、4 Gi 内存的虚拟机。
替换以下值:
VM_NAME
:虚拟机的名称OS_TYPE
:转换后的虚拟磁盘映像的操作系统类型。可以是linux
或windows
。CONVERTED_DISK_IMAGE_NAME
:上一部分中转换后的qcow2
虚拟磁盘映像的路径和名称。
可能需要 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。以下文档介绍了如何从这些来源创建虚拟机: