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

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

Info

Publication number
CN107678680B
CN107678680B CN201710621639.5A CN201710621639A CN107678680B CN 107678680 B CN107678680 B CN 107678680B CN 201710621639 A CN201710621639 A CN 201710621639A CN 107678680 B CN107678680 B CN 107678680B
Authority
CN
China
Prior art keywords
storage
insert
offset
host
skip list
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.)
Expired - Fee Related
Application number
CN201710621639.5A
Other languages
English (en)
Other versions
CN107678680A (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 Lianyungang 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 Lianyungang Technology Co ltd filed Critical Shenzhen Lianyungang 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

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/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为IOinsert,从跳表中找到数据偏移量offset小于或等于IOinsert数据偏移量offset中最大的
IOmin
B2、将所述IOmin的下一个节点称为IOlast,所述IOinsert、IOmin及IOlast的数据偏移量offset的大小顺序为offsetmin≤offsetinsert<offsetlast
B3、当满足offsetmin+lengthmin<offsetinsert及ffsetinsert+lengthinsert<offsetlast时,所述IOinsert与跳表中的所有IO都不重叠,IO成功插入到跳表中。
优选地,所述的分布式块存储系统中纠删码并发IO的方法,其中,所述跳表在初始化时,分别插入数据偏移量offset为负无穷大及正无穷大两个IO。
优选地,所述的分布式块存储系统中纠删码并发IO的方法,其中,所述步骤C具体包括:
C1、当IOinsert与IOmin或IOlast重叠时,所述IOinsert没有成功插入到跳表中;
C2、将所述IOinsert插入到等待队列及插入到冲突队列中,所述冲突队列用于存放在等待队列中与IOinsert重叠的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为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成功插入到跳表中。
如图5所示,具体实施时,跳表是一种可替代平衡树的数据结构,不像平衡树需要强制保持树的平衡,跳表依靠随机生成数以一定概率来保持数据的平衡分布。尽管在最坏情况下,跳表的效率要低于平衡树,但是大多数情况下其效率仍然非常高,其插入、删除、查找数据的时间复杂度都是O(log(N))。
本发明进一步较佳实施例中,所述跳表在初始化时,分别插入数据偏移量offset为负无穷大及正无穷大两个IO。
本发明进一步较佳实施例中,所述步骤C具体包括:
C1、当IOinsert与IOmin或IOlast重叠时,所述IOinsert没有成功插入到跳表中;
C2、将所述IOinsert插入到等待队列及插入到冲突队列中,所述冲突队列用于存放在等待队列中与IOinsert重叠的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 (6)

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

Families Citing this family (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数据读写并发冲突的处理方法、系统及相关装置
CN111857545B (zh) * 2019-04-28 2023-12-29 深信服科技股份有限公司 一种读写锁冲突判断方法、系统、设备及计算机介质
CN113468080B (zh) * 2021-06-10 2024-02-09 山东英信计算机技术有限公司 一种全闪元数据的缓存方法、系统及相关装置

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
《面向纠删码存储集群的节点并发重构》;黄建忠 等;《计算机研究与发展》;20160915;全文 *

Also Published As

Publication number Publication date
CN107678680A (zh) 2018-02-09

Similar Documents

Publication Publication Date Title
CN108319654B (zh) 计算系统、冷热数据分离方法及装置、计算机可读存储介质
CN107678680B (zh) 分布式块存储系统中纠删码并发io的方法及存储装置
US20150253992A1 (en) Memory system and control method
US10664443B2 (en) Method and apparatus for presenting to-be-cleaned data, and electronic device
CN106980665B (zh) 数据字典实现方法、装置及数据字典管理系统
CN110019873B (zh) 人脸数据处理方法、装置及设备
CN104598161A (zh) 数据读取、写入方法和装置及数据存储结构
CN111506747B (zh) 文件解析方法、装置、电子设备及存储介质
US8938420B1 (en) Systems and methods for natural batching of I/O operations on a replication log
US11740827B2 (en) Method, electronic device, and computer program product for recovering data
CN110737678B (zh) 一种数据查找方法、装置、设备和存储介质
CN103391246A (zh) 报文处理方法及装置
CN108121580B (zh) 应用程序通知服务的实现方法及装置
US20160253374A1 (en) Data file writing method and system, and data file reading method and system
CN112114757B (zh) 对象存储系统中的存储方法及系统、计算设备和介质
CN111352769B (zh) 恢复数据库的方法、恢复服务器及计算机可读存储介质
CN110490581B (zh) 一种分布式系统临界数据资源更新方法及系统
CN112948410A (zh) 数据处理方法、装置、设备及介质
CN110896391B (zh) 一种报文处理方法和装置
US11677902B2 (en) Data processing method and related product
CN110764710A (zh) 低延迟高iops的数据访问方法与存储系统
CN111625500A (zh) 文件快照方法及装置、电子设备和存储介质
CN111966486A (zh) 一种获取数据的方法、fpga系统以及可读存储介质
US20140289264A1 (en) One pass submatch extraction
US20190050167A1 (en) Flash Storage Devices Executing ECC in Parallel and Methods Thereof

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
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.

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

Granted publication date: 20200717

Termination date: 20210727