服务器的可用性下

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

服务器的可用性(下)

二、硬件在线诊断技术

硬件在线诊断技术主要包括热插拔技术、内存保护、内存检查和纠错技术、内存镜像技术,内存热添加/交换技术、活动PCI技术,活动诊断技术等,下面我们分别介绍。

1. 热插拔技术

热插拔技术就是指有些部件可以在系统带电的情况下对部件进行插、拨操作。这非常重要,因为有时我们发现一些部件已损坏,但因为提供了硬件冗余,所以系统仍能继续保持良好运行。损坏的设备需要更换下来,这时如果这些硬件不支持热插拔技术,则必须关掉服务器的电源才能进行,这样就会严重影响服务器所管网络的正常长期不间断运行。一般来说具有热插拔性能的硬件主要有:硬盘、CPU、RAM、电源、风扇、PCI适配器、网卡等。

2. 内存查纠错技术

服务器中的内存我们知道一般来是采用带有ECC技术的,ECC的英文全称是“ Error Checking and Correcting”,中文名为“错误检查和纠正”,从这个名称就可以看出它的主要功能就是“发现并纠正错误”。

ECC比以前的奇偶校正技术更先进的方面体现在它不仅能发现错误,而且能纠正这些错误,这些错误纠正之后计算机才能正确执行下面的任务,确保服务器的正常运行。但要注意的是它不是一种内存型号,是一种内存技术,不仅以前的EDO内存可以有、SD内存也可有,现在主流的DDR内存同样可以有。那是因为并不是一种影响内存结构和存储速度的技术,它可以应用到不同的内存类型之中,就象我们在前讲到的“奇遇校正”内存。但ECC 技术只能纠正单比特的内存错误,IBM还有一种更先进的特殊内存纠错技术,那就是ChipKill 内存技术。

Chipkill内存最初是由20年前的IBM大型机发展过来的,ChipKill最初是为美国航空航天局(NASA)的“探路者”探测器赴火星探险而研制。它是IBM公司为了解决目前服务器内存中ECC技术的不足而开发的,是一种新的ECC内存保护标准。

ECC内存可以同时检测和纠正单一比特错误,但如果同时检测出两个以上比特的数据有错误,则一般不能纠正。但随着基于Intel处理器架构的服务器的CPU性能在以几何级的倍数提高,而硬盘驱动器的性能同期只提高了5倍,因此为了获得足够的性能。服务器需要大量的内存来临时保存在CPU上读取的数据,这样大的数据访问量就导致单一内存芯片上每次访问时通常要提供4(32位)或8(64位)比特以上的数据。一次性读取这么多数据,出现多位数据错误的可能性会大大地提高,而ECC又不能纠正双比特以上的错误,这样就很可能造成全部比特数据的丢失,系统就很快崩溃了。IBM的Chipkill技术是利用内存的子结构方法来解决这一难题。

Chipkill技术内存子系统的设计原理是这样的,单一芯片,无论数据宽度是多少,只对于一个给定的ECC识别码,它的影响最多为一比特。举个例子来说明的就是,如果使用4

比特宽的DRAM,4比特中的每一位的奇偶性将分别组成不同的ECC识别码,每个ECC 单元可单独用一个数据位来保存的,也就是说保存在不同的内存空间地址。因此,即使整个内存芯片出了故障,每个ECC单元也将最多出现一比特坏数据。这种情况完全可以通过ECC逻辑修复,从而保证内存子系统的容错性,保证了服务器在出现故障时,有强大的自我恢复能力。采用这种Chipkill内存技术的内存可以同时检查并修复4个错误数据位。

3. 内存保护(Memory ProteXion)

IBM的内存保护技术就是保护由于意外的内存错误而带来的损失,它比ECC内存错误纠正技术有效得多,同时它使用的是标准的ECC 168内存。它的工作方式有点像在Windows NT的NTFS文件系统下的在线备份磁盘扇区一样,当操作系统在磁盘上检测到坏的磁盘扇区时,它将在另外的扇区中写下这些数据放一边留作备用,我们可以认为内存保护就是提供在线备份数据位。这内存错误的纠正是通过内存控制器来完成的,所以不会增加操作系统的工作量,也不需要操作系统来提供支持,完全与操作系统无关。因为这是在标准的ECC 168线内存起作用的,无需为这种保护增加另外的开支。

内存保护(在其它系统中也有称“多余的数据位”)技术最初的发展是在IBM大型机上,而且在Z系列和I系列服务器上使用了许多年。IBM的高可靠性测试和分析使得带有内存保护技术的服务器每年因内存出错的机会比使用标准的ECC内存的少200倍。举个例子,给同样8GB内存的服务器多台,用户希望经过测试每132台使用ECC内存的服务器中每年只允许1台出现错误,而使用内存保护后就会看到每26042台服务器中每年只有1台因内存出错。

在一个2路交叉存取的内存系统中,每2片168线ECC内存包含144位,但是只有140位是用于数据存取和校验的。余下的4位是没有用上的,标准的ECC内存可以检测出2位的数据错误,但它只能纠正一位错误。如果在同时内存上有多位出错,那么这整个内存读取就失败了,此时唯有使系统临时挂起来,以尽量减少内存容量的需求,直到这个节点被更换。如果具有内存保护,那么就可以立即隔离这个失效的内存,重写数据在空余的数据位。通过这种方法可以在每4对(1个内存控制器,有的服务器不止包括一个内存控制器)168线内存中修复4个4位连续的内存错误。当服务器下次重启就会重新检查内存的状态,如果是内存软错误(临时的),系统重启后内存的这些用于在线数据备份的数据位就重新释放了,恢复空的状态。如果是属于硬故障,这些在线备份数据位还会继续用来备份,直到更换为止。这种先进技术可以使减少停机机时间,使服务器持续保持高效的计算平台。这对于大型的数据库系统中尤其重要。

4. 内存镜像(Memory Mirroring)

另一种防止服务器因内存错误的发生而导致整个服务器不稳定性事件发生的措施就是内存镜像。或许有可能服务器不知什么原因遇到了许多内存保护和Chipkill修复技术都不能完全修复的情况,此时内存镜像就会开始在系统中运行。

内存镜像很像磁盘镜像,就是将数据同时写入到两个独立的内存卡中(每个内存卡的配置者是一样的),平时的内存数据读取只从激活的内存卡中进行。如图7所示的是CPU同时把数据写入到两片内存中的示意图。

相关文档
最新文档