CN107678680A - 分布式块存储系统中纠删码并发io的方法及存储装置 - Google Patents

分布式块存储系统中纠删码并发io的方法及存储装置 Download PDF

Info

Publication number
CN107678680A
CN107678680A CN201710621639.5A CN201710621639A CN107678680A CN 107678680 A CN107678680 A CN 107678680A CN 201710621639 A CN201710621639 A CN 201710621639A CN 107678680 A CN107678680 A CN 107678680A
Authority
CN
China
Prior art keywords
correcting
offset
concurrent
eleting codes
storage system
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.)
Granted
Application number
CN201710621639.5A
Other languages
English (en)
Other versions
CN107678680B (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.)
Shenzhen Lianyungang Technology Co ltd
Original Assignee
SHENZHEN YUNSHU NETWORK TECHNOLOGY 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 SHENZHEN YUNSHU NETWORK TECHNOLOGY Co Ltd filed Critical SHENZHEN YUNSHU NETWORK TECHNOLOGY Co Ltd
Priority to CN201710621639.5A priority Critical patent/CN107678680B/zh
Publication of CN107678680A publication Critical patent/CN107678680A/zh
Application granted granted Critical
Publication of CN107678680B publication Critical patent/CN107678680B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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

本发明公开了一种分布式块存储系统中纠删码并发IO的方法及存储装置,其中,所述分布式块存储系统中纠删码并发IO的方法包括如下步骤:A、前端主机纠删码并行发送IO到存储主机的IO队列中,所述IO包含数据偏移量offset及数据长度length;B、将发送到存储主机的IO根据数据偏移量offset的大小顺序插入到跳表中;C、判断所述IO是否成功插入到跳表中,若是,则把成功插入到跳表中的IO发送到存储主机中存储;若否,则把所述IO插入到等待队列及冲突队列中。本发明所提供的分布式块存储系统中纠删码并发IO的方法,通过将纠删码并发的IO插入到跳表中,保证在并发IO时的数据安全,提高了纠删码的读写能力,同时,也消除了存储主机对序列号的依赖。

Description

