解析RAID_FC:将光纤通道和RAID相融合

间隙填充
正睿科技  发布时间:2007-06-10 13:50:51  浏览数:2984

    【IT168 专稿】 数据储存结构中的I/O带宽问题一直是RAID系统中的瓶颈,而光纤通道恰好可以为服务器存储设备之间提供一条高速的数据传输通道,将光纤通道和RAID技术融合,提供一个基于全光纤通道的RAID系统,可以在速度、容量、可靠性、灵活性等方面满足飞速发展的网络存储服务的要求,所以本文就基于这个思想来设计一个高性能的企业级磁盘系统,该系统应该具有如下的技术特点: 

1. 主机接口和磁盘接口均采用光纤通道;
2. 采用大缓存,多体交叉、多访存总线结构;
3. 采用多CPU结构,分布处理主机和磁盘的请求,提高响应的速度;
4. 总体上采用可扩展的结构,在各部分带宽平衡的条件下,动态扩展主机侧的通道接口数和磁盘侧的磁盘数量;
5. 充分采用冗余设计技术和热插拔技术,提高系统可靠性;
6. 实现快速的重建算法和改进小写性能。

一、硬件结构设计

    RAID_FC的系统结构框图如下:

 

图1:RAID_FC控制器结构图

    处理器: 在RAID_FC中,面向主机和磁盘侧的接口都采用光纤通道,内部使用大容量Cache,这样处理器就需要处理来自主机接口的高速数据请求、实现各级RAID Level的结构、管理内部Cache、完成校验计算、处理多个磁盘成员数据的读写操作和故障状态下的重建工作,负载很重。为支持光纤通道的大数据量传输,为系统性能提供较大的扩展空间,所以采用双处理器设计,分别负责面向主机的操作和面向磁盘的操作,称为SPH(Storage Processor for Host)和SPD(Storage Processor for Disk)。为提高处理器间的通信速度,两处理器间中断和某些关键信息的传递通过硬件连线直接完成,数据传递通过共享缓存空间来完成。

     这样做的优点是:SPH、SPD分别负责面向主机和面向设备的操作,降低了各自的负载,并且每个处理器上运行自己专门的阵列管理软件,可以针对各自的操作特点进行优化;处理器间的信号交互通过硬件直线连接,通信速度快;双处理器通过共享内存交换数据,提高了对共享内存的管理和使用效率,可以高速完成数据的交互。

    主机接口部件: 主机接口采用两个光纤通道,单根光纤通道就提供100MB/s的带宽,可以接一个主机或两个主机或多口的光纤交换机,连接到一个主机时,两条通道互为备份,也可以同时进行数据传输。

    磁盘接口部件: 存储接口面向FC磁盘成员,使用光纤通道仲裁环路结构(FC_AL),系统提供了4个光纤接口形成两对双光纤环路,每个环路包括一个主环路和一个冗余环路形成Dual Loop。

     存储接口使用光纤环路主要是基于如下考虑:首先当然是光纤的高带宽,且支持点到多点的传输能力;FC_AL可以支持127个设备有较好的扩展性;每个磁盘可以同时维护两条到控制器的通路,实现了对关键路径的冗余保护;FC_AL使端口位置有端口旁路机制,使热交换的实现更加简单;光纤通道接口提供了一些新的SCSI命令,简化了“读-修正-写”的过程,使RAID 5的实现更简单;FC_AL支持绝对寻址,容许多个设备故障、且兼容并行的SCSI命令,提高了设备管理的灵活性。

     Cache: 为提高数据的缓存能力,加快对主机访问的响应时间,系统中设置一个GB级的大容量数据缓存,由处理器SPH和SPD共享。控制器提供给主机的数据全部存放在Cache中。为充分发挥Cache的作用,Cache设计支持多体交叉并行访问和突发数据传输,在访问能力上与双处理器的处理能力相匹配。

     内部总线设计: 阵列所有的数据流都要进过内部存储总线,是数据传输的关键通道。内部存储总线需要支持外部设备的高数据传输速率和对大容量Cache的访问。设计采用两条相同的高速总线,形成关键的双备份。控制器的各部件同时接到两条总线上,确保到关键路径的双通路。 
 
    内部存储总线的速率应和处理器的总线速率相匹配,总线位数和所提供的带宽应与双处理器带宽匹配,保证系统的关键部件不够成瓶颈。根据与PCI总线的接口,可以确定内部总线宽度64位,工作频率200MHz以上。内部存储总线位为控制器专用总线,带宽设计高,可以为系统扩展提供较大空间。

    磁盘成员的组织: 系统中的硬盘选用光纤接口、大容量、支持热插拔硬盘。每8个磁盘成员形成一个物理光纤双环路,5个双环路级联,形成一个完整的 FC_AL仲裁环路。系统支持两个FC_AL。这样每个环路支持40个磁盘成员,整个系统支持80个磁盘成员。系统中磁盘成员的组织结构如图2所示。

