如何增强服务器内存的可靠性和可用性?

如何增强服务器内存的可靠性和可用性?,第1张

虽然处理器是任何服务器的核心部件,但是工作负载的所有指令和数据都存储在内存中。

在如今的虚拟化数据中心中,单单一台服务器可能运行众多虚拟机,而每个虚拟机作为一个文件驻留在内存中。但是当新的服务器添置更多更快的内存以满足更大的计算需求时,内存可靠性问题就显得尤为重要。IT人员必须留意内存故障,并充分利用旨在增强内存可用性的服务器特性。

如今,企业级服务器采用数TB的64位内存,这些预制模块遵守联合电子设备工程委员会(JEDEC)DDR3和DDR3L(低电压)标准而设计和制造。这样一来,企业很容易从诸多内存厂商购得价位合理的内存,但是遵守标准并不能保证可靠性。

内存可靠性面临的最大威胁并不是彻底的故障,不过可能会出现生产缺陷、电事件及其他物理异常引起的故障。确切地说,服务器内存面临的最大威胁来自随机比特错误——某个比特出现自发逆转。要是未加以检查,仅仅一个比特出现错误就会以突如其来、可能灾难性的方式,改动指令或改变数据流。

比特错误会自然发生。内存模块的错误率从每兆字节内存每小时大约1比特(有时被标为1010 errors/bit*h)到每兆字节内存每百年1比特(1017 errors/bit*h)不等。这个范围相差得太大了,但随着内存子系统速度变快、电气操作电压变低以及服务器上的内存总量增加,比特被“误解”并影响工作负载的可能性随之变得相当大。

其他因素也会加剧单比特错误,比如本底辐射(阿尔法粒子)、寄生电事件(如附近电磁干扰)、糟糕的主板屏蔽或设计,甚至DIMM插座上的电触点受到破损或质量低劣。

增强内存可用性的特性

缺少可用内存始终是个问题,而奇偶校验等错误检测技术已存在了好多年。奇偶校验很简单,对于检测单比特错误也很有效,但它纠正不了单比特错误,所以没有大量地应用于服务器。幸好,现在有或正出现另外许多特性,有助于增强内存可靠性。不妨考虑以下几种方案:

ECC。系统厂商们不是依赖奇偶校验,而是依赖纠错码(ECC)技术。ECC立足于奇偶校验的基础上,它使用一种算法,为每64比特的内存创建和存储一个8比特码(每个地址总共72比特)。这种算法和编码让系统得以实时检测和纠正单比特错误,此外还能检测多比特错误,并防止系统使用破损数据。ECC通常是许多通用服务器上采用的确保内存可靠性的默认技术。

先进ECC。先进ECC把ECC方法扩大到了多种内存设备,让ECC得以检测和纠正多比特故障,只要这些故障出现在同一个内存设备里面。不过,ECC和先进ECC并不支持任何一种故障切换机制,所以为了排除有问题的内存模块,仍得关闭系统(或依赖其他系统技术)。许多企业级服务器可以提供某种先进ECC,比如IBM ProLiant或戴尔PowerEdge。

内存错误跟踪。应对内存错误的一方面是,首先密切跟踪内存错误。新兴的服务器设计通过为错误率和位置做一份列表,开始密切跟踪可以纠正的错误。一些服务器还能将错误信息保存在内存模块上的可重写串行存在检测(SPD)内存空间——可以读取该内存空间,以便将来评估和分析。一旦系统能跟踪可以纠正的内存错误,并将该信息转移到系统的管理工具,就有可能通过记下错误率突然增加的DIMM来预测可能发生的内存故障。错误跟踪称得上是更先进的内存可靠性特性的先驱,更先进的特性包括DIMM故障切换或在物理内存空间里面转移数据。

热备用内存。热备用概念在磁盘存储领域很常见,但只是最近才在服务器设计流行起来。这是由于系统必须有一定的智能,才能先识别和跟踪可以纠正的内存错误,之后才能决定把数据转移到备用内存模块上。内存错误跟踪方面的技术进步让服务器的内存控制器得以将数据从存在的错误不可接受的DIMM转移到同一通道中的另一个备用DIMM上。这也叫内存插槽备用(rank sparing)。这种方法存在的不足是,为错误发生前一直非生产性的服务器增添内存需要一笔开支。

设备标记(Device tagging)。一种内存故障切换技术是基于BIOS的技术,名为设备标记。当系统跟踪到出现错误率增加的内存模块时,系统基本上就能把数据从有问题的内存转移到ECC内存——实际上使用ECC内存作为一个小小的热备用内存。这有望减少内存故障,但同时无法在这部分内存里面进行错误检测和纠正。设备标记被用作一种权宜之计,让系统保持运行,直到有问题的内存模块被换掉为止。

内存镜像。完美的内存可靠性技术就是把服务器上内存中内容从一个通道复制到另一个配对通道上。这实际上就是为内存建立了RAID 1机制。如果一个通道的内存里面出现故障,内存控制器就会切换到配对通道上,没有任何干扰完成修复工作(如果需要修复)后,通道就可以重新进行同步。镜像方法的缺点与存储方面的RAID 1一样由于内存中的内容被复制,存储容量减少了一半,或者说内存成本实际上翻了一番。

如今内存在现代虚拟化服务器中扮演更关键的角色,所以应对和缓解内存错误的破坏性效应显得比以往更为重要。

我想我大致明白你的意思了“给minecraft nat123分配4G的内存是吧?”

很明确的告诉你,可能YES,可能NO ,就看你的操作系统了。

如不是请再表述一遍。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/696068.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-02
下一篇2023-08-02

发表评论

登录后才能评论

评论列表(0条)

    保存