3.3.3 IBM内存保护(Memory ProteXion)
Memory ProteXion技术最初是为IBM的主机开发的,在IBM公司的z系列和i系列服务器中应用了多年。它相对前面介绍的Chipkill内存技术在保护能力上更强些。
它的工作原理与硬盘的热备份类似。当某个DIMM存储芯片失效的时候,内存保护技术能够自动利用备用的比特位找回数据,从而保证服务器的平稳运行。该技术可以纠正发生在每对DIMM内存中多达4个连续比特的错误。当出现随机性的软内存错误时,可以通过使用热备份的比特位来解决;如果出现永久性的硬件错误,也将利用热备份的比特位使得DIMM内存芯片继续工作,直到被替换为止。
在存储器纠错方面,Memory ProteXion技术比ECC技术更加有效,同时它使用的是标准的ECC 168脚内存。它的工作方式有点类似在Windows NT的NTFS文件系统下的在线备份磁盘扇区:当操作系统在磁盘上检测到坏的磁盘扇区时,它将在另外的扇区中写下这些数据留做备用。可以认为内存保护技术就是提供在线备份数据位。在一个2路交叉存取的内存系统中,每片168线ECC内存包含72位,但其实只有70位是用于数据存取和校验的,余下的2位是备用的,如图3-13所示。
标准的ECC内存虽然可以检测出2位的数据错误,但它只能纠正一位错误。如果同时在内存上有多位出错,仅采用ECC技术的整块内存读取就失败了,此时唯有使系统临时挂起来,以尽量减少对内存容量的需求,直到这个节点被更换。如果采用内存保护技术,那么就可以立即隔离这个失效的内存,在空余的数据位重写数据。通过这种方法可以在每4对168线内存中修复4个4位连续的内存错误,是前面介绍的Chipkill内存技术保护能力的2倍。而且它还无须添加另外的硬件,无须增加额外的费用,由于独立于操作系统工作,也不会给系统增加任何额外负担。当服务器下次重启时会重新检查内存的状态,如果出现的是内存软错误(临时的),系统重启后内存的这些用于在线数据备份的数据位就重新释放了,恢复空的状态。如果是属于硬故障,这些在线备份数据位还会继续用来备份,直到更换为止。这种先进技术可以减少停机时间,使服务器持续保持高效的计算平台。这对于大型的数据库系统尤其重要。