我脑子里浮现一个愚蠢的问题:如果我在 C:/test1 中有一个文件并将其移动到 C:/test2 然后移动到 D:/Other 等等......一次又一次,文件可能会变成损坏?一次又一次地复制文件怎么样(副本副本副本副本)?
他们不应该;文件是开/关模式,所有操作(如移动和复制)都旨在移动整个数据,而不会丢失任何数据。这不像人类的“电话”游戏,在这种游戏中,一遍又一遍地复制文件,每次都会变得更加含糊不清和困惑,直到剩下的都是废话。
但是,每次你做某事时,出错的可能性很小。您做的事情越多,您遇到其中一项出错的机会就越大。例如,其中之一是在移动过程中断电——你最终会怎样?部分文件?无文件?两个文件?
没有什么是完美的; 2005 年,一项研究着眼于磁盘驱动器错误率,并发现:
我们在读取 1.4 PB 时观察到 3 个丢失事件,这是 3 个丢失的文件。在数据中心环境中,我们丢失了 32,000 个 10GB 文件中的 2 个,在办公室设置(系统 1)中,我们在 35,000 次尝试中丢失了一个 10GB 文件,在 7,560 次尝试中没有丢失 100GB 文件。
那只是磁盘错误,它们也是"experienced at least 4 controller firmware or driver errors"。
最重要的是,还有内存错误 - 将信息加载到计算机内存然后再次将其写出之间的损坏机会。这里有一个臭名昭著的谷歌的研究,他们跟踪误差在内存翻过了数千台服务器,引用维基百科这里的规定:
“在 SIGMETRICS/Performance'09 会议上提出了一项基于 Google 大量服务器的非常大规模的研究。[4] 实际错误率 [..] 25,000 至 70,000 个错误/每兆位设备小时 [.. ] 每年有超过 8% 的 DIMM 内存模块受到错误影响。”
当然,在磁盘上的磁介质中,在通过电缆的传输中,在电源尖峰或宇宙射线的损坏、设计缺陷、将廉价硬件的低容限之外推开的可能性当然存在主板、芯片组、处理器、内存、固件或软件,然后再回来。
顺便说一下,这里有一篇很棒的文章,它基于这样一种想法:如果计算设备在查找 Internet 地址时破坏了内存中的数据,它可能会查找到错误的地址。所以作者注册了一些“错误地址”(如果你破坏了一个流行的网站名称,你会得到什么)来查看是否有任何设备连接到它们 - 他在近 6 个月内收到了 52,000 个请求。
研究如何在计算中使事情/更多/更可靠是一个繁忙的领域。从 CRC 和校验和,到具有奇偶校验的 RAID,基于校验和树的文件系统 ZFS,到自动复制,到 ECC 内存,等等。