CN112799605B - 平方部分重复码构造方法、节点修复方法及容量计算方法 - Google Patents

平方部分重复码构造方法、节点修复方法及容量计算方法 Download PDF

Info

Publication number
CN112799605B
CN112799605B CN202110349037.5A CN202110349037A CN112799605B CN 112799605 B CN112799605 B CN 112799605B CN 202110349037 A CN202110349037 A CN 202110349037A CN 112799605 B CN112799605 B CN 112799605B
Authority
CN
China
Prior art keywords
node
storage
blocks
code
coding
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
CN202110349037.5A
Other languages
English (en)
Other versions
CN112799605A (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.)
Central South University
Original Assignee
Central South University
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 Central South University filed Critical Central South University
Priority to CN202110349037.5A priority Critical patent/CN112799605B/zh
Publication of CN112799605A publication Critical patent/CN112799605A/zh
Application granted granted Critical
Publication of CN112799605B publication Critical patent/CN112799605B/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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • 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]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种平方部分重复码构造方法,包括对原数据文件进行MDS编码,得到若干个编码块;处理得到的编码块,并将其划分成不同的集合;按照设定参数,对存储系统进行划分,得到若干个存储节点集群;将不同的编码块存储到存储节点集群中,构造出平方部分重复码。本发明还公开了一种基于所述的平方部分重复码构造方法的节点修复方法及容量计算方法。本发明方法构造简单、节点修复开销小并且修复局部度较小。

Description

