从 Mac 备份多个 VMware VM

从 Mac 备份多个 VMware VM

我使用 vmware fusion 来制作企业基础架构的原型和模型。这个问题旨在征求一种备份(最好是增量备份)虚拟机的最佳方法。

我的 VM 目录现在大约有 250 GB,安装在板载 SSD 上,我需要偶尔备份它,但这需要很长时间,因为 vmware 似乎触及了 .vmwarevm 目录中的所有文件,因此任何合理的备份解决方案都会将它们视为脏文件。我还读到它们是稀疏文件,因此应该有可用的优化。我试过了

1) rsync -azP  --exclude-from=xlist.lst /Users/pcarr01/VM/ /Volumes/SD128GB

rsync 到本地 thunderbolt SSD - 没有压缩,而且速度太慢,IO 似乎与硬件引用的数字不匹配

2) rsync rsync -aP * admin@persistence::VMs

rsync 到 Netgear ReadyNAS duo - NAS 很快达到 NAS CPU 的最大容量,但没有发生什么异常,完全备份需要 24 小时以上

3)基于 tar 的解决方案

#!/bin/bash
# backup tars to target ignoring vms that are older than backups
# args target where target is name of volume [/Volumes/???]
[[ -z $1 ]] && {
    "No target specified"
    exit 1
}
target=$1
dst_path="/Volumes/${target}/vmtar/"
path="/Users/pcarr01/VM/"
ls -d /Users/pcarr01/VM/*.vmwarevm | grep -vf ${path}/xlist.lst | while read file
do
    dst=${file/$path/$dst_path}.tgz
    echo backing up $file to $dst
    [[ ! -e "$dst" ]]  && echo creating new tar && tar -czf "$dst" "$file"  &
    sleep 3
    [[ `stat -f "%m" "$dst"` -lt `stat -f "%m" "$file"` ]] && echo updating tar && tar -czf "$dst" "$file" &
done

这会同时备份,耗时不到 2 小时,因为 mac 上的 bsdtar 似乎是单线程的,瓶颈是每个 tar 的一个线程 @ 100%,所以它永远不会接近 thunderbolt 上备份 SSD 的 IO

还有其他更好的想法吗?

答案1

大多数人不会备份工作站托管的虚拟机。备份选项有限,使用场景也很狭窄。

从增量角度来看,Time Machine 和 rsync 样式的备份无济于事。

不幸的是,您没有提供任何有关在 Macintosh 台式机/笔记本电脑上作为客户机运行的操作系统的信息。您最好的情况是担心虚拟机内的数据;例如您的配置和数据目录。您还可以运行本机备份。如果使用 Windows,则很容易备份到某个共享位置。如果使用 Linux,也很容易。

值得一读 VMware 的最佳实践指南, 然而。

答案2

通常,真正重要的虚拟机应该从工作站移至专用服务器。

在我的 Mac 上,我打开自动快照融合内部特征,然后让崩溃计划备份到我的 NAS。我可以避免这种情况,因为我不会对我的 VM 进行大量更改。

您可以尝试使用多线程压缩程序,例如

相关内容