ECC已注册与ECC未缓冲


15

我想构建一个一直运行的存储服务器(基于GNU / Linux或FreeBSD)。为了防止数据损坏(这种情况不太可能发生,因为我从未遇到过这样的问题,但是最好还是安全一些,而不是抱歉),我想使用ECC RAM。

尽管不如EDD(?)(后者要贵得多)并提供额外的保护。ECC似乎只能纠正一位错误。

ECC注册的RAM仅可用于工作站/服务器主板,例如Intel Xeon或AMD interlagos / magny-cours / valencia g34或c32。

未缓冲的ECC可在华硕主板上的Intel Xeon lga1155或AMD AM3 +上使用。

第二种选择在处理器和主板方面会便宜得多,而且我怀疑我是否需要超过16GB的RAM(4x4 GB ECC无缓冲是最大的负担得起的存储棒)。

我的疑问是(主要是关于华硕am3 +板):ECC无缓冲的RAM是否和ECC注册的RAM一样好(从安全性和可靠性的角度来看)?还是更糟糕的选择。我不太在乎速度。

更多详细信息:服务器将使用最多24 x 3.5英寸驱动器的服务器机箱,并应尽可能减少消耗。从这个意义上讲,LGA1155似乎是一个更好的选择(TDP〜20-95W),而其他产品(> 80W)的价格是后者的两倍。任何建议都欢迎。假设闲置时少于120W(〜24个硬盘中有10个硬盘)。


1
询问SuperUser会为您提供SuperUser答案。在ServerFault上提问,将为您提供ServerFault答案。得到我的漂移?
乍得·哈里森

常见问题解答指出,可以在超级用户上进行硬件问题...
user51166

@hydroparadise检查常见问题解答-我们允许所有硬件问题。
西蒙·希恩

对不起,我认为这是假设的。仅提及从操作系统方面,如何解决ECC可能有不同的考虑因素,因为这将最终成为服务器应用程序。
乍得·哈里森

1
勉强 大多数时候,芯片组将处理ECC校正(如果有)。您完全不需要从操作系统中利用它们。(但是,您可以使用DMI来获取有关ECC或QPI错误的信息。)
Hennes

Answers:


-2

好吧,如果仅使用16GB RAM(这不是服务器RAM范围),则可以使用相当标准的任何台式机RAM / sys。

如果它只是一个存储服务器,那么您甚至不需要那么多的CPU性能。

就像您说的那样,使用Sandy bridge,它将为您提供一个凉爽,高性能和可靠的系统。

说到16GB RAM范围,您不必担心ECC问题。


感谢您的快速回复。虽然我在4GB以上的RAM上仍需要ECC。确保256GB RAM或半TB RAM ECC是必须的。但是我虽然16GB只是个限制...反正这很奇怪...至强4C / 8T Sandybridge的价格(在我自己的地方)比同等的台式机CPU低100美元。总费用是相同的。ECC在这里没有缺点。您确定不需要ECC吗???
user51166 2012年

@ user51166 100%确定。16GB就像当今中高端设备的标准配置。
2012年

2
事实上,它是事实上的标准,并不一定意味着它足够可靠。已经了解了互联网上硬盘上所有数据损坏的情况,这并不是由于SATA控制器,而是由于RAM损坏(非ecc)。
user51166 2012年

1
@ user51166告诉那个人,非ECC绝对不是他的问题。
2012年

1
“已注册的ECC>未缓冲的ECC”否/有时。未缓冲/未注册的ECC实际上会更快。缓冲/已注册的ECC至少会慢一个寄存器动作,但是您可以向内存通道添加更多DIMM。(和更多的内存CAN让你的系统快,即使延迟增加)。因此,而不是硬说“是/否”,正确的答案是“取决于”。
Hennes 2014年

45

ECC似乎只能纠正一位错误。

