一种用于容器场景下分布式存储性能提升的方法及系统技术方案

技术编号:34822446 阅读:15 留言:0更新日期:2022-09-03 20:33
本发明专利技术公开一种用于容器场景下分布式存储性能提升的方法,包括以下步骤:存储节点接收到IO写请求,将IO写请求分割成若干数据块,数据块封装成事务发送到文件系统状态机;文件系统状态机根据IO写请求的IO写类型对事务进行处理;文件系统状态机判断IO写请求是否达到系统限流瓶颈;文件系统状态机判断第一IO提交队列是否队列堆积;进行落盘。本发明专利技术还公开一种用于容器场景下分布式存储性能提升的方法。本发明专利技术深度定制化分布式系统存储节点的文件系统,改进了文件系统有限自动状态机的算法模型,增强了分布式存储系统存储节点的并发性,IO吞吐,提升了分布式系统在容器云平台环境下的写速度。的写速度。的写速度。

【技术实现步骤摘要】
一种用于容器场景下分布式存储性能提升的方法及系统


[0001]本专利技术涉及分布式存储及性能优化
,特别涉及一种用于容器场景下分布式存储性能提升的方法及系统。

技术介绍

[0002]在现有的容器云分布式存储性能优化及相关技术方案中,主要利用nvme,ssd等硬件高速读写特性,为容器云的存储做一层热缓存,对高命中的数据进行热缓存,后端屏蔽热缓存中低命中数据迁移到低速设备(hdd)的过程,对于用户来说数据迁移是透明的,在用户的感知里,利用nvme,ssd等高速设备做热缓存的分布式存储系统会比单纯使用hdd低速设备的分布式存储系统快很多。采用定制化的文件系统直接绕过操作系统的默认文件系统,直接管理磁盘的裸设备,从而避免日志双写给分布式存储系统带来的写放大问题(系统日志写是非常频繁的操作,双倍的写操作会加重系统负荷,影响系统性能),从而减少系统日志写次数,提升分布式存储性能。
[0003]现有已知的分布式存储在容器场景下主要通过热缓存和定制文件系统的方式,提升系统性能,主要存在以下问题:
[0004]1、容器场景下分布式存储系统的存储节点无法识别bcache内核模块对硬盘的分区,所以无法采用bcache内核模块创建的分区做缓存提升性能。
[0005]2、现有分布式存储系统的热缓存机制在容器场景下有一定的性能损耗,对于IO密集型业务,对读写性能要求比较高的业务场景,比如数据库读写,虚拟机硬盘,如果不采用全闪存等高昂的硬件配置很难满足业务需求。
[0006]3、现有分布式存储系统采用异步IO读写的操作模型,数据写入队列和落盘操作由不同的线程和队列完成,在IO业务繁忙且采用低速设备部署的场景下,尤其写操作密集的场景下,容易造成队列堆积,影响分布式存储系统的读写性能。
[0007]4、现有的分布式存储系统在延迟写(覆盖写RMW)场景下,会先进行日志修改操作即先进行元数据写,再进行数据写,相比较新写(没有日志修改)会多出一次元数据读和元数据修改操作,在元数据写和数据写的过程中都会进行数据提交和数据落盘操作,由于采用异步IO读写模型,在IO操作密集尤其写操作密集的场景下,很容易造成提交队列和落盘队列堆积的情况,从而影响系统写性能尤其是小文件写性能。
[0008]5、在容器云场景下,分布式存储的写性能尤其是小文件写,往往会成为整个平台的瓶颈所在,为了提升分布式存储系统的性能和稳定性,需要对现有的分布式存储的文件管理系统进行改造,修改文件管理系统有限自动状态机模型,增加工作者线程池,控制异步IO数据落盘频率,控制延迟写场景下数据落盘次数,从而满足容器云存储平台建设成本和性能提升之间的平衡。

技术实现思路

