CN110427156B - 一种基于分片的mbr的并行读方法 - Google Patents
一种基于分片的mbr的并行读方法 Download PDFInfo
- Publication number
- CN110427156B CN110427156B CN201910639534.1A CN201910639534A CN110427156B CN 110427156 B CN110427156 B CN 110427156B CN 201910639534 A CN201910639534 A CN 201910639534A CN 110427156 B CN110427156 B CN 110427156B
- Authority
- CN
- China
- Prior art keywords
- reading
- read
- data block
- storage system
- file
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed 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
本发明公开了一种基于分片的MBR的并行读方法,属于计算机存储领域。MBR存储系统在写入时,按照文件流依次同时写入同一个数据块到两个不同的节点上,包括:向MBR存储系统请求读文件之前,将MBR存储系统中每个数据块分为大小相等的两个切片;向MBR存储系统请求读某文件时,依次寻找该文件中每个数据块所在的两个不同节点;并行地从不同的两个节点上读取同一个数据块的两个不同的切片,直至该文件读取结束。通过对数据块进行分片,读取不同的两个节点上的同一个数据块时,只需读取原数据块的一半即可,不会增加额外的数据读取量,使得系统保持良好并行性的同时,读取更少的数据量,进一步提升了存储系统的读性能。
Description
技术领域
本发明属于计算机存储领域,更具体地,涉及一种基于分片的MBR的并行读方法。
背景技术
分布式存储系统中,由于节点数量庞大,多使用廉价的商用磁盘作为存储介质以降低成本。然而,正因为磁盘质量不可靠,再加上软件或者程序故障等,数据失效是常态。因此,在数据失效时如何快速恢复失效数据是一个热点问题。常见的容错机制有副本机制和纠删码机制。
副本机制也称为复制机制,是容错机制中最容易实现的,使用也很广泛。诸如HDFS、Ceph、Swift文件系统中都有使用。GFS、HDFS、Swift都采用了三副本的机制,即每一份数据会存储三份。以HDFS为例,将原始文件划分为64MB或者128MB大小的文件块存储在不同的三个数据节点上。副本机制具有实现简单、计算资源占用小、文件块存取方便等优点。然而,对于任何一个采用副本机制的系统,存储负载的开销庞大。
针对副本机制存储代价大的问题,人们开始在存储系统中广泛使用纠删码机制来保证系统的可靠性,因为纠删码机制在保证与副本机制同样地容错能力的情形下,具有最低的存储开销。纠删码的主要思想是将原始文件通过纠删码算法来编码形成校验数据,然后将原始文件和校验数据一起存储起来,以达到容错的效果。具体来说,纠删码机制下,将一个大小为M的原文件平均分为k个数据块,然后通过编码算法,将这k个数据块进行编码形成n-k个校验块,最终会得到n个数据块,存储至n个不同的节点上形成一个条带。对于n个数据块中的任意n-k个块失效,均可以通过同一条带中余下的任意k个块解码进行恢复。实际的存储系统中所用的纠删码通常会尽量满足MDS(Maximum Distance Separable)性质。因为MDS码能保证同样的容错级别下,具有最小的存储负载。但是随着可靠性问题的解决,人们又开始谋求在修复速度、修复带宽、计算复杂度等方面谋求最优的结果。
最小带宽再生码(MBR,Minimum-Bandwidth Regenerating Codes)是一类特殊的再生码,是在网络编码的基础上发展起来的。MBR编码在修复失效数据时无需传输额外的数据块,因而有着最小的修复带宽,能极大的降低系统的网络带宽开销。MBR编码有着良好的修复特性,但是相关研究工作缺乏。
发明内容
针对现有技术的缺陷,本发明的目的在于解决现有技术MBR存储系统的读性能受限的技术问题。
为实现上述目的,第一方面,本发明实施例提供了一种基于分片的MBR的并行读方法,MBR存储系统在写入时,按照文件流依次同时写入同一个数据块到两个不同的节点上,该方法包括以下步骤:
S1.向MBR存储系统请求读文件之前,将MBR存储系统中每个数据块分为大小相等的两个切片;
S2.向MBR存储系统请求读某文件时,依次寻找该文件中每个数据块所在的两个不同节点;
S3.并行地从不同的两个节点上读取同一个数据块的两个不同的切片,直至该文件读取结束。
具体地,所述MBR存储系统满足以下条件:
其中,m为原文件划分得到的数据块个数,n为节点个数,任意k个节点可以恢复出失效的节点,c为校验块个数。
具体地,MBR存储系统在写入时,分配多个线程执行按照文件流依次同时写入同一个数据块到两个不同的节点上。
具体地,对每一个块的两个片按照地址偏移量来编号,偏移量小的记为0号,偏移量大的记为1号。
具体地,所述并行地从不同的两个节点上读取同一个数据块的两个不同的切片,具体如下:
对节点ID小的数据块读取切片0,对节点ID大的数据块读取切片1,读取完毕后,会返回读取到的字节数。
具体地,针对有校验块的情形,步骤S1还包括将MBR存储系统中每个校验块分为大小相等的两个切片,步骤S2-S3中,校验块不参与正常读。
具体地,当MBR存储系统中有节点失效时,但仍满足降级读条件,则此时处于降级读模式;所述降级读模式具体如下:首先会整个读取失效节点上的数据块的副本,不按照切片读取;当读取完失效节点对应的块时,按照切片读取其他块,读取完毕时返回读取到的字节数。
第二方面,本发明实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面所述的一种基于分片的MBR的并行读方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有以下有益效果:
1.本发明利用MBR编码的布局,使得每一个编码块均匀分布于不同的两个节点上,从而提供了同时从不同的两个节点上读取数据块的前提条件,通过对每个数据块进行分片,使得读取不同的两个节点上的同一个数据块时,只需读取原数据块的一半即可,不会增加额外的数据读取量,最终读取的数据量刚好与用户所请求的数据量是一致的,没有增加额外的传输开销,使得系统保持良好并行性的同时,读取更少的数据量,进一步提升了存储系统的读性能。
2.本发明采用了多线程技术来处理数据块的读取请求,进一步提升了存储系统的读性能。
附图说明
图1(a)为本发明实施例提供的无校验块情形的MBR编码示例;
图1(b)为本发明实施例提供的有一个校验块P情形的MBR编码示例;
图2为本发明实施例提供的MBR存储系统写设计示例;
图3为本发明实施例提供的基于分片的MBR的并行读示例;
图4为本发明实施例提供的MBR存储系统降级读设计示例。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
MBR(Minimum-Bandwidth Regenerating Codes,最小带宽再生码)编码是基于完全图构建的,存储的时候每个块存储了两份,而且同一个块的两个副本分别存储在不同的节点上,天然的对并行性有良好的支持。
如图1(a)所示,节点个数n=4,任意k=3个节点可以恢复出失效的节点。四个节点上分布有0、1…5的数据块,每一个数据块分别存放在不同的两个节点上,也就是说对于每一个块是以双副本的形式存放的。
如图1(b)所示,校验块P是通过数据块0、1…5异或形成的,0、1…P相当于RS(6,5)编码。本发明将原文件形成的校验块的个数作为实际的校验块个数c,原文件直接形成的数据块个数记为m,其余的原文件上的数据块以及校验块算作一个副本,则c=1,m=5,总的块的个数为2(m+c)=12个。在该情形下,4个节点中的任意2个节点可以恢复出原文件。
MBR编码的并行化读写设计主要包括正常读、正常写、降级读三个方面。“正常读”指的是节点没有损坏的情况下,客户机向分布式存储系统请求读某一个文件。“正常写”同样要求节点没有损坏,只不过此时是客户机请求向分布式存储系统请求写入文件。“降级读”指的是在节点有损坏的情形下,客户机向分布式存储系统请求读取某一文件,此时存储系统能响应客户请求,但是并不会立即修复失效节点,而是等到读取完毕后才会进行修复操作。
针对无校验块的情形,即k=n-1的情形,如图2所示,n=4,k=3。当客户机发出写请求时,会将每一个块同时写入两个节点。由于每一个块都是分布在不同的两个节点上,因而使得并行化写成为可能。以数据块2为例,当向分布式存储系统中写入数据块2时,根据MBR编码的方式,其中一个数据块2写入节点1,数据块2的副本写到节点4上,这两个块的写入是同时进行的。类似地,写入其他块的时候,均是通过这种方式。
针对有校验块的情形,即k=n-2的情形。相对于k=n-1的情形,唯一的不同之处在于增加了校验块,因此在写入校验块之前,会先对数据块采用异或编码算法生成校验块P,然后才会同时将数据块P写入到两个不同的节点上。
当文件系统中节点没有损坏时,此时可以进行正常的写入操作。写入的时候,可以以用户自定义的块大小进行写入操作,也可以以系统定义的默认块大小进行写入操作,默认块大小是4KB,自定义块大小一般是4KB的倍数,因而使用自定义块进行写入也称之为大块写入。写入时,会按照文件流依次同时写入同一个数据块到两个不同的节点上,针对有校验块的情形,会调用编码模块生成校验块,然后并行地写入校验块所对应的2个不同的节点上。
其中,m为原文件划分得到的数据块个数,n为节点个数,任意k个节点可以恢复出失效的节点,c为校验块个数。
针对无校验块的情形,即k=n-1的情形。如图3所示,n=4,k=3。为了能够使得读取数据块时达到并行化的效果,本发明首先以更小的粒度将每个块分成两个大小相同的更小的切片,对于每一个数据块分成切片0、切片1两部分。客户发出正常读的请求时,就把对每一个数据块的读取分散到不同的两个节点上,而且对于每一个块只读取其中一个切片,从而达到并行化读的目的,此外系统也并不会读取多余的块。比如,当客户请求读取数据块2时,本发明可以读取节点1上数据块2的0号切片,节点4上数据块2的1号切片。
针对有校验块的情形,使用上述同样的方法读取数据块即可,对于校验块,并不参与正常读。
当文件系统中所有节点正常工作时,此时处于正常读模式。正常读模式下,按照文件流寻找每个数据块所在的两个不同节点,然后对节点ID小的数据块读取切片0,对另一个节点ID大的数据块读取切片1。读取完毕后,会返回读取到的字节数。
一种基于分片的MBR的并行读方法,MBR存储系统在写入时,按照文件流依次同时写入同一个数据块到两个不同的节点上,该方法包括以下步骤:
S1.向MBR存储系统请求读文件之前,将MBR存储系统中每个数据块分为大小相等的两个切片;
S2.向MBR存储系统请求读某文件时,依次寻找该文件中每个数据块所在的两个不同节点;
S3.并行地从不同的两个节点上读取同一个数据块的两个不同的切片,直至该文件读取结束。
降级读并行化设计如图4所示,图中展示的是k=n-1,单节点失效的情形,n=4,k=3。当有一个节点失效时,分布式存储系统接收到用户发出的读请求后,此时仍能进行响应。基于完全图的MBR编码方案,每一个节点上存储的块是不一样的。此外,对于每一个节点上的块的副本而言,也是分别位于彼此不同的节点上,因此本编码方案对于降级读有着极好的性能。如图4所示,当节点1失效时,节点1上的数据块0、1、2无法读取,但是这三个数据块的副本分别位于节点2、3、4上,因而这三个节点可以同时传输3个失效的数据块,提高了系统的并行性。对于有校验块的情形,也是类似的。
当文件系统中有节点失效时,但是仍然满足降级读条件,则此时处于降级读模式。降级读模式下,首先会读取失效节点上的数据块的副本,此时是直接读取整个数据块,不按照切片读取,当读取完失效节点对应的块时,开始采取与正常读同样的方式读取其他的块,读取完毕时返回读取到的字节数。
以上,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (7)
1.一种基于分片的最小带宽再生码的并行读方法,其特征在于,最小带宽再生码存储系统在写入时,按照文件流依次同时写入同一个数据块到两个不同的节点上,该方法包括以下步骤:
S1.向最小带宽再生码存储系统请求读文件之前,将最小带宽再生码存储系统中每个数据块分为大小相等的两个切片;
S2.向最小带宽再生码存储系统请求读某文件时,依次寻找该文件中每个数据块所在的两个不同节点;
S3.并行地从不同的两个节点上读取同一个数据块的两个不同的切片,直至该文件读取结束;
当最小带宽再生码存储系统中有节点失效时,但仍满足降级读条件,则此时处于降级读模式;所述降级读模式具体如下:首先会整个读取失效节点上的数据块的副本,不按照切片读取;当读取完失效节点对应的块时,按照切片读取其他块,读取完毕时返回读取到的字节数。
3.如权利要求1所述的方法,其特征在于,最小带宽再生码存储系统在写入时,分配多个线程执行按照文件流依次同时写入同一个数据块到两个不同的节点上。
4.如权利要求1所述的方法,其特征在于,对每一个块的两个片按照地址偏移量来编号,偏移量小的记为0号,偏移量大的记为1号。
5.如权利要求4所述的方法,其特征在于,所述并行地从不同的两个节点上读取同一个数据块的两个不同的切片,具体如下:
对节点ID小的数据块读取切片0,对节点ID大的数据块读取切片1,读取完毕后,会返回读取到的字节数。
6.如权利要求1所述的方法,其特征在于,针对有校验块的情形,步骤S1还包括将最小带宽再生码存储系统中每个校验块分为大小相等的两个切片,步骤S2-S3中,校验块不参与正常读。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的基于分片的最小带宽再生码的并行读方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910639534.1A CN110427156B (zh) | 2019-07-16 | 2019-07-16 | 一种基于分片的mbr的并行读方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910639534.1A CN110427156B (zh) | 2019-07-16 | 2019-07-16 | 一种基于分片的mbr的并行读方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110427156A CN110427156A (zh) | 2019-11-08 |
CN110427156B true CN110427156B (zh) | 2020-09-08 |
Family
ID=68410692
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910639534.1A Active CN110427156B (zh) | 2019-07-16 | 2019-07-16 | 一种基于分片的mbr的并行读方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110427156B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111507453B (zh) * | 2020-03-10 | 2023-02-17 | 广东中鹏热能科技有限公司 | 一种窑炉产量统计方法及系统 |
CN113220237A (zh) * | 2021-05-17 | 2021-08-06 | 北京青云科技股份有限公司 | 一种分布式存储方法、装置、设备及存储介质 |
CN113821179B (zh) * | 2021-11-23 | 2022-02-22 | 阿里云计算有限公司 | 数据存储方法和装置、计算设备及存储介质 |
CN117632572A (zh) * | 2022-08-17 | 2024-03-01 | 华为技术有限公司 | 数据存储方法、装置及存储介质 |
CN115357199B (zh) * | 2022-10-19 | 2023-02-10 | 安超云软件有限公司 | 分布式存储系统中的数据同步方法、系统及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118477A (zh) * | 2007-08-24 | 2008-02-06 | 成都索贝数码科技股份有限公司 | 一种提高磁盘数据访问效率的方法 |
CN101808095A (zh) * | 2010-03-22 | 2010-08-18 | 华中科技大学 | 一种分布式存储环境下的加密副本组织方法 |
CN102624866A (zh) * | 2012-01-13 | 2012-08-01 | 北京大学深圳研究生院 | 一种存储数据的方法、装置及分布式网络存储系统 |
CN103688514A (zh) * | 2013-02-26 | 2014-03-26 | 北京大学深圳研究生院 | 一种最小存储再生码的编码和存储节点修复方法 |
CN103942012A (zh) * | 2014-03-26 | 2014-07-23 | 华为技术有限公司 | 一种读取数据的方法、装置及设备 |
CN105930097A (zh) * | 2015-05-20 | 2016-09-07 | 德州学院 | 一种消除局部并行中小写操作的分布校验式磁盘阵列 |
CN108762674A (zh) * | 2018-05-24 | 2018-11-06 | 深圳忆联信息系统有限公司 | 提升ssd响应延迟的方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200636457A (en) * | 2005-04-14 | 2006-10-16 | Farstone Tech Inc | Method for modifying hard disk partition |
US10140313B2 (en) * | 2015-09-27 | 2018-11-27 | International Business Machines Corporation | Parallel processing of large data files on distributed file systems with dynamic workload balancing |
CN106055563B (zh) * | 2016-05-19 | 2019-06-25 | 福建农林大学 | 一种基于网格划分的并行空间查询方法及其系统 |
CN108712454B (zh) * | 2018-02-13 | 2020-11-17 | 创新先进技术有限公司 | 一种文件处理方法、装置及设备 |
-
2019
- 2019-07-16 CN CN201910639534.1A patent/CN110427156B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101118477A (zh) * | 2007-08-24 | 2008-02-06 | 成都索贝数码科技股份有限公司 | 一种提高磁盘数据访问效率的方法 |
CN101808095A (zh) * | 2010-03-22 | 2010-08-18 | 华中科技大学 | 一种分布式存储环境下的加密副本组织方法 |
CN102624866A (zh) * | 2012-01-13 | 2012-08-01 | 北京大学深圳研究生院 | 一种存储数据的方法、装置及分布式网络存储系统 |
CN103688514A (zh) * | 2013-02-26 | 2014-03-26 | 北京大学深圳研究生院 | 一种最小存储再生码的编码和存储节点修复方法 |
CN103942012A (zh) * | 2014-03-26 | 2014-07-23 | 华为技术有限公司 | 一种读取数据的方法、装置及设备 |
CN105930097A (zh) * | 2015-05-20 | 2016-09-07 | 德州学院 | 一种消除局部并行中小写操作的分布校验式磁盘阵列 |
CN108762674A (zh) * | 2018-05-24 | 2018-11-06 | 深圳忆联信息系统有限公司 | 提升ssd响应延迟的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110427156A (zh) | 2019-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110427156B (zh) | 一种基于分片的mbr的并行读方法 | |
US10459814B2 (en) | Drive extent based end of life detection and proactive copying in a mapped RAID (redundant array of independent disks) data storage system | |
US10019317B2 (en) | Parity protection for data chunks in an object storage system | |
KR101758544B1 (ko) | 비휘발성 메모리 시스템에서의 동기 미러링 | |
US10613933B2 (en) | System and method for providing thin-provisioned block storage with multiple data protection classes | |
Huang et al. | Erasure coding in windows azure storage | |
US9021335B2 (en) | Data recovery for failed memory device of memory device array | |
CN110750382B (zh) | 用于提高数据修复性能的最小存储再生码编码方法及系统 | |
CN110442535B (zh) | 提高分布式固态盘键值缓存系统可靠性的方法及系统 | |
US10387307B2 (en) | Lock-free raid implementation in multi-queue architecture | |
CN114415976B (zh) | 一种分布式数据存储系统与方法 | |
US7234024B1 (en) | Application-assisted recovery from data corruption in parity RAID storage using successive re-reads | |
CN109814807B (zh) | 一种数据存储方法及装置 | |
US11397641B2 (en) | Systems and methods for ultra fast ECC with parity | |
US20180267854A1 (en) | Key value ssd | |
WO2023103213A1 (zh) | 一种分布式数据库的数据存储方法和装置 | |
US7716519B2 (en) | Method and system for repairing partially damaged blocks | |
CN111459710A (zh) | 感知热度与风险的纠删码内存恢复方法、设备及内存系统 | |
US11782778B2 (en) | Data recovery bypassing protocol for cloud network storage system | |
US11537330B2 (en) | Selectively improving raid operations latency | |
CN113918378A (zh) | 数据存储方法、存储系统、存储设备及存储介质 | |
CN111224747A (zh) | 可降低修复带宽和磁盘读取开销的编码方法及其修复方法 | |
US11604697B2 (en) | Distributed erasure encoding in shared file system | |
WO2023125507A1 (zh) | 生成块组的方法、装置和设备 | |
CN115599315B (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 |