正确。要纠正更多错误,将需要更多位。实际上,您已经使用10位来存储8位信息,“浪费”了20%的存储芯片,以便进行一位校正和最多两位错误检测。

它的工作原理如下。想象一个0或一个1。如果我读过任何一篇,那我只希望我读对了。如果0由于某种宇宙辐射或坏芯片而变成1,那么我永远不会知道。

过去,我们尝试通过奇偶校验解决该问题。奇偶校验是每存储8位添加第9位。我们检查了字节中有多少个零和多少个1。第九定为使该数字为偶数。(即使是奇偶校验)如果您读过一个字节并且该数字有误,那么您就知道出了点问题。您不知道哪位错了。

ECC对此进行了扩展。它使用10位和复杂的算法来发现一位翻转的时间。它还知道原始值是什么。一个很简单的解释它是如何做到的是:

将所有替换0000。将所有替换1111

现在您可以阅读六个组合:
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 。

还有两件事:

  1. 我没有看到有关连接驱动器的任何信息。某些主板可能最多支持10个SATA端口。但除此之外,您将需要附加卡。如果考虑使用硬件RAID,则最好从头开始进行规划。
  2. 驱动器故障:如果您使用SATA端口倍增器,请仔细查看它们在SATA驱动器出现故障时如何工作。它通常不是很漂亮。对于家庭设置而言,这不是一个大问题,但绝不是企业级的。您可能还需要考虑各个驱动器如何处理错误。一些驱动器被标记为供“ NAS”或“ RAID”使用的原因是,它们处理错误的方式与常规驱动器不同。如果没有RAID,则希望驱动器尽可能重试。使用RAID,您希望驱动器快速故障,因此您可以从另一个副本读取数据。

5
因为这实际上可以回答这个问题,而另一个则是更实际/轶事的建议。我们将忽略它在到达寄存器与未缓冲部分之前会蜿蜒一点;)
ernie 2013年

1
是的,确实是曲折的。我试图做到透彻,但我真的不应该成为作家。(小说或手册)。
Hennes

嘿,我们也将忽略当您开始处理电源和其他问题时,我最初停止阅读的情况。。。;)
ernie 2013年

1
这是一个很好的答案,不能再短了,仍然可以很好地解决所有问题。我刚刚进行了适度的编辑,以清理您的文本,一旦应用将对您有所帮助。甚至取消了道歉以剪裁两条线-此处接受的答案不是很有帮助。在那期间,我确实简要介绍了ZFS重复数据删除问题和驱动器错误处理。决定不振动,即使这也将是24个驱动器的问题。
格雷格·史密斯

感谢您澄清已注册与未缓冲,以及使用RDIMM的原因。
Mahmoud Al-Qudsi 2014年

1

两个独立的问题。

ECC与非ECC

  • 在正常运行时间很重要的地方使用ECC
  • 成本更高-需要(多个)9芯片而不是8
  • 主板必须支持它才能使用它

已注册Vs未缓冲:

  • 可以通过注册DIMM安装更多(更多)的RAM
    • 内存控制器接口上的电应力较小
  • 但是所有安装的DIMM必须已注册或未注册
    • 如果升级到已注册,则必须删除无缓冲的DIMMS
  • 也更昂贵,访问周期更慢
    • 如果重要的话,无缓冲的延迟会稍微降低
    • 无论如何,所有随机访问都要花费很多周期
    • 请注意,相对于PC机中DRAM的使用历史,绝对访问延迟(以纳秒为单位的时间)并没有太大改善。
      • 成本,容量和带宽大大提高
      • 内存缓存仍然隐藏了大多数内存访问的延迟
    • 更长的延迟最不利于单线程“实时”性能
      • 通常不会对“服务器”用例产生太大影响
    • 带宽和整体性能无/最小差异
      • 顺序访问带宽不受影响
      • L2 / L3缓存意味着实际访问模式通常一次替换缓存中的行,因此无论如何通常都是“突发”访问
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.