带你认识存储系统的心脏:存储处理器
存储系统的控制器,类似于服务器内部的PCI RAID控制器,又有较大的差别,这里,我们来谈一谈存储系统控制器,使读者对存储设备有较全面的了解。
嵌入式架构
存储系统控制器和PCI RAID卡具有相同的逻辑构成,有I/O处理器、高速缓存、硬盘接口控制器、高速总线、储存嵌入式软件的闪存、内外连接接口等。
图1、 采用双段PCI-X总线的光纤通道磁盘阵列控制器 本文引用地址:http://www.amcfsurvey.com/article/201706/353481.htm |
硬件构成上,和PCI RAID卡不同,存储控制器还有用于连接主机的磁盘控制器,以及更多的协同处理和管理的功能芯片。物理上,为了能够实现各类芯片的布局,存储控制器通常分为控制器板卡、I/O接口卡、管理模块卡等几大部分。
任何硬件功能的发挥,离不开软件。存储控制器软件实现如下三个功能:管理和控制磁盘集合(阵列)、传送I/O操作进/出磁盘、为数据冗余计算校验值或使用校验值恢复丢失的数据。在软件构成上包括3个部分:阵列控制软件,板支持包及接口驱动软件,操作系统及设备接口。
图2、控制器软件示意图 |
存储控制器软件的各模块功能如下:
系统初始化模块:负责系统初始阶段的系统自举、设备自检、参数设定、资源分配等。
命令分解模块:负责服务器命令的分解、应答等。
数据分块重组模块:负责服务器数据的分块和底层数据的重组。
缓存管理:负责命令及数据缓存的分配、聚散、释放等。
I/O调度模块:负责上层与底层I/O命令的并行、流水调度等。
校验信息计算模块:负责校验信息的计算。
数据重构模块:负责降级模式下的数据提供。
数据恢复模块:负责磁盘出错时的数据自动恢复。
RCR模块:实现RAID Cache RAID功能,提供阵列性能。
仅仅控制器是远远不够的,还要辅以下列系统设计方法,方可构建一个高可用的存储系统:
采用模块化技术,研究开发磁盘阵列的磁盘子系统、控制器、电源、结构件、连接件等模块,并在存储设备内部采用无电缆连接技术,提高系统的集成度和可靠度。
采用全冗余热拔插技术,实现存储设备模块内主要工作子系统,例如散热子系统、电源子系统、控制器子系统的容错能力,提高可用性。
采用结构一体化设计技术,为存储设备和整个海量存储系统提供足够的散热能力,提高系统的稳定性和可靠性;合理的结构设计,将保证电源、风扇、硬盘、控制器模块的无电缆连接,并保证冗余热拔插功能的实现。
存储处理器特性要求
高性能
与一般的PCI RAID卡相比,存储系统的控制器控制软件除了实现基本的RAID功能,支持RAID 0、1、0+1、3、5、30、50等级别外,还通过以下技术提高存储设备的传输性能:
(1)实现存储设备与系统的均衡。在分析磁盘阵列的随机Petri网模型和计算硬件组成环节运行时间的基础上,利用Petri网模型计算主要环节的利用率,选择合适的通信机制,利用运行时间的计算结果合理地确定硬件配置,来解决主从通道与磁盘通道的速度匹配、各级缓冲存储器的容量匹配和通信方式的选择等影响性能的关键问题,使系统结构趋于合理,达到负载均衡的目的。
(2)实现串内多线程操作。通过选择恰当的磁盘控制器,实现同一物理链路多个磁盘驱动器的并发操作,实现串内磁盘驱动器的并发操作,在时间上重迭地处理数据的存取,从而达到提高传输性能的目的。
(3)实现底层设备的I/O合并操作。利用底层硬件未曾利用的数据聚散(Scatter/Gather)功能,将所有分解到某个磁盘驱动器上的子命令,按其操作属性进行合并,并将逻辑地址离散的数据调整为支持一次I/O操作的格式,然后用一次I/O代替多次I/O,达到降低服务时间的目的。
(4)利用纵横LRU替换算法实现纵横LRU替换。对于主机的大块数据访问,当第i块数据在第j个磁盘驱动器上时,第i+1块数据肯定在第(j+1)mod N个磁盘驱动器上,如果第i块数据在第j组缓存失效,那么第i+1块数据有可能在第(j+1)mod N组缓存也发生失效,因此在数据读写过程考虑数据块在磁盘驱动器上的横向相关性,可以通过纵横LRU替换算法,将纵向预腾空(即同一组内的预腾空)发展成纵横预腾空(即多组同时替换)。
智能化
控制器提供了存储系统一定的在线操作智能化能力,减少由存储模块自身原因引起的系统停机,提高存储系统内数据的高可用能力,这些特性包含:
多种读写方式
RAID阵列迁移、级别迁移、容量在线扩展、容量在线扩容、磁盘易位
面向单RAID阵列的读写应用优化
系统管理和监控
控制器除了提高磁盘阵列在线操作智能化能力的同时,还实现I/O读写的智能化。I/O负载可以表示为一个三元组(地址、大小、读/写),因而存取模式可以对应一个三维空间,每一维对应三元组的一个元素随时间的变化值。自适应磁盘阵列通过获取不同I/O负载和不同磁盘数据分布的特征,调节磁盘阵列参数和调度策略,以获取系统的最大性能。
高可用
支持双控制器和镜像缓存,是存储控制器的独有特性,它和冗余热拔插、模块化无电缆连接技术一起,可满足海量存储系统的高可用性要求。双控制器系统中,每个控制器拥有自己的缓存,可独立工作,也可通过系统的通讯背板相互监测状态,实现故障切换、甚至负载共享。磁盘阵列还可实现与服务器之间的路径冗余,即当主路径失败时,系统可以使用另一条I/O路径,在服务器和存储系统间传输数据,该功能可以保证阵列与两台服务器,以及双机高可用软件,构成一个完全排除单点故障的双机高可用集群系统。
图3、双控磁盘阵列通道连接示意图 |
高扩展
存储控制器是后台计算系统的I/O连接桥梁,在控制器基板和总线上,通过植入各种不同工业标准的I/O控制器,例如SCSI、FC、iSCSI、ATA、SATA、SAS控制器,可以方便的构成不同种类的磁盘阵列设备,选择不同种类和数量的控制器,可以保证存储系统的主机连接和硬盘连接的高扩展特性。
在其控制器上采用了FC-AL技术,理论上一个FC-AL通道可以最大连接127个设备,而且,如果磁盘阵列提供两个FC-AL接口,即实现了通道扩展,可以把一组硬盘连接在一个双光纤环路上,实现同一组光纤硬盘的全双工操作,两个双光纤环路间通过并行I/O技术和全双工操作,实际I/O吞吐率可以达到320MB/s以上。
图4 、双光纤线环路连接示意图 |
后记:
随着信息化应用规模的急剧扩大,存储系统所面对的数据量和I/O操作量日渐巨大,并且网络化存储需求越来越迫切,这需要从总线、处理器、I/O控制器角度提高存储系统的性能,大容量缓存、二级缓存、多路处理器、新型总线等,都是存储系统控制器性能提升的方向。在由计算器(服务器)、存储连接设备和存储系统构成的后台应用系统中,从存储系统上实现更多的存储管理功能,例如远程镜像、虚拟存储、数据快照、数据备份、缓存服务,是提高后台系统数据管理能力的捷径,更是存储控制器的一个发展方向。
评论