![从 Mac 备份多个 VMware VM](https://linux22.com/image/1373158/%E4%BB%8E%20Mac%20%E5%A4%87%E4%BB%BD%E5%A4%9A%E4%B8%AA%20VMware%20VM.png)
我使用 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 的最佳实践指南, 然而。