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同时把数据写入到两片内存中的示意图。

图7
在图7中如果一个内存中有足以引起系统报警的软故障,频繁报告系统管理员警告说这个内存条将要出故障,或者整个内存条都要彻底损坏,服务器就会自动地切换到使用镜像内存卡,直到这个有故障的内存被更换。允许系统照常运行,直到方便的时候对出故障的内存单元进行检测。镜像内存允许进行热交换和在线添加内存(因为镜像内存的存在,所以对于软件系统来说也就只有整个内存的一半容量是可用的,如果不希望镜像,在BIOS中进行禁止即可。)
5. 内存热添加/热交换 (Hot-add/Hot swap Memory)
热交换技术就是允许在服务器运行中将失效的内存进行更换,热添加就是在需要的时候允许在服务器运行状态下添加新的内存。IBM X系列服务器已经允许服务人员在需要时在线进行热添加新的驱动器、适配器、电源和风扇。




