一种分布式对象存储中的逻辑卷实现方法技术

技术编号:24572369 阅读:18 留言:0更新日期:2020-06-20 23:54
本发明专利技术公开了一种分布式对象存储中的逻辑卷实现方法,按照以下步骤实施:S1、分布式系统节点的后端磁盘组织形式;S2、分布式系统逻辑卷的组织形式。将逻辑卷在内核态的数据处理转到用户态来操作完成,减轻了内核的处理压力,逻辑卷跨多节点管理后端存储资源的方法,便于扩展。

Implementation of logical volume in distributed object storage

【技术实现步骤摘要】
一种分布式对象存储中的逻辑卷实现方法
本专利技术属于信息存储
,具体涉及一种分布式对象存储中的逻辑卷实现方法。
技术介绍
在存储系统中,逻辑卷(LogicalVolume)是由逻辑磁盘形成的虚拟盘,也可称为磁盘分区。逻辑卷是存储系统的一种磁盘管理方式,目的是把硬盘空间从物理硬盘的管理方式中跳出来,进行更方便的统一管理分配,逻辑卷可以使用不联系的硬盘空间也可跨几个硬盘,也可动态扩展逻辑卷的大小。在传统存储系统中,逻辑卷管理都是指的linux的LVM(LogicalVolumeManager)逻辑卷管理,其工作原理是逻辑卷是将几个磁盘分区(物理卷Physicalvolume)组织起来形成一个大的扩展分区(卷组Volumegroup),该扩展分区不能直接用,需要将其划分成逻辑卷(LogicalVolume)才能使用。逻辑卷可以格式化成不同的文件系统,挂载后直接使用,所以逻辑卷是向外提供存储服务的有效途径。LVM在传统存储DAS(Direct-AttachedStorage)、SAN(StorageAreaNetwork)中管理本节点中的存储资源,表现出来优秀的特性。当存储系统发展到了分布式系统的时候,存储节点成百上千,逻辑卷管理需要跨多个节点才管理每个节点上的后端存储资源,LVM就已经不合适了。
技术实现思路
本专利技术的目的是提供一种分布式对象存储中的逻辑卷实现方法,旨在解决分布式存储系统中跨多节点管理后端存储资源的方法。本专利技术采用以下技术方案:一种分布式对象存储中的逻辑卷实现方法,按照以下步骤实施:S1、分布式系统节点的后端磁盘组织形式:每个节点在用户态将其后端存储磁盘组织成一个大的虚拟设备;S2、分布式系统逻辑卷的组织形式:逻辑卷被划分成大小相等的逻辑单元,每个逻辑单元就是一个对象,每个对象对应一个对象元数据,对象元数据唯一确定对象的内容和位置,其为二元组结构包括对象逻辑块号和对象哈希值;逻辑卷通过默克尔树管理对象元数据,默克尔树包括叶子节点和中间节点,叶子节点用于存储对象的哈希值,叶子节点号为对象的逻辑块号,中间节点用于存储的就是以叶子节点哈希值为内容计算出来的哈希值;逻辑卷的数据读写请求会先挂载到对应的内核虚拟块设备的等待队列上,用户态的线程会从内核驱动的等待队列上获取io请求,在内核态和用户态之间进行数据传递,在用户态计算出对象的元数据二元组,更新到默克尔树的对应叶子节点上。进一步的,步骤1中虚拟设备的组织形式如下:每个磁盘的头部会被存入固定大小的设备戳信息,用于指定此磁盘是存储系统内的有效磁盘;虚拟设备的实际空间的起始地址在每个磁盘设备戳位置大小的位置处,虚拟设备空间会被划分为三个分区,每个分区都会横向跨所有磁盘。进一步的,三个分区具体为:第一个分区虚拟设备分区表,用于记录虚拟设备划分分区的详细情况,位于每个磁盘的设备戳之后;第二个分区后端存储分区,其大小是虚拟设备的98%,用于存储数据对象,其空间会被划分成大小相等的区块,区块的排序是concat模式;第三个分区索引交换分区,其大小是虚拟设备的2%,用于存储数据对象的对象记录,其空间被划分成大小相等的块,块的排序是stripe模式。进一步的,步骤2中,逻辑卷在系统中即为内核虚拟块设备,调用内核驱动模块创建逻辑卷,在系统中就会创建出内核虚拟块设备;对逻辑卷的读写就是对内核虚拟块设备的读写,逻辑卷的读写数据就是bio。进一步的,所述内核虚拟块设备包括两个队列pending_queue和active_queue;pending_queue队列用来存储虚拟块设备的bio数据包;对内核虚拟块设备读写的时候,bio就会以数据包的形式保存到pending_queue队列中;active_queue队列也是用来存储内核虚拟块设备的bio数据包,当用户态线程从内核态的虚拟块设备获取io请求的时候,将bio数据包从pending_queue队列转移到active_queue队列。进一步的,bio数据包的结构为:bio数据包包含内核虚拟块设备的信息、bio、bio在内核虚拟块设备上的地址、bio大小、bio读/写模式以及完成情况。进一步的,对于所述逻辑卷的写操作具体为:用户态线程实时检测内核虚拟块设备的pending_queue队列上是否有io请求,通过用户态的io请求线程将数据拷贝到用户态,在用户态将逻辑卷数据转成对象,算出逻辑块号和哈希值存储到默克尔树的叶子节点上,再以其哈希值在一致性哈希表中查出对象数据会被存储在分布式集群中的目标节点,通过网络将对象数据发送到目标节点;在目标节点上会生成对象的对象记录,对象记录会记录对象的哈希值、引用计数和物理块号;之后对象会被存储在虚拟设备的后端存储分区中,对象记录会存储在虚拟设备的索引交换分区中。进一步的,对于所述逻辑卷的读操作具体为:读请求先到内核态虚拟块设备的pending_queue队列上,通过用户态的io请求线程获取这个读请求,解析出逻辑卷读请求的逻辑块号,在默克尔树中查到逻辑块号对应的对象哈希值,以对象哈希值在一致性哈希表中查出对象数据在分布式集群中的目标节点,通过网络将对象哈希值的读请求发到目标节点,在目标节点上,先从虚拟设备的索引交换分区中找到对象哈希对应的对象记录,解析出对象记录中的物理块号,再以物理块号为地址在虚拟设备的后端存储分区中读出对象数据,之后通过网络传输到逻辑卷所在的节点,将数据从户态拷贝到内核态的虚拟块设备上。本专利技术的有益效果是:将逻辑卷在内核态的数据处理转到用户态来操作完成,减轻了内核的处理压力,逻辑卷跨多节点管理后端存储资源的方法,便于扩展。【附图说明】图1为本专利技术一种分布式对象存储中的逻辑卷实现方法的磁盘组织模式图;图2为本专利技术一种分布式对象存储中的逻辑卷实现方法的逻辑卷的读写逻辑图。【具体实施方式】下面通过附图和实施例,对本专利技术的技术方案做进一步的详细描述。本专利技术提供了一种分布式对象存储中的逻辑卷实现方法,按照以下步骤实施:S1、分布式系统节点的后端磁盘组织形式:每个节点在用户态将其后端存储磁盘组织成一个大的虚拟设备;其中,虚拟设备的组织形式如下:每个磁盘的头部会被存入固定大小的设备戳信息,用于指定此磁盘是存储系统内的有效磁盘;虚拟设备的实际空间的起始地址在每个磁盘设备戳位置大小的位置处,虚拟设备空间会被划分为三个分区,每个分区都会横向跨所有磁盘。三个分区具体为:第一个分区虚拟设备分区表,用于记录虚拟设备划分分区的详细情况,位于每个磁盘的设备戳之后;第二个分区后端存储分区,其大小是虚拟设备的98%,用于存储数据对象,其空间会被划分成大小相等的区块,区块的排序是concat模式;第三个分区索引交换分区,其大小是虚拟设备的2%,用于存储数据对象的对象记录,其空间被划分成大小相等的块,块的排序是stripe模式。...

