题 带有ZFS的非ECC内存:一个愚蠢的想法?


我有一台新服务器,我打算将微不足道的2 GB内存升级到最大16 GB。 (理论上,8 GB是限制,但经验证明16 GB可以工作。) 一些指南 建议ECC内存并不重要,但我不确定我是否相信这一点。

我安装了 FreeNAS的 并且我计划在我的新硬盘到达时立即添加ZFS卷。为基于ZFS的NAS吝啬和获取非ECC内存会是愚蠢的吗?如果有必要,那么我会咬紧牙关,但如果只是偏执狂,那么我可能会跳过它。

ZFS或FeeeNAS有什么原因吗? 特别 需要ECC内存,还是特别是在使用非ECC内存的系统上运行时?


14
2017-12-03 22:13




一般而言,您需要为ECC RAM支付任何类型的生产/服务器应用程序。建议ECC内存“不那么重要”的指南充其量是可疑的 - 我冒昧地说,他们是由一个从未有过一点错误的人写的,它会破坏生产系统。 - voretaq7
对于需要16GB内存的微服务器,你会做些什么? - tombull89
ZFS最初是一个需要RAM的东西,我打算安装ESXi并在其上运行FreeNas。这样,当我需要一些其他服务器时,我只需创建一个新的VM,避免出现大量的盒子和线索。 (如果有一些家用自动化解决方案不像X-10那么糟糕,我有一个盒子。如果我想使用Git Lab进行私人回购,我有一个盒子。等等。) - iconoclast
我想如果他删除了关于他的迷你塔装置的背景,这可能是一个疯狂的生产,那么是否使用ECC内存进行ZFS安装的问题确实是重要的部分。 - Kent Fredric
Matt Ahrens,2001年共同创立了ZFS, 说: There's nothing special about ZFS that requires/encourages the use of ECC RAM more so than any other filesystem. - Janus Troelsen


答案:


我认为,当存储在ZFS卷上的数据很重要时,运行带有非ECC RAM的FreeNAS是一个愚蠢的想法,就像运行它作为虚拟客户机一样。

FreeNAS开发人员之一Joshua Paetzel对此主题有一个很好的评论: http://www.freenas.org/whats-new/2015/02/a-complete-guide-to-freenas-hardware-design-part-i-purpose-and-best-practices.html

TL; DR

ZFS没有其他任何你可以使用的文件系统:它校验你的数据,它校验ZFS使用的元数据,并校验校验和。如果您的数据在写入之前在内存中已损坏,ZFS将很乐意写入(和校验和)损坏的数据。此外,ZFS没有可以修复文件系统损坏的预安装一致性检查程序或工具。 [...]如果非ECC内存模块出现故障,可能会对ZFS池造成无法修复的损坏,从而导致存储完全丢失。


6
2018-03-23 21:36



谢谢。我相信。这正是我需要知道的。 - iconoclast
@iconoclast我希望你没有等待2年这个答案。 - ewwhite


ZFS仅保护您对磁盘上数据的投资。如果服务器正在生产中,那么您需要尽可能高的正常运行时间,并且ECC通过允许服务器在内存故障时容忍ONE BIT错误来帮助实现这一点。这可以让您有时间安排和更换失败的内存而不会出现恐慌。


13
2017-12-03 22:17



@iconoclast取决于哪个位被翻转。如果碰巧是加密数据或加密密钥,那么你就丢失了所有东西...... - Michael Hampton♦
@MichaelHampton:换句话说,加密我服务器上的数据实际上增加了它丢失到内存故障的可能性。 - iconoclast
@iconoclast加密不能替代备份。虽然如果加密磁盘,您几乎肯定也需要加密备份。 - Michael Hampton♦
@ewwhite只有一个电源是一个可用性问题。非ECC RAM可能会影响可用性 和诚信。不难想象诚信比可用性更重要的场景。 - Skyhawk
正如我前面提到的。这个服务器 来 使用ECC RAM。这整个论点很愚蠢,因为没有理由使用除了之外的东西 制造商祝福的RAM套件 用它。 - ewwhite


ECC RAM是一件好事,但让我们来看看上下文......

对于您的预期用途,ProLiant Microserver是一款不错的小型低影响服务器。它缺少通常与生产质量系统相关的一些属性(只有四个驱动器托架,单个电源,较弱的CPU)。所以,我认为你会遇到与这些缺陷相关的问题,而不是没有纠错RAM的影响。你读过的指南是正确的...... ECC RAM在那个特定的系统中不会那么重要......

对于高端生产质量系统而言,这并不适用。

我要补充一下:微服务器是 使用ECC RAM进行规范。你为什么不用它?


12
2017-12-04 00:34



我认为你的意思是“生产质量” 企业素质?我要这个 在生产中 (这不是QA,UAT或开发),只是非常小的规模。但它的数据将是 真实,而不是为开发生成或从生产服务器克隆的垃圾数据。这将是 实际生产 数据。 (顺便说一句,感谢非常有用的答案,以帮助把事情放在上下文中!) - iconoclast
@iconoclast没有,生产质量仍然是生产质量。单个PSU不适合任何类型的服务器,除非你想购买一个备用的PSU以便随时保持 - 这将是愚蠢的,因为你可以插入备用PSU并具有双PSU的bla bla bla。保持安全不是“企业” - pauska
@iconoclast人 通常 将生产服务器视为全天候和高可用性。后者当然是成本/收益的范围,从简单地具有两个PSU直到数据中心级冗余。但是,您的设置没有这些东西 - Dan
这个PSU谈话是垃圾,尊重。我的网络锚定在两个自定义构建的服务器上。 DNS,DHCP,Active Directory。在相应的情况下运行Micro-ATX板,8个SAS光盘+ 2个SSD,Raid控制器,SINGLE PSU。你会打电话给非HA?好吧,做到这一点 - 我仍然有一个HPC和虚拟化网格挂起作为锚点(即其中一个必须打开)。 - TomTom
有些公司有服务器,当他们在一天结束回家时关闭它们。我不会在我的家庭网络上这样做,但有些公司似乎并不关心/那么多关于内部资源的可用性。 - Kent Fredric