为什么快照被视为临时备份而不是真正的备份?

我正在使用VMware ESXi。 在我们的团队中,我们使用快照提供长期备份。

然后我们遇到内存溢出等问题,服务器挂断了。

我开始阅读VMware知识库文章和其他地方的文章。 在任何地方,build议不要有很长一段时间的快照。

即使VMwarebuild议保持快照最多三天。

但是我们的团队一直要求我们至less有两个永久的快照(直到删除虚拟机)。 有时我们可能会使用虚拟机一年)。

  1. 一个快照是用于新机器状态的。 (所以当我们完成testing应用程序时,我们将恢复到新鲜状态并安装另一个应用程序)(如果我不允许的话,我可能经常需要托pipe虚拟机)。

  2. 下一个快照让虚拟机处于某种状态(也许他们会发现一个问题并保持这个状态一段时间,或者他们可能为应用程序安装先决条件,并保持机器准备好进行testing)。

从逻辑上讲,他们的需求似乎是公平的。 但是如果我允许的话,我可以让他们长时间保存快照。 我们没有使用我们的VM作为邮件服务器或数据库服务器。

为什么长时间保持快照会产生不利影响?

为什么快照被视为临时备份,而不是真正的备份?

    当虚拟机具有活动快照时,其虚拟磁盘I / O不会在虚拟机的实际.VMDK文件上执行,而是保持不变,并且将虚拟机中的任何更改写入不同的物理文件。 这允许恢复以前的虚拟机状态,但有三个重要的副作用:

    • VM的磁盘I / O要慢得多。
    • 随着越来越多的磁盘I / O被虚拟机执行,这些“增量”文件随着时间的推移而不断增长。
    • 删除快照后,“delta”文件中存储的更改必须合并回主要的.VMDK文件中,如果快照长时间处于活动状态,则这非常缓慢且耗时。

    长时间不保持活动快照确实更好。 如果您需要在给定状态下对虚拟机进行长期备份,则可以将虚拟机复制到其他位置:这将不会对虚拟机产生性能影响,反而会占用更less的磁盘空间,短期的快照会随着时间的推移而被填满。

    另外,如果虚拟机丢失,将虚拟机的副本存储在不同的地方会对您有所帮助:快照与其所属的虚拟机一起存储,仅在虚拟机可用时才有用; 在实际的数据丢失(如数据存储崩溃)的情况下,它们是完全没有用的,因此不能用作真正的备份。

    以下是一些关于快照的官方文档:

    http://kb.vmware.com/selfservice/microsites/search.do?cmd=displayKC&externalId=1015180

    我知道这个post有点老,但是提出的问题和意见还是很有意义的。

    VMware快照绝对不是备份。 更糟的副作用是我发生在我和许多客户身上,他们保留了6个月的VMware快照,ESXi主机出现意外中断,导致ESXi重新启动或需要重新启动以清除中断。 ESXi已恢复,VM已启动,所有数据已恢复到VMware快照的拍摄时间点。

    在这种情况下,VMware快照的拍摄时刻和中断时刻之间的所有更改都会丢失。

    因此,我的一般build议是,将VMware快照仅用于特定目的,并在完成此目的后将其删除。

    http://kb.vmware.com/kb/1025279

    一些vmware使用的快照格式会随着时间的推移而降低性能,因为它们会存储更多数据。 我相信“稀疏范围”格式仍然是最新版本的默认值,似乎没有这个属性(你每次读取的读数是3次,每次写入的读取次数是2次,写入次数是3次,随着磁盘的填满,情况会变得更糟糕)。 所以,我并不完全确定,“不要长时间保持快照”的财产一定是正确的build议。

    但我注意到的一件事情是合并快照需要很长的时间,因为它们变大了。 根据您的使用情况,这可能会也可能不会成为问题。

    至于你的另一个问题,关于“临时备份”,这很容易 – 备份旨在承受主数据存储的损失。 由于快照和起源是一起存储的(快照在没有基本映像的情况下是无用的),所以你会失去这些东西 – 因此快照绝不是备份。

    作为您的团队要求全新安装映像或特定状态的解决scheme,我build议使用模板。 模板将虚拟机(基本上只是一个副本)复制到无法启动或更改的状态,只能将其用作克隆副本的参考。 例如,如果我有一个“Default Debian Install”模板,并且服务器团队要求三台新服务器,那么我只需创build三个新的克隆,然后自定义,然后完成。

    第二种情况也可以做同样的事情。 如果虚拟机达到您想要引用的状态,请创build一个模板。 从此,无论何时需要引用它,只需克隆另一个副本。

    在对虚拟机进行一些重新configuration(安装新软件,主要升级等)之前,快照背后的想法更多的是还原点。 所以,如果你把它搞糊涂,你可以回到工作的地步,走开口哨,而不必怪你的同事:)

    一般的想法是,你将在未来某个时候合并(当你可以把它放下一段时间而不影响你的用户)。

    由于其他人在这里已经描述过的原因,你不应该保留VMware的快照,但是很多人做的是做一个vmwarepipe理单元,然后干净地完成(取决于客户的快照是什么)你拿你的存储arrays的快照,然后你可以备份/复制/存档/等快照。 在arrays上创build实际快照后,您必须尽快删除vmware快照。