CN106383669A - 一种基于(n,k,m)编码的分布式存储方法及系统 - Google Patents

一种基于(n,k,m)编码的分布式存储方法及系统 Download PDF

Info

Publication number
CN106383669A
CN106383669A CN201610833058.3A CN201610833058A CN106383669A CN 106383669 A CN106383669 A CN 106383669A CN 201610833058 A CN201610833058 A CN 201610833058A CN 106383669 A CN106383669 A CN 106383669A
Authority
CN
China
Prior art keywords
code
disk
data symbols
raw data
sign
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
CN201610833058.3A
Other languages
English (en)
Other versions
CN106383669B (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.)
Bohai University
Original Assignee
Bohai 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 Bohai University filed Critical Bohai University
Priority to CN201610833058.3A priority Critical patent/CN106383669B/zh
Publication of CN106383669A publication Critical patent/CN106383669A/zh
Application granted granted Critical
Publication of CN106383669B publication Critical patent/CN106383669B/zh
Active 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • 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
    • 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
    • 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)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明涉及一种基于(n,k,m)编码的分布式存储方法及系统,其特征在于,包括如下步骤:步骤1、把m×k个原始数据符号分成m组,则每组包含k个原始数据符号;步骤2、应用系统的(n,k)‑MDS编码器将每组k个原始数据符号编码得到n个码符号,由此,m组原始数据符号一共得到m×n个码符号;步骤3、将步骤2中得到的m×n个码符号存储在n个分布式的磁盘中,每个磁盘存储m个码符号,其中:k个磁盘用于存储码符号中的系统部分,即m×k个原始数据符号,另外n‑k个磁盘用于存储码符号中的非系统部分。其降低了对存储空间的占用,同时减小了更新带宽和修复带宽。

Description

