一种可堆叠存储阵列及其分布式存储管理
第一章 绪论
1.1 选题背景和意义
大数据时代,信息海量增长,数据的尺寸越来越大,对数据的处理和存储管理也越来越受到重视,尤其是应用在航天、卫星遥测等方面的信息采集和存储对存储性能的要求不断提高。随着互联网技术的日趋成熟,互联网+将带动各行各业快速发展,以电子商务为代表的互联网运营模式已经被广大用户接受,人们更多地创造数据而不是被动地接受信息[1]。百度、阿里巴巴和腾讯这三大国内互联网巨头正在加快自己的数据中心建设,以便更好地存储和管理 PB 乃至 ZB 级数据。如何高速可靠地处理和存储数据是人们一直追求的目标,面对日益增长的数据,传统的存储模式已不再适用,这主要表现在两方面:一方面高性能设备的价格昂贵;另一方面硬件的发展速度跟不上数据的产生速度。新的存储设备应具有以下特点:一、速率高,并行接口不利于提升访问速率,并行接口总线之间的干扰会因提高时钟频率越发严重[2]。目前串行接口已经成为主流方式,SATA、USB 等串行接口设备应用广泛。串行接口提升传输速率有明显的优势,例如SATA1.0 速率是 1.5Gbit/s,而 SATA2.0 和 SATA3.0 的传输速率分别提高到 3Gbit/s 和6Gbit/s[3]。二、容量大,由于技术和工艺水平的限制,单一存储设备的容量已经很难突破,将多个存储介质组织在一起构成存储阵列,对外形成一个大的存储设备可以成倍地提高系统的存储容量[4]。三、稳定可靠,大量数据的传输需要保证其传输的正确性,传输过程中需要有相应的校验机制,确保接收设备接收到的数据准确无误。对已经存入设备的数据,需要在某个存储设备损坏时,可以有效恢复其中数据。但是存储介质依靠提升时钟频率来提速的空间已经很有限[5],形成设备接口速度远远低于主机带宽的困境,有必要设计一种新的体系结构来支持设备带宽的汇聚和卸载。
........
1.2 国内外研究现状
1956 年 9 月,IBM 推出首个硬盘,打开了硬盘存储的时代。1968 年,IBM 提出的“温彻斯特”技术,奠定了硬盘发展的方向,并于 1973 年设计出使用该技术的第一块硬盘,容量为 30MB[6]。之后硬盘的发展越来越快,转速最高已达 15000r/min,容量也从原来的 MB 级别发展到现在的 TB 级别。 现存的硬盘主要有两种:采用磁介质的机械硬盘(HDD)和采用半导体作为存储介质的固态硬盘(SSD)[7]。机械硬盘在读取速度、抗震能力、功耗、运行声音以及发热方面不如固态硬盘,但是在容量、价格、写入次数和数据恢复方面要比固态硬盘有较大优势。两者各有优劣,但主要考虑到价格和容量两个因素,市场上的多数电脑依然采用机械硬盘作为存储设备。硬盘在逻辑上划分为磁道(Header)、柱面(Cylinder)和扇区(Sector),简称 CHS,硬盘上的数据就是按照这种方式组织和管理的。每个盘片划分为多个同心圆,成为不同的磁道,从外向里依次编号为 0、1、2……所有盘片相同编号的磁道构成一个圆柱,称为柱面,柱面数即为磁道数[7]。将每个磁道等分为若干个弧段,形成多个扇区,用来存放数据,每个扇区的大小为 512B,硬盘扇区结构如图 1-2 所示。
...........
第二章 可堆叠存储介质
本章提出一种新的可堆叠存储设计思路,抽象出可堆叠的本质,介绍了可堆叠存储介质,分析和测试了一种可堆叠控制芯片 PM(端口倍增器)的工作原理和读写访问。
2.1 可堆叠原理
2.1.1 自主访问的存储设备
存储系统中,主机访问存储设备需要靠控制器来完成。并行接口存储设备不带有控制器,控制器在主机端,主机访问这种设备时,通过控制器发送读写命令和数据,依赖于总线传给设备,设备直接接收命令并执行读写操作。这种设备不能自己生成命令,是一种非自主访问的存储设备。图 2-1 所示为非自主访问的存储结构。 串行接口存储设备带有控制器,主机访问这种设备时,将命令和数据封装成消息,通过消息通道传给设备控制器,控制器解析消息生成操作时序,读写访问存储设备[29],因此串行接口存储设备是自主访问的存储设备。图 2-2 所示为自主访问的存储结构。 以 ATA 和 SATA 为例,ATA 是并行总线接口,主机要读写 ATA 硬盘时,由控制器发送命令和数据,通过 ATA 总线直接读写硬盘。SATA 是串行接口,主机要访问 SATA硬盘时,将封装有命令和数据的消息通过消息通道发送给 SATA 硬盘控制器,控制器解析消息,提取命令和数据,生成操作时序读写硬盘[30]。 自主访问的存储设备和主机之间通过消息访问,更容易通过提高时钟频率来提高传输速度,也不会造成总线间干扰的问题[31]。但是,自主访问的存储设备不带有设备地址,多个设备堆叠在一起时无法区分,因此不具有可堆叠性。
.........
2.2 可堆叠控制芯片 PM
Marvell 公司推出的多种端口倍增芯片都是可堆叠控制芯片,以其中两种为例:一种是通过 PCIe 接口与主机相连,扩展 4 个 SATA 端口的 88SE9235 芯片;一种是通过SATA 接口与主机相连,扩展 5 个 SATA 端口的 88SM9705 芯片。 88SE9235 提供一个 PCIe x2 接口和 4 个 SATA 接口,支持 PCIe 2.0 和 SATA 3.0,PCIe单通道传输速率可以达到 5Gbps,并向下兼容 PCIe1.0 协议;SATA 接口速率可以达到最高 6Gbps,并向下兼容 SATA 2.0 和 SATA 1.0 协议[33]。88SE9235 提供了一个两通道的PCIe 接口和 SATA 控制器功能,可以将 PCIe 通道传输的数据卸载到 4 个 SATA 通道,实现单一硬盘接口的 4 倍扩容。 88SM9705 提供 1 个 SATA 主机端口和 5 个 SATA 设备端口,最高支持 SATA 3.0 协议[34]。88SM9705 是一个 SATA 端口倍增器,能够识别 SATA 协议的 FIS,允许一个 SATA接口向下连接最多 5 个 SATA 设备,从而实现单一硬盘接口的 5 倍扩容。88SM9705 的典型配置方式如图 2-4 所示。所有设备端和主机端都可以通过主机端口或 UART 串口与主机建立通信,实现 SATA 自测。
.............
第三章 可堆叠系统 ....... 27
3.1 系统架构 ........ 27
3.2 消息交换模块....... 30
3.3 消息交换结构 MES .... 31
3.4 阵列管理模块....... 34
3.5 可堆叠存储阵列 .......... 39
3.6 分布式存储管理.......... 40
3.7 FPGA 芯片选型 .... 41
3.8 本章小结........ 43
第四章 硬件电路与结构 ...... 45
4.1 硬件系统设计....... 45
4.2 电源电路设计....... 46
4.3 时钟电路设计....... 48
4.4 系统复位电路....... 50
4.5 外围电路及其接口设计 ..... 50
4.6 结构设计 ........ 58
4.7 本章小结 ........ 61
第五章 总结与展望 ....... 63
5.1 总结 ......... 63
5.2 展望 ......... 64
第四章 硬件电路与结构
针对本论文提出的可堆叠存储架构,搭建了硬件环境,设计了硬件系统,并具体设计了电源、时钟、复位以及必要的外围设备和接口的模块电路。完成了系统结构设计,便于实现工业化。
4.1 硬件系统设计
系统采用 Xilinx XC7K325T-2FFG900 作为 FPGA 芯片,SATA 端口倍增器 88SM9705作为可堆叠控制芯片 PM,搭建了可堆叠存储阵列的硬件平台 CCS2040,具体如下:利用 FPGA 的 16 个高速串行收发器 GTX 连接 10 个 PM,每个 PM 连接 5 个 SATA 硬盘,用于系统扩容。10 个 PM 共同构成 10 个通道,FPGA 同时访问 10 个 PM,理论上最高可以达到 60Gbit/s 的带宽汇聚和卸载能力,在扩容的同时提速。系统可以连接最多 50个硬盘,形成可堆叠的硬盘阵列。系统还利用 Freescale 的 T2080 开发板作为 CPU 板,充分利用其上的 4 个 10Gbit 光纤接口实现 40Gbit 的高带宽网络接入;系统还保留了两个 12G 的 SAS 接口,实现非网络环境下的数据通信。
............
总结
针对目前存储技术扩容和提速不能同步实现的问题,本论文提出了一种可堆叠存储介质的概念,并搭建了可堆叠存储阵列,是一个解决方案。系统的整体解决方案包括T2080 上移植操作系统,通过文件系统管理可堆叠存储阵列;文件系统底层驱动程序实现块 I/O 到超扇区 I/O 的映射,并按照新定义的 MES 结构封装消息;MES 中定义用于确定阵列中存储设备地址的 GSC 参数字段,使自主访问的存储设备具有可堆叠性;消息交换模块将块 I/O 请求交换到 FPGA,由 FPGA 的阵列管理模块解析消息,并按照 GSC方式将数据拆分并校验后分配到每个通道,并行驱动各通道设备的读写访问;消息交换模块是基于 PCIe x4 的物理层接口来交换消息的。系统可以通过 T2080 的 4 个 10Gbit光纤接口接入网络,在 T2080 上部署 NAS/SAN,实现网络文件系统结构,或通过 2 个12Gbps 的 SAS 接口接入带有接口的主机。系统利用 FPGA 的并行处理和可堆叠控制芯片 PM 的端口倍增功能实现扩容同步提速的目标。 至此,论文完成了以下工作:
1. 提出可堆叠存储的设计思路,介绍了可堆叠存储介质和可堆叠存储阵列,详细分析了可堆叠控制芯片 PM 的工作原理,,在 FPGA 中建立了 PM 驱动模块,并通过两种方法调试 PM 并完成读写测试。
2. 可堆叠存储阵列按照群组方式组织,设置群组参数 GSC 作为阵列参数,定义了一种新的消息帧结构 MES 传递 GSC 参数,访问存储阵列。
3. 提出扇区堆和超扇区的概念,并详细给出它们的实施方案,初始化时可以通过配置参数设置超扇区的大小。超扇区作为访问可堆叠存储阵列的最小单元,与块 I/O 之间的映射关系使主机可以同时访问存储阵列一个组的多个通道,实现系统的扩容和提速。
4. 设计了可堆叠存储阵列的消息交换模块、群组控制器和通道管理模块,划分了各模块的功能,具体设计各模块结构。
.........
参考文献(略)
本文编号:84431
本文链接:https://www.wllwen.com/wenshubaike/lwfw/84431.html