我有一个虚拟机(centos)为小文件运行一些文件服务。建议的备份方式是什么?我应该备份虚拟机磁盘/文件(从虚拟机的外部)还是应该在虚拟机内运行备份代理,所以我将备份内容而不是整个虚拟磁盘?
发布于 2020-08-30 11:22:30
TLDR:在VM中安装备份代理。
从VM外部备份磁盘映像看起来确实很诱人,不是吗?特别是如果您有几个VM,那么您只需要告诉主机备份所有磁盘映像,您就完成了,而不需要单独配置每个VM来备份自己。
然而,这种方法的问题在于主机不知道VM的操作系统内部在做什么。它不知道是否有任何磁盘写入挂起或正在进行。它不知道VM进程内部的任何写缓存或输出缓冲区。因此,它不能保证它备份的磁盘映像在备份时是一致的映像。备份的映像文件几乎肯定仍然是可用的,但是您很有可能需要首先对其运行文件系统修复来清理。
从外部进行全磁盘映像备份的另一个主要缺点是,这种备份主要用于全系统恢复。我你只需要回到上周四丢失的一个文件的版本,它们不是很好--你需要从星期四的备份中恢复整个图像,然后使用其他工具从图像的第二份副本中提取出一个文件,这比你在VM中做的备份要花费更多的时间和空间,并且只能恢复一个感兴趣的文件。
与此相关的还有,完整的映像备份更难(顶多地)逐步执行,这意味着每次运行备份时都需要制作整个映像的完整副本。使用VM中基于内容的备份,您可以进行定期的完整备份,并且只能在两者之间备份更改的文件,从而允许使用相同存储空间的更频繁的备份。
如果您要为灾难恢复目的创建整个VM的映像,或者将其用作克隆以创建其他VM的主服务器,那么关闭VM并复制整个磁盘映像是一种很好的方法。但这并不是对运行中的系统进行常规备份的好方法。
发布于 2023-02-13 22:51:47
DR从VM外部做快照。
我见过的所有VM主机软件(包括云服务和容器主机)都有快照功能。这是备份正在运行的系统的首选方法,因为快照保证在单个时间点上是整个磁盘的一致和原子副本。VM主机软件通常有客户操作系统工具,可以在快照之前使文件系统安静下来,不过最好是在没有太多写操作的时候(比如在晚上)进行快照。大多数系统将在保存快照状态时短暂暂停。
快照通常也是增量式的。还有一些高级快照功能,比如去复制。
如果系统被关闭(而不是暂停或挂起),您可以只获取VM文件的副本,因为您知道不可能有任何写操作,而且所有数据都必须写入磁盘。
如果需要还原单个文件,则只需还原磁盘、附加磁盘并将其挂载到其他系统即可。
如果在文件系统中的文件上运行备份,就会出现以下几个问题:
文件可能不一致,因为写入可能发生在备份期间,因为它不是原子的。例如,Tar警告您,文件在备份时被写入。作为另一个例子,我绝不会相信备份了文件的数据库的副本。数据库系统可能具有从不一致中恢复的弹性,但您想要冒这个风险吗?您最好使用相关的系统工具进行单独的离站数据库备份。
另一个问题是很难仅仅从文件创建一个可引导的系统。其他事情,如引导扇区和分区表,是必需的,以建立一个可引导的系统。这意味着在文件恢复之前安装完全相同的操作系统需要额外的恢复步骤。即使那样,我也会非常怀疑是否相信它,即使它启动。
https://serverfault.com/questions/1032034
复制相似问题