一种基于(n,k,m)编码的分布式存储方法及系统
技术领域
本发明涉及一种基于(n,k,m)编码的分布式存储方法,属于计算机和通信网络技术领域。
背景技术
传统的数据中心把客户数据集中存储在一个房间或一栋建筑内的磁盘阵列中,这种方式的优点是便于管理,但明显的缺点就是随着业务量的增加,数据中心负荷急剧增加,瓶颈效应明显;数据中心的另一个缺点是应对突发事件能力较脆弱,一旦出现地震、火灾等灾害,数据中心损毁,用户数据无法恢复,损失巨大。随着互联网技术的飞速发展,数据存储方式逐渐从集中式转变为分布式。与数据中心不同,分布式云存储把客户数据分散存储在空间上相分离且相距较远的若干个磁盘驱动器内,这些磁盘可能分布在一个城市的各个角落,或者位于各个城市,甚至是各个国家。分布式存储最大的特点就是把通信负荷分散到各个存储节点,从而有效解决了数据传输的瓶颈问题。分布式云存储已经取代数据中心成为市场上主流的存储技术,商用的云存储产品包括如Dropbox,微软OneDrive,亚马逊S3,百度云盘等等。
分布式存储系统的一个基本要求是数据的可靠性,即当一部分数据损毁后,能否被恢复。冗余存储可以提高可靠性,实现冗余存储的一个最简单的思路就是为数据存储多个拷贝,但这种单纯依靠复制的方法效率太低,无论是在理论上还是在工程应用中都已经证明基于编码的存储方式的效率远远高于基于拷贝的存储方式。所谓基于编码的分布式存储是指在磁盘中存储的不是原始的用户数据,而是把用户数据经过某种编码处理后得到的码字。如图1示意了一个编码存储系统的基本构成,用户数据d1,…,dk首先送入编码器,编码器的输出为码字c1,…,cn,这些码字分布式地存储在若干个磁盘中,当用户想要得到原始数据时,可以从磁盘中读取一部分码字并送入译码器,经译码得到用户数据。以(n,k)最大距离可分码(MDS码)为例,k个数据符号d1,…,dk被编码成n个码符号c1,…,cn,从c1,…,cn中任意选择k个码符号即可通过译码恢复d1,…,dk
一个分布式存储系统必然要消耗一些资源,考察分布式存储系统的主要性能指标包括存储空间、更新带宽和修复带宽等。其中:存储空间是指对原始用户数据编码之后得到的码符号所占用的总的存储空间;数据更新是指当用户的数据符号发生变化后,需要修改存储在磁盘驱动器中的码符号以反映这种变化,在这个过程产生的通信数据量被称为更新带宽;数据修复是指当某些个磁盘遭到破坏导致存储的码符号数据丢失时,要通过其他磁盘中存储的码符号数据恢复这些丢失的码符号数据并将其存储到新磁盘中,在数据修复过程中产生的通信数据量被称为修复带宽。毫无疑问,一个高效的分布式存储系统应该占用较少的存储空间,消耗较小的更新带宽和修复带宽,而现有的基于编码的分布式存储方法在以上三点均有待改进。
发明内容
本发明的目的在于为分布式存储系统提供一种高效的编码方法,即提供一种基于(n,k,m)编码的分布式存储方法及系统,降低对存储空间的占用,同时减小更新带宽和修复带宽。
本发明的技术方案是:
一种基于(n,k,m)编码的分布式存储方法,其特征在于,包括如下步骤:
步骤1、把m×k个原始数据符号分成m组,则每组包含k个原始数据符号;
步骤2、应用系统的(n,k)-MDS编码器将每组k个原始数据符号编码得到n个码符号,由此,m组原始数据符号一共得到m×n个码符号,所述原始数据符号和码符号定义在同样的有限域GF(q)中;
步骤3、将步骤2中得到的m×n个码符号存储在n个分布式的磁盘中,每个磁盘存储m个码符号,其中:k个磁盘用于存储码符号中的系统部分,即m×k个原始数据符号,另外n-k个磁盘用于存储码符号中的非系统部分。
上述的基于(n,k,m)编码的分布式存储方法,步骤2中,把m组原始数据符号一一对应地送入m个系统的(n,k)-MDS码编码器中,每个编码器输出的码符号由第1至第k个系统码符号和第1至第(n-k)个非系统码符号组成,并将其输出的第1至第k个系统码符号依次对应存储于第1至第k个磁盘,将第1至第(n-k)个非系统码符号依次对应存储于第k+1至第n个磁盘。
一种基于(n,k,m)编码的分布式存储系统,其特征在于:由n个分布式的磁盘组成,共存储有m×n个码符号,所述m×n个码符号由m×k个原始数据符号利用m个系统的(n,k)-MDS码编码器编码得到,每个编码器输出的码符号由第1至第k个系统码符号和第1至第(n-k)个非系统码符号组成,并将其输出的第1至第k个系统码符号依次对应存储于第1至第k个磁盘,将第1至第(n-k)个非系统码符号依次对应存储于第k+1至第n个磁盘。
本发明的有益效果是:
1、由于采用了系统的(n,k)-MDS编码器编码,所以大大降低了编译码的复杂度。
2、数据更新非常容易且更新带宽较小。由于每组的k个原始数据符号只参与本组的(n,k)-MDS编码,与其他组MDS编码无关,所以某个数据符号的更新不会造成其他组的码符号的变化,因此本方法大大减小了更新带宽;另外,由于本方法采用的是系统的(n,k)-MDS编码器,该编码器的输出分为系统部分和非系统部分,其中:系统部分即k个原始数据符号,非系统部分包括(n-k)个码符号,由此,某个数据符号的变化只需要更新该数据符号和非系统部分的(n-k)个码符号,也就是说一个数据符号所对应的更新带宽为(n-k+1)个码符号。
3、数据修复能力非常强。本方法可修复任意的多达n-k个磁盘的同时损坏,依靠剩余的k个磁盘中的数据即可恢复全部磁盘数据;其次,数据修复非常容易且修复带宽较小,由于采用的是(n,k)-MDS编码方式,因此依靠n个数据符号中的任何k个符号都可以通过线性运算恢复全部n个符号。因此,修复n-k个磁盘损坏或等价的m(n-k)个符号损坏所需要的修复带宽为mk个符号。
附图说明
图1是基于编码的分布式存储系统示意图;
图2是本发明的编码和存储过程示意图;
图3是采用本方法得到的一种(5,3,2)存储码的编码和存储过程示意图。
具体实施方式
如图2所示,该基于(n,k,m)编码的分布式存储系统,由n个分布式的磁盘组成,共存储有m×n个码符号,所述m×n个码符号由m×k个原始数据符号利用m个系统的(n,k)-MDS码编码器编码得到,每个编码器输出的码符号由第1至第k个系统码符号和第1至第(n-k)个非系统码符号组成,并将其输出的第1至第k个系统码符号依次对应存储于第1至第k个磁盘,将第1至第(n-k)个非系统码符号依次对应存储于第k+1至第n个磁盘。图2中每一列代表一个磁盘,每一行代表由一组k个原始数据符号经过(n,k)-MDS编码得到的n个码符号。全部原始数据符号存储在k个磁盘中,这被称为系统部分;剩余的n-k个磁盘存储了码符号,这被称为非系统部分。
该基于(n,k,m)编码的分布式存储方法,具体包括如下步骤:
步骤1、把m×k个原始数据符号分成m组,则每组包含k个原始数据符号,分别记为(β11,…,β1k),(β21,…,β2k),…,(βm1,…,βmk)。
步骤2、应用系统的(n,k)-MDS编码器将每组k个原始数据符号编码得到n个码符号,由此,m组原始数据符号一共得到m×n个码符号,所述原始数据符号和码符号定义在同样的有限域GF(q)中。
步骤3、将步骤2中得到的m×n个码符号存储在n个分布式的磁盘中,每个磁盘存储m个码符号,其中:k个磁盘用于存储码符号中的系统部分,即m×k个原始数据符号,另外n-k个磁盘用于存储码符号中的非系统部分。
步骤2中,把m组原始数据符号一一对应地送入m个系统的(n,k)-MDS码编码器中,每个编码器输出的码符号由第1至第k个系统码符号和第1至第(n-k)个非系统码符号组成,并将其输出的第1至第k个系统码符号依次对应存储于第1至第k个磁盘,将第1至第(n-k)个非系统码符号依次对应存储于第k+1至第n个磁盘。以图2中第1行为例,该编码器的输出为k个系统码符号和(n-k)个非系统码符号,其中:系统码符号即原始的数据符号(β11,…,β1k),把非系统码符号标记为(c11,…,c1(n-k))。
本实施例中应用本方法得到的一种(n,k,m)=(5,3,2)存储码。本实施例中有限域取为GF(7),因此本例中涉及到的全部代数运算,如矩阵乘积和矩阵求逆等,都是在GF(7)上进行。
第1步,把6个原始数据符号分为两组,分别为(β111213)和(β212223)。
第2步,把这两组原始数据符号分别送入两个系统的(5,3)-MDS码编码器。本实施例中取这两个编码器的编码矩阵分别为:
G 1 = 1 0 0 1 1 0 1 0 1 2 0 0 1 1 3 G 2 = 1 0 0 1 1 0 1 0 1 3 0 0 1 3 4
不难验证,G1,G2符合MDS码的要求,即编码矩阵的任意三列(k=3)都线性无关。参见图3,编码过程如下:
( β 11 β 12 β 13 c 11 c 12 ) = ( β 11 β 12 β 13 ) G 1 = ( β 11 β 12 β 13 ) 1 0 0 1 1 0 1 0 1 2 0 0 1 1 3 - - - ( 1 )
( β 21 β 22 β 23 c 21 c 22 ) = ( β 21 β 22 β 23 ) G 2 = ( β 21 β 22 β 23 ) 1 0 0 1 1 0 1 0 1 3 0 0 1 3 4 - - - ( 2 )
由此可得编码后非系统部分的码符号(c11,c12)和(c21,c22)如图3所示。
第3步,把编码后得到的码符号按照系统部分和非系统部分的划分,如图3所示排列并存储在5个磁盘中。
在本实施例中,用于存储mk=6个原始数据符号所需要的存储空间为nm=10个码符号。此外,此实施例可以修复全部5个磁盘中最多n-k=2个磁盘故障造成的数据丢失,即任意1个或2个磁盘发生故障,其中存储的码符号可以由其余3个磁盘中存储的码符号加以恢复,修复带宽为6个码符号。不失一般性,假设图3中前两个磁盘出现故障,为了修复其中存储的数据,即(β1121)和(β1222),可以应用剩余三个磁盘中存储的码符号(β1323)、(c11,c21)、(c12,c22)通过如下译码过程恢复全部原始数据:
( β 11 β 12 β 13 ) = ( β 13 c 11 c 12 ) 0 1 1 0 1 2 1 1 3 - 1 - - - ( 3 )
( β 21 β 22 β 23 ) = ( β 23 c 21 c 22 ) 0 1 1 0 1 3 1 3 4 - 1 - - - ( 4 )
在(3)(4)两式中逆矩阵的存在是由MDS码的特性保证的,即MDS码生成矩阵G1,G2的任意三列都线性无关。
最后,某个原始数据符号更新所需要的更新带宽为3个码符号,以图3中的β11为例,更新β11所需要更新的码符号为β11,c11和c12,其他码符号保持不变。
以上所述为本发明的某些网络实施例而已,本发明不应该局限于这些实施例和附图所公开的内容。凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。

