我需要家用电脑进行简单的备份任务(只需在Linux上使用cronjob,每天运行一次):
对于这个任务(冷备份服务器)使用没有ECC RAM是安全的吗?
由于我要使用可擦写磁盘,因此可以自由地对错误进行重复操作,所以对于我来说这是可以接受的解决scheme,如果有一天我需要在此操作上花费更多的时间。
但我不确定,可以通过文件validation将我从内存错误中解救出来吗?
所以,我需要购买单独的服务器与ECC RAM到我家的任务,或者我可以使用我的旧家用电脑(没有ECC的RAM),不花钱呢?[我可以买服务器,我明白了,今天一切都很便宜,但是如果可能的话,不要花钱,也不要花钱,也不会花费更多的精力,把时间花在pipe理上,我需要在房间里find空间。
你不需要ECC内存。 您需要的是数据完整性的端到端validation。
如果您同时使用ECC内存并进行端到端的完整性检查,那么ECC内存将成为您的数据经过的多个中间存储器之一。 所有这些都将由端到端的检查所覆盖,所以任何未被ECC内存捕获的腐败都将被视为与链中其他地方发生的腐败一样。
如果您要使用ECC内存并且没有端到端的完整性检查,那么ECC内存可以为您节省一些可能不会被检测到的损坏。 但是缺乏端到端的完整性意味着腐败可能会在其他地方发生。 如果腐败发生在另一个位置,而不是ECC内存,那么没有任何ECC内存可以做到这一点从中拯救你。
所以ECC内存对于您的情况下所需的数据完整性检查来说既不够充分也不必要。 这就是为什么我开始这个答案,说你不需要它。
进行端到端完整性检查的一种方法是在服务器本身上生成一个ISO映像,并存储一个校验和(MD5就足够了,因为它是在那里防止由于随机的位翻转导致的数据损坏而不能防范恶意行为) 。
在图像被写入最终存储器之后,接收机将从最终存储器中读取数据并计算校验和,并将其发送回服务器进行validation。 校验和是通过从最终媒体中读回数据来计算的,因为如果你不这样做,这将不是端到端的完整性。
如果服务器上的校验和比较检测到损坏,则必须重新开始备份。 如果需要额外的备份太频繁,那么你可以开始调查链的哪一部分导致腐败,并研究提高该部分的可靠性。 此时将内存从非ECC升级到ECC可能是一个可行的解决scheme。
这种方式不需要ECC内存来保证数据的完整性,但这可能是整个链条的性能提升。
从统计上讲,在所有情况下,您都可以使用非ECC内存。 我购买ECC内存,以便当我的电话号码到达时,我不必晚上睡不着,不知道是我的错还是真的不可避免。
防止腐败非常昂贵。 早期检测软件/方法和组织良好的经过testing的备份解决scheme比装备ECC内存的每台服务器(其中n> 1)便宜得多。 考虑到你应该有这些,不pipeECC内存。 然而,ECC公羊是非常便宜的掩护你的对接保险 – 无论是你的老板,你必须面对或自己的想法。
如果您的生产服务器上完成了md5,那么这是完全安全的,因为任何错误都会被上一次校验和validation所捕获。
内存不是唯一可以修改数据的元素:networking传输和DVD /磁盘也可能引入错误。
端到端的校验和将捕获每个错误(但不会纠正它)。
可以文件validation保存我从内存错误?
文件validation是一个好主意,但它不能弥补由于操作系统崩溃或挂起,如果有内存错误的内存错误。