存储 频道

大致讲述热插拔RAID内存

  【IT168 技术】RAID经过长时间的发展,很多用户都很了解热插拔RAID内存了,这里我发表一下个人理解,和大家讨论讨论。HP热插拔RAID内存可以为长时间不间断运行的应用程序提供极高的实用性、灵活性和容错能力。即使是内存设备彻底地发生故障,内存仍然可以正常工作。

  我们不难看出,HP热插拔RAID内存(HP Hot Plug RAID Memory)技术在概念上和RAID 4磁盘存储技术是相似的,在系统架构上就更像一个硬盘,所以采用了热插拔RAID内存保护模式的系统可以达到像RAID硬盘一样随意替换内存的效果。但在一些关键的性能上会有所不同,两者的实现方式也不一样。

  与磁盘阵列不同,HP热插拔RAID内存使用并行的点对点的连接方式写数据,而不是通过连接多块磁盘的串行总线,这种方式的优点是数据可以同时被写入多个存储区(内存盒),不存在延时(Mechanical delay),消除了因存储系统使用RAID技术而带来的写数据的瓶颈问题。

  而在一个磁盘冗余存储阵列中,通常情况下RAID控制器在写数据之前会先读现有的奇偶信息,如果有专门的奇偶校验驱动器做这项工作,那么就会带来瓶颈。但HP不是这样做的,HP热插拔RAID内存运行在整个数据缓存线上,所以在写数据前没有必要读现有的奇偶信息。

  采用HP热插拔RAID内存方式的服务器使用5个内存控制器来控制5个内存盒(Memory cartridges)。每个盒中可以安装最多8个工业标准DIMM(参见图3-27),当内存控制器向内存中写数据的时候,它们会把数据分成4块分别写入4个内存盒,并把计算所得的奇偶信息存放在第5个内存盒中。利用前4个内存盒中的数据和第5个内存盒中的奇偶信息,数据可以完全恢复,即使是任何 DIMM出现故障,或任何一个内存盒被拆掉了,也可以做到不丢失数据。

  在读操作中,对每个从内存盒中读出的数据都会经过内存控制器和一个ECC设备进行错误检查。另外,其余4个内存控制器会重新生成一个值,RAID内存引擎会将读出的数据和这个生成值进行比较。RAID内存的读写过程如图3-28所示。

  数据通过它自己的内存控制器(MC1)后,被送到ECC设备进行错误检查。这个ECC设备使用的是新的8位ECC算法(由HP开发),它可以检测到X8内存(X8 memory modules)中发生的错误,可信度很高。ECC用一个信号将检查结果"好"(Good)或"坏"(Bad)送给多路复用器(MUX1)。

  符合下列3条中的一条,ECC设备就判断数据1是好的。

  ◆数据正确。

  ◆ECC检查出了错误但改正了。

  ◆数据中有错误,但ECC设备检查不出来。

  HP 热插拔RAID内存通过进一步的校验方法控制所有3个部分的错误,其余的4个ECC 设备(包括保存奇偶信息的内存盒)将它们保存的数据送给RAID内存控制引擎(RAID Engine)。控制引擎利用这些信息通过RAID算法重构数据1,然后将重构的数据1送到MUX1的比较设备中(奇偶比较),在这个设备里重构的值和 ECC传过来的数据1进行比较。如果两个完全相同,MUX输出数据1;如果不同,说明数据1有错误,比较设备会给系统发出一个"non-maskable interrupt"(NMI)信号,中止系统运行,禁止错误数据1的输出。

  以上这个过程是重复进行的,因为在同一时间内还会从其他的存储盒中读数据。HP热插拔RAID内存方式的这个特性保证了采用这种方式时数据的高可靠性。

0
相关文章