【技术保护点】
1.一种分布式对象存储中的逻辑卷实现方法,其特征在于,按照以下步骤实施:/nS1、分布式系统节点的后端磁盘组织形式:/n每个节点在用户态将其后端存储磁盘组织成一个大的虚拟设备;/nS2、分布式系统逻辑卷的组织形式:/n逻辑卷被划分成大小相等的逻辑单元,每个逻辑单元就是一个对象,每个对象对应一个对象元数据,对象元数据唯一确定对象的内容和位置,其为二元组结构包括对象逻辑块号和对象哈希值;/n逻辑卷通过默克尔树管理对象元数据,默克尔树包括叶子节点和中间节点,叶子节点用于存储对象的哈希值,叶子节点号为对象的逻辑块号,中间节点用于存储的就是以叶子节点哈希值为内容计算出来的哈希值;/n逻辑卷的数据读写请求会先挂载到对应的内核虚拟块设备的等待队列上,用户态的线程会从内核驱动的等待队列上获取io请求,在内核态和用户态之间进行数据传递,在用户态计算出对象的元数据二元组,更新到默克尔树的对应叶子节点上。/n

【技术特征摘要】
1.一种分布式对象存储中的逻辑卷实现方法,其特征在于,按照以下步骤实施:
S1、分布式系统节点的后端磁盘组织形式:
每个节点在用户态将其后端存储磁盘组织成一个大的虚拟设备;
S2、分布式系统逻辑卷的组织形式:
逻辑卷被划分成大小相等的逻辑单元,每个逻辑单元就是一个对象,每个对象对应一个对象元数据,对象元数据唯一确定对象的内容和位置,其为二元组结构包括对象逻辑块号和对象哈希值;
逻辑卷通过默克尔树管理对象元数据,默克尔树包括叶子节点和中间节点,叶子节点用于存储对象的哈希值,叶子节点号为对象的逻辑块号,中间节点用于存储的就是以叶子节点哈希值为内容计算出来的哈希值;
逻辑卷的数据读写请求会先挂载到对应的内核虚拟块设备的等待队列上,用户态的线程会从内核驱动的等待队列上获取io请求,在内核态和用户态之间进行数据传递,在用户态计算出对象的元数据二元组,更新到默克尔树的对应叶子节点上。