Claims (3)

1.一种基于(n,k,m)编码的分布式存储方法,其特征在于,包括如下步骤:
步骤1、把m×k个原始数据符号分成m组,则每组包含k个原始数据符号;
步骤2、应用系统的(n,k)-MDS编码器将每组k个原始数据符号编码得到n个码符号,由此,m组原始数据符号一共得到m×n个码符号,所述原始数据符号和码符号定义在同样的有限域GF(q)中;
步骤3、将步骤2中得到的m×n个码符号存储在n个分布式的磁盘中,每个磁盘存储m个码符号,其中:k个磁盘用于存储码符号中的系统部分,即m×k个原始数据符号,另外n-k个磁盘用于存储码符号中的非系统部分。
2.根据权利要求1所述的基于(n,k,m)编码的分布式存储方法,其特征在于:步骤2中,把m组原始数据符号一一对应地送入m个系统的(n,k)-MDS码编码器中,每个编码器输出的码符号由第1至第k个系统码符号和第1至第(n-k)个非系统码符号组成,并将其输出的第1至第k个系统码符号依次对应存储于第1至第k个磁盘,将第1至第(n-k)个非系统码符号依次对应存储于第k+1至第n个磁盘。
3.一种基于(n,k,m)编码的分布式存储系统,其特征在于:由n个分布式的磁盘组成,共存储有m×n个码符号,所述m×n个码符号由m×k个原始数据符号利用m个系统的(n,k)-MDS码编码器编码得到,每个编码器输出的码符号由第1至第k个系统码符号和第1至第(n-k)个非系统码符号组成,并将其输出的第1至第k个系统码符号依次对应存储于第1至第k个磁盘,将第1至第(n-k)个非系统码符号依次对应存储于第k+1至第n个磁盘。
CN201610833058.3A 2016-09-19 2016-09-19 一种基于(n,k,m)编码的分布式存储方法及系统 Active CN106383669B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610833058.3A CN106383669B (zh) 2016-09-19 2016-09-19 一种基于(n,k,m)编码的分布式存储方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610833058.3A CN106383669B (zh) 2016-09-19 2016-09-19 一种基于(n,k,m)编码的分布式存储方法及系统

