近一个星期我将外出,为此留下两篇文章,多为51CTO做些贡献:)。本篇介绍一下HP服务器技术中的RAID技术。
说起
RAID
,人们不约而同首先、而且唯一想到的是我们听到的磁盘冗余阵列,其实这一技术早已被
HP
应用于内存之中,那就是它的热插拔
RAID
内存技术,并且在其
ProLiant
系列中的
700
子系列服务器中得到应用。
由于应用程序越来越复杂对内存要求越来越高,同时处理器的处理能力也更强,服务器内存的扩展已经是必然的事情。要满足这个要求,服务器的制造商面临的问题就是在增加内存的密度、增大内存的容量的同时,保证系统内存的可靠性。
HP
也面临同样的问题,它的解决办法是利用
3
种容错内存保护技术(
fault-tolerant memory protection technologies
):在线备份内存、热插拔镜像内存和热插拔
RAID
内存。在线备份内存适用于那些不想因为仅内存错误就停机检修设备的用户,他们希望利用固定的设备检修时间更换出现故障的内存模块。热插拔镜像内存能够为此类用户提供更高的容错能力,而且用户也无须等到设备固定的检修时间才更换出现故障的内存,因为热插拔镜像内存可以让用户在不关机的情况下对内存进行在线替换。对于那些需要大容量内存支持且长时间不间断运行的应用程序而言,
HP
热插拔
RAID
内存的可靠性最高。它可以保证内存子系统运行正常,即使是在有一个内存设备完全出现故障的情况下也是如此,它支持工业标准的
DIMM
在线替换、在线扩展和在线升级。本文仅向大家介绍
HP
的热插拔
RAID
技术。
RAID
内存的含义是工业标准的
DIMM
容错阵列(
Redundant Array
)
,结构图如图
1
。
图
1
对比下面的图
2
,我们不难看出,惠普热插拔
RAID
内存(
Hp Hot Plug RAID memory
)在概念上和
RAID 4
磁盘存储技术是相似的,
在系统架构上就更像一个硬盘,所以采用了热插拔
RAID
内存保护模式的系统就可以达到像
RAID
硬盘一样随意替换内存的效果。
但在一些关键的性能上会有所不同,两者的实现方式上也不一样。与磁盘阵列不同,惠普热插拔
RAID
内存使用的是并行的点对点的连接方式写数据,而不是通过连接多块磁盘的串行总线,这种方式的优点是数据可以同时被写入多个存储区(内存盒),不存在延时(
Mechanical delay
),消除了因为存储系统使用
RAID
技术处理而带来的写数据的瓶颈问题。而在一个磁盘冗余存储阵列中,通常情况下
RAID
控制器在写数据之前会先读现有的奇偶信息,如果有专门奇偶校验驱动器做这项工作,那么就会带来瓶颈。但惠普不是这样做的,惠普热插拔
RAID
内存运行在整个数据缓存线上(参见图
1
),所以在写数据前没有必要读现有的奇偶信息。
图
2
采用惠普热插拔
RAID
内存方式的服务器使用
5
个内存控制器来控制
5
个内存盒(
Memory cartridges
)。每个盒可以安装最多
8
个工业标准
DIMM
(参见图
3
),当内存控制器向内存中写数据的时候,它们会把数据分成
4
块分别写入
4
个内存盒,并把计算所得的奇偶信息存放在第
5
个内存盒中。利用前
4
个内存盒中的数据和第
5
个内存盒中奇偶信息,数据可以完全恢复,即使是任何
DIMM
工作故障,或任何一个内存盒被拆掉了,也可以做到不丢失数据。
可以看出,热插拔
RAID
内存克服了在线备份和镜像备份两种模式的各种缺点,为系统提供了长时间不间断运行条件,使应用程序获得更高的可靠性和稳定性。
图
3
在读操作中,每个从内存盒中读出的数据都会经过内存控制器和一个
ECC
设备进行错误检查,
另外,其余
4
个内存控制器会重新生成一个值,
RAID
内存引擎会将读出的数据和这个生成值进行比较。
RAID
内存的读写过程可参见图
4
。
图
4
数据
1
(
Data Word1
)
通过它自己的内存控制器(
MC1
)后,送到
ECC
设备进行错误检查,这个
ECC
设备使用的是新的
8-bit ECC
算法
(
由
HP
开发
)
,它可以检测到
X8
内存(
X8 memory modules
)中发生的错误,可信度很高。
ECC
用一个信号将检查结果“好”(
Good
)
或“坏”(
Bad
)
送给多路复用器(
MUX1
)。具备下列
3
条中的一条,
ECC
设备就判断数据
1
是好的:
(1)
数据正确
(2) ECC
检查出了错误但改正了
(3)
数据中有错误,但
ECC
设备检查不出来。
HP
热插拔
RAID
内存通过进一步的校验方法控制所有三个部分的错误。其余的
4
个
ECC
设备(包括保存奇偶信息的内存盒的)将它们保持的数据送给
RAID
内存控制引擎(
RAID Engine
)
,后者利用这些信息通过
RAID
算法重构数据
1
,
RAID
内存引擎将重构的数据
1
送到
MUX1
的比较设备中
(
奇偶比较
)
,在这个设备里面重构的值和
ECC
传过来的数据
1
进行比较,如果两个完全相同,
MUX
输出数据
1
。如果不同,说明数据
1
有错误,比较设备会给系统发出一个“
non-maskable interrupt
”
(NMI)
信号,中止系统运行,禁止错误数据
1
的输出。这个过程是同时在重复进行的,因为同一时间内还会从其它的存储盒中读数据,参见图
5
。
HP
热插拔
RAID
内存方式的这个特性保证了采用这种方式时数据的可靠性非常高。
HP
将对热插拔
RAID
内存进行改进,采用回写技术(
scrubbing
)定位软错误。
图
5
在
HP
的热插拔技术中还应用到两个小技术,它们就是:
回写(
Scrubbing
)技术和
热插拔容量(
Hot-Plug Capabilities
)技术,下面分别予以简单介绍。
Ÿ
回写(
Scrubbing
)技术
HP
热插拔
RAID
内存提供了一个回写硬件方式,它可以确认
ECC
或
RAID
检查出来的软错误。惠普技术尝试定位在读内存时检查出来的所有软错误,方法是把改正后的正确的数据写回内存中去。但此方法不适用于硬错误。回写技术可以阻止软错误的累积,避免发生更严重的错误。它降低了
ECC
的工作量,提高了系统的性能。一些传统的系统采用的是软件回写,
HP
热插拔
RAID
内存使用硬件完成这个工作。
HP
热插拔
RAID
内存会对错误生成错误日志,错误极限由软件设定。当记录的错误值达到错误极限的时候,软件会自动作出反应。例如当超过错误极限的时候故障灯会自动点亮,这就是由软件控制的。
Ÿ
热插拔容量
Hot-Plug Capabilities
惠普热插拔
RAID
内存还可以允许用户在不关闭服务器电源的情况下在线更换、在线扩展以及在线升级
DIMM
,这就是
HP
的热插拔容量(
Hot-Plug Capabilities
)技术。
在线更换指在系统运行的情况下更换出现故障的
DIMM
。惠普热插拔
RAID
内存不需要操作系统的支持,服务器在购买的时候就具有支持在线更换的能力。在线扩展指用户在空的插槽上插入
DIMM
以扩展系统容量,在线升级是指用户用容量更大的
DIMM
替代旧的较小容量的
DIMM
。在线扩展和在线升级都可以使用户获得更大的系统内存容量。在线扩展和在线升级要求操作系统的支持,系统要可以认出新增的内存。
当在线内存操作完成后,如果工作在热插拔
RAID
内存模式下,那么系统会自动在所有的内存盒上重新放置数据(
rebuild
)。虽然这样做会暂时降低内存的工作性能(重新放置
4 GB
的数据花费时间少于
30
秒),但是只需要花费很少的钱就可以增加容错能力,并可避免系统检修期间带来的经济损失。
本文出自 “王达博客” 博客,转载请与作者联系!