2.如权利要求1所述的一种分布式对象存储中的逻辑卷实现方法,其特征在于,所述步骤1中虚拟设备的组织形式如下:每个磁盘的头部会被存入固定大小的设备戳信息,用于指定此磁盘是存储系统内的有效磁盘;虚拟设备的实际空间的起始地址在每个磁盘设备戳位置大小的位置处,虚拟设备空间会被划分为三个分区,每个分区都会横向跨所有磁盘。


3.如权利要求2所述的一种分布式对象存储中的逻辑卷实现方法,其特征在于,所述三个分区具体为:
第一个分区虚拟设备分区表,用于记录虚拟设备划分分区的详细情况,位于每个磁盘的设备戳之后;
第二个分区后端存储分区,其大小是虚拟设备的98%,用于存储数据对象,其空间会被划分成大小相等的区块,区块的排序是concat模式;
第三个分区索引交换分区,其大小是虚拟设备的2%,用于存储数据对象的对象记录,其空间被划分成大小相等的块,块的排序是stripe模式。


4.如权利要求1或2所述的一种分布式对象存储中的逻辑卷实现方法,其特征在于,所述步骤2中,逻辑卷在系统中即为内核虚拟块设备,调用内核驱动模块创建逻辑卷,在系统中就会创建出内核虚拟块设备;对逻辑卷的读写就是对内核虚拟块设备的读写,逻辑卷的读写数据就是bio。


5.如权利要求4所述的一种分布...

【专利技术属性】
技术研发人员:周耀辉刘露
申请(专利权)人:西安奥卡云数据科技有限公司
类型:发明
国别省市:陕西;61

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

1