分布式块存储系统中纠删码并发IO的方法及存储装置
技术领域
本发明涉及信息存储技术领域,尤其涉及的是一种分布式块存储系统中纠删码并发IO的方法及存储装置。
背景技术
随着信息化时代的来临,全球数据量正处于爆炸式增长的趋势,提高存储系统可靠性以及保障数据的可用性已成为企业的研究重点。
现有的分布式存储系统中,绝大多数是通过多副本技术来提升系统可靠性、可用性以及可扩展性。但是在大数据时代,存储规模越来越大,多副本技术的系统开销将越来越大。相对于多副本技术,纠删码技术具有更高存储效率,并且能降低网络中的数据流量。
但是纠删码在读写时对IO大小要求比较高,需要满条带读写,如果IO大小不能满足条带大小对齐,需要先读取头尾部分数据来补齐条带。而这样一个IO请求就会变成多次IO请求,由于存储后端可能有多个请求是相同的序列号,对基于序列号实现IO同步造成巨大的挑战,造成存储系统的读写性能非常差。
因此,现有技术还有待于改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种分布式块存储系统中纠删码并发IO的方法及存储装置,旨解决现有技术中存储系统的读写性能非常差的问题。
本发明解决技术问题所采用的技术方案如下:
一种分布式块存储系统中纠删码并发IO的方法,其中,所述分布式块存储系统中纠删码并发IO的方法包括如下步骤:
A、前端主机纠删码并行发送IO到存储主机的IO队列中,所述IO包含数据偏移量offset及数据长度length;
B、将发送到存储主机的IO根据数据偏移量offset的大小顺序插入到跳表中;
C、判断所述IO是否成功插入到跳表中,若是,则把成功插入到跳表中的IO发送到存储主机中存储;若否,则把所述IO插入到等待队列及冲突队列中。
优选地,所述的分布式块存储系统中纠删码并发IO的方法,其中,所述步骤C之后还包括步骤D:
D、当完成整个IO路径时,插入到前端主机的完成IO队列中。
优选地,所述的分布式块存储系统中纠删码并发IO的方法,其中,所述步骤B具体包括:
B1、首先将需要插入的IO为,从跳表中找到数据偏移量offset小于或等于数据偏移量offset中最大的
B2、将所述的下一个节点称为,所述的数据偏移量offset的大小顺序为
B3、当满足时,所述与跳表中的所有IO都不重叠,IO成功插入到跳表中。
优选地,所述的分布式块存储系统中纠删码并发IO的方法,其中,所述跳表在初始化时,分别插入数据偏移量offset为负无穷大及正无穷大两个IO。
优选地,所述的分布式块存储系统中纠删码并发IO的方法,其中,所述步骤C具体包括:
C1、当重叠时,所述没有成功插入到跳表中;
C2、将所述插入到等待队列及插入到冲突队列中,所述冲突队列用于存放在等待队列中与重叠的IO。
优选地,所述的分布式块存储系统中纠删码并发IO的方法,其中,所述步骤D具体包括:
D1、当IO完成时,所述IO从跳表中删除;
D2、将所述IO遍历冲突队列后,把冲突队列中的IO从等待队列删除,重新插入到IO队列并重新插入跳表中。
一种存储装置,其中,所述存储装置包括:前端主机、与所述前端主机通信连接的存储主机;
所述前端主机中构建有虚拟磁盘,并用于管理虚拟磁盘的生命周期,完成数据的接收、缓存、转发功能;
所述存储主机是数据的最终存放地点,将存储资源抽象成多个存储组件,每个所述存储组件由大型稀疏文件链组成;
所述存储主机中存储有计算机程序,该计算机程序被前端主机执行时实现上述所述的分布式块存储系统中纠删码并发IO的方法;
所述前端主机用于调用所述存储主机中的计算机程序,以执行上述所述的分布式块存储系统中纠删码并发IO的方法。
与现有技术相比,本发明所提供的分布式块存储系统中纠删码并发IO的方法及存储装置,包括如下步骤:A、前端主机纠删码并行发送IO到存储主机的IO队列中,所述IO包含数据偏移量offset及数据长度length;B、将发送到存储主机的IO根据数据偏移量offset的大小顺序插入到跳表中;C、判断所述IO是否成功插入到跳表中,若是,则把成功插入到跳表中的IO发送到存储主机中存储;若否,则把所述IO插入到等待队列及冲突队列中,通过将纠删码并发的IO插入到跳表中,保证在并发IO时的数据安全,提高了纠删码的读写能力,同时,也消除了存储主机对序列号的依赖,降低了后端存储主机的设计难度。
附图说明
图1是本发明一种分布式块存储系统中纠删码并发IO的方法较佳实施例的流程图。
图2是本发明一种存储装置较佳实施例的模块图。
图3是本发明一种分布式块存储系统中纠删码并发IO的方法较佳实施例的虚拟磁盘模块图。
图4是本发明一种分布式块存储系统中纠删码并发IO的方法较佳实施例的虚拟磁盘写入示意图。
图5是本发明一种分布式块存储系统中纠删码并发IO的方法较佳实施例的跳表结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1是本发明一种分布式块存储系统中纠删码并发IO的方法较佳实施例的流程图,图3是本发明一种分布式块存储系统中纠删码并发IO的方法较佳实施例的虚拟磁盘模块图,图4是本发明一种分布式块存储系统中纠删码并发IO的方法较佳实施例的虚拟磁盘写入示意图,图5是本发明一种分布式块存储系统中纠删码并发IO的方法较佳实施例的跳表结构示意图。
本发明实施例提供了一种分布式块存储系统中纠删码并发IO的方法,如图1所示,其中,所述分布式块存储系统中纠删码并发IO的方法包括如下步骤:
A、前端主机纠删码并行发送IO到存储主机的IO队列中,所述IO包含数据偏移量offset及数据长度length;
B、将发送到存储主机的IO根据数据偏移量offset的大小顺序插入到跳表中;
C、判断所述IO是否成功插入到跳表中,若是,则把成功插入到跳表中的IO发送到存储主机中存储;若否,则把所述IO插入到等待队列及冲突队列中。
如图3所示,具体实施时,图3中含 k 个数据组件, r 个校验组件。
如图4所示,具体实施时,纠删码写入时需要计算校验数据,所以数据偏移量和数据长度必须对齐数据块大小,如果没有满足该条件必须先到后端组件上读取数据补齐条带。如果数据偏移量没有对齐,需要读取条带头,如果数据长度没有对齐,需要读取条带尾。
本发明进一步较佳实施例中,所述步骤C之后还包括步骤D:
D、当完成整个IO路径时,插入到前端主机的完成IO队列中。
本发明进一步较佳实施例中,所述步骤B具体包括:
B1、首先将需要插入的IO为,从跳表中找到数据偏移量offset小于或等于数据偏移量offset中最大的
B2、将所述的下一个节点称为,所述的数据偏移量offset的大小顺序为
B3、当满足时,所述与跳表中的所有IO都不重叠,IO成功插入到跳表中。
如图5所示,具体实施时,跳表是一种可替代平衡树的数据结构,不像平衡树需要强制保持树的平衡,跳表依靠随机生成数以一定概率来保持数据的平衡分布。尽管在最坏情况下,跳表的效率要低于平衡树,但是大多数情况下其效率仍然非常高,其插入、删除、查找数据的时间复杂度都是O(log(N))。
本发明进一步较佳实施例中,所述跳表在初始化时,分别插入数据偏移量offset为负无穷大及正无穷大两个IO。
本发明进一步较佳实施例中,所述步骤C具体包括:
C1、当重叠时,所述没有成功插入到跳表中;
C2、将所述插入到等待队列及插入到冲突队列中,所述冲突队列用于存放在等待队列中与重叠的IO。
本发明进一步较佳实施例中,所述步骤D具体包括:
D1、当IO完成时,所述IO从跳表中删除;
D2、将所述IO遍历冲突队列后,把冲突队列中的IO从等待队列删除,重新插入到IO队列并重新插入跳表中。
图2是本发明一种存储装置较佳实施例的模块图,如图2所示,本发明较佳实施例中还提供了一种存储装置,其中,所述存储装置包括:前端主机、与所述前端主机通信连接的存储主机;
所述前端主机中构建有虚拟磁盘,并用于管理虚拟磁盘的生命周期,完成数据的接收、缓存、转发功能;
所述存储主机是数据的最终存放地点,将存储资源抽象成多个存储组件,每个所述存储组件由大型稀疏文件链组成;
所述存储主机中存储有计算机程序,该计算机程序被前端主机执行时实现上述所述的分布式块存储系统中纠删码并发IO的方法;
所述前端主机用于调用所述存储主机中的计算机程序,以执行上述所述的分布式块存储系统中纠删码并发IO的方法。
综上所述,本发明公开了一种分布式块存储系统中纠删码并发IO的方法及存储装置,包括如下步骤:A、前端主机纠删码并行发送IO到存储主机的IO队列中,所述IO包含数据偏移量offset及数据长度length;B、将发送到存储主机的IO根据数据偏移量offset的大小顺序插入到跳表中;C、判断所述IO是否成功插入到跳表中,若是,则把成功插入到跳表中的IO发送到存储主机中存储;若否,则把所述IO插入到等待队列及冲突队列中,通过将纠删码并发的IO插入到跳表中,保证在并发IO时的数据安全,提高了纠删码的读写能力,同时,也消除了存储主机对序列号的依赖,降低了后端存储主机的设计难度。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