Publications (2)

Publication Number Publication Date
CN106383669A true CN106383669A (zh) 2017-02-08
CN106383669B CN106383669B (zh) 2019-04-16

Family

ID=57936731

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610833058.3A Active CN106383669B (zh) 2016-09-19 2016-09-19 一种基于(n,k,m)编码的分布式存储方法及系统

Country Status (1)

Country Link
CN (1) CN106383669B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108732558A (zh) * 2018-03-26 2018-11-02 东南大学 一种基于拷贝信号分段的匹配滤波计算方法
CN109062724A (zh) * 2018-07-21 2018-12-21 湖北大学 一种纠删码转换方法及终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102624866A (zh) * 2012-01-13 2012-08-01 北京大学深圳研究生院 一种存储数据的方法、装置及分布式网络存储系统
US20140331104A1 (en) * 2009-11-25 2014-11-06 Cleversafe, Inc. Efficient storage of encrypted data in a dispersed storage network
CN105786656A (zh) * 2016-02-17 2016-07-20 中科院成都信息技术股份有限公司 基于随机矩阵的独立磁盘冗余阵列容灾存储方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140331104A1 (en) * 2009-11-25 2014-11-06 Cleversafe, Inc. Efficient storage of encrypted data in a dispersed storage network
CN102624866A (zh) * 2012-01-13 2012-08-01 北京大学深圳研究生院 一种存储数据的方法、装置及分布式网络存储系统
CN105786656A (zh) * 2016-02-17 2016-07-20 中科院成都信息技术股份有限公司 基于随机矩阵的独立磁盘冗余阵列容灾存储方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108732558A (zh) * 2018-03-26 2018-11-02 东南大学 一种基于拷贝信号分段的匹配滤波计算方法
CN108732558B (zh) * 2018-03-26 2021-08-24 东南大学 一种基于拷贝信号分段的匹配滤波计算方法
CN109062724A (zh) * 2018-07-21 2018-12-21 湖北大学 一种纠删码转换方法及终端

