CN105373352B - 基于带宽比较的磁盘阵列扩容时校验更新方式选择方法 - Google Patents
基于带宽比较的磁盘阵列扩容时校验更新方式选择方法 Download PDFInfo
- Publication number
- CN105373352B CN105373352B CN201510898473.2A CN201510898473A CN105373352B CN 105373352 B CN105373352 B CN 105373352B CN 201510898473 A CN201510898473 A CN 201510898473A CN 105373352 B CN105373352 B CN 105373352B
- Authority
- CN
- China
- Prior art keywords
- dilatation
- update
- read
- data
- block
- 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
Landscapes
- Detection And Correction Of Errors (AREA)
Abstract
本发明公开了一种基于带宽比较的磁盘阵列扩容时校验更新方式选择方法,特征是包括设计建立存储结构、计算不同方式更新校验数据所需读取的数据块、维护存储结构、校验更新方式选择策略;在更新扩容过程中校验数据时,根据不同方式所需读取的额外数据块集合来选择带宽开销最小的校验更新方式。本方法可以用在常见的各种扩容方法中,来决定校验数据更新方式,最小化扩容过程中校验数据更新所需要的带宽,加快扩容过程,提高系统在扩容过程中的性能。
Description
技术领域
本发明属于计算机磁盘阵列扩容技术领域,具体涉及通过比较更新校验块集合所需读取的数据块个数来选择最优校验更新方式的方法。
背景技术
在现代存储领域中,单个磁盘往往难以满足用户的需求,磁盘阵列是由很多价格较便宜的磁盘组合成一个容量巨大的磁盘组,并充分利用每个磁盘的并行性,能够提供较大的存储空间和读写带宽以满足用户需求。然而随着用户数据的增多和用户需求的提高,磁盘阵列往往需要进行扩容,而扩容过程中为保证每个磁盘负载均衡,一般会涉及到数据迁移,数据迁移时需要对校验数据进行更新,以保证系统的可靠性。更新磁盘阵列的校验数据有两种方式,一种是通过读取产生校验块条带内变化的数据和原始校验数据来产生新的校验数据,即“读-改-写”;另一种是读取产生校验块的所有数据来重新生成新的校验数据,即“读-重构-写”。不同的场景下两种方式各有优劣,选择最佳的校验数据更新方式不仅能缩短扩容所需要的时间,而且还能降低扩容过程中用户请求的响应时间。然而以往的扩容方法很少考虑校验数据更新方式的选择,而且没有一种统一的方法来选择扩容时校验数据更新方式。电气与电子工程师协会《并行处理国际会议论文集》(2012 41st InternationalConference on Parallel Processing(ICPP),2012年9月,第460–469页)所介绍的对于容一错的冗余磁盘阵列的扩容方法(GSR)并没有考虑不同的校验数据更新方式的带宽开销差异。电气与电子工程师协会《并行和分布式系统国际会议论文集》(2014 20thInternational Conference on Parallel and Distributed Systems(ICPADS),2014年12月,第518–525页)所介绍的对于柯西里德所罗门码(CRS)的扩容方法也没有考虑不同的校验数据更新方式的带宽开销,而只是简单的使用“读-改-写”的方式来更新扩容时的校验数据,这些方法在某些扩容场景下,会因为更新校验数据带来过高的带宽开销。
发明内容
本发明的目的是提出一种基于带宽比较的磁盘阵列扩容时校验更新方式选择方法,以弥补现有扩容方法的缺陷,在保证校验数据一致性的前提下,最小化更新校验数据所需要读取的数据量,节省网络带宽,加快扩容过程的完成,缩短扩容过程中用户请求的平均响应时间。
本发明基于带宽比较的磁盘阵列扩容时校验更新方式选择方法,包括以下步骤:
第一步:设计建立存储结构,并进行相应的初始化;
定义如下标识符表示相应的存储结构:
A--一个扩容单元中的校验块集合,扩容单元是指一个或数个条带,每个扩容单元的数据操作方法完全一样,
B--一个扩容单元中迁移的数据块集合,
C--使用“读-改-写”方式更新一个扩容单元中所有校验块所需读取的额外数据块集合,
D--使用“读-重构-写”方式更新一个扩容单元中所有校验块所需读取的额外数据块集合,
E--扩容前产生校验块P的数据块集合,
F--扩容后产生校验块P’的数据块集合,扩容前的校验块P变为扩容后相应的校验块P’,其中校验块P’是取自集合A的一个元素,
G--使用“读-改-写”方式将校验块P更新为P’所需额外读取的数据块集合,
m--使用“读-改-写”方式更新一个扩容单元中的检验数据所需读取的额外数据块个数,
n--使用“读-重构-写”方式更新一个扩容单元中的校验数据所需读取的额外数据块个数;
初始化集合A、B、C、D、E、F为空集
第二步:计算任意一个扩容场景的一个扩容单元,令A包含一个扩容单元中的所有校验块,B包含一个扩容单元中所有迁移的数据块,m=|A|,|A|表示求集合A中元素的个数,n=0;
第三步:对于集合A中的每一个元素P’计算扩容前产生相应的校验块P的数据块集合E和扩容后产生校验块P’的数据块集合F,计算集合G=(E∪F)-(E∩F),符号∪表示求集合的并集,∩表示求集合的交集,-表示求集合的差集;更新集合A=A-{P’};
第四步:更新集合C、D和变量m,检查A是否为空集,如果不是,则跳转到第三步,否则执行第五步;具体的更新规则:令C=C∪G,即C等于C与G的并集;令D=D∪F;如果G为空集,则令m=m-1;令E、F为空集;
第五步:根据C=C-B,D=D-B,m=m+|C|,n=|D|,计算集合C、D和变量m,n;比较m、n的值的大小,如果m小于n,则选择“读-改-写”方式来更新校验数据,否则选择“读-重构-写”方式来更新校验数据。
本发明基于带宽比较的磁盘阵列扩容时校验更新方式选择方法,采取了设计存储结构、计算不同方式更新一个扩容单元中的校验数据所需读取的数据块个数、比较两种方式的带宽开销并选择带宽开销最小的方式来更新校验数据的操作步骤,可以快速决定任意一种扩容场景下最有优势的校验更新方式;该方法可以最小化扩容过程中更新校验数据所需要的带宽,加快扩容过程的完成,提高系统在扩容过程中的性能;本发明提供了一种系统的统一的方法,来帮助选择扩容过程中最优的检验更新方式。
附图说明
图1为柯西里德所罗门码CRS扩容前的编码示意图。
图2为柯西里德所罗门码CRS扩容后的编码示意图。
图3为按照本发明方法进行扩容过程中校验更新方式选择的总体操作流程示意图。
具体实施方式
下面结合附图通过具体实例对本发明基于带宽比较的磁盘阵列扩容时校验更新方式选择方法作进一步的详细说明。
实施例1:
本实施例对基于采用CRS码构成的冗余磁盘阵列由4个盘(2个数据盘2个校验盘)扩容到6个盘(4个数据盘2个校验盘)的扩容场景,结合附图3所给出的按照本发明方法进行扩容过程中校验更新方式选择的总体操作流程示意图,来阐述基于带宽比较的磁盘阵列扩容时校验更新方式选择方法的具体实施过程。
本实施例基于带宽比较的磁盘阵列扩容时校验更新方式选择方法,具体包括以下步骤:
第一步:构建存储结构,并进行相应的初始化;
定义如下标识符表示相应的存储结构:
A--一个扩容单元中的校验块集合,扩容单元是指一个或数个条带,每个扩容单元的数据操作方法完全一样,
B--一个扩容单元中迁移的数据块集合,
C--使用“读-改-写”方式更新一个扩容单元中所有校验块所需读取的额外数据块集合,
D--使用“读-重构-写”方式更新一个扩容单元中所有校验块所需读取的额外数据块集合,
E--扩容前产生校验块P的数据块集合,
F--扩容后产生校验块P’的数据块集合,扩容前的校验块P变为扩容后相应的校验块P’,其中校验块P’是取自集合A的一个元素,
G--使用“读-改-写”方式将校验块P更新为P’所需额外读取的数据块集合,
m--使用“读-改-写”方式更新一个扩容单元中的检验数据所需读取的额外数据块个数,
n--使用“读-重构-写”方式更新一个扩容单元中的校验数据所需读取的额外数据块个数;
初始化集合A、B、C、D、E、F为空集--参见总体操作流程示意图附图3中的构建存储结构初始化步骤①;
第二步:计算本实施例的一个扩容单元,本实施例的一个扩容单元就是一个条带。
附图1给出了采用柯西里德所罗门码CRS扩容前一个条带的编码示意图,其中附图1中的左边是扩容前的编码矩阵,中间部分表示数据盘,其中d0,d1,d2,d3存放在磁盘1中,d4,d5,d6,d7存放在磁盘2中,右边部分表示校验盘数据,c0,c1,c2,c3存放在校验磁盘1中,c4,c5,c6,c7存放在校验磁盘2中;
附图2给出了采用柯西里德所罗门码CRS扩容后一个条带的编码示意图,其中附图2中的左边是扩容后的编码矩阵,中间部分表示数据盘,d0,d1存放在磁盘1中,d4,d5存放在磁盘2中,d2,d3存放在磁盘3中,d6,d7存放在磁盘4中,其中d2,d3从磁盘1迁移到新增加的磁盘3,d6,d7是从磁盘2迁移到新增加的磁盘4,右边部分表示校验盘数据,c0’,c1’,c2’,c3’,c4’,c5’,c6’,c7’分别由c0,c1,c2,c3,c4,c5,c6,c7更新得来的,c0’,c1’,c2’,c3’存放在校验磁盘1中,c4’,c5’,c6’,c7’存放在校验磁盘2中;更新集合A、B和变量m、n,--参见总体操作流程示意图附图3中的提取一个扩容单元的校验块集合和迁移的数据块集合的步骤②,令A={c0’,c1’,c2’,c3’,c4’,c5’,c6’,c7’},B={d2,d3,d6,d7};计算m,n的初值,m=|A|=8,n=0;
第三步:从集合A中选择一个元素c0’,计算扩容前产生相应的校验块c0的数据块集合E={d0,d4};计算产生c0’的数据块集合F={d0,d4,d2,d6};计算集合G=(E∪F)-(E∩F)={d0,d4,d2,d6}-{d0,d4}={d2,d6},更新A=A-{c0’}={c1’,c2’,c3’,c4’,c5’,c6’,c7’}--参见总体操作流程示意图附图3中的对一个扩容单元中的校验块处理步骤③;
第四步:参见总体操作流程示意图附图3中的更新两种方式所需读取的数据块集合步骤④;令 然后判断A不为空,跳转到步骤三--参见总体操作流程示意图附图3中的判断校验块是否处理完毕的步骤⑤,以此类推,直到A为此时C={d2,d3,d6,d7},D={d0,d1,d2,d3,d4,d5,d6,d7};
第五步:参见总体操作流程示意图附图3中的确定选择方式步骤⑥,计算集合C、D和m,n的值;D=D-B={d0,d1,d4,d5};m=8+|C|=8,n=|D|=4;比较m、n,得出m>n,算法得出在该扩容场景下使用“读-重构-写”来更新校验数据更有优势。
在本实施例中,通过基于比较更新校验块所需读取的数据集合来选择磁盘阵列扩容过程中校验数据更新方式的方法,得出了相比于“读-改-写”方式,使用“读-重构-写”方式更新一个扩容单元中的校验数据可以少读4个数据块,相比于传统的只考虑使用“读-改-写”方式来更新校验数据,本方法可以减少50%的因更新校验数据带来的读带宽开销,加快扩容过程,提高系统在扩容过程中的性能。
Claims (1)
1.一种基于带宽比较的磁盘阵列扩容时校验更新方式选择方法,其特征在于包括以下步骤:
第一步:设计建立存储结构,并进行相应的初始化;存储结构如下:
A--一个扩容单元中的校验块集合,
B--一个扩容单元中迁移的数据块集合,
C--使用“读-改-写”方式更新一个扩容单元中所有校验块所需读取的额外数据块集合,
D--使用“读-重构-写”方式更新一个扩容单元中所有校验块所需读取的额外数据块集合,
E--扩容前产生校验块P的数据块集合,
F--扩容后产生校验块P’的数据块集合,扩容前的校验块P变为扩容后相应的校验块P’,其中校验块P’是取自集合A的一个元素,
G--使用“读-改-写”方式将校验块P更新为P’所需额外读取的数据块集合,
m--使用“读-改-写”方式更新一个扩容单元中的检验数据所需读取的额外数据块个数,
n--使用“读-重构-写”方式更新一个扩容单元中的校验数据所需读取的额外数据块个数;
初始化集合A、B、C、D、E、F为空集
第二步:计算任意一个扩容场景的一个扩容单元,令A包含一个扩容单元中的所有校验块,B包含一个扩容单元中所有迁移的数据块,m=|A|,|A|表示求集合A中元素的个数,n=0;
第三步:对于集合A中的每一个元素P’计算扩容前产生相应的校验块P的数据块集合E和扩容后产生校验块P’的数据块集合F,计算集合G=(E∪F)-(E∩F),符号∪表示求集合的并集,∩表示求集合的交集,-表示求集合的差集;更新集合A=A-{P’};
第四步:更新集合C、D和变量m,检查A是否为空集,如果不是,则跳转到第三步,否则执行第五步;具体的更新规则:令C=C∪G,即C等于C与G的并集;令D=D∪F;如果G为空集,则令m=m-1;令E、F为空集;
第五步:根据C=C-B,D=D-B,m=m+|C|,n=|D|,计算集合C、D和变量m,n;比较m、n的值的大小,如果m小于n,则选择“读-改-写”方式来更新校验数据,否则选择“读-重构-写”方式来更新校验数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510898473.2A CN105373352B (zh) | 2015-12-04 | 2015-12-04 | 基于带宽比较的磁盘阵列扩容时校验更新方式选择方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510898473.2A CN105373352B (zh) | 2015-12-04 | 2015-12-04 | 基于带宽比较的磁盘阵列扩容时校验更新方式选择方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105373352A CN105373352A (zh) | 2016-03-02 |
CN105373352B true CN105373352B (zh) | 2018-05-29 |
Family
ID=55375586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510898473.2A Active CN105373352B (zh) | 2015-12-04 | 2015-12-04 | 基于带宽比较的磁盘阵列扩容时校验更新方式选择方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105373352B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255413A (zh) | 2016-12-29 | 2018-07-06 | 华为技术有限公司 | 一种存储系统扩容后数据迁移的方法、存储系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541475A (zh) * | 2012-03-12 | 2012-07-04 | 成都市华为赛门铁克科技有限公司 | 数据存储方法和数据存储装置 |
CN102622184A (zh) * | 2011-01-27 | 2012-08-01 | 北京东方广视科技股份有限公司 | 数据存储系统和方法 |
CN104360820A (zh) * | 2014-10-16 | 2015-02-18 | 盐城华大网安科技有限公司 | 一种高速大数据存储方法 |
-
2015
- 2015-12-04 CN CN201510898473.2A patent/CN105373352B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622184A (zh) * | 2011-01-27 | 2012-08-01 | 北京东方广视科技股份有限公司 | 数据存储系统和方法 |
CN102541475A (zh) * | 2012-03-12 | 2012-07-04 | 成都市华为赛门铁克科技有限公司 | 数据存储方法和数据存储装置 |
CN104360820A (zh) * | 2014-10-16 | 2015-02-18 | 盐城华大网安科技有限公司 | 一种高速大数据存储方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105373352A (zh) | 2016-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107807982B (zh) | 一种异构数据库的一致性校验方法及装置 | |
CN112286939B (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
US20090171885A1 (en) | Efficient bulk load | |
CN107436733A (zh) | 分片管理方法和分片管理装置 | |
CN108465244A (zh) | 用于竞速类ai模型的ai参数配置方法、装置、设备及存储介质 | |
US8347052B2 (en) | Initializing of a memory area | |
CN103020262A (zh) | 一种数据存储方法、系统及数据存储设备 | |
CN110083379A (zh) | 一种服务器部件升级方法及相关装置 | |
CN112948473A (zh) | 数据仓库的数据处理方法、装置、系统及存储介质 | |
CN105373352B (zh) | 基于带宽比较的磁盘阵列扩容时校验更新方式选择方法 | |
CN107992763A (zh) | 一种文件系统的掉电保护方法及装置 | |
CN112817540B (zh) | 一种基于磁盘阵列扩展的数据块重分布方法及装置 | |
CN110321321A (zh) | 网络块设备快照读写方法、装置、设备及存储介质 | |
CN108196975A (zh) | 基于多校验和的数据验证方法、装置及存储介质 | |
CN113257352A (zh) | 一种基因测序数据排序方法、集成电路及排序设备 | |
CN112765215A (zh) | 数据查询方法、装置 | |
CN116610670A (zh) | 一种基于区块链的状态数据存储方法及设备 | |
CN108241705A (zh) | 一种数据插入方法及装置 | |
CN116400864A (zh) | 一种tp-raid向raid5降级的方法、装置、设备及介质 | |
CN110728355A (zh) | 神经网络架构搜索方法、装置、计算机设备及存储介质 | |
CN107392745B (zh) | 一种对帐数据碎片化处理方法 | |
CN113157582B (zh) | 测试脚本执行序列确定方法及装置 | |
CN104216666A (zh) | 一种管理磁盘数据写入的方法及装置 | |
CN114356512A (zh) | 一种数据处理方法、设备以及计算机可读存储介质 | |
CN110490581B (zh) | 一种分布式系统临界数据资源更新方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |