我有重要的数据,我在本地备份。我有一个本地硬盘驱动器上的数据的工作副本,然后是外部硬盘驱动器上的备份(然后是异地服务器上的另一个副本)。
我是否有好方法对数据完整性进行常规(例如每周)扫描,以确保在任一驱动器上都没有损坏?
1)磁盘util扫描(例如fsck)将检查驱动器,但不一定是数据。 2)rsync会告诉版本是否不同。 3)完成'哈希文件夹?
还有其他更好的方法来检查磁盘上数据的完整性,以确保没有任何内容损坏吗?
答案 0 :(得分:2)
我的备份前段时间有类似的问题。我发现我可以轻松备份数据,但确保备份和原始文件都有效,然后更换它们,如果它们被损坏,那是一件苦差事。我开发了一个C#应用程序来为我做这个,但它很麻烦,并不是那么有效。
最后,我最终转向使用ZFS镜像的基于NAS4Free的NAS。 ZFS非常注重数据完整性。 ZFS会阻止级别校验和,并将这些校验和与文件分开存储。如果创建ZFS镜像,则数据将出现在两个(或更多)位置,您可以擦除镜像。擦除遍历镜像中的每个块,并确保数据与校验和匹配。如果没有,则从镜像中的其他位置抓取有效块。
这将处理您的本地数据。就您的异地数据而言,如果您无法在站点外创建ZFS存储解决方案,则可能需要在将其发送之前对异地进行归档和校验,然后根据需要经常检查完整性。我将所有文件作为加密存档备份到Amazon Glacier,并对校验和进行编目,以防我以后需要从备份中获取内容。
有许多方法可以解决这个问题,但我发现ZFS支持的存储解决方案是最简单,最透明和最少量的维护。我希望这会有所帮助,或者它至少会指向一个有用的方向。