我第一次设置 NAS 盒。目前,我已将大部分数据备份到几个本地硬盘上,我打算在设置 RAID 阵列后通过以太网将所有数据传输到 NAS。由于这一切都是通过网络进行的,我有点担心我的数据在传输过程中会悄无声息地损坏。据我所知,数据通常不会在本地传输中未经通知就损坏,因为驱动器或操作系统会在某个时刻执行校验和。(这可能完全是错误的。)SMB 是否会发生同样的事情,还是由传输者检查其数据的完整性?如果 SMB 不会发生这种情况,是否有确保数据完整性的协议?我知道 rsync 可以对传输进行校验和,但我使用的是 Windows,并且我已经有一个我喜欢的 robocopy 配置。我的数据是否安全,还是我必须使用外部校验和工具来确保安全?
答案1
数据损坏是存在概率的,发生这种情况的几率会随着数据量的增加而增加
请注意 xcopy /v 不验证数据完整性
“此验证过程包括确认刚刚写入的数据是否可以读取(例如,数据未写入磁盘上的坏扇区)。不会对源数据和目标数据进行比较。”
https://support.microsoft.com/en-us/kb/126457
我目前正在制定一个 5Tb 数据迁移计划(个人数据),从旧存储阵列迁移到我的新存储服务器。我的研究(不完整)表明,以太网使用 CRC16 来验证所传输数据的数据完整性。
有一个很酷的链接,但由于声誉点数,我无法发布它。只需在它前面加上 http 即可
doc.utwente.nl/64267/1/schiphorst.pdf
一旦我了解了 MS 文件校验和完整性验证程序的细微差别,我就会编写源文件的 MD5 哈希并将其与目标文件进行比较。 fciv.exe 花了大约 9 个小时才在 ~1Tb 上生成哈希数据库。这是最耗时的方法,但也是最完整的方法。我的一些数据无法替换,对我很重要。它无法捕获错误(静默损坏)的几率非常小(我想是 10^-16,但找不到我的来源)
答案2
阅读您的文档 - 现在每个人都有验证选项。
我强烈建议使用带验证的 rsync。如今,您可以在任何操作系统上获取 rsync,您所需要的只是客户端。此外,您的数据不太可能在网络层复制过程中被破坏。也许您的驱动器很破烂,或者您的主板快坏了,但网络相当稳定。
此外,如果您安装了驱动器,请启动 cmd 窗口(又称 dos 窗口)并尝试 xcopy /V 以获取经过验证的副本(使用 xcopy /? 查看所有选项) - 并确保您的数据位于多个驱动器上,或者您的副本分散开来。永远不要相信单点故障!