快照实现方法及分布式存储集群.pdf

上传人:v**** 文档编号:10195591 上传时间:2021-06-10 格式:PDF 页数:24 大小:789.07KB
收藏 版权申诉 举报 下载
快照实现方法及分布式存储集群.pdf_第1页
第1页 / 共24页
快照实现方法及分布式存储集群.pdf_第2页
第2页 / 共24页
快照实现方法及分布式存储集群.pdf_第3页
第3页 / 共24页
文档描述:

《快照实现方法及分布式存储集群.pdf》由会员分享,可在线阅读,更多相关《快照实现方法及分布式存储集群.pdf(24页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202011025570.8 (22)申请日 2020.09.25 (71)申请人 杭州宏杉科技股份有限公司 地址 310053 浙江省杭州市滨江区西兴街 道阡陌路482号A楼第11层至12层 (72)发明人 兰英苏伟 (74)专利代理机构 北京博思佳知识产权代理有 限公司 11415 代理人 杨春香 (51)Int.Cl. G06F 16/11(2019.01) G06F 16/182(2019.01) G06F 3/06(2006.01) (54)发明名称 快照实现方法及分布。

2、式存储集群 (57)摘要 本申请提供一种快照实现方法及分布式存 储集群。 集群节点针对快照前后为同一逻辑区间 分配的不同Segment, 指定该不同Segment对应数 据存储到同一磁盘。 并向该磁盘对应磁盘管理模 块通告该不同Segment之间的依赖关系。 磁盘管 理模块根据本地记录的各Segment之间的依赖关 系以及各Segment与Block的映射关系, 处理该逻 辑区间的IO请求。 本申请不需要跨磁盘处理同一 逻辑区间的IO请求, 可有效提升IO处理性能, 且 可减轻集群节点的内存开销, 减轻集群元数据服 务器的负载压力。 权利要求书3页 说明书14页 附图6页 CN 1120522。

3、18 A 2020.12.08 CN 112052218 A 1.一种快照实现方法, 其特征在于, 应用于分布式存储集群, 所述分布式存储集群配置 有至少一个LUN, 每一个LUN按照预设Segment大小划分为多个逻辑区间, 每一个LUN对应一 个映射表, LUN的映射表用于记录LUN中已映射的逻辑区间与Segment的标识的映射关系以 及该逻辑区间对应的Snap标志, 所述Snap标志用于指示下次向该逻辑区间写入数据时是否 分配新的Segment; 所述分布式存储集群包括至少一个集群节点, 每一个集群节点包括至少 一块用于存储数据的磁盘, 每一个集群节点针对本节点上每一块磁盘部署对应的磁盘。

4、管理 模块, 每一块磁盘按照预设Block大小划分为多块Block, 所述Block大小小于所述Segment 大小, 每一个Segment按照预设快照粒度大小划分为多个子逻辑区间, 所述快照粒度大小等 于所述Block大小, 每一个Segment对应一个映射表, Segment的映射表用于记录Segment中 已映射的子逻辑区间与Block的标识的映射关系, 所述分布式存储集群还包括Segment管理 模块, 所述方法包括: 接收到针对目标LUN的写请求的目标集群节点确定所述写请求在所述目标LUN中对应 的至少一个目标逻辑区间, 并将所述写请求拆分成针对每一个目标逻辑区间的子写请求; 针对每。

5、一个目标逻辑区间执行如下处理: 所述目标集群节点从所述目标LUN的映射表中, 查询与当前目标逻辑区间对应的第一 Segment的标识以及Snap标志; 如果所述当前目标逻辑区间的Snap标志指示需要分配新的Segment, 则所述目标集群 节点向所述Segment管理模块发送用于请求分配Segment的分配请求; 所述目标集群节点接收所述Segment管理模块基于所述分配请求返回的分配响应, 所 述分配响应包括分配的第二Segment的标识, 所述第二Segment不同于所述第一Segment; 所述目标集群节点从已记录的Segment的标识与存储Segment对应数据的磁盘的标识 的对应关系。

6、中, 查找与所述第一Segment的标识对应的目标磁盘的标识; 所述目标集群节点向所述目标磁盘对应的目标磁盘管理模块发送针对所述第二 Segment的目标子写请求, 所述目标子写请求包括所述第一Segment的标识; 所述目标磁盘管理模块建立所述第二Segment的标识与所述第一Segment的标识的依 赖关系, 并为所述目标子写请求在所述第二Segment中对应的各第一子逻辑区间分配对应 的目标Block, 将所述各第一子逻辑区间与对应目标Block的标识的映射关系记录到所述第 二Segment对应的映射表中; 在确定所述各第一子逻辑区间中存在需要回读数据的至少一个第二子逻辑区间时, 所 述。

7、目标磁盘管理模块根据已记录的Segment之间的依赖关系, 顺序遍历各Segment对应的映 射表, 根据遍历结果获取各第二子逻辑区间对应的回读数据; 所述目标磁盘管理模块将所述回读数据与所述目标子写请求中的数据合并, 写入所述 第二Segment对应的各目标Block中。 2.如权利要求1所述的方法, 其特征在于, 所述分布式存储集群还包括集群元数据服务 器, 所述目标集群节点接收所述Segment管理模块基于所述分配请求返回的分配响应后, 所 述方法还包括: 所述目标集群节点将所述目标LUN的映射表中的所述目标逻辑区间与所述第一 Segment的标识的映射关系, 更新为所述目标逻辑区间与所。

8、述第二Segment标识的映射关 系; 权利要求书 1/3 页 2 CN 112052218 A 2 并将所述目标逻辑区间的Snap标志更新为指示下次写入时不分配Segment; 将更新后的映射关系以及Snap标志存储至所述集群元数据服务器。 3.如权利要求1所述的方法, 其特征在于, 所述分布式存储集群还包括集群元数据服务 器, 所述目标集群节点从已记录的Segment的标识与用于存储Segment对应数据的磁盘的标 识的映射关系中, 查找与所述第一Segment的标识对应的目标磁盘的标识之后, 所述方法还 包括: 所述目标集群节点建立所述第二Segment的标识与所述目标磁盘的标识的映射关。

9、系, 并将该映射关系存储至所述集群元数据服务器。 4.如权利要求1所述的方法, 其特征在于, 所述目标磁盘管理模块将所述各目标子逻辑 区间与对应目标Block的标识的映射关系记录到所述第二Segment对应的映射表中之后, 所 述方法还包括: 所述目标磁盘管理模块将所述第二Segment的标识与所述第一Segment的标识的依赖 关系, 以及所述第二Segment对应的映射表存储至所述目标磁盘。 5.如权利要求1所述的方法, 其特征在于, 所述顺序遍历各Segment对应的映射表, 根据 遍历结果获取各第二子逻辑区间对应的回读数据, 包括: 针对当前遍历的映射表, 如果该映射表中存在所述第二子。

10、逻辑区间与Block的标识的 映射关系, 则读取该第二子逻辑区间对应的Block中的数据作为回读数据; 如果遍历的所有映射表中均不存在所述第二子逻辑区间与Block的标识的映射关系, 则将所述回读数据填0。 6.一种分布式存储集群, 其特征在于, 所述分布式存储集群配置有至少一个LUN, 每一 个LUN按照预设Segment大小划分为多个逻辑区间, 每一个LUN对应一个映射表, LUN的映射 表用于记录LUN中已映射的逻辑区间与Segment的标识的映射关系以及该逻辑区间对应的 Snap标志, 所述Snap标志用于指示下次向该逻辑区间写入数据时是否分配新的Segment; 所 述分布式存储集群。

11、包括至少一个集群节点, 每一个集群节点包括至少一块用于存储数据的 磁盘, 每一个集群节点针对本节点上每一块磁盘部署对应的磁盘管理模块, 每一块磁盘按 照预设Block大小划分为多块Block, 所述Block大小小于所述Segment大小, 每一个Segment 按照预设快照粒度大小划分为多个子逻辑区间, 所述快照粒度大小等于所述Block大小, 每 一个Segment对应一个映射表, Segment的映射表用于记录Segment中已映射的子逻辑区间 与Block的标识的映射关系, 所述分布式存储集群还包括Segment管理模块, 其中: 目标集群节点, 用于在接收到针对目标LUN的写请求时,。

12、 确定所述写请求在所述目标 LUN中对应的至少一个目标逻辑区间, 并将所述写请求拆分成针对每一个目标逻辑区间的 子写请求; 针对每一个目标逻辑区间执行如下处理: 从所述目标LUN的映射表中, 查询与当 前目标逻辑区间对应的第一Segment的标识以及Snap标志; 如果所述当前目标逻辑区间的 Snap标志指示需要分配新的Segment, 则向所述Segment管理模块发送用于请求分配 Segment的分配请求; 接收所述Segment管理模块基于所述分配请求返回的分配响应, 所述 分配响应包括分配的第二Segment的标识, 所述第二Segment不同于所述第一Segment; 从已 记录的S。

13、egment的标识与存储Segment对应数据的磁盘的标识的对应关系中, 查找与所述第 一Segment的标识对应的目标磁盘的标识; 向所述目标磁盘对应的目标磁盘管理模块发送 针对所述第二Segment的目标子写请求, 所述目标子写请求包括所述第一Segment的标识; 权利要求书 2/3 页 3 CN 112052218 A 3 所述目标磁盘管理模块, 用于建立所述第二Segment的标识与所述第一Segment的标识 的依赖关系, 并为所述目标子写请求在所述第二Segment中对应的各第一子逻辑区间分配 对应的目标Block, 将所述各第一子逻辑区间与对应目标Block的标识的映射关系记录。

14、到所 述第二Segment对应的映射表中; 在确定所述各第一子逻辑区间中存在需要回读数据的至 少一个第二子逻辑区间时, 根据已记录的Segment之间的依赖关系, 顺序遍历各Segment对 应的映射表, 根据遍历结果获取各第二子逻辑区间对应的回读数据; 将所述回读数据与所 述目标子写请求中的数据合并, 写入所述第二Segment对应的各目标Block中。 7.如权利要求6所述的集群, 其特征在于, 所述分布式存储集群还包括集群元数据服务 器; 所述目标集群节点, 还用于将所述目标LUN的映射表中的所述目标逻辑区间与所述第 一Segment的标识的映射关系, 更新为所述目标逻辑区间与所述第二S。

15、egment标识的映射关 系; 并将所述目标逻辑区间的Snap标志更新为指示下次写入时不分配Segment; 将更新后的 映射关系以及Snap标志存储至所述集群元数据服务器。 8.如权利要求6所述的集群, 其特征在于, 所述分布式存储集群还包括集群元数据服务 器; 所述目标集群节点, 还用于建立所述第二Segment的标识与所述目标磁盘的标识的映 射关系, 并将该映射关系存储至所述集群元数据服务器。 9.如权利要求6所述的集群, 其特征在于: 所述目标磁盘管理模块, 还用于将所述第二Segment的标识与所述第一Segment的标识 的依赖关系, 以及所述第二Segment对应的映射表存储至所。

16、述目标磁盘。 10.如权利要求6所述的集群, 其特征在于, 所述目标磁盘管理模块顺序遍历各Segment 对应的映射表, 根据遍历结果获取各第二子逻辑区间对应的回读数据, 包括: 针对当前遍历的映射表, 如果该映射表中存在所述第二子逻辑区间与Block的标识的 映射关系, 则读取该第二子逻辑区间对应的Block中的数据作为回读数据; 如果遍历的所有映射表中均不存在所述第二子逻辑区间与Block的标识的映射关系, 则将所述回读数据填0。 权利要求书 3/3 页 4 CN 112052218 A 4 快照实现方法及分布式存储集群 技术领域 0001 本申请涉及存储技术领域, 尤其涉及一种快照实现方。

17、法及分布式存储集群。 背景技术 0002 快照(Snapshot)通常指针对指定数据集合的一个完全可用拷贝, 该拷贝包括相应 数据在拷贝时间点的映像。 0003 在分布式存储集群中, 通常以逻辑单元号(Logical Unit Number, LUN)为单位创 建快照。 每一个LUN按照预设Segment大小(比如, 256MB)划分为多个逻辑区间。 每一个逻辑 区间在发生实际写入时被映射到Segment。 每一个Segment按照快照粒度大小(比如, 64KB) 划分为多个子逻辑区间。 每一个Segment对应一个写入位图。 写入位图中的每一位对应 Segment中的一个子逻辑区间, 用于标。

18、识对应子逻辑区间是否已写入数据。 0004 集群节点在内存中组织各Segment对应的写入位图。 随着写入数据量的不断增加, 分配的Segment越来越多, 内存需要维护的写入位图的数量也随之增多, 这将极大消耗集群 节点的内存资源。 且在写入过程中不断更新的写入位图需要存储到集群元数据服务器中, 这在一定程度上导致IO处理延时, 同时, 增加集群元数据服务器的负载压力。 0005 此外, 由于创建快照前后同一逻辑区间被映射到不同Segment, 而不同Segment的 数据往往被指定存储到不同磁盘, 这导致后续针对该逻辑区间的访问, 需要跨磁盘操作, 影 响IO处理性能。 发明内容 0006。

19、 有鉴于此, 本申请提出一种快照实现方法及分布式存储集群, 用以减少内存开销, 减轻集群元数据服务器的负载压力, 同时, 可提升集群的IO处理性能。 0007 为实现上述申请目的, 本申请提供了如下技术方案: 0008 第一方面, 本申请提供一种快照实现方法, 所述分布式存储集群配置有至少一个 LUN, 每一个LUN按照预设Segment大小划分为多个逻辑区间, 每一个LUN对应一个映射表, LUN的映射表用于记录LUN中已映射的逻辑区间与Segment的标识的映射关系以及该逻辑区 间对应的Snap标志, 所述Snap标志用于指示下次向该逻辑区间写入数据时是否分配新的 Segment; 所述分。

20、布式存储集群包括至少一个集群节点, 每一个集群节点包括至少一块用于 存储数据的磁盘, 每一个集群节点针对本节点上每一块磁盘部署对应的磁盘管理模块, 每 一块磁盘按照预设Block大小划分为多块Block, 所述Block大小小于所述Segment大小, 每 一个Segment按照预设快照粒度大小划分为多个子逻辑区间, 所述快照粒度大小等于所述 Block大小, 每一个Segment对应一个映射表, Segment的映射表用于记录Segment中已映射 的子逻辑区间与Block的标识的映射关系, 所述分布式存储集群还包括Segment管理模块, 所述方法包括: 0009 接收到针对目标LUN的写。

21、请求的目标集群节点确定所述写请求在所述目标LUN中 对应的至少一个目标逻辑区间, 并将所述写请求拆分成针对每一个目标逻辑区间的子写请 说明书 1/14 页 5 CN 112052218 A 5 求; 0010 针对每一个目标逻辑区间执行如下处理: 0011 所述目标集群节点从所述目标LUN的映射表中, 查询与当前目标逻辑区间对应的 第一Segment的标识以及Snap标志; 0012 如果所述当前目标逻辑区间的Snap标志指示需要分配新的Segment, 则所述目标 集群节点向所述Segment管理模块发送用于请求分配Segment的分配请求; 0013 所述目标集群节点接收所述Segment。

22、管理模块基于所述分配请求返回的分配响 应, 所述分配响应包括分配的第二Segment的标识, 所述第二Segment不同于所述第一 Segment; 0014 所述目标集群节点从已记录的Segment的标识与存储Segment对应数据的磁盘的 标识的对应关系中, 查找与所述第一Segment的标识对应的目标磁盘的标识; 0015 所述目标集群节点向所述目标磁盘对应的目标磁盘管理模块发送针对所述第二 Segment的目标子写请求, 所述目标子写请求包括所述第一Segment的标识; 0016 所述目标磁盘管理模块建立所述第二Segment的标识与所述第一Segment的标识 的依赖关系, 并为所。

23、述目标子写请求在所述第二Segment中对应的各第一子逻辑区间分配 对应的目标Block, 将所述各第一子逻辑区间与对应目标Block的标识的映射关系记录到所 述第二Segment对应的映射表中; 0017 在确定所述各第一子逻辑区间中存在需要回读数据的至少一个第二子逻辑区间 时, 所述目标磁盘管理模块根据已记录的Segment之间的依赖关系, 顺序遍历各Segment对 应的映射表, 根据遍历结果获取各第二子逻辑区间对应的回读数据; 0018 所述目标磁盘管理模块将所述回读数据与所述目标子写请求中的数据合并, 写入 所述第二Segment对应的各目标Block中。 0019 可选的, 所述分。

24、布式存储集群还包括集群元数据服务器, 所述目标集群节点接收 所述Segment管理模块基于所述分配请求返回的分配响应后, 所述方法还包括: 0020 所述目标集群节点将所述目标LUN的映射表中的所述目标逻辑区间与所述第一 Segment的标识的映射关系, 更新为所述目标逻辑区间与所述第二Segment标识的映射关 系; 0021 并将所述目标逻辑区间的Snap标志更新为指示下次写入时不分配Segment; 0022 将更新后的映射关系以及Snap标志存储至所述集群元数据服务器。 0023 可选的, 所述分布式存储集群还包括集群元数据服务器, 所述目标集群节点从已 记录的Segment的标识与用。

25、于存储Segment对应数据的磁盘的标识的映射关系中, 查找与所 述第一Segment的标识对应的目标磁盘的标识之后, 所述方法还包括: 0024 所述目标集群节点建立所述第二Segment的标识与所述目标磁盘的标识的映射关 系, 并将该映射关系存储至所述集群元数据服务器。 0025 可选的, 所述目标磁盘管理模块将所述各目标子逻辑区间与对应目标Block的标 识的映射关系记录到所述第二Segment对应的映射表中之后, 所述方法还包括: 0026 所述目标磁盘管理模块将所述第二Segment的标识与所述第一Segment的标识的 依赖关系, 以及所述第二Segment对应的映射表存储至所述目。

26、标磁盘。 0027 可选的, 所述顺序遍历各Segment对应的映射表, 根据遍历结果获取各第二子逻辑 说明书 2/14 页 6 CN 112052218 A 6 区间对应的回读数据, 包括: 0028 针对当前遍历的映射表, 如果该映射表中存在所述第二子逻辑区间与Block的标 识的映射关系, 则读取该第二子逻辑区间对应的Block中的数据作为回读数据; 0029 如果遍历的所有映射表中均不存在所述第二子逻辑区间与Block的标识的映射关 系, 则将所述回读数据填0。 0030 第二方面, 本申请提供一种分布式存储集群, 所述分布式存储集群配置有至少一 个LUN, 每一个LUN按照预设Seg。

27、ment大小划分为多个逻辑区间, 每一个LUN对应一个映射表, LUN的映射表用于记录LUN中已映射的逻辑区间与Segment的标识的映射关系以及该逻辑区 间对应的Snap标志, 所述Snap标志用于指示下次向该逻辑区间写入数据时是否分配新的 Segment; 所述分布式存储集群包括至少一个集群节点, 每一个集群节点包括至少一块用于 存储数据的磁盘, 每一个集群节点针对本节点上每一块磁盘部署对应的磁盘管理模块, 每 一块磁盘按照预设Block大小划分为多块Block, 所述Block大小小于所述Segment大小, 每 一个Segment按照预设快照粒度大小划分为多个子逻辑区间, 所述快照粒度。

28、大小等于所述 Block大小, 每一个Segment对应一个映射表, Segment的映射表用于记录Segment中已映射 的子逻辑区间与Block的标识的映射关系, 所述分布式存储集群还包括Segment管理模块, 其中: 0031 目标集群节点, 用于在接收到针对目标LUN的写请求时, 确定所述写请求在所述目 标LUN中对应的至少一个目标逻辑区间, 并将所述写请求拆分成针对每一个目标逻辑区间 的子写请求; 针对每一个目标逻辑区间执行如下处理: 从所述目标LUN的映射表中, 查询与 当前目标逻辑区间对应的第一Segment的标识以及Snap标志; 如果所述当前目标逻辑区间 的Snap标志指示。

29、需要分配新的Segment, 则向所述Segment管理模块发送用于请求分配 Segment的分配请求; 接收所述Segment管理模块基于所述分配请求返回的分配响应, 所述 分配响应包括分配的第二Segment的标识, 所述第二Segment不同于所述第一Segment; 从已 记录的Segment的标识与存储Segment对应数据的磁盘的标识的对应关系中, 查找与所述第 一Segment的标识对应的目标磁盘的标识; 向所述目标磁盘对应的目标磁盘管理模块发送 针对所述第二Segment的目标子写请求, 所述目标子写请求包括所述第一Segment的标识; 0032 所述目标磁盘管理模块, 用于。

30、建立所述第二Segment的标识与所述第一Segment的 标识的依赖关系, 并为所述目标子写请求在所述第二Segment中对应的各第一子逻辑区间 分配对应的目标Block, 将所述各第一子逻辑区间与对应目标Block的标识的映射关系记录 到所述第二Segment对应的映射表中; 在确定所述各第一子逻辑区间中存在需要回读数据 的至少一个第二子逻辑区间时, 根据已记录的Segment之间的依赖关系, 顺序遍历各 Segment对应的映射表, 根据遍历结果获取各第二子逻辑区间对应的回读数据; 将所述回读 数据与所述目标子写请求中的数据合并, 写入所述第二Segment对应的各目标Block中。 0。

31、033 可选的, 所述分布式存储集群还包括集群元数据服务器; 0034 所述目标集群节点, 还用于将所述目标LUN的映射表中的所述目标逻辑区间与所 述第一Segment的标识的映射关系, 更新为所述目标逻辑区间与所述第二Segment标识的映 射关系; 并将所述目标逻辑区间的Snap标志更新为指示下次写入时不分配Segment; 将更新 后的映射关系以及Snap标志存储至所述集群元数据服务器。 0035 可选的, 所述分布式存储集群还包括集群元数据服务器; 说明书 3/14 页 7 CN 112052218 A 7 0036 所述目标集群节点, 还用于建立所述第二Segment的标识与所述目标。

32、磁盘的标识 的映射关系, 并将该映射关系存储至所述集群元数据服务器。 0037 可选的, 所述目标磁盘管理模块, 还用于将所述第二Segment的标识与所述第一 Segment的标识的依赖关系, 以及所述第二Segment对应的映射表存储至所述目标磁盘。 0038 可选的, 所述目标磁盘管理模块顺序遍历各Segment对应的映射表, 根据遍历结果 获取各第二子逻辑区间对应的回读数据, 包括: 0039 针对当前遍历的映射表, 如果该映射表中存在所述第二子逻辑区间与Block的标 识的映射关系, 则读取该第二子逻辑区间对应的Block中的数据作为回读数据; 0040 如果遍历的所有映射表中均不存。

33、在所述第二子逻辑区间与Block的标识的映射关 系, 则将所述回读数据填0。 0041 由以上描述可以看出, 本申请实施例中, 集群节点针对快照前后为同一逻辑区间 分配的不同Segment, 指定该不同Segment对应数据存储到同一磁盘。 并向该磁盘对应磁盘 管理模块通告该不同Segment之间的依赖关系。 磁盘管理模块根据本地记录的各Segment之 间的依赖关系以及各Segment到Block的映射关系, 处理该逻辑区间的IO请求。 即, 在同一磁 盘内完成针对同一逻辑区间的IO操作, 不再需要跨磁盘操作, 因此, 可有效提升IO处理性 能。 且处理过程中不再需要维护以及存储写入位图, 。

34、因此, 可减轻集群节点的内存开销, 减 轻集群元数据服务器的负载压力。 附图说明 0042 为了更清楚地说明本申请实施例中的技术方案, 下面将对实施例描述中所需要使 用的附图作简单地介绍, 显而易见地, 下面描述中的附图仅仅是本申请的一些实施例, 对于 本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得其他 的附图。 0043 图1是示例性示出的一分布式存储集群的示意图; 0044 图2是示例性示出的SNAP1在分布式存储集群中的映射示意图; 0045 图3是示例性示出的LUN1在分布式存储集群中的映射示意图; 0046 图4是本申请实施例示出的一种快照实现方法流程。

35、图; 0047 图5是本申请实施例示出的LUN1在分布式存储集群中的映射示意图; 0048 图6是本申请实施例示出的LUN1在分布式存储集群中的映射示意图。 具体实施方式 0049 这里将详细地对示例性实施例进行说明, 其示例表示在附图中。 下面的描述涉及 附图时, 除非另有表示, 不同附图中的相同数字表示相同或相似的要素。 以下示例性实施例 中所描述的实施方式并不代表与本申请相一致的所有实施方式。 0050 在本申请实施例使用的术语是仅仅出于描述特定实施例的目的, 而非旨在限制本 申请实施例。 在本申请实施例中所使用的单数形式的 “一种” 、“所述” 和 “该” 也旨在包括多 数形式, 除非。

36、上下文清楚地表示其他含义。 还应当理解, 本文中使用的术语 “和/或” 是指并 包含一个或多个相关联的列出项目的任何或所有可能组合。 0051 应当理解, 尽管在本申请实施例可能采用术语第一、 第二、 第三等来描述各种信 说明书 4/14 页 8 CN 112052218 A 8 息, 但这些信息不应限于这些术语。 这些术语仅用来将同一类型的信息彼此区分开。 例如, 在不脱离本申请实施例范围的情况下, 协商信息也可以被称为第二信息, 类似地, 第二信息 也可以被称为协商信息。 取决于语境, 如在此所使用的词语 “如果” 可以被解释成为 “在 时” 或 “当时” 或 “响应于确定” 。 0052。

37、 分布式存储集群通常包括多台服务器(亦称为集群节点)。 每一个集群节点包括至 少一块用于存储数据的磁盘(亦称为数据盘)。 以下描述中若无特殊说明, 磁盘均指数据盘。 0053 用户基于LUN访问集群中各集群节点上的存储资源。 为了避免人为误操作或软件 故障导致LUN中数据被损坏或丢失, 可采用快照技术保存LUN在某一时刻的数据。 0054 参见图1, 为示例性示出的一分布式存储集群的示意图。 为了简化说明, 仅示出该 分布式存储集群包括的2个集群节点(分别记为Server1和Server2)以及1个LUN(记为 LUN1)。 其中, Server1包括2块用于存储数据的磁盘, 分别记为OSD1。

38、和OSD2; Server2包括2块 用于存储数据的磁盘, 分别记为OSD3和OSD4。 0055 LUN1按照预设Segment大小(256MB)划分为多个逻辑区间; OSD按照预设Block大小 (256MB)划分为多块Block。 0056 分布式存储集群天然支持精简配置, 随用随给。 即, 在实际写入过程中, 为LUN分配 真实的物理资源, 完成从逻辑资源到物理资源的映射。 该映射通常包括LUN的逻辑区间到 Segment(可缩写为Seg)的映射, 以及Segment到Block(可缩写为Blk)的映射, 且上述映射关 系均存储至集群元数据服务器。 0057 如图1所示, LUN1的逻。

39、辑区间 【0, 256MB】 内已写入数据块A和数据块C, 逻辑区间 【1GB, 1GB+256MB】 内已写入数据块B, 且逻辑区间 【0, 256MB】 已映射到Seg1, 逻辑区间 【1GB, 1GB+256MB】 已映射到Seg2, 则当前LUN1对应的映射表可表示为: 0058 LUN10:Seg1; 1GB:Seg2 0059 即, 该映射表中包括两个已映射逻辑区间的映射关系。 其中,“0” 为逻辑区间 【0, 256MB】 的起始地址;“1GB” 为逻辑区间 【1GB, 1GB+256MB】 的起始地址。 本申请实施例利用逻 辑区间的起始地址标识对应的逻辑区间。 0060 此外,。

40、 如图1所示, Seg1映射到OSD1的Blk8, Seg2映射到OSD3的Blk3, 则Seg1、 Seg2 对应的映射关系可分别表示为: 0061 Seg1OSD1:Blk8 0062 Seg2OSD3:Blk3 0063 即, Seg1对应数据存储在OSD1的Blk8中; Seg2对应数据存储在OSD3的Blk3中。 0064 为了实现分布式存储集群的快照功能, 通常在LUN的映射表中引入Snap标志, 该 Snap标志用于指示在下次向已映射逻辑区间中写入数据时是否需要分配新的Segment。 参 见如下LUN1的映射表: 0065 LUN10:Seg1:F; 1GB:Seg2:F 00。

41、66 其中,“F” 为逻辑区间 【0, 256MB】 和 【1GB, 1GB+256MB】 的Snap标志, 用于指示下次向 【0, 256MB】 或 【1GB, 1GB+256MB】 中写入数据时, 不需要分配新的Segment。 作为一个示例, 当 Snap标志为 “T” 时, 用于指示下次写入时, 需要分配新的Segment。 0067 在创建LUN1的快照(记为SNAP1)时, 需要拷贝一份LUN1的映射表, 作为SNAP1的映 射表。 该SNAP1的映射表可表示为: 说明书 5/14 页 9 CN 112052218 A 9 0068 SNAP10:Seg1:F; 1GB:Seg2:。

42、F 0069 并修改LUN1映射表中各逻辑区间的Snap标志为T。 修改后, LUN1的映射表可表示 为: 0070 LUN10:Seg1:T; 1GB:Seg2:T 0071 同时, 建立从LUN1到SNAP1的快照链, 该快照链可表示为: 0072 LUN1SNAP1 0073 此时, SNAP1在分布式存储集群中的映射如图2所示。 0074 当再次接收到针对LUN1的写请求时, 获取该写请求包括的待写入数据的起始地址 以及数据大小, 比如, 待写入数据块D的起始地址为0, 数据块大小为32K, 则可确定待写入范 围为 【0, 32KB】 。 0075 根据该待写入范围 【0, 32KB】。

43、 , 可确定此次写请求仅涉及LUN1中的一个逻辑区间 【0, 256MB】 。 0076 根据该逻辑区间的起始地址0, 查询LUN1的映射表, 可知该逻辑区间已映射到 Seg1, 且对应Snap标志为T, 因此, 分配新的Segment, 记为Seg3。 并指定用于存储Seg3对应数 据的Block, 比如, OSD2的Blk10。 建立Seg3到OSD2的Blk10的映射关系, 该映射关系可表示 为: 0077 Seg3OSD2:Blk10 0078 由于逻辑区间 【0, 256MB】 与Segment的映射关系已发生变化, 因此, 需要修改LUN1 映射表中逻辑区间 【0, 256MB】 。

44、的映射关系。 具体为, 将起始地址0与Seg1的映射关系修改为 起始地址0与Seg3的映射关系, 同时, 修改对应Snap标志为F。 修改后, LUN1的映射表可表示 为: 0079 LUN10:Seg3:F; 1GB:Seg2:T 0080 在确定数据块D所需写入的Segment(Seg3)后, 还需确定数据块D在Seg3中具体写 入的子逻辑区间。 0081 这里, 需要说明的是, 由于Segment的粒度较大, 通常引入较小的快照粒度, 比如, 64KB。 将每一个Segment按照较小的快照粒度划分为多个子逻辑区间(亦可称为快照粒度区 间), 比如,【0, 64KB】 、【64KB, 1。

45、28KB】 、【128KB, 192KB】 、【192KB, 256KB】 , 以此类推。 0082 根据数据块D的写入范围 【0, 32KB】 以及预先划分的各子逻辑区间的地址范围可 知, 该数据块D需要写入Seg3的子逻辑区间 【0, 64KB】 。 0083 但由于数据块D的大小(32KB)小于一个子逻辑区间(64KB)的大小, 因此, 需要回读 Seg3中该子逻辑区间 【0, 64KB】 的数据。 0084 在回读时, 需要查询Seg3对应的写入位图(bitmap)。 0085 这里, 需要说明的是, 每一个已映射的Segment都对应一个写入位图。 写入位图中 的每一位(bit)对应。

46、Segment中的一个子逻辑区间, 用于标识对应子逻辑区间是否写入过数 据。 比如, bit0, 表示对应子逻辑区间未写入过数据; bit1, 表示对应子逻辑区间已写入 过数据。 0086 以图1所示Seg1、 Seg2为例, 数据块A已写入Seg1的子逻辑区间 【0, 64KB】 ; 数据块C 已写入Seg1的子逻辑区间 【64KB, 128KB】 ; 数据块B已写入Seg2的子逻辑区间 【256MB-64KB, 256MB】 (对应LUN1中的 【1GB+256MB-64KB, 1GB+256MB】 ), 则Seg1对应的bitmap可表示为: 说明书 6/14 页 10 CN 11205。

47、2218 A 10 0087 Seg1bitmap:11000000000 0088 即, Seg1的子逻辑区间 【0, 64KB】 和 【64KB, 128KB】 对应bit为1, 表示已写入过数据; 其它子逻辑区间对应bit为0, 表示未写入过数据。 0089 同理, Seg2对应的bitmap可表示为: 0090 Seg2bitmap:00000000001 0091 即, Seg2的最后一个子逻辑区间 【256MB-64KB, 256MB】 对应bit为1, 表示已写入过 数据; 其它子逻辑区间对应bit为0, 表示未写入过数据。 0092 由于Seg3是新分配的Segment, 因此。

48、, 当前Seg3对应的bitmap中各bit均为0, 可表 示为: 0093 Seg3bitmap:00000000000 0094 通过查询该写入位图可知, 子逻辑区间 【0, 64KB】 对应的bit为0, 说明Seg3的子逻 辑区间 【0, 64KB】 未写入过数据, 则通过快照链LUN1SNAP1找到SNAP1对应的映射表。 0095 根据子逻辑区间 【0, 64KB】 的起始地址0, 确定该子逻辑区间所属逻辑区间 【0, 256MB】 , 再根据所属逻辑区间的起始地址0, 从SNAP1对应的映射表中, 找到与逻辑区间 【0, 256MB】 对应的Segment(Seg1)。 0096。

49、 从Seg1对应bitmap中, 查找子逻辑区间 【0, 64KB】 对应的bit。 该bit1, 说明所要 回读的数据位于Seg1的子逻辑区间 【0, 64KB】 。 当前Seg1的子逻辑区间 【0, 64KB】 存储的数据 为数据块A, 则根据已记录的Seg1与OSD1的Blk8的映射关系, 从OSD1的Blk8中读取数据块A。 0097 将数据块A的后32KB数据与数据块D合并, 组成64KB大小的数据块, 写入Seg3的子 逻辑区间 【0, 64KB】 , 并更新Seg3对应的bitmap为: 0098 Seg3bitmap:10000000000 0099 此时, LUN1在分布式存。

50、储集群中的映射如图3所示。 0100 通过上述处理过程可以看出, 在创建快照后, 对Seg1中数据的修改被写入了Seg3 中, 因此, 可避免Seg1中快照数据被覆盖。 即, 实现了分布式存储集群的快照功能。 0101 但是, 该快照实现方法至少存在以下几个问题: 0102 1)每一个Segment对应的写入位图需在内存中组织, 且随着写入数据量的不断增 加, 分配的Segment越来越多, 内存需要维护的写入位图的数量也随之增多, 这将极大消耗 集群节点的内存资源。 且在写入过程中更新的写入位图需要存储至集群元数据服务器, 这 在一定程度上导致IO处理延时, 同时, 增加集群元数据服务器的负。

