分布式存储设备性能提升方法、装置及分布式存储设备制造方法及图纸

技术编号:24331020 阅读:30 留言:0更新日期:2020-05-29 19:36
本发明专利技术涉及存储技术领域,具体涉及一种分布式存储设备性能提升方法、装置及分布式存储设备。本发明专利技术通过bluestore中使用Bcache磁盘,采用一棵相对标准的B+树作为索引,命中率有很大提高,在最大程度上发挥SSD性能的同时,也保护了SSD的寿命,也就是对SSD闪存介质的亲和性较好。可以在混合磁盘场景下提升bluestore存储引擎模式的整体性能。

Methods, devices and distributed storage devices for improving the performance of distributed storage devices

【技术实现步骤摘要】
分布式存储设备性能提升方法、装置及分布式存储设备
本专利技术涉及存储
,具体涉及一种分布式存储设备性能提升方法、装置及分布式存储设备。
技术介绍
在分布式存储设备高速发展过程中诞生了filestore和bluestore存储引擎,filestore一开始只是对于机械盘进行设计的,没有专门针对ssd做优化考虑,因此诞生的bluestore初衷就是为了减少写放大,并针对ssd做优化,而且直接管理裸盘,从理论上进一步减少文件系统如ext4/xfs等部分的开销。然而,使用bluestore存储引擎抛弃了原有的journal机制,但bluestore存储引擎在SSD和HDD混合模式场景下的性能不高。
技术实现思路
针对现有技术中bluestore存储引擎在SSD和HDD混合模式场景的性能不高的问题,本专利技术提供了一种分布式存储设备性能提升方法、装置及分布式存储设备。一方面,本专利技术提供了一种分布式存储设备性能提升方法,应用于分布式存储设备,所述分布式存储设备包括多个SSD和多个HDD,所述方法包括:所述分布式存储设备将每个SSD分为多个磁盘分区,所述每个磁盘分区包括一个大分区和一个小分区;所述分布式存储设备在所述大分区中创建bcache缓存池,将一个HDD附加绑定到大分区中的缓存池,将所述附加绑定到缓存池的HDD记为第一HDD,将所述大分区作为第一HDD的bcache的前端缓存磁盘;所述分布式存储设备在所述小分区中创建一个OSD的DB空间和WAL空间,将所述小分区用于存放第一HDD的BlueStore元数据和日志。可选地,所述将所述SSD分为多个磁盘分区,所述每个磁盘分区包括一个大分区和一个小分区,包括:所述分布式存储设备基于bcache将SSD中的大分区和小分区都分成多个bucket;所述SSD中存储缓存数据和元数据,所述缓存数据和元数据按bucket进行管理;所述bucket的大小与SSD本身擦除块大小一致,为512K。可选地,所述在所述大分区中创建bcache缓存池,将一个HDD附加绑定到大分区中的缓存池,将所述附加绑定到缓存池的HDD记为第一HDD,将所述大分区作为第一HDD的bcache的前端缓存磁盘,包括:所述分布式存储设备用B+树索引,记录缓存设备SSD上缓存数据和第一HDD上后端设备数据的映射对应关系,B+树节点中记录的结构为bkey。可选地,所述用B+树索引,记录缓存设备SSD上缓存数据和第一HDD上后端设备数据的映射对应关系,包括:所述分布式存储设备将一个缓存池中的多块HDD地址空间编址为一个地址空间;所述分布式存储设备以HDD的id+IO请求的LBA为索引建立B+树;所述分布式存储设备每个B+树的节点对应一个btreebucket,所述btreebucket里存储的数据为bkey;所述分布式存储设备为每个btreebucket申请一块连续内存作为metadata缓存。在上述方法中,利用Journal/WAL加速B+树的修改,写完journal以及内存中的B+tree节点缓存后写IO就可以返回了。可选地,所述方法还包括:所述分布式存储设备对无效的旧数据进行标记和清理,并将含有多无效数据的多个bucket压缩成一个bucket。可选地,所述对无效的旧数据进行标记和清理,并将含有多无效数据的多个bucket压缩成一个bucket,包括:所述分布式存储设备遍历B+树,根据bkey信息标记出无效的缓存数据、有效的缓存数据和元数据,然后压缩清理元数据bucket;所述换成数据包括脏缓存数据与干净的缓存数据;所述分布式存储设备根据元数据遍历B+树后生成的数据bucket的标记信息,找出含有较多无效数据的多个bucket,将其中的有效数据搬移到一个新分配的bucket中去,以便及时回收更多的bucket。可选地,所述方法还包括:所述分布式存储设备中的bcache为缓存池中的每个HDD启动刷脏线程,将SSD中的脏数据刷到后端的HDD盘。可选地,所述bcache为缓存池中的每个HDD启动刷脏线程,将SSD中的脏数据刷到后端的HDD盘,包括:所述分布式存储设备遍历B+树,找出指向本HDD上的脏数据块的所有bkey,按照bkey中包含的HDD上的LBA信息进行排序,根据排序后的bkey依次读出SSD上的数据块,写入HDD中,实现了顺序刷盘。另一方面,本专利技术提供了一种分布式存储设备性能提升装置,运行于分布式存储设备,所述分布式存储设备包括多个SSD和多个HDD,所述装置包括:分区模块,用于将每个SSD分为多个磁盘分区,所述每个磁盘分区包括一个大分区和一个小分区;附加绑定模块,用于在所述大分区中创建bcache缓存池,将一个HDD附加绑定到大分区中的缓存池,将所述附加绑定到缓存池的HDD记为第一HDD,将所述大分区作为第一HDD的bcache的前端缓存磁盘;OSD创建模块,用于在所述小分区中创建一个OSD的DB空间和WAL空间,将所述小分区用于存放第一HDD的BlueStore元数据和日志。第三方面,本专利技术提供了一种分布式存储设备,所述分布式存储设备包括多个SSD、多个HDD、输出端口、处理器和存储器,所述多个SSD、多个HDD、输出端口和存储器均通过总线连接于所述处理器;所述存储器中存储有程序代码;所述处理器,用于通过所述总线从所述存储器中读取并运行所述程序代码,执行上述的方法。本专利技术具有以下有益效果:本专利技术通过bluestore中使用Bcache磁盘,采用一棵相对标准的B+树作为索引,命中率有很大提高,在最大程度上发挥SSD性能的同时,也保护了SSD的寿命,也就是对SSD闪存介质的亲和性较好。可以在混合磁盘场景下提升bluestore存储引擎模式的整体性能。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例中所述的分布式存储设备性能提升方法结构流程示意图;图2是本专利技术实施例中所述的分布式存储设备性能提升系统框图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则本文档来自技高网...

