CN106383669A - 一种基于(n,k,m)编码的分布式存储方法及系统 - Google Patents
一种基于(n,k,m)编码的分布式存储方法及系统 Download PDFInfo
- 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
Links
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/0608—Saving storage space on storage systems
-
- 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/0614—Improving the reliability of storage systems
-
- 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
-
- 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)
- 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)编码的分布式存储方法,属于计算机和通信网络技术领域。
背景技术
传统的数据中心把客户数据集中存储在一个房间或一栋建筑内的磁盘阵列中,这种方式的优点是便于管理,但明显的缺点就是随着业务量的增加,数据中心负荷急剧增加,瓶颈效应明显;数据中心的另一个缺点是应对突发事件能力较脆弱,一旦出现地震、火灾等灾害,数据中心损毁,用户数据无法恢复,损失巨大。随着互联网技术的飞速发展,数据存储方式逐渐从集中式转变为分布式。与数据中心不同,分布式云存储把客户数据分散存储在空间上相分离且相距较远的若干个磁盘驱动器内,这些磁盘可能分布在一个城市的各个角落,或者位于各个城市,甚至是各个国家。分布式存储最大的特点就是把通信负荷分散到各个存储节点,从而有效解决了数据传输的瓶颈问题。分布式云存储已经取代数据中心成为市场上主流的存储技术,商用的云存储产品包括如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个原始数据符号分为两组,分别为(β11,β12,β13)和(β21,β22,β23)。
第2步,把这两组原始数据符号分别送入两个系统的(5,3)-MDS码编码器。本实施例中取这两个编码器的编码矩阵分别为:
不难验证,G1,G2符合MDS码的要求,即编码矩阵的任意三列(k=3)都线性无关。参见图3,编码过程如下:
由此可得编码后非系统部分的码符号(c11,c12)和(c21,c22)如图3所示。
第3步,把编码后得到的码符号按照系统部分和非系统部分的划分,如图3所示排列并存储在5个磁盘中。
在本实施例中,用于存储mk=6个原始数据符号所需要的存储空间为nm=10个码符号。此外,此实施例可以修复全部5个磁盘中最多n-k=2个磁盘故障造成的数据丢失,即任意1个或2个磁盘发生故障,其中存储的码符号可以由其余3个磁盘中存储的码符号加以恢复,修复带宽为6个码符号。不失一般性,假设图3中前两个磁盘出现故障,为了修复其中存储的数据,即(β11,β21)和(β12,β22),可以应用剩余三个磁盘中存储的码符号(β13,β23)、(c11,c21)、(c12,c22)通过如下译码过程恢复全部原始数据:
在(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个磁盘。
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)
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)
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 | 中科院成都信息技术股份有限公司 | 基于随机矩阵的独立磁盘冗余阵列容灾存储方法 |
-
2016
- 2016-09-19 CN CN201610833058.3A patent/CN106383669B/zh active Active
Patent Citations (3)
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)
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 |