将qcow2转换为vmdk并使其兼容ESXi 6.0

13

我目前正在使用VMWare虚拟化技术;我试图将从qcow2转换为vmdk的镜像与ESXi Server 6.0配合使用。

我有一个带有磁盘的myImage.qcow2文件,该磁盘被设置为300GB的thin provisioned。

我使用了镜像转换工具qemu,并使用以下命令:

qemu-img convert -f qcow2 myImage.qcow2 -O vmdk myNewImage.vmdk 

这个命令给我一个vmdk映像,它只能在VMware Workstation上使用。因此,为了使它能够在ESXi上使用,我必须使用vmkfstools并使用以下命令。

vmkfstools -i myImage.vmdk outputName.vmdk -d thin

vmkfstools命令给出了两个文件,一个是metadata.vmdk,另一个是实际的data.vmdk。

如上所述,我的磁盘为300GB的thin provisioned,当我应用vmkfstools时,它会扩展磁盘并将其大小设置为300GB。

通过vSphere客户端部署镜像没有任何问题;然而,出于这个项目的目的,我想使用ovftool,但对于如此大的镜像来说,这样做是不可行的。

有没有办法让我的.vmdk与ESXi兼容,而无需使用vmkfstools将图像扩展到300GB?

或者有没有其他方法可以在数据存储器上部署这些300GB,同时镜像位于数据存储器上,以便不必通过部署过程进行下载/上传?

我已经被这个问题困扰了几个星期,任何帮助都将不胜感激。


经过进一步调查,我成功地使用qemu 2.6修复了问题,通过在图像转换中使用以下标签: qemu-img convert -f qcow2 -O vmdk -o adapter_type=lsilogic,subformat=streamOptimized,compat6 SC-1.qcow2 SC-1.vmdk - sgTheUser
2个回答

10

提示:根据更改日志,此支持已添加到Qemu 2.1及以上版本中

qemu-img convert -f qcow2 -O vmdk -o adapter_type=lsilogic,subformat=streamOptimized,compat6 SC-1.qcow2 SC-1.vmdk

1
如果上述命令无效,请尝试以下命令: qemu-img convert -f qcow2 -O vmdk src.qcow2 dst.vmdk - Ali Hallaji

3

这个对我在 VMware 6.7 上有效。

简短概述

qemu-img convert -f qcow2 -O vmdk -o subformat=streamOptimized source_qcow_image_path destination_path_to_vmdk

例如:

qemu-img convert -f qcow2 -O vmdk -o subformat=streamOptimized \
 CentOS-7-x86_64-GenericCloud-1503.qcow2 \
 CentOS-7-x86_64-GenericCloud-1503.vmdk

使用此脚本更新转换后镜像中嵌入的vmdk版本设置:

* 这是我实际使用的方法 *

printf '\x03' | dd conv=notrunc of=<vmdk file name> bs=1 seek=$((0x4))

例如:

printf '\x03' | dd conv=notrunc of=CentOS-7-x86_64-GenericCloud-1503.vmdk bs=1 seek=$((0x4))

source: https://kb.vmware.com/s/article/2144687


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接