EN
提示

​存储性能飙升!揭秘杉岩数据新一代高性能存储引擎

发布于2023-03-29

  • 分布式存储

近年来,在存储领域,存储介质得到了飞速的发展,SSD的价格在持续下降,但SSD与HDD在每GB价格上仍存在较大的差距。因此由HDD作为数据盘、SSD作为缓存盘的混合存储模式,仍然是非结构化数据存储的主流方案。

随着软件定义存储(SDS)技术的不断发展,在混合存储下,如何充分发挥存储介质的极限性能,同时减少服务器的CPU/内存消耗,成为业内竞逐的方向。

混合存储部署下的两种缓存加速方式及挑战

在混合存储场景,业界较为常用的缓存加速方式有分层结构的存储池加速和本地磁盘缓存加速,如开源分布式存储Ceph架构下的Cache Tier模式和内核态Bcache模式。但在使用过程中,Cache Tier模式IO路径过长,在有些IO场景下甚至还会导致性能下降,而内核态Bcache模式对内核版本有着强依赖,尤其在一些国产化平台下兼容性较差。

Cache Tier模式

Cache Tier的初衷是通过分层架构(三副本SSD存储池+EC HDD存储池)规避EC小块随机读写性能差的短板,同时充分利用EC得盘率高的优点。在实现上由多块SSD加速盘组成SSD存储池,为HDD数据盘组成的存储池进行缓存加速。

但在实际使用中,该架构会导致数据在两个资源池之间迁移的代价较大。当访问的数据在SSD缓存池不命中的情况下,需要再从HDD池访问,IO路径过长导致性能抖动较大。

所以只有当业务模型是访问比较集中的热点数据,或者是SSD缓存池足够大,能够保证大多数的读写请求都能够命中Cache,才能避免性能抖动。而实际大部分场景的热点数据是在不断变化的,这使得Cache Tier在实际场景中的性能较差,IOPS会急剧波动。

内核态Bcache模式

内核态Bcache模式,是由SSD加速盘给多块HDD后备盘进行缓存加速,采用B+树管理SSD加速盘和HDD后备盘的映射关系。在IO处理上,小块IO直接写入SSD,然后通过后台线程下刷到HDD后备盘,大块IO则直接透写到HDD盘,实现了高性能的Cache缓存机制。

但同时内核态Bcache对内核版本有着强依赖,导致在信创等国产化平台下兼容性较差,而适配不同系统的内核态Cache工作量较大,严重阻碍了该架构在国产化平台的应用。

此外,为了减少频繁回刷元数据导致的性能抖动,Bcache需要定期flush持久化元数据,但这和分布式存储需要及时持久化以保证原子性的需求冲突。所以为了适配ceph架构,bache需要在每个IO后都调用flush去持久化元数据,导致系统开销较大。

性能飙升!杉岩数据新一代高性能存储引擎AgileStore

为了在NVME SSD+ HDD的混合存储场景下,更好地兼容不同的版本内核,同时为了减少频繁持久化Cache元数据带来的系统调用开销,杉岩数据基于自有专利技术,设计研发了用户态缓存ASCache。

同时,通过将用户态ASCache和Store进行深入融合,大大提高性能表现,降低系统开销。该技术具有如下多方面优势:

减少元数据落盘开销

用户态ASCache的元数据和Store的元数据进行合并处理,减少元数据IO落盘次数,加速元数据写入性能。

提高元数据并发能力

在store层,对元数据进行多逻辑分区管理,支持不同逻辑分区上的元数据进行并发读写,结合NVME SSD的高并发特性,能够进一步提升元数据的并发处理能力。

减少线程开销

将Store层的IO线程和用户态ASCache的工作线程进行合并,对比内核态bcache,减少了IO路径上的线程切换开销,提高了整体的IO处理能力。

支持高性能EC条带原子性

在用户态ASCache层实现了多版本重定向功能,结合Store层EC的覆盖写流程,在减少线程开销的同时,实现了高性能的EC条带原子性。

结语

随着各行业数据量的爆发式增长,如何高效处理海量数据的读写,成为SDS软件面对的挑战。杉岩数据自研的新一代AgileStore,将用户态ASCache和Store进行融合,能够很好地支持国产化各种平台和系统;同时结合用户态ASCache和Store进行性能优化,降低系统开销,性能上也获得了较大提升。

分享至:

联系

我们

400-838-3331

在线

客服