上一篇文章(Kioxia的NVMe RAID卸载有何亮点?)介绍了NVMe RAID卸载方案内容。本文我们结合一篇学术论文,学习一下新的非对称RAID架构~
随着大数据时代的到来,全闪存阵列(All-Flash Arrays, AFAs)因其高性能、低功耗以及紧凑的外形而成为满足日益增长存储需求的理想选择。然而,SSD相较于传统的硬盘驱动器(Hard Disk Drives, HDDs)呈现出独特的挑战,包括性能和容量的显著差异,以及随时间推移的性能衰退。近期,有研究人员提出了一种新的RAID架构——Asymmetric-RAID(简称Asym-RAID),它能够优化系统性能并提高存储利用率,通过利用SSD池中固有的异质性来解决这一问题。
传统RAID解决方案(例如Linux MD)通过均匀分配写操作来实现高I/O并行性和数据可靠性。这一设计假设底层存储组件在性能和容量上是同质的。然而,即使是同一型号的SSD,也会表现出非常不同的特性和随时间退化的性能,这会导致严重的硬盘利用率不足。
-
NVMNVMe SSD在顺序读取性能上明显优于SATA SSD,这主要是因为NVMe SSD采用了更高效的PCIe接口,能够提供更高的带宽和更低的延迟。
-
传统RAID解决方案的性能受到性能最低的磁盘的限制。在本例中,SATA+NVMe RAID-5系统的性能受到单个SATA SSD性能的限制,导致整体性能无法充分利用NVMe SSD的优势。这说明传统RAID架构在面对SSD异质性时存在明显的性能瓶颈。
另外,现代固态硬盘(SSD)由于TLC/QLC闪存的不同制造设计,展现出非常不同的性能特征。这些性能差异对RAID系统的构建和性能产生了重大影响。即便是在同一型号的SSD之间,性能异构性也是一个持续存在的挑战。首先,SSD从生产之初就存在性能差异,这是由于NAND闪存单元的质量差异和固件版本的不同。其次,取决于工作负载,即使来自同一品牌的SSD,在RAID配置中也会经历不同程度的性能退化。
我们通过实验展示SSD性能随时间的变化情况。实验中使用的是一块企业级SSD,在大约90天内每天向其写入大约100TB的数据。在每天服务器空闲的时间段内,对SSD执行只读I/O工作负载(即4KiB顺序读取)的测试,以避免SSD垃圾回收(GC)和其他主机中断的影响。如下图所示,即使没有SSD垃圾回收和主机中断的影响,SSD也无法在长时间内保持一致的性能。经过90天相同的负载后,平均延迟相比初始状态增加了96%。
全闪存阵列(All-Flash Arrays, AFAs)系统已被广泛研究,相关方法大致可以分为三类:缓解尾部延迟(Tail-Latency)、提高性能和改进可靠性。这些方法大多基于磁盘组件具有相同容量和相似性能的假设,而少数专注于系统的可靠性视角。
现有的AFAs系统方法虽然在一定程度上解决了全闪存阵列面临的一些关键问题,但大多数方法假设磁盘组件具有相同的容量和相似的性能,这在现实中并不总是成立。此外,这些方法通常只关注性能或可靠性的某个方面,而未能充分考虑SSD异构性对整个系统性能的影响。
针对这些问题,Asymmetric-RAID (Asym-RAID) 提供了一种新的解决方案,它通过不对称地分配数据来充分利用每个SSD的容量,并通过差异化地导出每个数据条带的地址空间来改善性能,允许进行性能优化的数据放置。
Asymmetric-RAID的设计目的是解决现代SSD的异构性问题。它通过对数据不对称地分布来充分利用每个SSD的容量,同时数学上保证向主机导出的最大逻辑卷容量。为了避免性能瓶颈,Asym-RAID根据性能特性维护多个条带组,并差异化地将每个数据条带的地址空间导出到主机,允许进行性能优化的数据放置。
Asymmetric-RAID设计的核心理念是异构性感知。该设计通过不对称地分布数据,充分利用每个SSD的容量和性能。具体来说,更多数据将放置在容量较大的SSD上,而容量较小的SSD则存储较少的数据。如上图展示了Asym-RAID的整体架构,以一个简单的(2+1) RAID-5配置为例(即2个数据块和1个奇偶校验块),来自一个5磁盘的阵列。Asym-RAID引入了一个二维逻辑地址空间,位于用户感知逻辑地址空间和SSD逻辑地址空间之间的一个内部逻辑块层,其中每一行对应一个单独的设备。Asym-RAID随后将每个地址空间划分为一个或多个条带组,并根据设备性能差异化地导出到主机的一维逻辑地址空间。
对于传统的N磁盘RAID阵列,每个数据条带由恰好N个块组成,这些块均匀分布在N个磁盘上。为了将数据分布在超过典型RAID阵列大小的磁盘池中,一种直接的方法是物理上将磁盘池分成两个RAID组,每个组可能配置有不同的RAID设置,其中每个磁盘属于一个RAID阵列。例如,RAID-50遵循这种方法。虽然这种方法实现了良好的磁盘隔离和高效的条带到磁盘映射,但每个设备仅使用固定数量的容量。
相比之下,Asym-RAID不对称地分布数据,目标是充分利用每个SSD的容量,并最大化向主机导出的有效逻辑容量。因此,容量较大的SSD将被分配更多的数据和奇偶校验块。
-
Asymmetric-RAID通过引入二维逻辑地址空间来不对称地分布数据,以充分利用每个SSD的容量和性能。这种方法允许更大容量的SSD存储更多数据,而较小容量的SSD则存储较少的数据,从而提高整体存储利用率。
-
Asymmetric-RAID通过不对称地分布数据条带来解决磁盘池中SSD的异构性问题。它将数据条带宽度k(k < N)的数据条带中的块不对称地分配给磁盘,以最大化每个SSD的利用率。通过这种方法,Asymmetric-RAID能够根据每个SSD的容量和性能特性,实现数据的最优放置。
-
Asymmetric-RAID的数据分布方案可以被看作是一个优化问题,其中目标是最大化完整的数据条带数量,同时考虑到每个SSD的容量限制。
Asym-RAID采用了一种确定性的映射方式来将上层逻辑块地址(LBA)转换为SSD逻辑地址,通过查询条带状态表(SST),这种方式提高了容量利用率并减少了寻址所需的元数据开销,相比于动态映射机制更具优势。
-
条带状态表(SST):Asymmetric-RAID设计了一个条带状态表(SST)来维护每个条带组的映射信息,它将用户LBA转换为设备LBA。SST中的每项条目包含四个字段:start_LBA(条带组的起始LBA)、length(条带组长度)、disk_components(参与磁盘的相对顺序)以及disk_offsets(条带组在磁盘上的起始LBA)。
-
性能优化的放置:Asymmetric-RAID通过分析每个条带组的性能特征,将条带组的地址空间串联并导出到主机。结果是,用户感知的LBA0将被映射到性能最高的磁盘上,而后续的LBA将被分配到性能逐渐降低的磁盘上。例如,性能最高的条带组0由SSD 1、2和4组成,而性能较低的磁盘组件则被映射到后续的蓝色和灰色块。
Asymmetric-RAID代表了一个重要的发展方向,即针对现代SSD异质性的存储系统设计。通过更深入地理解SSD的工作原理及其随时间的变化特性,我们可以构建更加高效且可靠的存储解决方案。未来的研究将致力于进一步优化和扩展Asymmetric-RAID的功能,以应对大数据时代面临的挑战。
参考文献:Ziyang Jiao and Bryan S. Kim. 2024. Asymmetric RAID: Rethinking RAID for SSD Heterogeneity. In Proceedings of the 16th ACM Workshop on Hot Topics in Storage and File Systems (HotStorage '24). Association for Computing Machinery, New York, NY, USA, 101–107. https://doi.org/10.1145/3655038.3665952
如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!
精彩推荐: