[发明专利]一种分布式对象存储中的逻辑卷实现方法有效
| 申请号: | 202010094573.0 | 申请日: | 2020-02-16 |
| 公开(公告)号: | CN111309263B | 公开(公告)日: | 2020-11-24 |
| 发明(设计)人: | 周耀辉;刘露 | 申请(专利权)人: | 西安奥卡云数据科技有限公司 |
| 主分类号: | G06F3/06 | 分类号: | G06F3/06 |
| 代理公司: | 西安维赛恩专利代理事务所(普通合伙) 61257 | 代理人: | 刘春 |
| 地址: | 712000 陕西省西*** | 国省代码: | 陕西;61 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 分布式 对象 存储 中的 逻辑 实现 方法 | ||
1.一种分布式对象存储中的逻辑卷实现方法,其特征在于,按照以下步骤实施:
S1、分布式系统节点的后端磁盘组织形式:
每个节点在用户态将其后端存储磁盘组织成一个大的虚拟设备;
S2、分布式系统逻辑卷的组织形式:
逻辑卷被划分成大小相等的逻辑单元,每个逻辑单元就是一个对象,每个对象对应一个对象元数据,对象元数据唯一确定对象的内容和位置,其为二元组结构包括对象逻辑块号和对象哈希值;
逻辑卷通过默克尔树管理对象元数据,默克尔树包括叶子节点和中间节点,叶子节点用于存储对象的哈希值,叶子节点号为对象的逻辑块号,中间节点用于存储的就是以叶子节点哈希值为内容计算出来的哈希值;
逻辑卷的数据读写请求会先挂载到对应的内核虚拟块设备的等待队列上,用户态的线程会从内核驱动的等待队列上获取io请求,在内核态和用户态之间进行数据传递,在用户态计算出对象的元数据二元组,更新到默克尔树的对应叶子节点上;
对于所述逻辑卷的写操作具体为:
用户态线程实时检测内核虚拟块设备的pending_queue队列上是否有io请求,通过用户态的io请求线程将数据拷贝到用户态,在用户态将逻辑卷数据转成对象,算出逻辑块号和哈希值存储到默克尔树的叶子节点上,再以其哈希值在一致性哈希表中查出对象数据会被存储在分布式集群中的目标节点,通过网络将对象数据发送到目标节点;在目标节点上会生成对象的对象记录,对象记录会记录对象的哈希值、引用计数和物理块号;之后对象会被存储在虚拟设备的后端存储分区中,对象记录会存储在虚拟设备的索引交换分区中。
2.如权利要求1所述的一种分布式对象存储中的逻辑卷实现方法,其特征在于,所述步骤1中虚拟设备的组织形式如下:每个磁盘的头部会被存入固定大小的设备戳信息,用于指定此磁盘是存储系统内的有效磁盘;虚拟设备的实际空间的起始地址在每个磁盘设备戳位置大小的位置处,虚拟设备空间会被划分为三个分区,每个分区都会横向跨所有磁盘。
3.如权利要求2所述的一种分布式对象存储中的逻辑卷实现方法,其特征在于,所述三个分区具体为:
第一个分区虚拟设备分区表,用于记录虚拟设备划分分区的详细情况,位于每个磁盘的设备戳之后;
第二个分区后端存储分区,其大小是虚拟设备的98%,用于存储数据对象,其空间会被划分成大小相等的区块,区块的排序是concat模式;
第三个分区索引交换分区,其大小是虚拟设备的2%,用于存储数据对象的对象记录,其空间被划分成大小相等的块,块的排序是stripe模式。
4.如权利要求1或2所述的一种分布式对象存储中的逻辑卷实现方法,其特征在于,所述步骤2中,逻辑卷在系统中即为内核虚拟块设备,调用内核驱动模块创建逻辑卷,在系统中就会创建出内核虚拟块设备;对逻辑卷的读写就是对内核虚拟块设备的读写,逻辑卷的读写数据就是bio。
5.如权利要求4所述的一种分布式对象存储中的逻辑卷实现方法,其特征在于,所述内核虚拟块设备包括两个队列pending_queue和active_queue;pending_queue队列用来存储虚拟块设备的bio数据包;对内核虚拟块设备读写的时候,bio就会以数据包的形式保存到pending_queue队列中;active_queue队列也是用来存储内核虚拟块设备的bio数据包,当用户态线程从内核态的虚拟块设备获取io请求的时候,将bio数据包从pending_queue队列转移到active_queue队列。
6.如权利要求5所述的一种分布式对象存储中的逻辑卷实现方法,其特征在于,所述bio数据包含内核虚拟块设备的信息、bio、bio在内核虚拟块设备上的地址、bio大小、bio读/写模式以及完成情况。
7.如权利要求1或2所述的一种分布式对象存储中的逻辑卷实现方法,其特征在于,对于所述逻辑卷的读操作具体为:
读请求先到内核态虚拟块设备的pending_queue队列上,通过用户态的io请求线程获取这个读请求,解析出逻辑卷读请求的逻辑块号,在默克尔树中查到逻辑块号对应的对象哈希值,以对象哈希值在一致性哈希表中查出对象数据在分布式集群中的目标节点,通过网络将对象哈希值的读请求发到目标节点,在目标节点上,先从虚拟设备的索引交换分区中找到对象哈希对应的对象记录,解析出对象记录中的物理块号,再以物理块号为地址在虚拟设备的后端存储分区中读出对象数据,之后通过网络传输到逻辑卷所在的节点,将数据从用户态拷贝到内核态的虚拟块设备上。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安奥卡云数据科技有限公司,未经西安奥卡云数据科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010094573.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种贮水罐外壁喷涂设备
- 下一篇:一种动态功耗封顶调控的方法和设备





