一种基于直接映射的对象存储后端优化方法技术

技术编号:24681836 阅读:15 留言:0更新日期:2020-06-27 07:35
本发明专利技术公开了一种基于直接映射的对象存储后端优化方法,按照以下步骤实施:步骤1、将存储后端的每个磁盘,按照固定大小分成若干个命名为对象桶的空间,并对各对象桶编号;将索引按照固定大小分成若干个命名为索引桶的空间;通过分布式哈希表成比例地将待写入对象均匀分布在节点的各个磁盘上;步骤2、通过索引实现对象指纹到物理存放位置的小范围映射;步骤3、通过存储层实现数据的物理存储。解决了现有技术中数据索引与数据物理位置映射关系复杂的问题。

An object storage backend optimization method based on direct mapping

【技术实现步骤摘要】
一种基于直接映射的对象存储后端优化方法
本专利技术计算机存储
,具体涉及一种基于直接映射的对象存储后端优化方法。
技术介绍
随着大数据时代的降临,业务应用对存储空间的需求越来越大,性能要求也越来越高。用户的I/O请求需要及时的快速响应。如何简化数据处理流程,提供高效,易使用,易维护的存储产品是存储厂商迫切需要的。不管是传统的多控存储系统,还是越来越普遍的分布式存储,都有此需求。目前业内的对象存储产品所采用的后端存储方案大体类似。在系统初始化时,所有的后端磁盘被分别编号,记作Disk_Id(磁盘号);然后,每个磁盘在逻辑上都会按照一定的大小被均匀地切分成许多Extent(范围),并分别编号,记作Extent_Id(范围编号)。不同产品可以有不同的Extent(范围)大小。使用ExtentManager(范围管理器)来统一管理这些Extent。所有磁盘上的范围块集合在一起就形成节点内部的虚拟化存储池。在任意时刻,ExtentManager(范围管理器)都会保持系统中有一个或多个处于激活状态的Extent。当有新数据要被写入到对象存储系统时,不管是用户数据还是元数据,他们都会被切分成预定大小的“对象”,对象的大小通常是4KB或者8KB。随后,系统依据加密摘要算法,根据每个对象的内容,生成一个唯一的数据指纹。数据指纹与数据内容,是一对一的关系。也即指纹相同则意味着数据内容相同。然后,数据会以append(追加)的方式被添加到当前处于激活状态的某一个Extent的末尾。以追加的方式写入,可以使ExtentManager知道当前数据在该Extent内的相对位置,记作Extent_Offset(范围内偏移);特别地,为了提供更高的磁盘空间利用率,会使用压缩算法对原始数据压缩后再写入,并设置已压缩标志位。由此,我们就可以知道一个数据块在后端虚拟化存储池中的位置,记作PBN(物理块序号),它由Disk_Id,Extent_Id,Extent_Offset(磁盘编号,范围编号,范围内偏移)三部分组成。数据的物理存储位置PBN,数据指纹和其它一些实现所需要的标志位会被记录在一个名为ObjectRecord(对象记录)的数据结构中。这些记录了数据指纹到数据物理存储位置映射的对象记录会被保存在Index(索引)中。Index(索引)是一个类似数组的结构,每个位置上保存了一个或多个ObjectRecord(对象记录)。通过对数据指纹做一次或多次不同的哈希计算,可以得到该数据指纹对应Index上的一个位置或多个互为备用的位置。数据指纹关联的ObjectRecord会被放入其中一个位置。当有读请求时,对指纹应用相同的哈希算法得到该对象记录的可能位置,遍历寻找并匹配数据指纹。找到对象记录就可以获得其内存储的PBN(物理存储位置),进而通过“ExtentManager”从虚拟存储池中读取到对象的内容返回给客户端。图-1展示了一种可能的索引结构。当前的实现方案有如下缺点:1、数据块的物理位置和索引位置是松耦合的。一个数据块可以被随机地存储在后端全局磁盘空间的任意一个位置,那么它的索引就需要记录下这一随机的映射,无规律可循,粒度过大,不易于管理。对系统空间的回收需要做全局的垃圾回收。通过遍历所有的Extent(范围)空间内的所有数据块,并计算找到它所在的索引位置,查看该数据是否还有效。如果无效,才可以删除。这一过程是及其耗时和复杂的,会导致系统读写性能显著下降40%左右。2、ObjectRecord(对象记录)占用过多内存空间。我们可以大体计算出一个ObjectRecord(对象记录)的大小,其中数据指纹占据20字节,PBN最少占用8字节,引用计数占据4字节,再加上其它一些标志位,一个ObjectRecord(对象记录)的大小最少在32字节以上。海量数据对应海量的ObjectRecord(对象记录),大大增加了系统的内存占用量。同时也限制了系统支持的最大磁盘总容量。3、数据不是均匀地分布在各个后端磁盘上。处于激活状态的Extent是随机选择的,没有经过优化算法。可能导致某个磁盘上数据过于集中。磁盘繁忙度不均匀,导致磁盘寿命降低。增加了磁盘损坏引发系统数据丢失的风险。
技术实现思路
本专利技术的目的是提供一种基于直接映射的对象存储后端优化方法,以解决现有技术中数据索引与数据物理位置映射关系复杂的问题。本专利技术采用以下技术方案:一种基于直接映射的对象存储后端优化方法,按照以下步骤实施:步骤1、将存储后端的每个磁盘,按照固定大小分成若干个命名为对象桶的空间,并对各对象桶编号;将索引按照固定大小分成若干个命名为索引桶的空间;通过分布式哈希表成比例地将待写入对象均匀分布在节点的各个磁盘上;步骤2、通过索引实现对象指纹到物理存放位置的小范围映射;步骤3、通过存储层实现数据的物理存储。进一步的,步骤1中,通过分布式哈希表写入对象的具体方法为:S1.1、为磁盘设置不同的权重,根据权重在哈希环上为磁盘分配不同数目的环点;S1.2、为每个磁盘的每个环点命名,并计算每个环点的哈希值;S1.3、组合各个磁盘环点算出的哈希值成一个哈希数组,按照哈希的数值大小排列,则各个磁盘的哈希环点就被均匀的分布在了哈希环上。进一步的,对象桶在磁盘中的物理起始位置计算公式为:ObjectBucket的物理位置=对应的IndexBucket编号*ObjectBucket的大小+ObjectBucket区起始位置。进一步的,每当有新的数据要写入时,先对所述数据进行哈希计算,得到数据的指纹;数据指纹在从上述哈希环起始位置开始进行查询,直到找到第一个比数据指纹值更大的磁盘环点;则该环点所属的磁盘,就是新的数据块应该被保存的磁盘。进一步的,当有磁盘增减的时候,根据新的磁盘拓扑结果,哈希环点将被重新计算并排序:不变环点的相对位置不会发生变化;发生变化的磁盘上的数据将移出或移入,且移动后的数据均匀成比例分布在新的磁盘组合上。进一步的,步骤3中,当有新数据来临,根据数据的指纹,计算该对象在索引层中的存放位置,具体的步骤如下:S2.1、应用一组哈希函数,在各个索引桶里为这个数据指纹找到一组候选桶;S2.2、依次遍历这一组候选桶里的每一个桶,若当前索引桶里有空闲空间存放,且其对应的对象桶内有足够的连续空间存放真正的数据,则当前能存放新的对象记录;否则,使用布谷鸟算法,在候选索引桶中踢走一个现有的对象记录到它的其它候选桶中,然后将新的对象记录放到这个空出的位置中;S2.4、找到位置存放好对象记录和数据后,更新桶的分布图和边界图以显示变化。本专利技术的有益效果是:简化了数据从索引到物理地址的映射逻辑;减少了ObjectRecord(对象记录)占用的内存空间,大幅度地优化了系统整体的内存使用,从而增加了相同内存配置下支持的最大磁盘总容量;在保证实现高速线性寻址的同时,兼顾数据的压缩;由于是直接映射,也可以省去系统需要通过垃圾回收机制回收可重用本文档来自技高网
...

