没有任何 vCenter Server 的独立 ESXi (4.1) 主机。
如何尽可能快速且存储友好地备份虚拟机?
我知道我可以访问 ESXi 控制台并使用标准 Unixcp
命令,但这样做的缺点是复制整个 VMDK 文件,而不仅仅是它们实际使用的空间;因此,对于仅使用 1 GB 的 30 GB VMDK,备份将占用整整 30 GB 的空间,因此也需要相应的时间。
是的,我知道精简配置的虚拟磁盘,但它们的表现往往非常糟糕在物理复制时和/或膨胀到其完整配置大小时;此外,它们不推荐用于实际的 VM 性能。
我可以在备份虚拟机之前将其关闭(即我不需要“实时”备份);但我需要一种方法来有效地复制它们;是的,在备份时自动关闭/启动的方法也会有所帮助。
我只有 ESXi;没有服务控制台,没有 vCenter Server... 处理此任务的最佳方法是什么?此外,恢复又如何呢?
答案1
我对此的首选解决方案是使用 vSphere 客户端或命令行 ovftool。
在 vSphere Client 中,确保虚拟机已关闭,然后突出显示它并转到文件->导出->导出 OVF 模板。然后只需按照提示操作即可。
恢复非常简单,只需反向操作即可(我认为菜单选项是“部署 OVF 模板”)。
使用 ovftool 创建精简备份
ovftool -dm=thin vi://<user>@<esxi-host>/<vm-name> <local-file>.ovf
您可能还希望查看以下选项http://www.virtuallyghetto.com/,我知道这些非常受欢迎,而且我认为有一些不错的备份选择,尽管我最近没有看过它们中的任何一个。
答案2
我最终编写了一个脚本,它复制了 VM 配置文件并用于vmkfstools -d
克隆 VMDK,同时保留精简配置。
以供参考:
#!/bin/sh
if [ $# != 2 ]; then
echo "Usage: $(basename $0) <SOURCE VM PATH> <DESTINATION PATH>"
echo "Example: $(basename $0) /vmfs/volumes/datastore1/VM1 /vmfs/volumes/datastore2"
exit
fi
vmx=$(basename $(/bin/ls $1/*.vmx))
name=$(grep displayName $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
vmxf=$(grep vmxf $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
nvram=$(grep nvram $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
vmdks=$(grep vmdk $1/$vmx | /bin/awk -F\" '{print $(NF-1)}')
echo "Started copying VM $name"
vmdir=$(basename $1)
destpath="$2/$vmdir"
echo "Source path: $1"
echo "Destination path: $destpath"
echo "Creating destination path $destpath"
/bin/mkdir -p $destpath
echo "Copying configuration files:"
echo $vmx
/bin/cp $1/$vmx $destpath
echo $vmxf
/bin/cp $1/$vmxf $destpath
echo $nvram
/bin/cp $1/$nvram $destpath
echo "Copying virtual disks:"
for vmdk in $vmdks;
do
echo $vmdk
/sbin/vmkfstools -d thin -i $1/$vmdk $destpath/$vmdk
done
echo "Completed copying VM $name"
这要求关闭虚拟机并且没有活动快照。
答案3
我不知道这是否适合你,但是虚拟机资源管理器可以很好地执行虚拟机的热备份或冷备份。我相信,使用 ESXi 4.1 VM Explorer 还可以执行从一台主机到另一台主机的 VM 客户机备份。
答案4
XSIBackup 是一个高度优化的工具,用 C 和汇编语言编写,提供两个版本以满足所有可能的需求:
XSIBackup-DC(在这里下载):在 ESXi 虚拟机管理程序中运行的服务,用于备份独立主机。它不需要其他元素,可以将虚拟机备份/复制到本地存储或通过 IP 备份/复制到任何 IP/SSH Linux 主机。
XSIBackup 应用程序 (在这里下载):基于 CentOS 7 的设备,可以轻松部署到任何 ESXi 盒中。它允许连接到任意数量的 ESXi 主机,以将其虚拟机从集中控制台备份/复制到任何 IP/SSH 服务器或几乎任何可以安装在 Linux 中的东西。其中包括大多数云服务提供商。
上述两个版本都提供了统一的控制台以及可通过常规 SSH 连接使用的 nCurses GUI。它提供了您能想到的几乎所有功能:
- 与 ESXi 5.1 至 8.0 兼容
- 虚拟机的热备份/复制。
- 块级别重复数据删除+LZJB压缩,压缩率高达99%。
- 即使在 ESXi 上也免费提供 Delta 算法、零感知和 CBT 本机支持。
- 使用命令行工具 xsigr 进行完整或粒度恢复。
- 电子邮件报告布局,完全可定制。
- 本地或通过 IP/SSH 备份。
- 多服务器备份(XSIBackup-App)。
- 完全可编写脚本,以融入更广泛的方案中。
- 高度稳定。它是在 Linux 中运行的 C 二进制文件。