CN111309263B - 一种分布式对象存储中的逻辑卷实现方法 - Google Patents

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

Info

Publication number
CN111309263B
CN111309263B CN202010094573.0A CN202010094573A CN111309263B CN 111309263 B CN111309263 B CN 111309263B CN 202010094573 A CN202010094573 A CN 202010094573A CN 111309263 B CN111309263 B CN 111309263B
Authority
CN
China
Prior art keywords
virtual
kernel
data
logical volume
partition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010094573.0A
Other languages
English (en)
Other versions
CN111309263A (zh
Inventor
周耀辉
刘露
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orca Data Technology Xian Co Ltd
Original Assignee
Orca Data Technology Xian Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orca Data Technology Xian Co Ltd filed Critical Orca Data Technology Xian Co Ltd
Priority to CN202010094573.0A priority Critical patent/CN111309263B/zh
Publication of CN111309263A publication Critical patent/CN111309263A/zh
Application granted granted Critical
Publication of CN111309263B publication Critical patent/CN111309263B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种分布式对象存储中的逻辑卷实现方法,按照以下步骤实施:S1、分布式系统节点的后端磁盘组织形式;S2、分布式系统逻辑卷的组织形式。将逻辑卷在内核态的数据处理转到用户态来操作完成,减轻了内核的处理压力,逻辑卷跨多节点管理后端存储资源的方法,便于扩展。

Description

一种分布式对象存储中的逻辑卷实现方法
【技术领域】
本发明属于信息存储技术领域,具体涉及一种分布式对象存储中的逻辑卷实现方法。
【背景技术】
在存储系统中,逻辑卷(Logical Volume)是由逻辑磁盘形成的虚拟盘,也可称为磁盘分区。逻辑卷是存储系统的一种磁盘管理方式,目的是把硬盘空间从物理硬盘的管理方式中跳出来,进行更方便的统一管理分配,逻辑卷可以使用不联系的硬盘空间也可跨几个硬盘,也可动态扩展逻辑卷的大小。在传统存储系统中,逻辑卷管理都是指的linux的LVM(Logical Volume Manager)逻辑卷管理,其工作原理是逻辑卷是将几个磁盘分区(物理卷Physical volume)组织起来形成一个大的扩展分区(卷组Volume group),该扩展分区不能直接用,需要将其划分成逻辑卷(Logical Volume)才能使用。逻辑卷可以格式化成不同的文件系统,挂载后直接使用,所以逻辑卷是向外提供存储服务的有效途径。
LVM在传统存储DAS(Direct-Attached Storage)、SAN(Storage Area Network)中管理本节点中的存储资源,表现出来优秀的特性。当存储系统发展到了分布式系统的时候,存储节点成百上千,逻辑卷管理需要跨多个节点才管理每个节点上的后端存储资源,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模式。
S2、分布式系统逻辑卷的组织形式:
逻辑卷被划分成大小相等的逻辑单元,每个逻辑单元就是一个对象,每个对象对应一个对象元数据,对象元数据唯一确定对象的内容和位置,其为二元组结构包括对象逻辑块号和对象哈希值;
逻辑卷通过默克尔树管理对象元数据,默克尔树包括叶子节点和中间节点,叶子节点用于存储对象的哈希值,叶子节点号为对象的逻辑块号,中间节点用于存储的就是以叶子节点哈希值为内容计算出来的哈希值;
逻辑卷的数据读写请求会先挂载到对应的内核虚拟块设备的等待队列上,用户态的线程会从内核驱动的等待队列上获取io请求,在内核态和用户态之间进行数据传递,在用户态计算出对象的元数据二元组,更新到默克尔树的对应叶子节点上。
其中,逻辑卷在系统中即为内核虚拟块设备,调用内核驱动模块创建逻辑卷,在系统中就会创建出内核虚拟块设备;对逻辑卷的读写就是对内核虚拟块设备的读写,逻辑卷的读写数据就是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读/写模式以及完成情况。
其中,对于逻辑卷的写操作具体为:用户态线程实时检测内核虚拟块设备的pending_queue队列上是否有io请求,通过用户态的io请求线程将数据拷贝到用户态,在用户态将逻辑卷数据转成对象,算出逻辑块号和哈希值存储到默克尔树的叶子节点上,再以其哈希值在一致性哈希表中查出对象数据会被存储在分布式集群中的目标节点,通过网络将对象数据发送到目标节点;在目标节点上会生成对象的对象记录,对象记录会记录对象的哈希值、引用计数和物理块号;之后对象会被存储在虚拟设备的后端存储分区中,对象记录会存储在虚拟设备的索引交换分区中。
对于所述逻辑卷的读操作具体为:读请求先到内核态虚拟块设备的pending_queue队列上,通过用户态的io请求线程获取这个读请求,解析出逻辑卷读请求的逻辑块号,在默克尔树中查到逻辑块号对应的对象哈希值,以对象哈希值在一致性哈希表中查出对象数据在分布式集群中的目标节点,通过网络将对象哈希值的读请求发到目标节点,在目标节点上,先从虚拟设备的索引交换分区中找到对象哈希对应的对象记录,解析出对象记录中的物理块号,再以物理块号为地址在虚拟设备的后端存储分区中读出对象数据,之后通过网络传输到逻辑卷所在的节点,将数据从户态拷贝到内核态的虚拟块设备上。
实施例:
每个节点都会在用户态将其后端存储磁盘组织成一个大的虚拟设备VirtualDevice。虚拟设备的组织形式如下:每个磁盘的头上都会被存入4KB设备戳DriveStamp信息,用于指定此磁盘是存储系统内的有效磁盘。虚拟设备VirtualDevice的实际空间的起始地址在每个磁盘的4KB的位置处,虚拟设备VirtualDevice空间会被划分为三个分区,每个分区都会横向跨所有磁盘。
第一个分区虚拟设备分区表VirtualDeviceTable大小64KB,用于记录虚拟设备VirtualDevice划分分区的详细情况,位于每个磁盘的设备戳DriveStamp之后;
第二个分区后端存储Backend大小是虚拟设备VirtualDevice的98%,用于存储数据对象object,其空间会被划分成大小相等的extent,extent的排序是concat模式,就是一个磁盘中的extent排序完之后,第二个磁盘extent再紧跟着排序,刷写数据是顺序来访问extent;
第三个分区索引交换IndexSwap大小是虚拟设备的VirtualDevice的2%,用于存储数据对象object的对象记录objectrecord,其空间会被划分成大小相等chunk,chunk的排序是stripe模式,就是分区空间以chunk为单位跨磁盘的条带模式,第一个磁盘的第一个chunk单元访问完成,接着会访问第二个磁盘的第一个chunk单元。其磁盘组织模式图如图1所示。
逻辑卷在系统中就是虚拟块设备,调用内核驱动模块objblk.ko创建逻辑卷LUN,在系统中会出现/dev/obja。对逻辑卷LUN的读写就是对内核中虚拟块设备/dev/obja读写,逻辑卷LUN的读写数据就是/dev/obja的bio。
虚拟块设备/dev/obja会有两个队列:pending_queue和active_queue。pending_queue队列用来存储虚拟块设备/dev/obja的bio数据包,bio数据包包含:虚拟块设备的信息、bio、bio在虚拟块设备上的地址、bio大小、bio读/写模式以及完成情况等信息。当对虚拟块设备/dev/obja读写的时候,bio就会以数据包的形式保存到pending_queue队列中;active_queue队列也是用来存储虚拟块设备/dev/obja的bio数据包,使用场景是当用户态从内核态的虚拟块设备/dev/obja获取io请求的时候,将bio数据包从pending_queue队列转移到active_queue队列。
//bio数据包结构:
Figure BDA0002384899250000081
Figure BDA0002384899250000091
//io请求数据结构:
Figure BDA0002384899250000092
在系统的用户态,有线程一直检测内核驱动模块objblk.ko上是否有io请求,有io请求时候,就会从内核获取io请求信息,之后通过io请求信息将内核中/dev/obja的active_queue上的bio数据包中的数据拷贝到用户态。
在用户态,逻辑卷会按4KB为单位进行划分,每个4KB的数据就是一个object,每个object按照其数据内容通过hash函数算出来一个20位的哈希值SIG,每个object都有一个逻辑块号VBN。所以在逻辑卷中的object有一个二元组元数据object_metadata(SIG,VBN),逻辑卷的大量元数据object_metadata会使用Merkle Tree管理,叶子节点号就是VBN,叶子节点上存储的就是SIG,中间节点存储的就是以其子节点哈希值为内容算出来的哈希值。以此类推,就能算出根节点的哈希值,根节点的哈希值就是逻辑卷的哈希值。
数据先到内核态的/dev/obja的pending_queue队列上,通过用户态的io请求线程将数据拷贝到用户态,在用户态将数据转成object,算出VBN和SIG存储到Merkle Tree的叶子节点上,以SIG在DHT一致性哈希表中查出object数据会被存储在分布式集群中的目标节点,通过网络将object数据发送到目标节点。在目标节点上会生成object的对象记录objectrecord,objectrecord会记录object的哈希值、引用计数、PBN物理块号等信息。之后object会存储在虚拟设备VirtualDevice的Backend分区中,objectrecord会存储在虚拟设备VirtualDevice的IndexSwap分区中。
读请求先到内核态的/dev/obja的pending_queue队列上,通过用户态的io请求线程获取这个读请求,解析出逻辑卷读请求的VBN号,在Merkle Tree中查到VBN对应的SIG,以SIG在DHT一致性哈希表中查出object数据在分布式集群中的目标节点,通过网络将SIG的读请求发到目标节点,在目标节点上,先从虚拟设备VirtualDevice的IndexSwap分区中找到SIG对应的objectrecord,解析出objectrecord中的PBN物理块号,再以PBN地址在虚拟设备VirtualDevice的Backend分区中读出object数据,之后通过网络传输到逻辑卷所在的节点,将数据从户态拷贝到内核态的/dev/obja上。逻辑卷的读写逻辑图如图2所示。
本发明的一种分布式对象存储中的逻辑卷实现方法,提供了一种分布式存储系统中跨多节点管理后端存储资源的方法,将逻辑卷在内核态的数据处理转到用户态来操作完成,减轻了内核的处理压力,逻辑卷跨多节点管理后端存储资源的方法,便于扩展。

Claims (7)

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请求线程获取这个读请求,解析出逻辑卷读请求的逻辑块号,在默克尔树中查到逻辑块号对应的对象哈希值,以对象哈希值在一致性哈希表中查出对象数据在分布式集群中的目标节点,通过网络将对象哈希值的读请求发到目标节点,在目标节点上,先从虚拟设备的索引交换分区中找到对象哈希对应的对象记录,解析出对象记录中的物理块号,再以物理块号为地址在虚拟设备的后端存储分区中读出对象数据,之后通过网络传输到逻辑卷所在的节点,将数据从用户态拷贝到内核态的虚拟块设备上。
CN202010094573.0A 2020-02-16 2020-02-16 一种分布式对象存储中的逻辑卷实现方法 Active CN111309263B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010094573.0A CN111309263B (zh) 2020-02-16 2020-02-16 一种分布式对象存储中的逻辑卷实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010094573.0A CN111309263B (zh) 2020-02-16 2020-02-16 一种分布式对象存储中的逻辑卷实现方法

Publications (2)

Publication Number Publication Date
CN111309263A CN111309263A (zh) 2020-06-19
CN111309263B true CN111309263B (zh) 2020-11-24

Family

ID=71156449

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010094573.0A Active CN111309263B (zh) 2020-02-16 2020-02-16 一种分布式对象存储中的逻辑卷实现方法

Country Status (1)

Country Link
CN (1) CN111309263B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113067849B (zh) * 2021-02-05 2022-05-10 湖南国科亿存信息科技有限公司 基于Glusterfs的网络通信优化方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243334A (zh) * 2015-09-17 2016-01-13 浪潮(北京)电子信息产业有限公司 一种数据存储保护方法与系统
US10091067B2 (en) * 2015-12-04 2018-10-02 International Business Machines Corporation Discovering and publishing device changes in a cloud environment
CN110058822A (zh) * 2019-04-26 2019-07-26 北京计算机技术及应用研究所 一种磁盘阵列横向拓展方法
CN111309523A (zh) * 2020-02-16 2020-06-19 西安奥卡云数据科技有限公司 数据读写方法、数据远程复制方法及装置、分布式存储系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9836229B2 (en) * 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105243334A (zh) * 2015-09-17 2016-01-13 浪潮(北京)电子信息产业有限公司 一种数据存储保护方法与系统
US10091067B2 (en) * 2015-12-04 2018-10-02 International Business Machines Corporation Discovering and publishing device changes in a cloud environment
CN110058822A (zh) * 2019-04-26 2019-07-26 北京计算机技术及应用研究所 一种磁盘阵列横向拓展方法
CN111309523A (zh) * 2020-02-16 2020-06-19 西安奥卡云数据科技有限公司 数据读写方法、数据远程复制方法及装置、分布式存储系统

Also Published As

Publication number Publication date
CN111309263A (zh) 2020-06-19

Similar Documents

Publication Publication Date Title
US11620064B2 (en) Asynchronous semi-inline deduplication
US7676628B1 (en) Methods, systems, and computer program products for providing access to shared storage by computing grids and clusters with large numbers of nodes
US7562200B1 (en) Method, system, apparatus, and computer-readable medium for locking and synchronizing input/output operations in a data storage system
CN101997918B (zh) 异构san环境中的海量存储资源按需分配的实现方法
EP3066553B1 (en) Storage appliance and method thereof for inline deduplication with segmentation
CN106708427A (zh) 一种适用于键值对数据的存储方法
US8326893B2 (en) Allocating data sets to a container data set
CN106570113B (zh) 一种海量矢量切片数据云存储方法及系统
US11822520B2 (en) Freeing pages within persistent memory
CN111324305A (zh) 一种分布式存储系统中数据写入/读取方法
CN111309263B (zh) 一种分布式对象存储中的逻辑卷实现方法
US20170193000A1 (en) Recovering from a pending uncompleted reorganization of a data set
CN107346209A (zh) 一种多磁盘聚合式数据存储系统及其实现方法与应用方法
US11513702B2 (en) Placement of metadata on data storage drives in a first storage enclosure of a data storage system
CN111274259A (zh) 一种分布式存储系统中存储节点的数据更新方法
CN111338569A (zh) 一种基于直接映射的对象存储后端优化方法
US10929032B1 (en) Host hinting for smart disk allocation to improve sequential access performance
US8918621B1 (en) Block address isolation for file systems
CN109960460B (zh) 一种分布式存储系统
CN111831423A (zh) 一种在非易失性内存上实现Redis内存数据库的方法和系统
US11803527B2 (en) Techniques for efficient data deduplication
CN114647388B (zh) 一种分布式块存储系统和管理方法
US20220137823A1 (en) Method and System for Improving Write Performance in a Storage System
US11327664B1 (en) Fast small write forwarding with non-temporal cache memory
CN117873405A (zh) 数据存储方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A method of implementing logical volume in distributed object storage

Effective date of registration: 20221207

Granted publication date: 20201124

Pledgee: Xianyang financing guarantee Limited by Share Ltd.

Pledgor: Xi'an Okayun Data Technology Co.,Ltd.

Registration number: Y2022610000796

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20231206

Granted publication date: 20201124

Pledgee: Xianyang financing guarantee Limited by Share Ltd.

Pledgor: Xi'an Okayun Data Technology Co.,Ltd.

Registration number: Y2022610000796

PC01 Cancellation of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A Logical Volume Implementation Method in Distributed Object Storage

Effective date of registration: 20231211

Granted publication date: 20201124

Pledgee: Xianyang financing guarantee Limited by Share Ltd.

Pledgor: Xi'an Okayun Data Technology Co.,Ltd.

Registration number: Y2023610000758

PE01 Entry into force of the registration of the contract for pledge of patent right