ECC似乎只能纠正一位错误。
正确。要纠正更多错误,将需要更多位。实际上,您已经使用10位来存储8位信息,“浪费”了20%的存储芯片,以便进行一位校正和最多两位错误检测。
它的工作原理如下。想象一个0
或一个1
。如果我读过任何一篇,那我只希望我读对了。如果0由于某种宇宙辐射或坏芯片而变成1,那么我永远不会知道。
过去,我们尝试通过奇偶校验解决该问题。奇偶校验是每存储8位添加第9位。我们检查了字节中有多少个零和多少个1。第九定为使该数字为偶数。(即使是奇偶校验)如果您读过一个字节并且该数字有误,那么您就知道出了点问题。您不知道哪位错了。
ECC对此进行了扩展。它使用10位和复杂的算法来发现一位翻转的时间。它还知道原始值是什么。一个很简单的解释它是如何做到的是:
将所有替换0
为000
。将所有替换1
为111
。
现在您可以阅读六个组合:
000
001
010
100
101
111
我们永远不会100%确定最初存储的内容。如果我们阅读000
,那可能000
正是我们所期望的,或者所有三个位都可能翻转了。后者的可能性很小。比特不会随机翻转,尽管确实会发生。假设对于某些简单的计算,这种情况发生的十分之一(实际情况要少得多)。得出以下正确的值的机会:
000
->要么000
(确定99.9%),要么三次翻转(1/1000几率)
001
->我们知道出了点问题。但是它要么
000
翻转了一位(1:10的机会),要么
111
翻转了两位(1:100的机会)。因此,让我们将其视为已读取000
但记录了错误的代码。
010
->与上述相同。
100
->与上述相同。
011
->与上述相同,但假设它是一个 111
101
->与上述相同,但假设它是一个 111
110
->与上述相同,但假设它是一个 111
111
->要么111
(确定99.9%),要么三次翻转(1/1000几率)
111
->要么000
(确定99.9%),要么三次翻转(1/1000几率)
ECC具有类似的技巧,但效率更高。对于8位(一个字节),它们仅使用10位进行检测和纠正。
ECC注册的RAM仅可用于工作站/服务器主板ECC无缓冲的内存可用于Intel Xeon lga1155或Asus主板上的AMD AM3 +。
我已经提到了ECC部分,现在是已注册vs未缓冲部分。
在现代CPU中,内存控制器位于CPU芯片上,早在很早以前就开始使用AMD Opteron芯片,而英特尔使用Core i系列。然后,大多数台式机CPU直接与保持RAM的DIMM插槽通信。它可以工作,不需要额外的逻辑。这样构建起来很便宜,而且速度很高,因为从内存控制器到RAM没有延迟。
但是内存控制器只能高速驱动有限的电流。这意味着可以向主板添加多少个内存插槽是有限制的。(并使其更加复杂,以至于DIMM可以使用多少,这会导致内存排名。由于这已经很长了,我将跳过它)。
在服务器板上,您通常要使用比台式机系统更多的内存。因此,“寄存器”缓冲区被添加到存储器中。首先将从DIMM上的芯片读取的数据复制到此缓冲区。一个时钟周期之后,此缓冲区连接到存储控制器以传输数据。
该缓冲区/寄存器延迟了事情,使内存变慢了。这是不希望的,因此仅在具有大量存储体的板上使用/需要。大多数用户电路板不需要此功能,而大多数用户CPU不支持此功能。
直接连接的,未缓冲的RAM与已缓冲/已注册的RAM并不是一个比另一个更好或更差的情况。就可以拥有多少个内存插槽而言,它们只是权衡取舍。已注册的RAM允许以一定速度(甚至可能是费用)牺牲更多RAM。在大多数情况下,您需要尽可能多的内存,这些额外的内存可以弥补以稍慢的速度运行的RAM。
我的疑问是(主要是关于华硕am3 +板):ECC无缓冲的RAM是否和ECC注册的RAM一样好(从安全性和可靠性的角度来看)?还是更糟糕的选择。我不太在乎速度。**
从安全性和稳定性的角度来看,未缓存的ECC和已注册的ECC是相同的。
更多详细信息:服务器将使用最多配备24 x 3½英寸驱动器的服务器机箱,并应尽可能减少消耗。
24个驱动器将消耗大量电能。多少取决于驱动器。我的140GB 15K RPM SAS驱动器闲置时仅消耗10瓦,与1TB SATA 7k2磁盘相同。在使用时都画更多。
将其乘以24。24x10瓦在闲置时意味着240瓦仅使磁盘盘片旋转,克服了空气阻力。双重使用。
从这个意义上讲,LGA1155似乎是一个更好的选择(TDP〜20-95W),而其他产品(> 80W)的价格是后者的两倍。
在撰写本文时以及您提到的CPU方面,英特尔在低功耗CPU方面表现更好。
任何建议都欢迎。假设闲置时少于120W(〜24个硬盘中有10个硬盘)。
如果您选择FreeBSD,请认真看一下ZFS。可能很棒。它的许多更高级的功能(例如重复数据删除和/或压缩)都占用大量CPU资源,并需要大量内存。ZRAID基本使用的ZFS在您提到的两个CPU集和16 GB上都可以正常使用,但是如果启用重复数据删除之类的功能,则应仔细查看磁盘容量所需的推荐内存。一些指南建议每TB存储最高5GB 。
还有两件事:
- 我没有看到有关连接驱动器的任何信息。某些主板可能最多支持10个SATA端口。但除此之外,您将需要附加卡。如果考虑使用硬件RAID,则最好从头开始进行规划。
- 驱动器故障:如果您使用SATA端口倍增器,请仔细查看它们在SATA驱动器出现故障时如何工作。它通常不是很漂亮。对于家庭设置而言,这不是一个大问题,但绝不是企业级的。您可能还需要考虑各个驱动器如何处理错误。一些驱动器被标记为供“ NAS”或“ RAID”使用的原因是,它们处理错误的方式与常规驱动器不同。如果没有RAID,则希望驱动器尽可能重试。使用RAID,您希望驱动器快速故障,因此您可以从另一个副本读取数据。