Claims (7)

1.一种分布式块存储系统中纠删码并发IO的方法,其特征在于,所述分布式块存储系统中纠删码并发IO的方法包括如下步骤:
A、前端主机纠删码并行发送IO到存储主机的IO队列中,所述IO包含数据偏移量offset及数据长度length;
B、将发送到存储主机的IO根据数据偏移量offset的大小顺序插入到跳表中;
C、判断所述IO是否成功插入到跳表中,若是,则把成功插入到跳表中的IO发送到存储主机中存储;若否,则把所述IO插入到等待队列及冲突队列中。
2.根据权利要求1所述的分布式块存储系统中纠删码并发IO的方法,其特征在于,所述步骤C之后还包括步骤D:
D、当完成整个IO路径时,插入到前端主机的完成IO队列中。
3.根据权利要求1所述的分布式块存储系统中纠删码并发IO的方法,其特征在于,所述步骤B具体包括:
B1、首先将需要插入的IO为IOinsert,从跳表中找到数据偏移量offset小于或等于IOinsert数据偏移量offset中最大的IOmin
B2、将所述IOmin的下一个节点称为IOlast,所述IOinsert、IOmin及IOlast的数据偏移量offset的大小顺序为offsetmin≤offsetinsert<offsetlast
B3、当满足offsetmin+lengthmin<offsetinsert及offsetinsert+lengthinsert<offsetlast时,所述IOinsert与跳表中的所有IO都不重叠,IO成功插入到跳表中。
4.根据权利要求3所述的分布式块存储系统中纠删码并发IO的方法,其特征在于,所述跳表在初始化时,分别插入数据偏移量offset 为负无穷大及正无穷大两个IO。
5.根据权利要求4所述的分布式块存储系统中纠删码并发IO的方法,其特征在于,所述步骤C具体包括:
C1、当IOinsert与IOmin或IOlast重叠时,所述IOinsert没有成功插入到跳表中;
C2、将所述IOinsert插入到等待队列及插入到冲突队列中,所述冲突队列用于存放在等待队列中与IOinsert重叠的IO。
6.根据权利要求2所述的分布式块存储系统中纠删码并发IO的方法,其特征在于,所述步骤D具体包括:
D1、当IO完成时,所述IO从跳表中删除;
D2、将所述IO遍历冲突队列后,把冲突队列中的IO从等待队列删除,重新插入到IO队列并重新插入跳表中。
7.一种存储装置,其特征在于,所述存储装置包括:前端主机、与所述前端主机通信连接的存储主机;
所述前端主机中构建有虚拟磁盘,并用于管理虚拟磁盘的生命周期,完成数据的接收、缓存、转发功能;
所述存储主机是数据的最终存放地点,将存储资源抽象成多个存储组件,每个所述存储组件由大型稀疏文件链组成;
所述存储主机中存储有计算机程序,该计算机程序被前端主机执行时实现权利要求1-6任一项所述的分布式块存储系统中纠删码并发IO的方法;
所述前端主机用于调用所述存储主机中的计算机程序,以执行上述权利要求1-6任一项所述的分布式块存储系统中纠删码并发IO的方法。
CN201710621639.5A 2017-07-27 2017-07-27 分布式块存储系统中纠删码并发io的方法及存储装置 Expired - Fee Related CN107678680B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710621639.5A CN107678680B (zh) 2017-07-27 2017-07-27 分布式块存储系统中纠删码并发io的方法及存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710621639.5A CN107678680B (zh) 2017-07-27 2017-07-27 分布式块存储系统中纠删码并发io的方法及存储装置