平方部分重复码构造方法、节点修复方法及容量计算方法
技术领域
本发明具体涉及一种平方部分重复码构造方法、节点修复方法及容量计算方法。
背景技术
随着计算机技术的飞速发展和网络应用的不断普及,网络信息量呈现出爆炸性的增长。在当今大数据时代,日益增长的海量数据对存储系统提出了严峻的挑战。传统集中式的文件系统已经无法满足大数据的存储和处理需求,因此建立支持海量数据存储的新型文件系统已经成了大数据领域的一个重要研究课题。近年来,云计算技术的不断发展使得分布式存储技术成为一种有效的海量数据存储解决方案。分布式存储系统采用云计算的理念,通过集群网格技术和分布式文件系统等功能,将分布在不同区域的独立存储设备通过网络联合起来进行协同工作,共同对用户提供数据存储和访问功能。
实际的大规模分布式文件系统通常采用廉价的商业计算机或者存储硬盘作为存储节点,存储开销较低且具有良好的扩展性。然而,不断扩大的系统规模增加了系统故障发生的概率,如节点离线、突发断电等,使得存储系统可靠性面临严峻的考验。为了保证数据的可靠性,大规模文件系统需要引入数据冗余机制。传统的基于数据拷贝的方案简单易于管理,并且支持高效的数据恢复。但是,传统的数据备份机制的缺点在于存储开销大、存储效率低,特别是在存储大数据文件的时候,副本引起的开销是不可忽略的。
研究表明,在相同冗余信息的情况下,纠删码技术可以大幅地提高系统的存储效率。在当前基于纠删码的分布式存储系统中,编码方案通常采用MDS (Maximum DistanceSeparable)码。具体来说,一个参数为(n, k)的MDS码将大小为M的原数据文件均分成k个大小相等的数据块,通过编码生成n个大小相等的编码块,并分别存储在n个不同节点上,其中系统中任意k个节点存储的数据就可重构出原始文件。如图1 MDS码的编解码方式示意图所示,这一过程称为数据重构过程,该数据重构特性称为MDS属性。MDS编码技术能够在保证系统容错性的情况下降低存储开销,因此适合大文件存储和档案数据备份应用。特别地,RS(Reed-Solomon)码是一种典型的满足MDS特性的码字。
当存储系统中出现节点失效时,为了保持存储系统的完整性,需要恢复该失效节点存储的数据并存储到替换节点中,该过程称为节点修复过程。对传统的MDS码,其修复过程首先需要从k个存储节点下载数据并重构出原文件,重新编码出丢失的数据并存储到新引入的节点上,如图2 MDS码的节点修复方式示意图所示。但是,为了恢复一个节点丢失的数据而解码出整个原文件,对网络带宽来说是一种巨大的浪费。
为了降低节点修复过程中的带宽消耗,文献[A. G. Dimakis, P. B. Godfrey,Y. Wu, M. Wainwright, and K. Ramchandran, “Network coding for distributedstorage systems,” IEEE Trans. Inf. Theory, vol. 56, no. 9, pp. 4539-4551,Sep. 2010]利用网络编码的思想提出了再生码(Regenerating Codes)的概念。再生码同样满足MDS属性,即系统n个节点中的任意k个节点存储的数据可以重构出原数据文件。传统的再生码修复过程中,替换节点需要在剩下的n-1个可用存储节点中随机连接d个并分别从这d个存储节点下载大小为β的数据,所以其修复带宽为dβ。再生码的节点修复过程中下载的数据量小于原文件的大小,因此修复带宽优于RS码。此外,Dimakis等人给出了再生码的功能修复模型并给出了两类最优码字:最小存储再生(MSR,Minimum-Storage Regenerating)码和最小带宽再生(MBR,Minimum-Bandwidth Regenerating)码。
然而,再生码的修复过程计算复杂度比较高,通常涉及大量的有限域运算,即每个参与修复节点需要对其存储的数据进行一定的编码操作。具体地说,参与修复的节点读出所存储的数据块并进行特定的线性运算,再向替换节点传递组合后的数据块。为保证所有编码块都是相互独立的,再生码的运算通常需要在较大的有限域内完成。考虑到实际系统中节点的读写带宽小于网络带宽,因此读写带宽很容易成为系统的性能瓶颈。
为了降低修复过程运算复杂度,文献[S. El Rouayheb and K. Ramchandran,“Fractional repetition codes for repair in distributed storage systems,”Allerton Conference on Communication, Control, and Computing, Oct. 2010]在MBR码的基础上提出了部分重复(FR,Fractional Repetition)码的概念,指出了FR码可以提供精确有效的修复。如图3部分重复码的编码过程示意图所示,一个FR码包含两个部分:一个外部MDS码和一个内部重复码。原始数据块经过MDS编码后,将输出的编码块复制ρ倍再分散到各存储节点。当系统中发生节点失效时,可以通过从其它节点直接下载数据并存储到替换节点来完成修复,而不需要额外的运算。与RS码和再生码相比,FR码大幅提升了节点失效修复速度,降低了修复时间。
北京大学深圳研究生院在其申请的专利文献“部分复制码的构建方法、装置及其数据修复的方法”(专利申请号:201480078750.9,授权公告号:CN 107003933 B)中公开了一种部分复制码的构建方法、装置及其数据修复的方法。该方法采用可分组设计理论提出了一种FR码的构造方法,所采用的技术可以在一定范围内选择构造参数,并通过调整设计的分组,进而构造出不同的FR码。尽管构造出的FR码采用基于表格的节点修复方式,系统中的失效节点仍然具有较多的修复选择方案。但是,该方法仍然存在的不足之处是,其构造方式对参数要求比较严格,考虑到国际上目前已知的可分组设计,实际可选的构造参数是非常有限的。此外,当系统发生节点失效时,参与修复的节点需要连接大量的可用节点完成修复,磁盘I/O开销较大。
发明内容
本发明的目的之一在于提供一种平方部分重复码构造方法,提出了一种参数选择灵活、构造步骤简单的平方部分重复码。
本发明的目的之二在于提供一种基于所述的平方部分重复码构造方法的节点修复方法。
本发明的目的之三在于提供一种基于所述的平方部分重复码构造方法的存储容量计算方法。
本发明提供的这种平方部分重复码构造方法,包括如下步骤:
S1.对原数据文件进行MDS编码,得到若干个编码块;
S2.处理得到的编码块,并将其划分成不同的集合;
S3.按照设定参数,对存储系统进行划分,得到若干个存储节点集群;
S4.将不同的编码块存储到存储节点集群中,构造出平方部分重复码。
步骤S1具体为,取一个大小为M的原数据文件,进行参数为
Figure DEST_PATH_IMAGE001
的MDS编码,得到
Figure 100002_DEST_PATH_IMAGE002
个编码块。
步骤S2具体为,从
Figure 506527DEST_PATH_IMAGE002
个编码块中随机取出
Figure DEST_PATH_IMAGE003
块,均匀划分为g个互不相交的编码块集合
Figure 100002_DEST_PATH_IMAGE004
,其中每个集合包含
Figure 100002_DEST_PATH_IMAGE005
个不同的编码块;将剩下的
Figure DEST_PATH_IMAGE006
个编码块,均匀划分为另g个互不相交的编码块集合
Figure 100002_DEST_PATH_IMAGE007
,其中,每个集合包含
Figure DEST_PATH_IMAGE008
个不同的编码块。
步骤S3具体为,选择一个包含g2个存储节点的分布式存储系统,将其划分成g个互不相交的存储集群G1,G2,...,Gg,其中每个集群包含g个存储节点
Figure 100002_DEST_PATH_IMAGE009
,其中,1≤i≤g。
步骤S4具体为,将g个互不相交的编码块集合
Figure DEST_PATH_IMAGE010
和g个互不相交的存储集群
Figure 100002_DEST_PATH_IMAGE011
进行一一对应;令Hi和Gi对应,并将Hi中的
Figure 675865DEST_PATH_IMAGE005
个不同的编码块存储到存储集群Gi的每个节点上;同时,将编码块集合
Figure DEST_PATH_IMAGE012
中的
Figure 783498DEST_PATH_IMAGE008
个编码块存储到存储集群Gi中的节点Si,j上,其中,1≤i,j≤g;构造出参数为
Figure 100002_DEST_PATH_IMAGE013
的平方部分重复码。
本发明还提供了一种基于上述的平方重复码构造方法的节点修复方法,其特征在于包括如下步骤:
A1.根据步骤S1~S4构造出平方部分重复码;
A2.确定失效节点所在的存储集群;
A3.从失效节点所在的存储集群的任意可用节点下载
Figure 647549DEST_PATH_IMAGE005
个编码块,这
Figure 304664DEST_PATH_IMAGE005
个编码块是失效节点和此可用节点共有的;
A4.从失效节点不在的任意存储集群确定一个可用节点,其中该节点与失效节点共有
Figure 595968DEST_PATH_IMAGE008
个编码块,下载
Figure DEST_PATH_IMAGE014
个编码块,并完成节点修复。
本发明还提供了一种基于上述的平方重复码构造方法的容量计算方法,其特征在于包括如下步骤:
B1.根据步骤S1~S4构造出平方部分重复码;
B2.比较
Figure 190898DEST_PATH_IMAGE005
Figure 124218DEST_PATH_IMAGE008
的大小,若
Figure 100002_DEST_PATH_IMAGE015
,则将包含
Figure 871726DEST_PATH_IMAGE008
个相同编码块的存储节点重新划归到同一个存储集群中,并将
Figure 599510DEST_PATH_IMAGE005
Figure 212894DEST_PATH_IMAGE008
互换;若
Figure DEST_PATH_IMAGE016
,继续下面的步骤;
B3.将文件重构度k划分成x个正整数之和,并从小到大排列,记为
Figure 100002_DEST_PATH_IMAGE017
,其中1≤x≤g,Ix≤g;
B4.对步骤B3中文件重构度k的所有正整数划分,计算对应的不同编码块个数;
B5.选择步骤B4计算得到的最少的不同编码块数,作为最终的系统存储容量Ck。
步骤B3的文件重构度k划分方式采用递归的方法获得,包括:将文件重构度k划分为x个正整数之和,其中最大整数Ix≤g,将不同划分数记为
Figure DEST_PATH_IMAGE018
;如果从上述划分中去掉最大整数Ix,则不同的划分为将正整数k-Ix划分为x-1个正整数之和,其中,最大整数小于等于Ix
Figure 100002_DEST_PATH_IMAGE019
其中,0 ≤ y ≤ Ix。当该等式成立时,得出文件重构度k的不同划分数。
步骤B4的计算不同的编码块个数包括:
Figure 100002_DEST_PATH_IMAGE020
其中x为正整数的个数,
Figure DEST_PATH_IMAGE021
Figure 100002_DEST_PATH_IMAGE022
为平方部分重复码的参数,Ix为文件重构度k划分中的最大整数。
步骤B5具体包括:
Figure 100002_DEST_PATH_IMAGE023
其中,文件重构度k=I1+I2+...+Ix
本发明提供的这种平方部分重复码的构造、节点修复及存储容量计算方法,构造简单、节点修复开销小而且修复局部度较小。
附图说明
图1为MDS码的编解码方式示意图。
图2为MDS码的节点修复方式示意图。
图3为部分重复码的编码过程示意图。
图4为本发明的平方部分重复码的构造方法的流程示意图。
图5为本发明的平方部分重复码的构造方法实施例的构造示意图。
图6为本发明的节点修复方法的流程示意图。
图7为本发明的存储容量计算方法的流程示意图。
具体实施方式
如图4为本发明的平方部分重复码的构造方法的流程示意图:本发明提供的这种平方部分重复码构造方法,包括如下步骤:
S1.对原数据文件进行MDS编码,得到若干个编码块;具体为,取一个大小为M的原数据文件,进行参数为
Figure DEST_PATH_IMAGE024
的MDS编码,得到
Figure 529999DEST_PATH_IMAGE002
个编码块。
S2.处理得到的编码块,并将其划分成不同的集合;具体为,从
Figure 663172DEST_PATH_IMAGE002
个编码块中随机取出
Figure 827437DEST_PATH_IMAGE003
块,均匀划分为g个互不相交的编码块集合
Figure 803483DEST_PATH_IMAGE010
,其中每个集合包含
Figure 813027DEST_PATH_IMAGE005
个不同的编码块;将剩下的
Figure 315553DEST_PATH_IMAGE006
个编码块,均匀划分为另g个互不相交的编码块集合
Figure 385140DEST_PATH_IMAGE007
,其中,每个集合包含
Figure 848482DEST_PATH_IMAGE008
个不同的编码块。
S3.按照设定参数,对存储系统进行划分,得到若干个存储节点集群;具体为,选择一个包含g2个存储节点的分布式存储系统,将其划分成g个互不相交的存储集群G1,G2,...,Gg,其中每个集群包含g个存储节点
Figure 661718DEST_PATH_IMAGE009
,其中,1≤i≤g。
S4.将不同的编码块存储到存储节点集群中;具体为,将g个互不相交的编码块集合
Figure 268017DEST_PATH_IMAGE010
和g个互不相交的存储集群
Figure 100002_DEST_PATH_IMAGE025
进行一一对应;令Hi和Gi对应,并将Hi中的
Figure 508506DEST_PATH_IMAGE005
个不同的编码块存储到存储集群Gi的每个节点上;同时,将编码块集合
Figure 193565DEST_PATH_IMAGE012
中的
Figure 935125DEST_PATH_IMAGE008
个编码块存储到存储集群Gi中的节点Si,j上,其中,1≤i,j≤g;
从整体上,一个参数为
Figure 100002_DEST_PATH_IMAGE026
的部分重复码是指特定的n个子集集合,
Figure DEST_PATH_IMAGE027
,其中每个子集中的元素均来自于符号集
Figure 100002_DEST_PATH_IMAGE028
,并且满足每个子集均包含α个元素,Ω中的每个元素属于子集集合W中ρ个不同的子集。
在上述定义中,参数n, α, θ, ρ之间满足数值关系:
Figure 100002_DEST_PATH_IMAGE029
因此,一个参数为
Figure 100658DEST_PATH_IMAGE026
的部分重复码可以将θ个不同的编码块复制ρ倍后存储到一个包含n个节点的存储系统中,其中,每个节点存储α个编码块。具体来说,每个编码块对应Ω中的一个元素,每个存储节点对应子集集合W中的一个子集,该节点存储子集中的元素所对应的编码块。由于每个子集包含α个元素,所以每个节点存储α个编码块。
一个参数为
Figure 777627DEST_PATH_IMAGE026
的部分重复码的存储容量,记为Ck,是指系统n个节点中任意k个节点所能解码出的数据大小,其中参数k称为文件重构度。由于系统存储的编码块是由MDS编码得到的,因此根据MDS特性,任意k个节点所包含的不同编码块个数,即为系统的存储容量Ck
在本实施例中,MDS编码生成的
Figure 100002_DEST_PATH_IMAGE030
个编码块通过上述特定的方式存储到了一个包含g2个节点的分布式存储系统,其中每个节点存储
Figure 100002_DEST_PATH_IMAGE031
个编码块,并且每个编码块均存在g个副本。
通过本实施例,结合上述定义,构造出参数为
Figure 100002_DEST_PATH_IMAGE032
的平方部分重复码。由于存储系统的节点规模是个平方数,所以称构造出的码字为平方部分重复码。
如图5为本发明的平方部分重复码的构造方法实施例的构造示意图。在本实施例中,给出一个参数为
Figure 100002_DEST_PATH_IMAGE033
的平方部分重复码的构造实施例:
步骤一、取一个原文件等分为12个数据块,对其进行参数为(15, 12)的MDS编码,从而得到15个编码块,记为
Figure DEST_PATH_IMAGE034
步骤二、从上述15个编码块中随机取出9个,不失一般性,设取出的编码块为
Figure 100002_DEST_PATH_IMAGE035
并等分成三个部分,记为
Figure 100002_DEST_PATH_IMAGE036
Figure 100002_DEST_PATH_IMAGE037
。更进一步地,将剩下的6个编码块同样等分成三个部分,记为
Figure DEST_PATH_IMAGE038
步骤三、将一个包含9个节点的存储系统划分成3个集群:G1,G2,G3,其中每个集群Gi包含3个存储节点Si,1,Si,2,Si,3,其中1≤i≤3。
步骤四、将步骤二中集合H1的三个编码块存储到集群G1的每个节点上,同时将集合H2和H3中的编码块分别存储到集群G2和G3的每个节点上。
步骤五、将步骤二中集合
Figure 100002_DEST_PATH_IMAGE039
中的两个编码块存储到集群Gi的存储节点Si,1上,同时将集合
Figure DEST_PATH_IMAGE040
Figure 100002_DEST_PATH_IMAGE041
中的编码块分别存储到集群Gi的存储节点Si,2和Si,3上,其中1≤i≤3。
通过上述构造方法,可以得到如图5中的参数为(9, 5, 15, 3)的平方部分重复码,其中每个节点中的方块表示一个编码块,方块中的数字对应编码块的下标。
如图6为本发明的节点修复方法的流程示意图。本发明提供的这种基于所述的平方部分重复码构造方法的节点修复方法,包括如下步骤:
A1.根据上述步骤S1~S4构造出平方部分重复码;
A2.确定失效节点所在的存储集群;
A3.从失效节点所在的存储集群的任意可用节点下载
Figure 642991DEST_PATH_IMAGE005
个编码块,这
Figure 798029DEST_PATH_IMAGE005
个编码块是失效节点和此可用节点共有的;
A4.从失效节点不在的任意存储集群确定一个可用节点,其中该节点与失效节点共有
Figure 5019DEST_PATH_IMAGE008
个编码块,下载
Figure 728256DEST_PATH_IMAGE014
个编码块,完成节点修复。
在上述节点修复过程中,参与修复的节点数为2,其中一个与失效节点同在一个存储集群,另一个与失效节点不在同一个集群;参与修复的节点仅传输部分存储的数据,而不需要其它额外的操作就可完成节点修复。因此,和数据复制技术一样,本实施例中的平方部分重复码的节点修复复杂度是最低的;修复后节点存储的数据与失效节点丢失的数据完全一致,因此该修复模式是精确修复。
在具体实施方式中,给出如图5所述的平方部分重复码的节点修复过程,包括:现假设集群G1中的节点S1,1失效,则可以从集群G1中剩下的两个节点中任意一个下载编码块C1、C2和C3;进一步地,从集群G2中的节点S2,1(或者集群G3中的节点S3,1)下载编码块C10和C13,从而完成节点修复。
如图7为本发明的存储容量计算方法的流程示意图。本发明提供的基于所述的平方重复码构造方法的容量计算方法,其特征在于包括如下步骤:
B1.根据上述的步骤S1~S4构造出平方部分重复码;
B2.比较
Figure 387907DEST_PATH_IMAGE005
Figure 346636DEST_PATH_IMAGE008
的大小,若
Figure DEST_PATH_IMAGE042
,则将包含
Figure 1608DEST_PATH_IMAGE008
个相同编码块的存储节点重新划归到同一个存储集群中,并将
Figure 20380DEST_PATH_IMAGE005
Figure 167327DEST_PATH_IMAGE008
互换;若
Figure 100002_DEST_PATH_IMAGE043
,继续下面的步骤;
B3.将给定的文件重构度k划分成x个正整数之和,并从小到大排列,记为
Figure DEST_PATH_IMAGE044
,其中1≤x≤g,Ix≤g;文件重构度k的不同划分数采用递归的方法获得,包括:将文件重构度k划分为x个正整数之和,其中最大整数Ix≤g,将不同划分数记为
Figure 100002_DEST_PATH_IMAGE045
;如果从上述划分中去掉最大整数Ix,则不同的划分为将正整数k- Ix划分为x-1个正整数之和,其中,最大整数小于等于Ix
Figure DEST_PATH_IMAGE046
其中,0 ≤ y ≤ Ix。当该等式成立时,得出文件重构度k的不同划分数。
B4.由于同一个存储集群中的节点包含
Figure 506911DEST_PATH_IMAGE005
个相同的编码块,所以集群Gi中的Ii个节点贡献的不同编码块数为
Figure 100002_DEST_PATH_IMAGE047
。对步骤B3中文件重构度k的所有正整数划分,计算对应的不同编码块个数
Figure 100002_DEST_PATH_IMAGE048
B5.选择最少的不同编码块数,作为系统存储容量Ck
Figure DEST_PATH_IMAGE049
其中,k=I1+I2+...+Ix,1≤x,Ix≤g。
如下表1为本发明的存储容量计算方法的实施例的划分示意图。
表1 存储容量计算方法的实施例的划分示意表
Figure 100002_DEST_PATH_IMAGE050
在本实施例中,计算基于图5中的平方部分重复码的系统存储容量,具体为:
当k=1时,满足条件的正整数划分只有1种:1=1。通过计算,系统存储容量为:C1=1×3+1×2=5;
当k=2时,满足条件的正整数划分有2种:2=2和2=1+1。通过计算,系统存储容量为:C2=1×3+2×2=7;
当k=3时,满足条件的正整数划分有3种:3=3、3=1+2和3=1+1+1。通过计算,系统存储容量为:C3=1×3+3×2=9;
当k=4时,满足条件的正整数划分有3种:4=1+3、4=2+2和4=1+1+2。通过计算,系统存储容量为:C4=2×3+2×2=10;
当k=5时,满足条件的正整数划分有3种:5=2+3、5=1+1+3和5=1+2+2。通过计算,系统存储容量为:C5=2×3+3×2=12;
当k=6时,满足条件的正整数划分有3种:6=3+3、6=1+2+3和6=2+2+2。通过计算,系统存储容量为:C6=2×3+3×2=12;
当k=7时,满足条件的正整数划分有2种:7=1+3+3和7=2+2+3。通过计算,系统存储容量为:C7=3×3+3×2=15;
当k=8时,满足条件的正整数划分只有1种:8=2+3+3。通过计算,系统存储容量为:C8=3×3+3×2=15;
当k=9时,满足条件的正整数划分只有1种:9=3+3+3。通过计算,系统存储容量为:C9=3×3+3×2=15。

