如何检查数据备份的完整性
How to check the integrity of data backups
我有重要数据正在本地备份。我在一个本地硬盘驱动器上有数据的工作副本,然后在外部硬盘驱动器上有一个备份(然后在异地服务器上有另一个副本)。
有什么好的方法可以让我定期(例如每周)扫描数据完整性以确保两个驱动器上的任何内容都没有损坏?
1) 磁盘实用程序扫描(例如 fsck)将检查驱动器,但不一定检查数据。
2) rsync 会判断版本是否不同。
3) 'completed' 个文件夹的散列?
还有其他更好的方法来检查磁盘上数据的完整性以确保没有任何损坏吗?
不久前我对备份也有类似的担忧。我发现我可以很容易地备份数据,但是要确保备份文件和原始文件都有效,然后在它们损坏时进行替换,这是一件苦差事。我开发了一个 C# 应用程序来为我做这件事,但它很麻烦而且效率不高。
最后,我最终转向了带有 ZFS 镜像的基于 NAS4Free 的 NAS。 ZFS 非常注重数据完整性。 ZFS 执行块级校验和并将这些校验和与文件分开存储。如果创建 ZFS 镜像,数据将出现在两个(或更多)位置,您可以清理镜像。擦洗遍历镜像中的每个块并确保数据与校验和匹配。如果没有,它会从镜像中的其他位置获取有效块。
这将处理您的本地数据。至于您的异地数据,如果您不能在异地创建 ZFS 存储解决方案,您可能必须在将异地备份发送出去之前对其进行存档和校验和,然后根据需要经常检查完整性。我将所有文件作为加密存档备份到 Amazon Glacier,并对校验和进行编目,以备日后需要从备份中获取内容时使用。
您可以通过多种方式解决此问题,但我发现 ZFS 支持的存储解决方案是最简单、最透明且维护量最少的解决方案。我希望这对您有所帮助,或者它至少为您指明了一个有用的方向。
我有重要数据正在本地备份。我在一个本地硬盘驱动器上有数据的工作副本,然后在外部硬盘驱动器上有一个备份(然后在异地服务器上有另一个副本)。
有什么好的方法可以让我定期(例如每周)扫描数据完整性以确保两个驱动器上的任何内容都没有损坏?
1) 磁盘实用程序扫描(例如 fsck)将检查驱动器,但不一定检查数据。 2) rsync 会判断版本是否不同。 3) 'completed' 个文件夹的散列?
还有其他更好的方法来检查磁盘上数据的完整性以确保没有任何损坏吗?
不久前我对备份也有类似的担忧。我发现我可以很容易地备份数据,但是要确保备份文件和原始文件都有效,然后在它们损坏时进行替换,这是一件苦差事。我开发了一个 C# 应用程序来为我做这件事,但它很麻烦而且效率不高。
最后,我最终转向了带有 ZFS 镜像的基于 NAS4Free 的 NAS。 ZFS 非常注重数据完整性。 ZFS 执行块级校验和并将这些校验和与文件分开存储。如果创建 ZFS 镜像,数据将出现在两个(或更多)位置,您可以清理镜像。擦洗遍历镜像中的每个块并确保数据与校验和匹配。如果没有,它会从镜像中的其他位置获取有效块。
这将处理您的本地数据。至于您的异地数据,如果您不能在异地创建 ZFS 存储解决方案,您可能必须在将异地备份发送出去之前对其进行存档和校验和,然后根据需要经常检查完整性。我将所有文件作为加密存档备份到 Amazon Glacier,并对校验和进行编目,以备日后需要从备份中获取内容时使用。
您可以通过多种方式解决此问题,但我发现 ZFS 支持的存储解决方案是最简单、最透明且维护量最少的解决方案。我希望这对您有所帮助,或者它至少为您指明了一个有用的方向。