这VMWare 知识库很多博客都指出,长时间运行的快照对性能和完整性都不利。他们的观点很有道理。
当然,这不是 ESXi,而是 *NIX 服务器上的 Workstation\VirtualBox,我确实看到许多博客都在吹捧使用 LVM(甚至 ZFS)快照。假设使用 LVM,他们基本上将 VMDK 存储在 LVM 卷上并拍摄他们想要的所有快照。
我看不出这个解决方案与简单地使用 VMDK 快照有什么实际区别,但 VMWare 从性能或完整性角度来看没有提到它有什么不好。很多博客都将其吹捧为快照解决方案。
话虽如此,如果长期运行的 VMWare 快照不是真正的 VMWare 快照而是 LVM\ZFS 卷上的 VMDK,那么它们是否不好?
澄清
长期运行快照是指运行时间较长甚至连续的快照。假设我设置了几个 Windows VM,在 LVM 级别对它们进行快照,并运行它们几周或几个月(甚至可能一直进行快照)。当我想回滚时,我只需回滚快照即可返回到以前的版本。
VMWare KB 明确指出(针对本机 VMWare 快照)
“不要使用单个快照超过 24-72 小时。出于应用程序或虚拟机版本控制目的,不应长时间维护快照。”
众所周知,人们长时间运行 LVM\ZFS 快照而不会产生任何不良影响。
答案1
答案2
我认为这个问题的根源在于两种根本不同的制作快照的方法。
VMWare 快照意味着它停止对主磁盘的写入,而是将所有写入放入单独的快照磁盘。恢复到此快照意味着丢弃自拍摄以来的所有写入(这几乎不会造成开销),但删除它意味着将分离的写入应用于主磁盘。这可能会占用大量 IO,并且可能导致存储拥塞,因为我不知道有什么方法可以让此流量的优先级低于常规 IO。
存储快照可以通过多种方式实现,但没有一种方式像上面的 VMWare 快照。它们都有某种权衡,但都不需要将大量更新作为不可优先处理的主机 IO 发送到存储设备。存储快照的一些示例包括写时复制、写后复制和 Netapp 样式的随处写入快照。
答案3
是的,ZFS 快照可以很好地完成此操作,并且不会因为随意添加快照而影响性能。(也易于复制以进行备份等)
但是,它与 vmware 没有任何协调,因此,在恢复快照时,您需要手动将其移除并重新添加到清单中。这是否是一个特别好的解决方案,很大程度上取决于您的工作流程。
此外,如果出现任何较大的时间差异,通常都会出现时间同步/域名认证等恢复问题。