System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及分布式存储系统,具体为一种bluestore写放大的优化方法。
技术介绍
1、分布式存储系统ceph包括bluestore及ssd(solid state disk,固态硬盘),其中,bluestore为分布式存储系统ceph的存储引擎,用于重定向写等工作。
2、开源ceph的分布式存储已在生产中广泛使用,但业界使用ec的块存储几乎很少使用,偶尔使用也是对业务场景有严格的限制,比如视频,大文件等。而小io场景下的ec几乎没有人使用,原因在于bluestore在ec场景下存在写放大,放大系数2-10几倍都可能。故而在生产中使用块存储的ec,都是通过在上层做一层缓存,通过缓存把小io聚合成大io,从而避免bluestore的写放大。该方法虽然能改善写放大,同时也增加了缓存成本,以及技术难度,同时后期运维成本也大幅增加。
3、本申请提出通过空间扫描把系统中写放大ec分条扫描出来,然后通过动态规划算法找出一组最佳组合ec分条,把2个未写满ec分条重组成一个写满ec分条和一个全零ec分条,重组的全零ec分条重新释放给bluestore的allocatore空闲链表中,达到减少bluestore空间写放大的问题。
技术实现思路
1、为了解决上述问题,本专利技术提供了一种bluestore写放大的优化方法。
2、本专利技术采用以下技术方案,一种bluestore写放大的优化方法,包括以下步骤:
3、步骤s01:通过扫描单元扫描所有的e
4、步骤s02:通过算法模块,不间断的从组合队列中取出待重组的ec分条,根据最佳匹配算法(空间利用率最大)把ec分条进行分类,分类好的ec分条添加到待重组队列中;
5、步骤s03:查询重组队列是否有ec分条,如果有,把两个ec分条取出来进行重组成一个新的ec分条和一个全零ec分条,新的ec分条更新映射,全零ec分条添加到bluestore的空闲ec分条。
6、作为上述技术方案的进一步描述:所述步骤s01具体包括以下步骤:
7、步骤s011:设定扫描单元的范围和规模,即需要扫描的存储空间和扫描的次数;
8、步骤s012:使用扫描单元扫描选定的存储空间,逐个检查ec分条的状态和有效性;
9、步骤s013:基于ec分条的状态和存储利用率来定义扫描的ec分条是空间浪费的ec分条,还是空间不浪费的ec分条,并对空间浪费的ec分条进行标记;
10、步骤s014:将被标记为空间浪费的ec分条放入待组合队列中。
11、作为上述技术方案的进一步描述:所述ec分条的状态包括已使用状态(ec分条已经被用于一个或多个数据块的错误修复操作,但是数据已经被成功恢复,它们仍然可以用于未来的数据恢复)、未使用状态(ec分条尚未被使用,因此它们仍然是可用的)和过期状态(某些ec ec分条可能因过时或不再需要而被标记为过期。它们可以被清理或回收以释放存储空间)。
12、作为上述技术方案的进一步描述:基于ec分条的状态和存储利用率定义扫描的ec分条是空间浪费的ec分条还是空间不浪费的ec分条的方法包括:
13、步骤s0131:通过存储系统的监控工具、命令或日志来获取ec分条的状态,通过系统判断目标ec分条中的存储利用率是否达到预设阈值ey;
14、步骤s0132:当所述ec分条的状态为已使用状态和过期状态时,并且其存储利用率≤预设阈值时,设定该ec分条为空间浪费的ec分条;
15、步骤s0133:当所述ec分条的状态为已使用状态和过期状态时,并且其存储利用率>预设阈值时,设定该ec分条为空间不浪费的ec分条;
16、步骤s0134:当所述ec分条的状态为未使用状态时,设定该ec分条为空闲ec分条。
17、作为上述技术方案的进一步描述:所述ec分条中的存储利用率的预设阈值为ec分条的存储量的95%。
18、作为上述技术方案的进一步描述:所述步骤s02中,最佳匹配算法的具体方法为:
19、步骤s021:将待重组队列中的ec分条按照存储利用率的大小依次进行标记,依次标记为e1、e2、e3、e4、……、en,其中e1>e2>e3>e4>……>en;
20、步骤s022:依次获取e1+e2、e1+e3、e1+e4……、e1+en的数值并标记为:x1,2、x1,3、x1,4、……、x1,n;
21、步骤s023:将x1,2、x1,3、x1,4、……、x1,n组成一个集合,获取该集合中的数值位于eb到ey之间的数据x1,y-2、x1,y-1、x1,y;
22、需要说明的是2<y≤n,y为正整数;
23、(x1,y-2、x1,y-1、x1,y)∈(x1,2、x1,3、x1,4、……、x1,n);
24、步骤s024:选取x1,y-2、x1,y-1、x1,y之间存储利用率最高的的作为进行重组的两个ec分条,并将两个ec分条从待重组队列剃除,从而依次完成ec分条的重组。
25、作为上述技术方案的进一步描述:所述eb为ec分条的最大存储率,ey为ec分条的存储利用率是否达到标准存储利用率的预设阈值,其中eb>ey。
26、作为上述技术方案的进一步描述:把两个所述ec分条取出来进行重组成一个新的ec分条和一个全零ec分条的方法为:
27、通过存储系统的监控工具来获取待合并的两个ec分条的当前状态、大小和内容,将待合并的两个ec分条标记为ec1和ec2;
28、将内容较小的ec分条的数据进行复制到另一个目标ec分条中;
29、删除内容较小的ec分条内的数据形成全零ec分条。
30、作为上述技术方案的进一步描述:还包括备份数据,即在将两个ec分条取出来进行重组成一个新的ec分条和一个全零ec分条时,先对两个ec分条涉及的数据进行备份,防止数据丢失。
31、作为上述技术方案的进一步描述:所述步骤so3中,新的ec分条更新映射的方法包括:
32、bluestore基于接收到的ec分条存储的地址更新的地址更新信息,将已写入到ec分条的数据对应的已用逻辑地址加入预设可申请逻辑地址队列;
33、基于所述地址更新信息更新预设地址映射关系,以使所述已用逻辑地址与所述存储模块中处于空闲状态的分配可写入物理地址映射对应。
34、在上述技术方案中,本专利技术提供的一种bluestore写放大的优化方法,改善写放大效果好,通过高效的组合算法,找到最佳ec分条匹配,有效减少写放大。
35、2.独有的设计方法,通过旁置空间扫描任务,把存在空洞的ec分条找出来进行再次重组,无需对现有io路径做大范围改动。
本文档来自技高网...【技术保护点】
1.一种Bluestore写放大的优化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种Bluestore写放大的优化方法,其特征在于,所述步骤S01具体包括以下步骤:
3.根据权利要求2所述的一种Bluestore写放大的优化方法,其特征在于,所述EC分条的状态包括已使用状态、未使用状态和过期状态。
4.根据权利要求2所述的一种Bluestore写放大的优化方法,其特征在于,基于EC分条的状态和存储利用率定义扫描的EC分条是空间浪费的EC分条还是空间不浪费的EC分条的方法包括:
5.根据权利要求4所述的一种Bluestore写放大的优化方法,其特征在于,所述EC分条中的存储利用率的预设阈值为EC分条的存储量的95%。
6.根据权利要求4所述的一种Bluestore写放大的优化方法,其特征在于,所述步骤S02中,最佳匹配算法的具体方法为:
7.根据权利要求6所述的一种Bluestore写放大的优化方法,其特征在于,所述Eb为EC分条的最大存储率,Ey为EC分条的存储利用率是否达到标准存储利用率的预
8.根据权利要求1所述的一种Bluestore写放大的优化方法,其特征在于,把两个所述EC分条取出来进行重组成一个新的EC分条和一个全零EC分条的方法为:
9.根据权利要求8所述的一种Bluestore写放大的优化方法,其特征在于,还包括备份数据,即在将两个EC分条取出来进行重组成一个新的EC分条和一个全零EC分条时,先对两个EC分条涉及的数据进行备份,防止数据丢失。
10.根据权利要求1所述的一种Bluestore写放大的优化方法,其特征在于,所述步骤SO3中,新的EC分条更新映射的方法包括:
...【技术特征摘要】
1.一种bluestore写放大的优化方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种bluestore写放大的优化方法,其特征在于,所述步骤s01具体包括以下步骤:
3.根据权利要求2所述的一种bluestore写放大的优化方法,其特征在于,所述ec分条的状态包括已使用状态、未使用状态和过期状态。
4.根据权利要求2所述的一种bluestore写放大的优化方法,其特征在于,基于ec分条的状态和存储利用率定义扫描的ec分条是空间浪费的ec分条还是空间不浪费的ec分条的方法包括:
5.根据权利要求4所述的一种bluestore写放大的优化方法,其特征在于,所述ec分条中的存储利用率的预设阈值为ec分条的存储量的95%。
6.根据权利要求4所述的一种bluestore写放大的优化方法,其特征在于,所...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。