展开阅读全文
内容关键字: 快照 实现 方法 分布式 存储 集群
关于本文
本文标题:快照实现方法及分布式存储集群.pdf
链接地址: https://www.zhuanlichaxun.net/pdf/10195591.html
点击下载此文档

相关文档

更多
  • 治疗或预防与LRRK2激酶或异常LRRK2突变激酶活性相关疾病的药物.pdf 治疗或预防与LRRK2激酶或异常LRRK2突变激酶活性相关疾病的药物.pdf
  • 遥感图像切片的回滚方法、装置、电子设备及存储介质.pdf 遥感图像切片的回滚方法、装置、电子设备及存储介质.pdf
  • 医疗数据处理设备及医疗数据处理方法.pdf 医疗数据处理设备及医疗数据处理方法.pdf
  • 抗震试验用的隧道衬砌式双反力墙结构装置及制备方法.pdf 抗震试验用的隧道衬砌式双反力墙结构装置及制备方法.pdf
  • 便于清理出风口灰尘的中央空调.pdf 便于清理出风口灰尘的中央空调.pdf
  • 富含花青素的刺葡萄植物提取物制剂及其制备方法.pdf 富含花青素的刺葡萄植物提取物制剂及其制备方法.pdf
  • 直升机可折叠斜梁对接接头设计方法.pdf 直升机可折叠斜梁对接接头设计方法.pdf
  • 微创外科用术后用具清洁消毒装置.pdf 微创外科用术后用具清洁消毒装置.pdf
  • 测试脚本的自动生成方法、自动生成装置及存储介质.pdf 测试脚本的自动生成方法、自动生成装置及存储介质.pdf
  • 复合管双密封双承插结构及复合管.pdf 复合管双密封双承插结构及复合管.pdf
  • 塑料板表面喷漆装置.pdf 塑料板表面喷漆装置.pdf
  • 多缸柴油机线束的防接错方法及防接错结构.pdf 多缸柴油机线束的防接错方法及防接错结构.pdf
  • 具有辅助治疗高血压病作用的中药茶饮及其制备方法.pdf 具有辅助治疗高血压病作用的中药茶饮及其制备方法.pdf
  • 基于虚拟车辆平台的中间件调试方法.pdf 基于虚拟车辆平台的中间件调试方法.pdf
  • 生产母猪全阶段精准饲喂装置.pdf 生产母猪全阶段精准饲喂装置.pdf
  • 基于知识图谱与ScSIFT的融媒体信息获取方法.pdf 基于知识图谱与ScSIFT的融媒体信息获取方法.pdf
  • 便携式电力施工接地装置.pdf 便携式电力施工接地装置.pdf
  • 可弯折的管道接口结构.pdf 可弯折的管道接口结构.pdf
  • 大型客运车用立体车库及停车方法.pdf 大型客运车用立体车库及停车方法.pdf
  • 小儿外科专用手术床.pdf 小儿外科专用手术床.pdf
  • 关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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


    收起
    在线客服
    意见反馈
    返回顶部
    展开
    QQ交谈
    返回顶部

    深圳SEO优化公司哈尔滨网页制作公司成都企业网站建设哪家好和田企业网站建设多少钱肇庆阿里店铺托管推荐许昌网站开发长春企业网站建设台州SEO按效果付费公司湛江百度爱采购推荐武汉关键词按天扣费报价南山网站推广梧州外贸网站制作阿里网络广告推广哪家好观澜设计公司网站哪家好汕尾模板制作推荐保定营销网站多少钱酒泉百姓网标王多少钱北京网站制作设计哪家好黔南优化推荐长沙网站改版报价延安网站优化报价丹东优化公司兰州优秀网站设计多少钱坪地百姓网标王推广雅安网站关键词优化淄博网站优化按天扣费锦州seo网站推广价格伊犁优秀网站设计哪家好南平网站改版和县网站搜索优化公司成都设计公司网站多少钱歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

    深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化