Claims (6)

1.一种平方部分重复码构造方法,其特征在于包括如下步骤:
S1.对原数据文件进行MDS编码,得到若干个编码块;具体为,取一个大小为M的原数据文件,进行参数为
Figure DEST_PATH_IMAGE002
的MDS编码,得到
Figure DEST_PATH_IMAGE004
个编码块;
S2.处理得到的编码块,并将其划分成不同的集合;具体为,从
Figure DEST_PATH_IMAGE005
个编码块中随机取出
Figure DEST_PATH_IMAGE007
块,均匀划分为g个互不相交的编码块集合
Figure DEST_PATH_IMAGE009
,其中每个集合包含
Figure DEST_PATH_IMAGE011
个不同的编码块;将剩下的
Figure DEST_PATH_IMAGE013
个编码块,均匀划分为另g个互不相交的编码块集合
Figure DEST_PATH_IMAGE015
,其中,每个集合包含
Figure DEST_PATH_IMAGE017
个不同的编码块;
S3.按照设定参数,对存储系统进行划分,得到若干个存储节点集群;具体为,选择一个包含g 2个存储节点的分布式存储系统,将其划分成g个互不相交的存储集群G 1,G 2,...,G g ,其中每个集群包含g个存储节点
Figure DEST_PATH_IMAGE019
,其中,1≤ig
S4.将不同的编码块存储到存储节点集群中,构造出平方部分重复码;具体为,将g个互不相交的编码块集合
Figure DEST_PATH_IMAGE020
g个互不相交的存储集群
Figure DEST_PATH_IMAGE022
进行一一对应;令H i G i 对应,并将H i 中的
Figure DEST_PATH_IMAGE023
个不同的编码块存储到存储集群G i 的每个节点上;同时,将编码块集合
Figure DEST_PATH_IMAGE025
中的
Figure DEST_PATH_IMAGE026
个编码块存储到存储集群G i 中的节点S i,j 上,其中,1≤ijg;构造出参数为
Figure DEST_PATH_IMAGE028
的平方部分重复码。
2.一种基于权利要求1所述的平方重复码构造方法的节点修复方法,其特征在于包括如下步骤:
A1.根据步骤S1~S4构造出平方部分重复码;
A2.确定失效节点所在的存储集群;
A3.从失效节点所在的存储集群的任意可用节点下载
Figure DEST_PATH_IMAGE029
个编码块,这
Figure 651470DEST_PATH_IMAGE029
个编码块是失效节点和此可用节点共有的;
A4.从失效节点不在的任意存储集群确定一个可用节点,其中该节点与失效节点共有
Figure DEST_PATH_IMAGE030
个编码块,下载
Figure DEST_PATH_IMAGE031
个编码块,并完成节点修复。
3.一种基于权利要求1所述的平方重复码构造方法的容量计算方法,其特征在于包括如下步骤:
B1.根据步骤S1~S4构造出平方部分重复码;
B2.比较
Figure DEST_PATH_IMAGE032
Figure DEST_PATH_IMAGE033
的大小,若
Figure DEST_PATH_IMAGE035
,则将包含
Figure DEST_PATH_IMAGE036
个相同编码块的存储节点重新划归到同一个存储集群中,并将
Figure 975135DEST_PATH_IMAGE023
Figure DEST_PATH_IMAGE037
互换;若
Figure DEST_PATH_IMAGE039
,继续下面的步骤;
B3.将文件重构度k划分成x个正整数之和,并从小到大排列,记为
Figure DEST_PATH_IMAGE041
,其中1≤xgI x g
B4.对步骤B3中文件重构度k的所有正整数划分,计算对应的不同编码块个数;
B5.选择步骤B4计算得到的最少的不同编码块数,作为最终的系统存储容量C k
4.根据权利要求3所述的容量计算方法,其特征在于步骤B3的文件重构度k的不同划分数采用递归的方法获得,包括:将文件重构度k划分为x个正整数之和,其中最大整数I x g,将不同划分数记为
Figure DEST_PATH_IMAGE043
;如果从上述划分中去掉最大整数I x ,则不同的划分为将正整数k-I x 划分为x-1个正整数之和,其中,最大整数小于等于I x
Figure DEST_PATH_IMAGE045
其中,0 ≤ yI x ;当该等式成立时,得出文件重构度k的不同划分数。
5.根据权利要求4所述的容量计算方法,其特征在于步骤B4的计算不同的编码块个数包括:
Figure DEST_PATH_IMAGE047
其中x为正整数的个数,
Figure DEST_PATH_IMAGE048
Figure 800878DEST_PATH_IMAGE031
为平方部分重复码的参数,I x 为文件重构度k划分中的最大整数。
6.根据权利要求5所述的容量计算方法,其特征在于步骤B5具体包括:
Figure DEST_PATH_IMAGE050
其中,文件重构度k=I 1 +I 2 +...+I x
CN202110349037.5A 2021-03-31 2021-03-31 平方部分重复码构造方法、节点修复方法及容量计算方法 Active CN112799605B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110349037.5A CN112799605B (zh) 2021-03-31 2021-03-31 平方部分重复码构造方法、节点修复方法及容量计算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110349037.5A CN112799605B (zh) 2021-03-31 2021-03-31 平方部分重复码构造方法、节点修复方法及容量计算方法