[0009]本专利技术的目的在于提供一种用于容器场景下分布式存储性能提升的方法及系统,
采用定制化分布式存储系统副本节点的方法,优化副本存储节点的文件系统有限自动状态机算法模型。
[0010]为解决上述技术问题,本专利技术提供一种用于容器场景下分布式存储性能提升的方法,包括以下步骤:
[0011]步骤1、存储节点接收到IO写请求,判断IO写请求是否达到系统限流瓶颈;
[0012]如果IO写请求未达到限流瓶颈,执行步骤2;
[0013]如果IO写请求达到限流瓶颈,执行步骤3;
[0014]步骤2、第一工作者线程池中的线程处理IO写请求,通过第一线程池中的线程将IO写请求封装成事务发送到文件系统状态机中,并以该第一工作者线程池中的线程作为提交线程,执行步骤4;
[0015]步骤3、第一工作者线程池中的线程处理IO写请求,通过第一线程池中的线程将IO写请求封装成事务发送到文件系统状态机中,通过信号量唤醒第二工作者线程池中的线程,并以第二工作者线程池中的线程作为提交线程;执行步骤4;
[0016]步骤4、提交线程将文件系统状态机中的事务插入到第一IO提交队列中,判断第一IO提交队列是否队列堆积;
[0017]如果队列未堆积,事务进行单独落盘;
[0018]如果队列堆积,事务进行批量落盘。
[0019]优选地,判断第一IO提交队列是否队列堆积,具体包括以下步骤:
[0020]对第一IO提交队列进行监测,将第一IO提交队列中的事务进行计数,作为队列长度,判断队列长度是否超过门限;如果队列长度超过门限,则队列堆积;否则,队列未堆积。
[0021]优选地,事务进行单独落盘,具体包括以下步骤:
[0022]通过信号量唤醒第一落盘线程,第一落盘线程将第一IO提交队列中的事务迁移到第二IO落盘队列,第一落盘线程将第二IO落盘队列中的事务进行单独落盘。
[0023]优选地,事务进行批量落盘,具体包括以下步骤:
[0024]通过信号量唤醒第二落盘线程,第二落盘线程将第一IO提交队列中的事务迁移到第三IO批落盘队列中,进行批量落盘。
[0025]优选地,单独落盘和批量落盘具体包括以下步骤:
[0026]落盘线程根据事务的IO写类型对事务进行处理;判断事务的IO写类型;IO写类型分为两种,即新写和延迟写;
[0027]如果IO写类型是新写,落盘线程将文件系统状态机中的事务所对应的元数据和数据发送至磁盘的裸设备,存储在新存储单元中;
[0028]如果IO写类型是延迟写,落盘线程将文件系统状态机中的事务所对应的元数据和数据发送至磁盘的裸设备,复用旧有的存储单元。
[0029]优选地,判断事务的IO写类型的具体判断方法为:
[0030]根据事务的大小与磁盘的裸设备的存储单元判断事务的IO写类型;如果事务的大小是磁盘的裸设备的存储单元的整倍数,则事务的IO写类型为新写;否则,事务的IO写类型为延迟写。
[0031]优选地,落盘过程具体包括以下步骤:
[0032]存储节点为osd副本存储节点。
[0033]本专利技术还提供一种实现上述用于容器场景下分布式存储性能提升的方法的系统,包括:
[0034]定制化文件系统模块,用于实现磁盘的裸设备的管理,空间分配,空间回收,数据存储,查看,删除,更改;
[0035]数据封装传输模块,用于将IO写请求封装成事务发送到文件系统状态机中;
[0036]元数据缓存模块,用于保存及变更元数据信息;
[0037]对象网关,用于对访问请求进行解析;
[0038]节点监控模块,用于监控存储节点的状态;
[0039]通知下发模块,用于保持集群节点状态一致。
[0040]与现有技术相比,本专利技术的有益效果为:
[0041]1、本专利技术深度定制化分布式系统存储节点的文件系统,改进了文件系统有限自动状态机的算法模型,增强了分布式存储系统存储节点的并发性,IO吞吐,提升了分布式系统在容器云平台环境下的写速度;
[0042]2、本专利技术弥补了容器场景下无法使用bcache技术的不足,减少了分布式存储系统对于昂贵硬件nvme硬盘,RDMA网卡依赖,减少了操作系统内核依赖,更加具有通用性本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于容器场景下分布式存储性能提升的方法,其特征在于,包括以下步骤:存储节点接收到IO写请求,判断IO写请求是否达到系统限流瓶颈;如果IO写请求未达到限流瓶颈,第一工作者线程池中的线程处理IO写请求,通过第一线程池中的线程将IO写请求封装成事务发送到文件系统状态机中,并以该第一工作者线程池中的线程作为提交线程;如果IO写请求达到限流瓶颈,第一工作者线程池中的线程处理IO写请求,通过第一线程池中的线程将IO写请求封装成事务发送到文件系统状态机中,通过信号量唤醒第二工作者线程池中的线程,并以第二工作者线程池中的线程作为提交线程;提交线程将文件系统状态机中的事务插入到第一IO提交队列中,判断第一IO提交队列是否队列堆积;如果队列未堆积,事务进行单独落盘;如果队列堆积,事务进行批量落盘。2.根据权利要求1所述的一种用于容器场景下分布式存储性能提升的方法,其特征在于,判断第一IO提交队列是否队列堆积,具体包括以下步骤:对第一IO提交队列中的事务进行计数,作为队列长度,判断队列长度是否超过门限;如果队列长度超过门限,则队列堆积;否则,队列未堆积。3.根据权利要求2所述的一种用于容器场景下分布式存储性能提升的方法,其特征在于,事务进行单独落盘,具体包括以下步骤:通过信号量唤醒第一落盘线程,第一落盘线程将第一IO提交队列中的事务迁移到第二IO落盘队列,第一落盘线程将第二IO落盘队列中的事务进行单独落盘。4.根据权利要求2所述的一种用于容器场景下分布式存储性能提升的方法,其特征在于,事务进行批量落盘,具体包括以下步骤:通过信号量唤醒第二落盘线...

【专利技术属性】
技术研发人员:徐运元宜鹏倪伟沈宏杰王翱宇
申请(专利权)人:杭州谐云科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1