【技术保护点】
1.一种基于直接映射的对象存储后端优化方法,其特征在于,按照以下步骤实施:/n步骤1、将存储后端的每个磁盘,按照固定大小分成若干个命名为对象桶的空间,并对各对象桶编号;将索引按照固定大小分成若干个命名为索引桶的空间;通过分布式哈希表成比例地将待写入对象均匀分布在节点的各个磁盘上;/n步骤2、通过索引实现对象指纹到物理存放位置的小范围映射;/n步骤3、通过存储层实现数据的物理存储。/n

【技术特征摘要】
1.一种基于直接映射的对象存储后端优化方法,其特征在于,按照以下步骤实施:
步骤1、将存储后端的每个磁盘,按照固定大小分成若干个命名为对象桶的空间,并对各对象桶编号;将索引按照固定大小分成若干个命名为索引桶的空间;通过分布式哈希表成比例地将待写入对象均匀分布在节点的各个磁盘上;
步骤2、通过索引实现对象指纹到物理存放位置的小范围映射;
步骤3、通过存储层实现数据的物理存储。


2.如权利要求1所述的一种基于直接映射的对象存储后端优化方法,其特征在于,所述步骤1中,通过分布式哈希表写入对象的具体方法为:
S1.1、为磁盘设置不同的权重,根据权重在哈希环上为磁盘分配不同数目的环点;
S1.2、为每个磁盘的每个环点命名,并计算每个环点的哈希值;
S1.3、组合各个磁盘环点算出的哈希值成一个哈希数组,按照哈希的数值大小排列,则各个磁盘的哈希环点就被均匀的分布在了哈希环上。


3.如权利要求2所述的一种基于直接映射的对象存储后端优化方法,其特征在于,所述对象桶在磁盘中的物理起始位置计算公式为:
ObjectBucket的物理位置=对应的IndexBucket编号*ObjectBucket的大小+ObjectBucket区起始位置。


4.如权利要求1-3中任意一项所述的一种基于...

【专利技术属性】
技术研发人员:赵靖荣于超熊江
申请(专利权)人:西安奥卡云数据科技有限公司
类型:发明
国别省市:陕西;61

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

1