将VMware ESXi VM移至新的数据存储-保留精简配置


27

我正在寻找一个很好的解决方案来解决没有vCenter的VMware ESXi环境问题。

在维持VMDK精简配置的同时,将VM从一个数据存储移动到单个ESXi主机上的另一个数据存储的最佳方法是什么?

这是一台独立的服务器,已经用另一个驱动器阵列/数据存储进行了扩展。我想将旧数组中包含的数据移至新数组。

编辑:目标数据存储区的大小实际上小于源。我没有足够的空间来复制厚文件。


您是否真的认为将VM移到太小而无法容纳的数据存储中是明智的?VM决定用尽所有存储空间时,某些恶意流程会如何处理?
Zoredache

通常,不,但是这是特例。虚拟机不会增长。
ewwhite 2012年

如果虚拟机无法增长,则没有理由对其进行精简配置。
Jim B

什么版本的ESXi?
杰德·丹尼尔斯

这是ESXi的5
ewwhite

Answers:


21

您也可以使用文件->导出->导出OVF模板

然后将其导入。上次尝试时,我认为这确实保留了vmdk格式。现在已经不确定了,因为已经有一段时间了。


3
假设使用4.1或更高版本,则在导入时会提示您使用thin或thick。
Jed Daniels 2012年

2
你说对了!将OVF导出到压缩的稀疏文件非常快捷。我可以选择在导入时进行精简或粗略配置,并且导入速度很快。对于72GB(已使用8GB)虚拟机,需要5分钟。
ewwhite 2012年

3
FWIW,您也可以使用ovftool从命令行执行此操作。
杰德·丹尼尔斯

28

刚刚经历了自己寻找解决方法。希望这是一个易于遵循的指南,说明如何将VM移至新的数据存储,同时在传输过程中保留精简资源调配(从而也减少了传输时间):

在CLI中使用vmkfstools的逐步指南

  1. 关闭虚拟机
  2. (可选)如果需要,合并快照。
  3. 从vCenter清单中删除VM
    • 右键单击VM,然后单击“从库存中删除” 在此处输入图片说明
  4. 在ESXi计算机上启用SSH
    • 在vSphere Client中,转到:配置->安全配置文件->属性(服务旁边)-> SSH(在列表中)->选项->启动
  5. 以root身份通过SSH登录
  6. 在目标数据存储上准备目录
    • mkdir "/vmfs/volumes/destination_datastore/Some VM"
  7. 使用精简配置克隆.vmdk文件
    • vmkfstools -i "/vmfs/volumes/source_datastore/Some VM/Some VM.vmdk" -d thin "/vmfs/volumes/destination_datastore/Some VM/Some VM.vmdk"
  8. 复制所有剩余文件(避免覆盖.vmdk文件)
    • find "/vmfs/volumes/source_datastore/Some VM" -maxdepth 1 -type f | grep -v ".vmdk" | while read file; do cp "$file" "/vmfs/volumes/destination_datastore/Some VM"; done
  9. 如果您没有在步骤2中合并快照,则可能存在快照.vmdk增量文件,我们还需要复制这些文件(这可能需要一些时间):
    • find "/vmfs/volumes/source_datastore/Some VM" -maxdepth 1 -type f | grep [0123456789][0123456789][0123456789][0123456789][0123456789][0123456789] | grep ".vmdk" | while read file; do cp "$file" "/vmfs/volumes/destination_datastore/Some VM"; done
  10. 完成克隆和复制所有必需文件后,将VM从新数据存储添加回清单
    • 在vSphere Client中,转到:配置->存储- >数据浏览器,右键单击将VM移至的目标数据存储,然后单击“浏览数据存储”。 在此处输入图片说明
  11. 浏览到您的VM并右键单击.vmx文件,然后单击“添加到清单” 在此处输入图片说明
  12. 启动虚拟机以查看其是否正常运行,当询问您是否复制或移动它时,只需回答复制它即可。(我不确定这意味着什么,但是我认为这至少与更改vNIC的MAC地址有关。) 在此处输入图片说明
  13. 如果VM启动正常,则可以从旧数据存储中删除VM。
    • rm -rf "/vmfs/volumes/source_datastore/Some VM"

注意:仅在ESXi 5上进行了测试

从此博客无耻地复制了插图。


1
这应该可行,但是即使提供有关如何使用快照移动虚拟机的信息也很愚蠢。告诉人们删除所有快照,然后再尝试这样的移动。
pauska

2
上面@ohaal在esxi 5.5 u1中的帖子不得不将-print0更改为-print,它的工作原理就像一个魅力!PS。我会投票,但没有代表。
icereval 2014年

2
已验证@ohaal可在ESXi 6.7上使用。谢谢!
山之爱德(Ed of the Mountain)

除了.vmdk和.vmx之外,是否有理由要复制其他文件?如果没有,您可以把这find条线变成一条简单的线cp
奥古斯丁·拉多

8

看看这个答案。相同的逻辑适用于您的情况,即以下引用:

它称为“转换器”,但实际上应称为“通用OS数据移动器”。但是,并不能很好地消除舌头。

唯一的区别是源主机和目标主机将相同,但数据存储区将有所不同。这确实意味着文件将从ESXi主机转到转换器计算机,然后再返回到主机。如果Converter是“智能”的并且知道它是同一主机,那就太好了。不幸的是,这要花钱。

CAVEAT:转换VM将为所有网络适配器生成一个新的MAC地址。大多数来宾操作系统将其解释为新设备。


1
关于MAC地址的一个很好的观点。
JamesBarnett

3

实际上,只需在目标位置创建文件夹,然后从源复制文件夹中的文件,它将保持精简。如果您复制文件夹,它将从薄到厚转换。


2
这是不正确的。du -h .复制到同一数据存储上已创建的文件夹时,使用Thin 进行验证的文件变厚。cp C* ../newdir
罗文·霍金斯

0

我将复制文件,然后通过vmkfstools重新转换为精简文件。


实际上,目标数据存储区的大小小于源数据存储区的大小。我没有足够的空间来复制厚文件。
ewwhite 2012年

在这种情况下,复制和重新转换将不起作用,但是您也可以使用vmkfstools将其直接克隆到目标位置。这也将减少传输它所需的时间,因为它不会传输额外的零GB。我的答案包含有关如何执行此操作的详细信息。
ohaal 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.