【技术保护点】
1.一种分布式存储设备性能提升方法,其特征在于,应用于分布式存储设备,所述分布式存储设备包括多个SSD和多个HDD,所述方法包括:/n所述分布式存储设备将每个SSD分为多个磁盘分区,所述每个磁盘分区包括一个大分区和一个小分区;/n所述分布式存储设备在所述大分区中创建bcache缓存池,将一个HDD附加绑定到大分区中的缓存池,将所述附加绑定到缓存池的HDD记为第一HDD,将所述大分区作为第一HDD的bcache的前端缓存磁盘;/n所述分布式存储设备在所述小分区中创建一个OSD的DB空间和WAL空间,将所述小分区用于存放第一HDD的BlueStore元数据和日志。/n

【技术特征摘要】
1.一种分布式存储设备性能提升方法,其特征在于,应用于分布式存储设备,所述分布式存储设备包括多个SSD和多个HDD,所述方法包括:
所述分布式存储设备将每个SSD分为多个磁盘分区,所述每个磁盘分区包括一个大分区和一个小分区;
所述分布式存储设备在所述大分区中创建bcache缓存池,将一个HDD附加绑定到大分区中的缓存池,将所述附加绑定到缓存池的HDD记为第一HDD,将所述大分区作为第一HDD的bcache的前端缓存磁盘;
所述分布式存储设备在所述小分区中创建一个OSD的DB空间和WAL空间,将所述小分区用于存放第一HDD的BlueStore元数据和日志。


2.根据权利要求1所述的分布式存储设备性能提升方法,其特征在于,所述将所述SSD分为多个磁盘分区,所述每个磁盘分区包括一个大分区和一个小分区,包括:
所述分布式存储设备基于bcache将SSD中的大分区和小分区都分成多个bucket;所述SSD中存储缓存数据和元数据,所述缓存数据和元数据按bucket进行管理。


3.根据权利要求1所述的分布式存储设备性能提升方法,其特征在于,所述在所述大分区中创建bcache缓存池,将一个HDD附加绑定到大分区中的缓存池,将所述附加绑定到缓存池的HDD记为第一HDD,将所述大分区作为第一HDD的bcache的前端缓存磁盘,包括:
所述分布式存储设备用B+树索引,记录缓存设备SSD上缓存数据和第一HDD上后端设备数据的映射对应关系,B+树节点中记录的结构为bkey。


4.根据权利要求3所述的分布式存储设备性能提升方法,其特征在于,所述用B+树索引,记录缓存设备SSD上缓存数据和第一HDD上后端设备数据的映射对应关系,包括:
所述分布式存储设备将一个缓存池中的多块HDD地址空间编址为一个地址空间;
所述分布式存储设备以HDD的id+IO请求的LBA为索引建立B+树;
所述分布式存储设备每个B+树的节点对应一个btreebucket,所述btreebucket里存储的数据为bkey;
所述分布式存储设备为每个btreebucket申请一块连续内存作为metadata缓存。


5.根据权利要求1所述的分布式存储设备性能提升方法,其特征在于,所述方法还包括:
所述分布式存储设备对无效的旧数据进行标记和清理,并将含有多无效数据的多个bucket压...

【专利技术属性】
技术研发人员:杨世明
申请(专利权)人:河南创新科信息技术有限公司
类型:发明
国别省市:河南;41

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

1