在 rsync 运行时使用 HDD 是否安全?

在 rsync 运行时使用 HDD 是否安全?

我计划在 之前备份我的大容量硬盘rsync,预计需要几天时间。在rsync工作期间使用原始硬盘(添加文件)安全吗?还是最好在rsync完成之前不要碰硬盘?

答案1

正如其他人已经指出的那样,在 rsync 运行时,从源磁盘读取数据或使用目标目录之外的目标磁盘都是安全的。在目标目录中,特别是当目标目录仅由 rsync 运行填充时。

不是什么一般来说安全就是在源目录中写入在 rsync 运行时。“写入”是指修改源目录或其任何子目录的内容,因此包括文件更新、删除、创建等。

这样做实际上不会休息任何内容,但更改实际上可能会或可能不会被 rsync 拾取并复制到目标位置。这取决于更改的类型、rsync 是否已扫描该特定目录以及 rsync 是否已复制相关文件或目录。

但是,有一个简单的方法可以解决这个问题:完成后,使用相同的参数再次运行 rsync。(除非您有一些时髦的删除参数;如果有,那么要小心一点。)这样做会导致它重新扫描源,并传输在原始运行期间未发现的任何差异。

第二次运行应该转移仅有的上次 rsync 运行期间发生的差异,因此完成速度会更快。因此,您可以在第一次运行期间可以正常使用计算机,但应尽可能避免在第二次运行期间对源进行任何更改。如果可以的话,强烈考虑以只读方式重新挂载源文件系统在开始第二次 rsync 运行之前。(类似mount -o ro,remount /media/source应该做的事情。)

答案2

这取决于你使用的备份系统,但一般来说,调整备份设备时,您可以其内容;这是一个安全的操作,即使它会减慢该过程的速度。

在您的情况下,rsync将建立一个文件列表,然后开始备份。因此,在备份开始后添加到源硬盘的任何文件都将不是被复制。

我的做法是在备份期间根本不使用设备。这是获得快速且一致备份的更安全的方法。

答案3

在操作时从源区域读取数据是安全的rsync,但是如果更新任何内容,则创建/更新的副本rsync可能会不一致:

  1. 如果您更新 rsync 已扫描的文件,则它直到下次运行才会看到更新。如果您更新尚未扫描的文件,则目标中将保留更改。如果您更新已扫描和未扫描的文件,则目标中将同时存在新旧版本。

  2. 如果您将文件添加到已扫描过的目录中,则这次它将从目标副本中丢失。如果您从已扫描过的目录中删除文件,则这次它将留在目标副本中。根据您调用的方式,rsync可能会在开始时扫描整个树,或者可能会在同步过程发生时逐步扫描整个树。

  3. 在某些情况下,rsync将发现不一致并向您发出警告。如果您从已扫描但尚未扫描其内容的目录中删除文件或子目录,您将收到有关对象丢失的错误消息。在类似情况下,它有时(如果大小和/或时间戳已更改)还会警告文件在扫描过程中发生变化。

对于某些备份来说,这种不一致可能不是一个大问题,但对于大多数备份来说,这种不一致是一个大问题,因此建议您不要尝试同步正在变化的源。

如果您使用 LVM 来分割存储系统,则可以使用临时快照进行时间点备份。这要求您在卷组上有足够的空间来创建足够大的快照卷,以容纳在需要快照的持续时间内将发生的所有更改。查看 LVM 文档(或众多在线示例之一:搜索“LVM 快照备份”或类似内容)了解更多详细信息。

即使没有 LVM,一些文件系统本身也支持快照 - 因此您可能也希望研究该选项。

如果您想备份大型活动卷而又不想长时间停机,并且无法使用快照,则可能只需运行“实时”扫描直至完成,然后停止对卷的访问并运行另一个 rsync 进程,这可能需要的时间要少得多(如果更改很少,它只会扫描目录树,然后扫描少数更新的文件)。这样,您避免更改的时间可能会短得多。

答案4

所有当前的答案都是从一致性和假设硬件完美性的角度来谈论数据安全性。

另一件需要考虑的事情是硬件安全本身。如果你有未备份的硬盘,它们可能即将出现故障(你可能还不知道),而你正在制造一个最初的全面备份不要使用它。如果数据很重要,甚至不要安装它。您可以使用以下工具dd将磁盘克隆为块设备。您不希望磁盘头在您尝试进行备份时进行搜索,甚至写入。此外,dd初始备份应该更快,因为它只是按顺序复制位(如果驱动器不是快满了,我想 rsync 在初始情况下也会获胜)。

对于后续增量备份,rsync 是一个很好的选择,我 100% 同意其他答案。

相关内容