杉岩数据新一代高性能存储引擎AgileStore,破解容量密集型集群性能瓶颈

Sort:Company dynamics Release time:2022年09月30日
Share:

近年来,计算与网络技术获得了飞速的发展。在存储领域,除了朝低成本大容量发展之外,存储介质也在不断地向高性能进军——SSD的存储容量越来越大,数TB、甚至十几TB的大容量SSD变得常见;NVMe SSD的读写性能相对比SATA SSD增长了几十倍,NVMe SSD已经超过传统的SATA/SAS SSD,成为了存储服务器缓存数据的主流选择。


存储介质的高速发展推动着存储系统的革新,软件定义存储(SDS)进入快车道。但与NVMe SSD高速发展形成反差的是,CPU的单核性能、服务器的内存容量增速相对缓慢。因此,如何充分发挥存储介质的高性能,同时减少服务器的CPU/内存消耗,成为了SDS软件竞相攀登的技术高峰。


开源Ceph BlueStore引擎难解海量数据性能瓶颈


知名的开源分布式存储软件Ceph,为了适配新的高性能存储介质,开发了存储引擎BlueStore,通过跳过文件系统,直接管理裸盘的方式,避免了数据的写放大和频繁系统调用带来的CPU开销。但是,BlueStore采用重定向写和变长extent的方式来管理对象数据以及保证覆盖写数据的原子性,带来了如下问题:


性能下降

存储系统在使用一段时间后,由于重定向写出现空间管理碎片化,并且导致元数据不断膨胀、CPU开销增加、读写性能下降等;


性能波动

元数据增加后,由于内存大小限制,只能有部分元数据被内存缓存,会导致需要频繁地从DB持久化介质上读取对象元数据,导致存储性能出现较大波动;


IO阻塞

元数据量增大导致db Compaction频繁触发,进一步加剧了整体存储的IOPS波动,甚至会出现slow request(慢请求)等IO短暂阻塞的现象。如下图所示,对Ceph集群持续写入数据,随着数据量的增加,存储性能持续下降,10亿对象数据的规模下性能只有空集群性能的一半左右。


图1 基于BlueStore的Ceph存储集群性能测试


无惧挑战,再攀高峰!杉岩数据新一代高性能存储引擎AgileStore


针对NVME SSD+ HDD的混合存储场景,为充分发挥NVMe SSD的性能,同时减少存储的元数据开销和CPU资源消耗,杉岩数据基于自有专利技术,研发设计了新一代针对混合存储场景的高性能存储引擎AgileStore,通过在存储引擎中集成用户态高性能缓存模块,并采用自适应定长块+bitmap的空间管理方式,极大地减少了磁盘的元数据规模,确保元数据能在内存缓存中命中,进而保证了集群性能的平稳性。AgileStore通过创新性的在定长块写流程中引入重定向缓存模块,在保证覆盖写原子性的同时,实现了基于bitmap的定长块空间管理,避免了传统重定向方案在保证覆盖写原子性时带来的元数据膨胀和空间离散化的问题。在对象内采用定长块的空间管理,简化了从对象逻辑地址到磁盘物理地址的查询流程,大大提高了查询效率,降低了读写请求处理时的元数据操作时延。为了避免定长块对存储空间的浪费问题,AgileStore实现了自适应的定长块分配算法,通过写请求所携带的flag,感应对象大小,并结合对象大小分配合适定长块空间,达到存储性能和空间利用率的均衡。


相对比开源社区基于重定向写和变长extent的对象空间管理方式,AgileStore使用基于重定向缓存的自适应定长块和bitmap的方式,具有多方面优势:


保障性能平稳

结合重定向缓存的对象空间位图管理方式,大大减少了对象元数据的空间占用,可以做到元数据的内存缓存,减少了IO读写过程中对DB的查询压力,降低了CPU开销,保障了读写性能的平稳性;


提升读性能

结合高性能的用户态缓存,保证对象内数据分布的连续性,同时能够实现基于IO感知的缓存管理策略,优化缓存效率,提高读缓存的命中率,保证较好的读性能;


保证性能一致性

数据覆盖写并不会增加额外的元数据开销,结合元数据的内存缓存,保证了初始集群和集群写满场景的性能一致性。如下图所示,对基于AgileStore的分布式存储集群进行对象写性能测试,可以发现在不同数据规模下,写入性能相差不大,数据规模的增加,并没有引起存储性能的显著下降。

图2 基于杉岩数据AgileStore的分布式存储集群性能测试


结语


随着大容量HDD和高性能NVMe SSD的普及,以及数据量的爆发式增长,如何高效处理海量数据的读写,成为SDS软件面对的挑战。杉岩数据自主研发针对SSD+HDD混合存储场景的高性能存储引擎AgileStore,能够在海量数据场景下,为业务提供平稳的存储性能,保障业务的核心应用体验。


Your privacy is important to us

We use cookies to personalize and enhance your browsing experience on our website. By clicking "Accept all cookies", you agree to the use of cookies. You can read our Cookie Policy for more information.

Phone

Service Hotline

400-838-3331

More contact information

Top

Scan code attention