图2:磁盘组织连接图

二、阵列管理软件

    在RA ID _FC中,两个处理器分别负责面向主机和面向磁盘的工作,其中SPH负责完成如下功能,包括如图3所示一些功能模块:

? 接收主机的数据请求
? 完成数据的分割、校验计算、数据分布,实现各RAID Level
? 管理控制器Cache
? 管理和监测系统中的设备状态
? 进行各种故障处理和完成数据的重构访问
? 与处理器SPD进行通信

 

图3:SPH上的阵列管理软件框图

     其中主机接口模块用来接收主机的命令和数据、向主机返回数据和各种状态信息。串口通信模块提供了系统的一种配置手段,与配置模块一起完成系统的配置。处理器间通信模块用于处理双处理器之间的交互信号。空间管理模块负责系统的磁盘空间和Cache空间的管理,包括完成数据划分、磁盘和Cache分配、目录管理等功能。系统管理模块用于对整个系统的状态进行监测,向主机提供系统的各种信息。数据重构模块完成故障模式下对磁盘的读访问请求。

    处理器SPD根据SPH的要求负责完成所有面向磁盘的操作、设备的底层驱动、资源检测和动态管理,维护一个局部的系统配置信息,当磁盘成员故障时可以完成数据的重建工作。SPD上运行的阵列管理软件功能模块如图4所示。

图4:SPD上的阵列管理软件框图

    处理器通信模块完成与SPH的信号交换,执行相应的中断处理功能。SPD负责面向底层设备的驱动和设备管理信息的收集,并向SPH报告,根据SPH的命令执行处理操作,完成各种接口驱动和热插拔的管理。数据重建模块用于当部分磁盘替换后数据的重建工作。

三、RAID_FC中的系统配置

     系统配置是系统工作的基础和前提。系统配置应完成磁盘成员的组织、划定分区,选择适当的Stripe单元,设置相应的RAID Level和Cache的各种使用参数等。

     RA ID _FC中的磁盘成员按层次组织。首先多个磁盘成员形成一个统一的虚拟盘,赋予一个逻辑单元号(LUN),用户可以将其分成大小不同的几个分区(Partition),面向用户使用(如图5所示)。这样,系统就根据用户对LUN和RAID Level的配置,确定Stripe中的磁盘成员关系。当动态增加或删除磁盘的时候,可能会使系统磁盘的Stripe分组顺序打乱,必要时可以进行重组。

图5:RAID_F C的逻辑访问层次

     根据磁盘成员的组织层次,用户可以在配置阶段选择LUN中包含的磁盘的数量、容量和位置以及逻辑单元划分的Partition数量。在 FC_ AL环路上的设备包括所有磁盘和到控制器的接口。FC _AL根据每个设备的环路地址赋予不同的访问级别,为提高对控制器的响应速度,配置时可将控制器接口的地址定义为最低,使其具有环路中的最高优先级。系统可以配置的参数包括:

? 系统包含的逻辑单元数(LUN)
? 每个LUN 包含的磁盘数,及磁盘的位置信息
? 每个LUN的RAID level
? 每个LUN的Stripe Unit单元的大小
? Cache块的大小
? 预取参数(预取缓存区最大空间Max Prefetch Size)

    这些参数按照系统规定的格式形成配置文件保存在工作盘上,初始化时完成系统的配置。


四、小结

     本文从硬件结构、阵列管理软件以及系统的配置层次入手,自行设计了高性能RAID的实现方案RAID_FC,完成了RAID_FC的总体设计。

    RAID_FC是一种基于光纤通道的RAID系统方案,它为服务器存储设备之间提供了一条高速数据传输通道,集中解决了数据存储结构中的I/O带宽问题。它在设计上有不少独到的地方:采用双处理器SPH、SPD分别负责面向主机和面向设备,降低各自负载;主机接口通道和磁盘接头通道均采用光纤通道,除了提供高带宽外,还可以为系统带来更好的灵活性、扩展性和稳定性。阵列管理软件的设计也考虑到了硬件的独特性,针对SPH和SPD 分别设计了各自的模块,充分发挥了硬件的功能。

    基于以上分析,我们有理由相信RAID_FC能满足企业级的需要,是一种高性能、有前途的RAID设计解决方案。