Also Published As

Publication number Publication date
CN106383669B (zh) 2019-04-16

Similar Documents

Publication Publication Date Title
US10514971B2 (en) Dispersed b-tree directory trees
US10481978B2 (en) Optimal slice encoding strategies within a dispersed storage unit
US10901844B2 (en) Multiple node repair using high rate minimum storage regeneration erasure code
US9201733B2 (en) Systems and methods for data repair
CN103944981B (zh) 一种基于纠删码技术改进的云存储系统及实现方法
CN103023968B (zh) 一种网络分布式文件存储与读取方法
WO2016100767A2 (en) Method for file updating and version control for linear erasure coded and network coded storage
US20120173932A1 (en) Storage codes for data recovery
CN105356968B (zh) 基于循环置换矩阵的网络编码的方法及系统
CN105356892B (zh) 网络编码的方法及系统
CN105703782B (zh) 一种基于递增移位矩阵的网络编码方法及系统
CN102681793A (zh) 一种基于纠删码集群存储系统的局部式数据更新方法
CN104503706A (zh) 一种基于磁盘阵列的数据存储及读取方法
CN108762978B (zh) 一种局部部分重复循环码的分组构造方法
CN105353974A (zh) 一种适用于磁盘阵列及分布式存储系统的二容错编码方法
CN110427156A (zh) 一种基于分片的mbr的并行读方法
CN105808170A (zh) 一种能够以最小磁盘读写修复单磁盘错误的raid6编码方法
CN109358980A (zh) 一种对数据更新和单磁盘错误修复友好的raid6编码方法
CN106383669A (zh) 一种基于(n,k,m)编码的分布式存储方法及系统
CN113258936B (zh) 一种基于循环移位的双重编码的构造方法
CN110289949A (zh) 密钥管理方法及装置
CN106469172B (zh) 分布式文件系统的数据更新方法和装置
US20180059951A1 (en) Scheduling distributed storage network memory activities based on future projections
US9489252B1 (en) File recovery using diverse erasure encoded fragments
CN104881253A (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