存储容量均衡方法、对象存储方法及装置.pdf

上传人:汲墨****o 文档编号:11126305 上传时间:2021-09-05 格式:PDF 页数:14 大小:672.18KB
收藏 版权申诉 举报 下载
存储容量均衡方法、对象存储方法及装置.pdf_第1页
第1页 / 共14页
存储容量均衡方法、对象存储方法及装置.pdf_第2页
第2页 / 共14页
存储容量均衡方法、对象存储方法及装置.pdf_第3页
第3页 / 共14页
文档描述:

《存储容量均衡方法、对象存储方法及装置.pdf》由会员分享,可在线阅读,更多相关《存储容量均衡方法、对象存储方法及装置.pdf(14页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201910867983.1 (22)申请日 2019.09.16 (71)申请人 北京马赫谷科技有限公司 地址 100085 北京市海淀区信息路甲28号 13层B座13D-2-1 (72)发明人 刘萌陈志德黎莉刘廷永 谢文辉杨程朱志强 (74)专利代理机构 北京致科知识产权代理有限 公司 11672 代理人 董玲魏红雅 (51)Int.Cl. G06F 3/06(2006.01) (54)发明名称 存储容量均衡方法、 对象存储方法及装置 (57)摘要 本发明公开一种存储容量均衡。

2、方法、 对象存 储方法及装置。 该存储容量均衡方法包括: 形成 哈希环, 该哈希环由N个哈希值构成; 将哈希环划 分为M等份, 每等份哈希环形成虚拟节点; 根据存 储节点的实时容量信息为待分存储节点分配X个 虚拟节点; 将X个虚拟节点散列到哈希环上; 形成 哈希索引记录, 包括虚拟节点的VNode_ID、 对应 的哈希值、 待分存储节点的OSD_ID; 将存储系统 中所有存储节点重复分配虚拟节点、 散列虚拟节 点及形成哈希索引记录的步骤。 该方法给存储节 点分配虚拟节点时, 参考了该存储节点及存储系 统中所有存储节点的实时容量信息, 实现了自动 均衡各个存储节点的写入量, 最大限度地保证了 各。

3、个存储节点的容量均衡。 权利要求书2页 说明书8页 附图3页 CN 110633053 A 2019.12.31 CN 110633053 A 1.一种存储容量均衡方法, 其特征在于, 包括: (1)形成哈希环, 所述哈希环由N个哈希值构成; (2)将所述哈希环划分为M等份, 每等份哈希环形成虚拟节点; (3)根据待分存储节点的存储容量和剩余存储容量、 所述待分存储节点所在存储系统 中所有存储节点的总存储容量和总剩余存储容量为所述待分存储节点分配X个虚拟节点; (4)将所述X个虚拟节点散列到所述哈希环上; (5)形成哈希索引记录, 包括所述虚拟节点的虚拟节点编号VNode_ID、 对应的所述哈。

4、希 值、 所述待分存储节点的存储节点编号OSD_ID; (6)将所述存储系统中未分配虚拟节点的存储节点作为所述待分存储节点重复所述步 骤(3)(5)。 2.根据权利要求1所述的方法, 其特征在于, 所述步骤(3)包括: 根据公式为所述待分存 储节点分配X个虚拟节点; 所述公式为: XM* (K*OSDCapacity/TotalCapacity+ (1-K) *OSDFreeCapacity/ TotalFreeCapacity), 所述K为平衡因子, 且0K1, 所述OSDCapacity为所述待分存储节 点的存储容量, 所述OSDFreeCapacity为所述待分存储节点的剩余存储容量, 。

5、所述 TotalCapacity为所述待分存储节点所在存储系统中所有存储节点的总存储容量, 所述 TotalFreeCapacity为所述存储系统中所有存储节点的总剩余存储容量。 3.根据权利要求1所述的方法, 其特征在于, 还包括: 当所述CluserMap刷新时, 重复所 述步骤(3)(6), 所述CluserMap用于保存所述存储系统中各存储节点的存储节点编号 OSD_ID、 对应的存储容量和剩余存储容量。 4.根据权利要求3所述的方法, 其特征在于, 所述CluserMap刷新包括: 所述存储系统中 各存储节点定时向存储网关发送所述存储节点的存储节点编号OSD_ID、 对应的存储容量和。

6、 剩余存储容量; 所述存储网关刷新所述CluserMap中每个所述存储节点的存储节点编号 OSD_ID、 对应的存储容量和剩余存储容量。 5.根据权利要求14任一项所述的方法, 其特征在于, 所述步骤(4)包括: 根据所述虚 拟节点的虚拟节点编号VNode_ID和所述待分存储节点的存储节点编号OSD_ID计算生成第 一散列值; 将所述第一散列值作为所述虚拟节点的映射起始位置。 6.根据权利要求14任一项所述的方法, 其特征在于, M与所述存储系统中存储节点的 个数之比大于或等于100。 7.一种对象存储方法, 其特征在于, 包括: 接收存储对象, 所述存储对象包括时间信息、 空间信息和内容信息。

7、; 根据所述时间信息和所述空间信息计算生成第二散列值, 所述第二散列值与权利要求 16中任一项所述的哈希环中的一个哈希值相等; 在权利要求16中任一项所述的哈希索引记录中查找对应所述第二散列值的所述待 分存储节点的存储节点编号OSD_ID; 将所述内容信息存入所述待分存储节点的存储节点编号OSD_ID所指的目标存储节点。 8.根据权利要求7所述的方法, 其特征在于, 还包括: 将所述内容信息在所述目标存储 节点的存储位置及所述目标存储节点的存储节点编号OSD_ID进行编码, 形成所述存储对象 的对象ID。 权利要求书 1/2 页 2 CN 110633053 A 2 9.一种对象存储装置, 其。

8、特征在于, 包括: 接收单元, 用于接收存储对象, 所述存储对象包括时间信息、 空间信息和内容信息; 计算单元, 用于根据所述时间信息和所述空间信息计算生成第二散列值, 所述第二散 列值与权利要求16中任一项所述的哈希环中的一个哈希值相等; 记录查询单元, 用于在权利要求16中任一项所述的哈希索引记录中查找对应所述第 二散列值的所述待分存储节点的存储节点编号OSD_ID; 存储单元, 用于将所述内容信息存入所述待分存储节点的存储节点编号OSD_ID所指的 目标存储节点。 10.根据权利要求9所述的装置, 其特征在于, 还包括: 编码单元, 用于将所述内容信息 在所述目标存储节点的存储位置及所述。

9、目标存储节点的存储节点编号OSD_ID进行编码, 形 成所述存储对象的对象ID。 权利要求书 2/2 页 3 CN 110633053 A 3 存储容量均衡方法、 对象存储方法及装置 技术领域 0001 本发明涉及数据存储技术领域, 尤其涉及一种存储容量均衡方法、 对象存储方法 及装置。 背景技术 0002 对象存储是以对象为存储基本单元的存储系统, 为满足海量的对象存储需求, 一 般是由多台存储节点(Object Storage Device, 简称为: OSD)组成分布式存储系统, 对外提 供高性能的存储写入和查询能力。 0003 当面对海量小文件存储需求时, 如存储由视频采集装置采集的图。

10、片, 业界通常采 用写入散列的方式, 即根据对象ID计算哈希值, 不同的哈希值对应不同的存储节点, 从而使 对象能在数量上均匀地写入各个存储节点。 0004 但是, 由于对象数量巨大且大小不一, 从几十KB(210字节)到几MB(220字节) 不等, 各存储节点上同样数量的对象所占的存储容量相差很大, 很容易造成存储节点的容 量不均衡, 导致部分存储节点因容量写满而退出服务, 进而造成系统整体的吞吐量降低。 发明内容 0005 本发明提供一种存储容量均衡方法、 对象存储方法及装置, 能防止存储系统中各 存储节点的容量不均衡。 0006 本发明提供的一种存储容量均衡方法, 包括: (1)形成哈希。

11、环, 所述哈希环由N个哈 希值构成; (2)将所述哈希环划分为M等份, 每等份哈希环形成虚拟节点; (3)根据待分存储 节点的存储容量和剩余存储容量、 所述待分存储节点所在存储系统中所有存储节点的总存 储容量和总剩余存储容量为所述待分存储节点分配X个虚拟节点; (4)将所述X个虚拟节点 散列到所述哈希环上; (5)形成哈希索引记录, 包括所述虚拟节点的虚拟节点编号VNode_ ID、 对应的所述哈希值、 所述待分存储节点的存储节点编号OSD_ID; (6)将所述存储系统中 未分配虚拟节点的存储节点作为所述待分存储节点重复所述步骤(3)(5)。 0007 进一步地, 所述步骤(3)包括: 根据公。

12、式为所述待分存储节点分配X个虚拟节点; 所 述公式为: XM*(K*OSDCapacity/TotalCapacity+(1-K)*OSDFreeCapacity/ TotalFreeCapacity), 所述K为平衡因子, 且0K1, 所述OSDCapacity为所述待分存储节 点的存储容量, 所述OSDFreeCapacity为所述待分存储节点的剩余存储容量, 所述 TotalCapacity为所述待分存储节点所在存储系统中所有存储节点的总存储容量, 所述 TotalFreeCapacity为所述存储系统中所有存储节点的总剩余存储容量。 0008 进一步地, 上述存储容量均衡方法还包括: 。

13、当所述CluserMap刷新时, 重复所述步 骤(3)(6), 所述CluserMap用于保存所述存储系统中各存储节点的存储节点编号OSD_ID、 对应的存储容量和剩余存储容量。 0009 可选地, 所述CluserMap刷新包括: 所述存储系统中各存储节点定时向存储网关发 送所述存储节点的存储节点编号OSD_ID、 对应的存储容量和剩余存储容量; 所述存储网关 说明书 1/8 页 4 CN 110633053 A 4 刷新所述CluserMap中每个所述存储节点的存储节点编号OSD_ID、 对应的存储容量和剩余 存储容量。 0010 进一步地, 所述步骤(4)包括: 根据所述虚拟节点的虚拟节。

14、点编号VNode_ID和所述 待分存储节点的存储节点编号OSD_ID计算生成第一散列值; 将所述第一散列值作为所述虚 拟节点的映射起始位置。 0011 可选地, M与所述存储系统中存储节点的个数之比大于或等于100。 0012 本发明提供的一种对象存储方法, 包括: 接收存储对象, 所述存储对象包括时间信 息、 空间信息和内容信息; 根据所述时间信息和所述空间信息计算生成第二散列值, 所述第 二散列值与上述存储容量均衡方法所述的哈希环中的一个哈希值相等; 在上述存储容量均 衡方法所述的哈希索引记录中查找对应所述第二散列值的所述待分存储节点的存储节点 编号OSD_ID; 将所述内容信息存入所述待。

15、分存储节点的存储节点编号OSD_ID所指的目标存 储节点。 0013 进一步地, 对象存储方法还包括: 将所述内容信息在所述目标存储节点的存储位 置及所述目标存储节点的存储节点编号OSD_ID进行编码, 形成所述存储对象的对象ID。 0014 本发明提供的一种对象存储装置包括: 接收单元, 用于接收存储对象, 所述存储对 象包括时间信息、 空间信息和内容信息; 计算单元, 用于根据所述时间信息和所述空间信息 计算生成第二散列值, 所述第二散列值与存储容量均衡方法所述的哈希环中的一个哈希值 相等; 记录查询单元, 用于在存储容量均衡方法所述的哈希索引记录中查找对应所述第二 散列值的所述待分存储节。

16、点的存储节点编号OSD_ID; 存储单元, 用于将所述内容信息存入 所述待分存储节点的存储节点编号OSD_ID所指的目标存储节点。 0015 进一步地, 对象存储装置还包括: 编码单元, 用于将所述内容信息在所述目标存储 节点的存储位置及所述目标存储节点的存储节点编号OSD_ID进行编码, 形成所述存储对象 的对象ID。 0016 本发明提供的存储容量均衡方法中, 首先形成一个由N个哈希值构成的哈希环, 并 将该哈希环等分为M份, 即M个虚拟节点, 再利用一定方法将这些虚拟节点分配给存储系统 中的每个存储节点, 分配方法依据的是一个存储节点的存储容量、 剩余容量, 以及整个存储 系统中所有存储。

17、节点的总存储容量和总剩余容量, 获得分配给一个存储节点的虚拟节点个 数后, 再将这些虚拟节点散列到哈希环上, 也就是让这些虚拟节点在哈希环上分散开, 然后 将虚拟节点的虚拟节点编号VNode_ID、 对应的哈希值、 虚拟节点的存储节点编号OSD_ID作 为一条哈希索引记录保存下来, 便于根据哈希值可以查询到对应的存储节点, 最后根据这 个方法获得所有的哈希值的哈希索引记录。 由于计算分配给一个存储节点的虚拟节点个数 时, 参考了该存储节点及存储系统中所有存储节点的实时容量信息, 实现了自动均衡各个 存储节点的写入量, 最大限度地保证了各个存储节点的容量均衡。 0017 另外, 对象存储方法和对。

18、象存储装置中通过将接收到的存储对象所携带的时间信 息、 空间信息计算生成散列值, 再利用这个散列值查找由上述存储容量均衡方法形成的哈 希索引记录, 从而获得对应的存储节点的存储节点编号OSD_ID, 进而将存储对象的内容信 息存入指定位置。 由于容量均衡方法可以根据各个存储节点的实时容量, 自动均衡各个存 储节点的写入量, 因此能保证存储对象写入到合适的位置, 且能保证各个存储节点容量均 衡。 说明书 2/8 页 5 CN 110633053 A 5 附图说明 0018 为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍, 显而。

19、易见地, 下面描述中的附图是本发 明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造性劳动性的前提下, 还可以 根据这些附图获得其他的附图。 0019 图1为本发明实施例提供的一种存储容量均衡方法的流程图; 0020 图2为本发明实施中将虚拟节点散列到哈希环上的具体流程图; 0021 图3为本发明实施例提供的一种对象存储方法的流程框图; 0022 图4为图3所示的对象存储方法的流程示意图; 0023 图5为本发明实施例提供的一种对象存储装置的结构框图。 具体实施方式 0024 为使本发明的目的、 技术方案和优点更加清楚, 下面将结合本发明实施例中的附 图, 对本发明实施例中的技术方案。

20、进行清楚、 完整地描述, 显然, 所描述的实施例是本发明 一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有 作出创造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。 0025 为使本发明的技术方案更加清楚, 以下结合附图对本发明的实施例进行详细说 明。 0026 图1为本发明实施例提供的一种存储容量均衡方法的流程图, 如图1所示, 存储容 量均衡方法包括如下步骤: 0027 步骤101、 形成哈希环, 该哈希环由N个哈希值构成。 0028 具体地, 该方法的执行主体可以是存储系统中负责存储控制的存储网关。 N的数值 可根据存储系统总存储容量的。

21、大小进行选择, 在实际应用过程中, 每一个存储对象经过指 定的哈希计算获得的哈希值都能在该哈希环中找到对应的数值, 也就是说, 每一个存储对 象都可以映射到该哈希环的一个哈希值上。 0029 步骤102、 将哈希环划分为M等份, 每等份哈希环形成虚拟节点。 0030 具体地, 虚拟节点VNode包含多个哈希值(N除以M个), 虚拟节点VNode的大小即包 含哈希值的多少可以通过设定M的大小来实现。 0031 步骤103、 根据待分存储节点的存储容量和剩余存储容量、 该待分存储节点所在存 储系统中所有存储节点的总存储容量和总剩余存储容量为该待分存储节点分配X个虚拟节 点。 0032 具体地, 待。

22、分存储节点即存储系统中的一个等待分配虚拟节点的存储节点, 可以 将M个虚拟节点中的X个分配给该待分存储节点, 也就是说, 能映射到这X个虚拟节点所包含 哈希值的存储对象, 都会最终存储在该待分存储节点中。 0033 以下为了表述方便, 将待分存储节点的存储容量和剩余存储容量、 该待分存储节 点所在存储系统中所有存储节点的总存储容量和总剩余存储容量这四个参数分别用字符 串来表示。 OSDCapacity为待分存储节点的存储容量, OSDFreeCapacity为待分存储节点的 剩余存储容量, TotalCapacity为待分存储节点所在存储系统中所有存储节点的总存储容 量, TotalFreeC。

23、apacity为存储系统中所有存储节点的总剩余存储容量。 说明书 3/8 页 6 CN 110633053 A 6 0034 由此可见, 分配的规则依据了OSDCapacity、 OSDFreeCapacity、 TotalCapacity和 TotalFreeCapacity这四个参数。 这里的TotalCapacity是将存储系统中所有存储节点的 OSDCapacity求和后获得的, 同样地, TotalFreeCapacity是将存储系统中所有存储节点的 OSDFreeCapacity求和后获得的。 0035 在存储系统运行过程中, 各个存储节点的存储容量和剩余容量均发生着变化, 在 分。

24、配虚拟节点的过程中考虑存储节点当前存储容量和剩余容量, 通过设置一定的规则, 可 以更合理地使用存储节点的存储容量, 防止给即将写满的存储节点分配太多的虚拟节点。 0036 步骤104、 将X个虚拟节点散列到哈希环上。 0037 具体地, 为了使这X个虚拟节点尽量分散, 需要将它们散列到哈希环上。 0038 步骤105、 形成哈希索引记录, 包括虚拟节点的VNode_ID、 对应的哈希值、 待分存储 节点的OSD_ID。 0039 具体地, 形成哈希索引记录的目的是使得存储对象映射到哈希环的一个哈希值 时, 能根据这个哈希值找到对应的VNode_ID(虚拟节点编号)和OSD_ID(存储节点编号。

25、), 因 此, 每一个哈希值都对应一条哈希索引记录。 0040 步骤106、 存储系统中是否有未分配虚拟节点的存储节点, 如果是执行步骤107, 如 果否则结束。 0041 步骤107、 将未分配虚拟节点的存储节点作为待分存储节点执行步骤103。 0042 具体地, 一个存储系统中包含多个存储节点, 需要为每一个存储节点计算虚拟节 点的分配个数, 并需要将这些分配的虚拟节点在哈希环上散列, 再记录哈希值与VNode_ID、 OSD_ID的对应关系, 直到所有的存储节点都完成这些计算、 散列及记录的过程。 0043 本发明实施例提供的存储容量均衡方法中, 首先形成一个由N个哈希值构成的哈 希环,。

26、 并将该哈希环等分为M份, 即M个虚拟节点, 再利用一定方法将这些虚拟节点分配给存 储系统中的每个存储节点, 分配方法依据的是一个存储节点的存储容量、 剩余容量, 以及整 个存储系统中所有存储节点的总存储容量和总剩余容量, 获得分配给一个存储节点的虚拟 节点个数后, 再将这些虚拟节点散列到哈希环上, 也就是让这些虚拟节点在哈希环上分散 开, 然后将虚拟节点的VNode_ID、 对应的哈希值、 虚拟节点的OSD_ID作为一条哈希索引记录 保存下来, 便于根据哈希值可以查询到对应的存储节点, 最后根据这个方法获得所有的哈 希值的哈希索引记录。 由于计算分配给一个存储节点的虚拟节点个数时, 参考了该。

27、存储节 点及存储系统中所有存储节点的实时容量信息, 实现了自动均衡各个存储节点的写入量, 最大限度地保证了各个存储节点的容量均衡。 0044 另外, 各个存储节点容量不均衡容易造成某些存储节点写满, 需要人工干预对即 将写满的存储节点进行容量迁移, 迁移过程会占用大量的系统资源, 容易导致系统服务能 力的明显降低, 通过上述方法实现了各个存储节点的容量均衡可省掉不必要的人工维护的 成本。 0045 上述实施例提供的存储容量均衡方法中, 步骤103具体可包括: 根据公式为待分存 储节点分配X个虚拟节点, 该公式为: 0046 XM*(K*OSDCapacity/TotalCapacity+(1-。

28、K)*OSDFreeCapacity/ TotalFreeCapacity) 0047 其中, K为平衡因子, 且0K1, OSDCapacity为待分存储节点的存储容量, 说明书 4/8 页 7 CN 110633053 A 7 OSDFreeCapacity为待分存储节点的剩余存储容量, TotalCapacity为待分存储节点所在存 储系统中所有存储节点的总存储容量, TotalFreeCapacity为存储系统中所有存储节点的 总剩余存储容量。 0048 在存储系统运行过程中, OSDCapacity与TotalCapacity之比体现了待分存储节点 容量在所有存储节点总容量中的占比情。

29、况, OSDFreeCapacity与TotalFreeCapacity之比体 现了待分存储节点剩余容量在所有存储节点总剩余容量中的占比情况, K为平衡因子, 为常 数, 通常取值为1/2, 当X的计算需要优先考虑剩余容量时, K的取值小于1/2, 取值越小, 剩余 容量大的待分存储节点分配的虚拟节点越多, 当X的计算需要优先考虑总容量时, K的取值 大于1/2, 取值越大, 容量越大的存储节点分配的虚拟节点越多。 0049 当然, 计算X值的公式不限于此, 本领域技术人员所知的任何可根据OSDCapacity、 OSDFreeCapacity、 TotalCapacity、 TotalFre。

30、eCapacity计算X值的公式均可用于本发明。 0050 上述实施例提供的存储容量均衡方法, 还可以包括: 当CluserMap刷新时, 重复上 述步骤103至步骤107, 其中, CluserMap用于保存存储系统中各存储节点的OSD_ID、 对应的 存储容量和剩余存储容量。 0051 具体地, 随着存入对象、 删除对象操作的不断进行, 存储系统中各个存储节点的剩 余容量是动态变化的, 另外, 存储系统中还会不断地增加新存储节点或者下线一个存储节 点, 这些信息都会在CluserMap这个表中记录, CluserMap会定时刷新, 以保存对应OSD_ID (存储节点编号)的最新的存储容量和。

31、剩余存储容量, 存储节点刷新时间的长短可以根据实 际需要设定。 0052 当CluserMap刷新时, 重复上述步骤103至步骤107, 也就是根据最新的存储容量和 剩余容量, 重新为各个存储节点分配虚拟节点、 散列虚拟节点以及生成哈希索引记录, 使得 虚拟节点的分配能随着存储节点存储容量的变化而变化。 0053 上述方法中, CluserMap刷新的步骤具体可包括: 存储系统中各存储节点定时向存 储网关发送存储节点的OSD_ID、 对应的存储容量和剩余存储容量; 存储网关刷新CluserMap 中每个存储节点的OSD_ID、 对应的存储容量和剩余存储容量。 0054 具体地, 存储网关是存储。

32、系统中负责存储管理的设备, CluserMap由存储网关负责 刷新, 每个存储节点的OSD_ID(存储节点编号)、 存储容量和剩余容量定时会发送给存储网 关, 存储网关将CluserMap中相应的信息替换成收到的最新信息。 0055 上述实施例提供的存储容量均衡方法中, 步骤104, 将X个虚拟节点散列到哈希环 上, 图2为本发明实施中将虚拟节点散列到哈希环上的具体流程图, 如图2所示, 具体可以包 括如下步骤: 0056 步骤1041、 根据虚拟节点的VNode_ID和待分存储节点的OSD_ID计算生成第一散列 值。 0057 具体地, 假设计算出的X个虚拟节点的VNode_ID(虚拟节点编。

33、号)为1X, 待分存储 节点的OSD_ID(存储节点编号)为1, 通过设置适当的哈希算法, 将VNode_ID和OSD_ID代入计 算, 分别计算出1号虚拟节点的第一散列值、 2号虚拟节点的第一散列值、 。 第一散列值 应为哈希环上的一个哈希值。 0058 需要说明的是: 此处的 “第一” 和下述实施例描述的 “第二” , 仅用于使两个 “散列 值” 在名称上相互区别。 说明书 5/8 页 8 CN 110633053 A 8 0059 步骤1042、 将第一散列值作为虚拟节点的映射起始位置。 0060 如上所述, 每个虚拟节点包括多个哈希值, 这多个哈希值中起始的那个哈希值作 为映射起始位置。

34、。 例如, 一个虚拟节点包括5个哈希值, 计算出的第一散列值为1时, 则这个 虚拟节点的映射起始位置是1, 包含1、 2、 3、 4、 5, 这5个哈希值。 0061 当然, 虚拟节点的散列方法不限于此, 可以是本领域技术人员所知的其它散列方 法。 0062 上述实施例中, N和M的选择通常遵循以下原则, 即N的取值远大于M的取值, 目的是 使海量的存储对象被散列得更均匀, 在并发读取时可有效防止存储节点局部热点的形成。 0063 另外, 上述公式中, M与存储系统中存储节点的个数之比可以大于或等于100。 M取 值越大, 该公式所采用的均衡算法的敏感度越高, 均衡算法是指 “XM*(K*OS。

35、DCapacity/ TotalCapacity 0064 +(1-K)*OSDFreeCapacity/TotalFreeCapacity)” 。 如果M取的太小, (K* OSDCapacity/TotalCapacity+(1-K)*OSDFreeCapacity/TotalFreeCapacity)的变化, 不容 易反应到X上。 也就是说, M越大, 均衡算法可调整的粒度越小, 越容易使存储对象散列得更 均匀。 0065 图3为本发明实施例提供的一种对象存储方法的流程框图; 图4为图3所示的对象 存储方法的流程示意图, 如图3和图4所示, 该方法包括如下步骤: 0066 步骤301、 。

36、接收存储对象, 该存储对象包括时间信息、 空间信息和内容信息。 0067 具体地, 存储对象通常都具有一定的业务属性, 比如图像采集装置采集的图片, 包 含有采集时间、 采集地点、 采集内容等属性, 这些图片存储在存储节点后, 供有需要时查询 使用, 查询需求通常也会包含业务属性, 因此, 要求存储对象在存储的时候需要保留业务属 性。 本发明提供接收存储对象的步骤中也接收了该存储对象的时间信息、 空间信息和内容 信息。 该步骤执行主体可以为存储系统中负责存储管理的设备, 如存储网关。 0068 步骤302、 根据时间信息和空间信息计算生成第二散列值, 该第二散列值与上述存 储容量均衡方法的哈希。

37、环中的一个哈希值相等。 0069 具体地, 通过设置散列(哈希)算法, 使得根据时间信息和空间信息计算生成第二 散列值与哈希环中的哈希值相等, 这样, 存储对象通过哈希变换生成对应哈希环中哈希值 的一系列第二散列值。 0070 步骤303、 在上述存储容量均衡方法的哈希索引记录中查找对应第二散列值的待 分存储节点的OSD_ID。 0071 如上述存储容量均衡方法实施例的描述, 每一个待分存储节点会被分配X个虚拟 节点, 这些虚拟节点散列到哈希环上后, 会生成哈希值与待分存储节点OSD_ID对应关系的 哈希索引记录, 通过查询这个记录可以获得对应第二散列值的待分存储节点的OSD_ID(存 储节点。

38、编号)。 0072 步骤304、 将内容信息存入待分存储节点的OSD_ID所指的目标存储节点。 0073 具体地, 把查询到的存储节点编号OSD_ID所指的存储节点作为目标存储节点, 将 接收到的存储对象的内容信息存入该目标存储节点。 实现存储对象存入存储节点的整个过 程。 0074 本发明实施例提供的对象存储方法中, 通过将接收到的存储对象所携带的时间信 说明书 6/8 页 9 CN 110633053 A 9 息、 空间信息计算生成散列值, 再利用这个散列值查找由上述存储容量均衡方法形成的哈 希索引记录, 从而获得对应的存储节点的OSD_ID, 进而将存储对象的内容信息存入指定位 置。 由。

39、于容量均衡方法可以根据各个存储节点的实时容量, 自动均衡各个存储节点的写入 量, 因此能保证存储对象写入到合适的位置, 且能保证各个存储节点容量均衡。 0075 另外, 由于根据时间信息和空间信息计算生成的散列值与哈希环上的一个哈希值 相等, 也就是说, 哈希环上的每个哈希值均与存储对象的时间信息和空间信息相对应, 所以 存储对象可以根据时间信息和空间信息这两个与业务相关的属性进行散列存储。 当遇 到根据时间、 空间属性进行批量查询存储对象时, 由于各个存储节点的存储对象在时间和 空间维度均衡, 能够实现最大限度并发读取各个存储节点, 从而提高查询速度。 0076 上述实施例描述的对象存储方法。

40、还可以包括: 将内容信息在目标存储节点的存储 位置及目标存储节点的OSD_ID进行编码, 形成存储对象的对象ID。 0077 具体地, 存储对象通常以文件的形式存储在存储节点中, 存储位置具体是存储对 象的第一个字节相对于文件头的第一个字节的偏移量。 存储对象存储时, 存储系统中的负 责管理存储的设备, 如存储网关, 就可以获取到这个偏移量。 为了便于对已存入存储节点的 存储对象进行查询操作, 可以将获取的偏移量和目标存储节点的OSD_ID(存储节点编号)进 行编码, 作为存储对象的对象ID。 这样, 在查询该存储对象时, 就可以通过时间信息和空间 信息计算获得第二散列值, 再查哈希索引记录获。

41、得OSD_ID, 最后根据OSD_ID和对象ID获得 存储对象的存储位置, 进而从存储位置获取存储对象。 0078 图5为本发明实施例提供的一种对象存储装置的结构框图, 如图5所示, 该装置包 括: 接收单元41, 用于接收存储对象, 该存储对象包括时间信息、 空间信息和内容信息; 计算 单元42, 用于根据时间信息和空间信息计算生成第二散列值, 该第二散列值与存储容量均 衡方法的哈希环中的一个哈希值相等; 记录查询单元43, 用于在存储容量均衡方法的哈希 索引记录中查找对应第二散列值的待分存储节点的OSD_ID; 存储单元44, 用于将所述内容 信息存入所述待分存储节点的OSD_ID所指的目。

42、标存储节点。 0079 该装置中各单元所执行的方法已经在上述的对象存储方法中进行了详细描述, 在 此不再赘述。 0080 本实施例提供的对象存储装置中, 通过计算单元将接收单元接收到的存储对象所 携带的时间信息、 空间信息计算生成散列值, 记录查询单元再利用这个散列值查找由上述 存储容量均衡方法形成的哈希索引记录, 从而获得对应的存储节点的OSD_ID, 进而存储单 元将存储对象的内容信息存入指定位置。 由于容量均衡方法可以根据各个存储节点的实时 容量, 自动均衡各个存储节点的写入量, 因此能保证存储对象写入到合适的位置, 且能保证 各个存储节点容量均衡。 0081 另外, 由于计算单元根据时。

43、间信息和空间信息计算生成的散列值与哈希环上的一 个哈希值相等, 也就是说, 哈希环上的每个哈希值均与存储对象的时间信息和空间信息相 对应, 所以存储对象可以根据时间信息和空间信息这两个与业务相关的属性进行散列 存储。 当遇到根据时间、 空间属性进行批量查询存储对象时, 由于各个存储节点的存储对象 在时间和空间维度均衡, 能够实现最大限度并发读取各个存储节点, 从而提高查询速度。 0082 上述实施例提供的对象存储装置中还可以包括: 编码单元, 用于将内容信息在目 标存储节点的存储位置及目标存储节点的OSD_ID进行编码, 形成存储对象的对象ID。 说明书 7/8 页 10 CN 1106330。

44、53 A 10 0083 该编码单元所执行的方法在上述对象存储方法实施例中已进行了详细描述, 在此 不再赘述, 该编码单元形成的对象ID, 便于查询存储对象。 0084 最后应说明的是: 以上实施例仅用以说明本发明的技术方案, 而非对其限制; 尽管 参照前述实施例对本发明进行了详细的说明, 本领域的普通技术人员应当理解: 其依然可 以对前述各实施例所记载的技术方案进行修改, 或者对其中部分技术特征进行等同替换; 而这些修改或者替换, 并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。 说明书 8/8 页 11 CN 110633053 A 11 图1 说明书附图 1/3 页 12 CN 110633053 A 12 图2 图3 说明书附图 2/3 页 13 CN 110633053 A 13 图4 图5 说明书附图 3/3 页 14 CN 110633053 A 14 。

展开阅读全文
内容关键字: 存储容量 均衡 方法 对象 存储 装置
关于本文
本文标题:存储容量均衡方法、对象存储方法及装置.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/11126305.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1