Publications (2)

Publication Number Publication Date
CN107678680A true CN107678680A (zh) 2018-02-09
CN107678680B CN107678680B (zh) 2020-07-17

Family

ID=61133223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710621639.5A Expired - Fee Related CN107678680B (zh) 2017-07-27 2017-07-27 分布式块存储系统中纠删码并发io的方法及存储装置

Country Status (1)

Country Link
CN (1) CN107678680B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347329A (zh) * 2018-04-02 2019-10-18 深信服科技股份有限公司 I/o数据读写并发冲突的处理方法、系统及相关装置
CN111857545A (zh) * 2019-04-28 2020-10-30 深信服科技股份有限公司 一种读写锁冲突判断方法、系统、设备及计算机介质
CN113468080A (zh) * 2021-06-10 2021-10-01 山东英信计算机技术有限公司 一种全闪元数据的缓存方法、系统及相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120094782A (ko) * 2011-02-17 2012-08-27 인하대학교 산학협력단 Ssd 기반 저장장치 시스템
CN103823636A (zh) * 2012-11-19 2014-05-28 苏州捷泰科信息技术有限公司 Io调度方法及装置
CN105302660A (zh) * 2015-11-06 2016-02-03 湖南安存科技有限公司 面向分布式存储系统带流检测技术的纠删码写缓冲方法
CN105930103A (zh) * 2016-05-10 2016-09-07 南京大学 一种分布式存储ceph的纠删码覆盖写方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120094782A (ko) * 2011-02-17 2012-08-27 인하대학교 산학협력단 Ssd 기반 저장장치 시스템
CN103823636A (zh) * 2012-11-19 2014-05-28 苏州捷泰科信息技术有限公司 Io调度方法及装置
CN105302660A (zh) * 2015-11-06 2016-02-03 湖南安存科技有限公司 面向分布式存储系统带流检测技术的纠删码写缓冲方法
CN105930103A (zh) * 2016-05-10 2016-09-07 南京大学 一种分布式存储ceph的纠删码覆盖写方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
黄建忠 等: "《面向纠删码存储集群的节点并发重构》", 《计算机研究与发展》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347329A (zh) * 2018-04-02 2019-10-18 深信服科技股份有限公司 I/o数据读写并发冲突的处理方法、系统及相关装置
CN111857545A (zh) * 2019-04-28 2020-10-30 深信服科技股份有限公司 一种读写锁冲突判断方法、系统、设备及计算机介质
CN111857545B (zh) * 2019-04-28 2023-12-29 深信服科技股份有限公司 一种读写锁冲突判断方法、系统、设备及计算机介质
CN113468080A (zh) * 2021-06-10 2021-10-01 山东英信计算机技术有限公司 一种全闪元数据的缓存方法、系统及相关装置
CN113468080B (zh) * 2021-06-10 2024-02-09 山东英信计算机技术有限公司 一种全闪元数据的缓存方法、系统及相关装置

