内存保护(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 位,但其实只有 700 位是用于数据存取和校验的,余下的 2 位是备用的。
因为 IBM 的内存镜像技术对内存错误的纠正是通过内存控制器来完成的,所以不会增 加操作系统的工作量,也不需要操作系统来提供支持,完全与操作系统无关。另因为只需采 用标准的 ECC 168 线内存,所以也无需另外购买定制的内存,也就无需为这种保护增加另 外的开支。
标准的 ECC 内存虽然可以检测出 2 位的数据错误,但它只能纠正一位错误。如果同时在内存上有多位出错,仅采用 ECC技术的整块内存读取就失败了,此时唯有使系统临时挂起来,以尽量减少内存容量的需求,直到这个节点被更换。如果采用内存保护技术,那么就可以立即隔离这个失效的内存,重写数据在空余的数据位。通过这种方法可以在每 4 对 168 线内存中修复 4 个 4 位连续的内存错误,是前面介绍的 Chipkill 内存技术保护能力的两倍。 而且它还还无需添加另外的硬件、无需增加额外的费用,独立操作系统工作,也不会给系统 增加任何额外负担。当服务器下次重启就会重新检查内存的状态,如果是内存软错误(临时 的),系统重启后内存的这些用于在线数据备份的数据位就重新释放了,恢复空的状态。如果是属于硬故障,这些在线备份数据位还会继续用来备份,直到更换为止。这种先进技术可 以使减少停机时间, 使服务器持续保持高效的计算平台。 这对于大型的数据库系统中尤其重要。