Publications (2)

Publication Number Publication Date
CN112799605A CN112799605A (zh) 2021-05-14
CN112799605B true CN112799605B (zh) 2021-06-29

Family

ID=75816127

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110349037.5A Active CN112799605B (zh) 2021-03-31 2021-03-31 平方部分重复码构造方法、节点修复方法及容量计算方法

Country Status (1)

Country Link
CN (1) CN112799605B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113347026B (zh) * 2021-05-21 2022-06-28 长安大学 基于立方体网络的部分重复码构造和故障节点修复方法
CN114979167A (zh) * 2022-01-10 2022-08-30 昆明理工大学 一种兼顾存储优化的共识系统、方法及装置
CN114924907B (zh) * 2022-07-20 2022-10-04 中南大学 一种近似最优部分重复码构造方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111614720A (zh) * 2020-04-13 2020-09-01 厦门大学 针对集群存储系统单点失效修复的跨集群流量优化方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015180038A1 (zh) * 2014-05-27 2015-12-03 北京大学深圳研究生院 部分复制码的构建方法、装置及其数据修复的方法
GB201712840D0 (en) * 2017-08-10 2017-09-27 Univ Surrey Apparatus and method for detecting mutually interfering information streams
CN108762978B (zh) * 2018-03-29 2021-03-26 长安大学 一种局部部分重复循环码的分组构造方法
CN112269868B (zh) * 2020-12-21 2021-03-09 中南大学 一种基于多任务联合训练的机器阅读理解模型的使用方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111614720A (zh) * 2020-04-13 2020-09-01 厦门大学 针对集群存储系统单点失效修复的跨集群流量优化方法