Also Published As

Publication number Publication date
CN107678680B (zh) 2020-07-17

Similar Documents

Publication Publication Date Title
CN103136243B (zh) 基于云存储的文件系统去重方法及装置
US9639407B1 (en) Systems and methods for efficiently implementing functional commands in a data processing system
CN104657366B (zh) 海量日志写入数据库的方法、装置和日志容灾系统
CN107094186A (zh) 一种分布式存储系统的纠删码优化方法
CN106325758B (zh) 一种队列存储空间管理方法及装置
CN107832423B (zh) 一种用于分布式文件系统的文件读写方法
CN101375241A (zh) 集群文件系统中的有效数据管理
CN107678680A (zh) 分布式块存储系统中纠删码并发io的方法及存储装置
US9690713B1 (en) Systems and methods for effectively interacting with a flash memory
CN103150149A (zh) 处理数据库重做数据的方法和装置
CN111339042B (zh) 数据的操作处理方法、系统及调度服务器
CN103399823A (zh) 业务数据的存储方法、设备和系统
CN109902125A (zh) 一种基于现有数据库的分布式储存方法
US20070150432A1 (en) Method and mechanism for loading XML documents into memory
CN104809178A (zh) 一种键值数据库内存日志的写入方法
CN107291392A (zh) 一种固态硬盘及其读写方法
CN105488108A (zh) 一种多个视频文件高速并行存储的方法及装置
CN111459948A (zh) 一种基于中心化块链式账本的数据块删除方法
CN106909596B (zh) 业务处理方法、装置及系统
CN111427918A (zh) 交易明细数据比对方法及装置
CN105677579B (zh) 缓存系统中的数据访问方法和系统
CN106406760A (zh) 基于云储存的直接纠删码优化方法及系统
CN103164172A (zh) 数据流存储方法及装置
US8140638B2 (en) Multistage online transaction system, server, multistage online transaction processing method and program
CN110019043B (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
TA01 Transfer of patent application right

Effective date of registration: 20200619

Address after: 812, block B, phase I, Tianan Innovation Technology Plaza, No. 25, Tairan 4th Road, Tianan community, Shatou street, Futian District, Shenzhen City, Guangdong Province

Applicant after: Shenzhen Lianyungang Technology Co.,Ltd.

Address before: 518000, A902, room nine, building A, building 006, Industrial Research Institute, Nanshan New South Road, Nanshan District, Shenzhen, Guangdong

Applicant before: CLOUDSOAR NETWORKS Inc.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200717

Termination date: 20210727

CF01 Termination of patent right due to non-payment of annual fee