ghettoVCB:错误:由于 VMDK 备份错误,无法备份 MACHINE-NAME

ghettoVCB:错误:由于 VMDK 备份错误,无法备份 MACHINE-NAME

我使用的是 VMware ESXI 5.0.0 Update 1,想使用 ghettoVCB 脚本备份我的虚拟机。

试运行非常顺利:

2012-10-24 11:47:46 -- info: ###### Final status: OK, only a dryrun. ######

但当我尝试进行实际备份时,我会收到主机上每个虚拟机的以下消息:

2012-10-24 11:48:43 -- info: Initiate backup for Willert-Tools
2012-10-24 11:48:43 -- info: Creating Snapshot "ghettoVCB-snapshot-2012-10-24" for Willert-Tools

2012-10-24 11:48:47 -- info: ERROR: error in backing up of "/vmfs/volumes/datastore1/Willert-Tools/Willert-Tools_1.vmdk" for Willert-Tools

2012-10-24 11:48:47 -- info: ERROR: error in backing up of "/vmfs/volumes/datastore1/Willert-Tools/Willert-Tools.vmdk" for Willert-Tools
2012-10-24 11:48:50 -- info: Removing snapshot from Willert-Tools ...
2012-10-24 11:48:50 -- info: Compressing VM backup "/vmfs/volumes/Cluster-Backup/Willert-Tools/Willert-Tools-2012-10-24_11-48-31.gz"...
2012-10-24 11:48:50 -- info: Successfully compressed backup for Willert-Tools!

2012-10-24 11:48:50 -- info: Backup Duration: 7 Seconds
2012-10-24 11:48:50 -- info: ERROR: Unable to backup Willert-Tools due to error in VMDK backup!

我做错了什么?由于我不想粘贴我的配置中的每个配置片段,如果您需要更具体的信息,请询问。

备份应该保存到正确安装在我的 ESXi 主机上的 NFS 共享。

感谢您的帮助 :-)。

答案1

通过查看输出,我最多能建议的是:

1) 您确定 ghettoVCB 配置中 NFS 挂载或数据存储的路径正确吗?仔细检查 ghettoVCB 的所有 NFS 配置。

和...

2)您的 NFS 共享是否接受匿名访问并授予读/写权限?

根据输出判断,该脚本能够创建快照,但 5 秒后它说无法备份 VMDK。我猜这是 NFS 挂载上的权限问题。或者缺少可用空间。

答案2

我最近开始在一个长期运行正常且未发生任何变化的系统上看到此错误。一个区别是 ghettoVCB 成功备份了系统上的其他虚拟机。

直接执行 vmkfstools clone 命令会导致同样的错误,且目标文件系统有 3 个不同。虚拟机已关闭,无法继续执行此操作。

这是 Windows 7 Pro VM。最终对我有用的是以下内容:

  • 对驱动器进行碎片整理(使用碎片整理程序)
  • 将可用空间清零(\sdelete\sdelete -zc:)
  • chkdsk c:/f
  • 重启
  • 关闭
  • ssh 到 esxi 5.5 盒子
  • vmkfstools -i /路径/到/磁盘.vmdk -d thin /路径/到/磁盘备份.vmdk
    • 请注意,当写入与源磁盘相同的物理介质时,“-d thin”是无用的。

成功!

  • vmkfstools -E /路径/到/磁盘.vmdk /路径/到/renamed_disk.vmdk
  • vmkfstools -E /路径/到/磁盘备份.vmdk /路径/到/磁盘.vmdk
  • 启动虚拟机进行测试
  • 当虚拟机“启动”时,针对虚拟机运行 ghettoVCB(额外的好处是,从源写入 NFS 目标时会应用“thin”参数)。

成功!

我怀疑 sdelete 命令是关键操作。

记得删除 renamed_disk.vmdk 和 renamed_disk-flat.vmdk


补遗 (2020-11-03)

这个问题最近出现在 ghettoVCB 邮件列表中 (VMDK 备份错误 (#202))。这是 GitHub 上 ghettoVCB 的主题。

用户描述了此问题,然后发布了此修复程序:

所以我做了一个更改,那就是将我的备份数据存储挂载为 nfs3 而不是 nfs4。这似乎解决了这个问题。不知道为什么,但发布这个以防其他人遇到类似的问题。

该线程中还有一个方便的故障排除技巧,由另一位用户贡献:

有时很难在 vmkfstools 阶段找到错误,例如存储上的坏块,返回的错误是一般错误。

像上面一样在 vmkfstools 行上使用 -v 10,您可以观察并发现错误,但是当 ghettoVCB.sh 按照 CRON 计划运行时,捕获的日志不包含来自 vmkfstools 的调试行:

更改的行:

如果 [[ -z “${FORMAT_OPTION}” ]] ; 然后记录器“调试”>“${VMKFSTOOLS_CMD} -i“${SOURCE_VMDK}”-a“${ADAPTER_FORMAT}”“${DESTINATIO ... ${VMKFSTOOLS_CMD} -v 10 -i“${SOURCE_VMDK}”-a“${ADAPTER_FORMAT}”“${DESTINATION_VMDK}”>“${V ... 否则记录器“调试”“${VMKFSTOOLS_CMD} -i“${SOURCE_VMDK}”-a“${ADAPTER_FORMAT}”-d“${FORMAT_ ... ${VMKFSTOOLS_CMD} -v 10 -i“${SOURCE_VMDK}”-a“${ADAPTER_FORMAT}”-d“${FORMAT_OPTION}”“${DES fi

其中“更改的行”位于 ghettoVCB.sh 脚本中。

相关内容