Also Published As

Publication number Publication date
CN112799605A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
CN112799605B (zh) 平方部分重复码构造方法、节点修复方法及容量计算方法
CN107656832B (zh) 一种低数据重建开销的纠删码方法
CN109643258B (zh) 使用高速率最小存储再生擦除代码的多节点修复
US11531593B2 (en) Data encoding, decoding and recovering method for a distributed storage system
CN107003933B (zh) 部分复制码的构建方法、装置及其数据修复的方法
CN103688515B (zh) 一种最小带宽再生码的编码和存储节点修复方法
CN103688514B (zh) 一种最小存储再生码的编码和存储节点修复方法
JP5167243B2 (ja) 拡張性及び耐障害性を有する記憶システムのための記憶領域割当て及び消去符号化技法
CN109491835B (zh) 一种基于动态分组码的数据容错方法
CN103746774B (zh) 一种高效数据读取的容错编码方法
CN108132854B (zh) 一种可同时恢复数据元素及冗余元素的纠删码解码方法
CN113190377B (zh) 一种基于分布式存储系统的可靠冗余方法及设备
CN108762978B (zh) 一种局部部分重复循环码的分组构造方法
CN111224747A (zh) 可降低修复带宽和磁盘读取开销的编码方法及其修复方法
CN110781024B (zh) 对称部分重复码的矩阵构造方法及故障节点修复方法
CN112732203B (zh) 一种再生码构造方法、文件重构方法及节点修复方法
CN108647108B (zh) 一种基于循环vfrc的最小带宽再生码的构造方法
WO2018209541A1 (zh) 基于t-设计的部分重复码的编码结构以及构造方法
CN110781025B (zh) 基于完全图的对称部分重复码构造及故障节点修复方法
CN113157485B (zh) 一种部分重复码的扩张构造方法
Calis et al. Architecture-aware coding for distributed storage: Repairable block failure resilient codes
CN110781163B (zh) 基于完全图的异构部分重复码构造及故障节点修复方法
CN109151054B (zh) 一种层次码的构造方法及故障节点的修复方法
CN112988454A (zh) 一种扩张部分重复码构造方法
Calis Coding and Maintenance Strategies for Cloud Storage: Correlated Failures, Mobility and Architecture Awareness

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