CN107357677B - 一种GlusterFS基于纠删码的数据冗余存储方法 - Google Patents
一种GlusterFS基于纠删码的数据冗余存储方法 Download PDFInfo
- Publication number
- CN107357677B CN107357677B CN201710489365.9A CN201710489365A CN107357677B CN 107357677 B CN107357677 B CN 107357677B CN 201710489365 A CN201710489365 A CN 201710489365A CN 107357677 B CN107357677 B CN 107357677B
- Authority
- CN
- China
- Prior art keywords
- file
- block
- glusterfs
- files
- data redundancy
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种GlusterFS基于纠删码的数据冗余存储方法。本发明针对GlusterFS存在的数据冗余存储方案单一的缺点,提出一种基于纠删码的冗余存储的方案,在进行大量冷数据存储时可以有效提高存储介质的利用率。本发明所述GlusterFS基于纠删码的数据冗余存储方法,在丢失了部分块文件之后仍然可以利用其它块文件进行计算合成,其数据冗余比例可以人为控制,实现在较低的存储利用率下的数据冗余保障。
Description
技术领域
本发明涉及一种GlusterFS基于纠删码的数据冗余存储方法,属于分布式存储的技术领域。
背景技术
数据冗余存储从原理上可以分为两种类型:基于副本的数据存储和基于纠删编解码的数据存储。基于副本的数据存储是将数据完整的拷贝到另外一个存储位置(可以是另外一种存储介质)实现数据的冗余存储,一旦其中一份备份数据出现损坏可以通过其他的数据副本进行修复,提高数据存储的可靠性和安全性。基于副本的数据存储与传统的RAID1技术非常相似,其缺点是对存储资源的利用率较低,数据恢复速度缓慢。基于纠删编解码的数据备份将原始数据通过一种规则编码成数据块和校验块后,再将这些块一一进行存储。这种冗余存储技术使存储空间的利用率得到了显著提高,其缺点是读性能下降,一般情况下将长期不再访问的冷数据通过纠删码的方式存储。
分布式文件系统从架构上可以分为有中心的文件系统和无中心的文件系统。GlusterFS是一个开源的无中心的分布式文件系统,存储容量可以轻松扩展到PB级,处理上千个客户端的请求。GlusterFS提供了基于卷组的灵活的存储方案配置,通过设定可以实现类似于RAID1的数据镜像存储。在有中心的分布式文件系统中纠删码的实现可以借助于元数据服务器跟踪元数据切块后的存放位置关系,实现起来相对比较简单。GlusterFS是典型的无中心的分布式文件系统,对于系统中所存储数据的访问依赖算法实现,如果一个文件通过纠删码的方式进行存储,文件数据会被分割存储在不同位置,难以通过算法进行多个离散存储位置的描述,因此实现较困难。
对于有中心的分布式文件系统,其基于纠删码的冗余存储方案的实现方法如下:客户端向元数据服务器请求写入文件数据,元数据服务器返回写入服务器的列表后,客户端将文件进行切片存入各个服务器,然后元数据服务器会利用RS纠删编解码(这里以RS编码技术为例)对存入的文件进行编码得到冗余的编码块,元数据服务器改变文件记录映射表,为冗余的编码块数据申请存储服务器,然后将冗余编码块数据写入相应的数据块服务器中。进行数据访问的时候,首先通过元数据服务器获得包含了冗余编码块的数据,经过RS解码规则合成并验证原文件,验证成功后返回给客户端。
上述过程中,元数据服务器在纠删编解码中起到了至关重要的作用。在无中心的分布式文件系统中,不存在元数据服务器,导致基于纠删码的数据存储实现困难。
发明内容
针对现有技术的不足,本发明提供一种GlusterFS基于纠删码的数据冗余存储方法。
发明概述:
本发明针对GlusterFS存在的数据冗余存储方案单一的缺点,提出一种基于纠删码的冗余存储的方案,在进行大量冷数据存储时可以有效提高存储介质的利用率。
本发明的技术方案为:
一种GlusterFS基于纠删码的数据冗余存储方法,通过实现GlusterFS模块CheckCode进行,CheckCode模块将存入GlusterFS的数据进行基于纠删码的编码,对原文件的访问进行解码合并;所述GlusterFS为基于模块化的堆栈式架构。
根据本发明优选的,所述GlusterFS基于纠删码的数据冗余存储方法,包括具体步骤如下:
1)将原文件提交给CheckCode模块,CheckCode模块对原文件进行拆分得到多个块文件和多个冗余编码块文件;通过属性编码规则生成编码信息;所述编码信息包括,原文件属性信息、冗余编码块文件属性信息和块文件属性信息;CheckCode模块将所述块文件以私有的命名方式按照普通文件存储到集群中;
属性编码中保留原文件的信息和所有纠删编码块文件的信息,方便后期的互相查找;
2)将所有块文件的属性编码信息汇总,生成与原文件同名的普通文件;所述普通文件通过普通的存储方式存储,普通文件提供纠删码块文件的查找功能;
3)客户端访问文件时,CheckCode模块检测所访问文件的存储方式,如果文件采用纠删码的方式存储,则CheckCode模块首先访问相应的普通文件得到各个块文件的私有名称,取出相应的块文件属性信息,读出各个块文件的内容进行验证后合成原文件返回给客户端。
进一步优选的,每个块文件设置有预留空间,所述编码信息存储在所述预留空间内。CheckCode模块对即将存储的文件进行拆分的过程中会生成冗余编码块文件,为了方便实现数据的读出,编码之后的每个块文件会额外留出一点空间来记录关于原文件的属性和经过纠删编码后的各个块文件的属性,同时记录自身的块文件属性。
再进一步优选的,所述预留空间设置在块文件的末尾。
进一步优选的,所述块文件的属性信息通过统一的编码规则标志,与普通文件进行区别。
进一步优选的,当部分块文件损坏或普通文件丢失时,CheckCode模块扫描私有命名空间下的所有块文件的属性信息,恢复损坏的块文件。即使同名文件丢失也可以通过搜索块文件的属性信息得到完整的原文件。
本发明的有益效果为:
1.本发明所述GlusterFS基于纠删码的数据冗余存储方法,在丢失了部分块文件之后仍然可以利用其它块文件进行计算合成,其数据冗余比例可以人为控制,实现在较低的存储利用率下的数据冗余保障。
附图说明
图1为现有技术中有中心的分布式存储系统纠删码存储实现方法示意图;
图2为本发明所述GlusterFS基于纠删码的数据冗余存储方法示意图。
具体实施方式
下面结合实施例和说明书附图对本发明做进一步说明,但不限于此。
实施例1
如图2所示。
一种GlusterFS基于纠删码的数据冗余存储方法,通过实现GlusterFS模块CheckCode进行,CheckCode模块将存入GlusterFS的数据进行基于纠删码的编码,对原文件的访问进行解码合并;所述GlusterFS为基于模块化的堆栈式架构。
实施例2
如实施例1所述的GlusterFS基于纠删码的数据冗余存储方法,所不同的是,所述GlusterFS基于纠删码的数据冗余存储方法,包括具体步骤如下:
1)将原文件提交给CheckCode模块,CheckCode模块对原文件进行拆分得到三个块文件和两个冗余编码块文件;通过属性编码规则生成编码信息;所述编码信息包括,原文件属性信息、冗余编码块文件属性信息和块文件属性信息;CheckCode模块将所述块文件以私有的命名方式按照普通文件存储到集群中;
属性编码中保留原文件的信息和所有纠删编码块文件的信息,方便后期的互相查找;
2)将所有块文件的属性编码信息汇总,生成与原文件同名的普通文件;所述普通文件通过普通的存储方式存储,普通文件提供纠删码块文件的查找功能;
3)客户端访问文件时,CheckCode模块检测所访问文件的存储方式,如果文件采用纠删码的方式存储,则CheckCode模块首先访问相应的普通文件得到各个块文件的私有名称,取出相应的块文件属性信息,读出各个块文件的内容进行验证后合成原文件返回给客户端。
实施例3
如实施例2所述的GlusterFS基于纠删码的数据冗余存储方法,所不同的是,每个块文件设置有预留空间,所述编码信息存储在所述预留空间内。CheckCode模块对即将存储的文件进行拆分的过程中会生成冗余编码块文件,为了方便实现数据的读出,编码之后的每个块文件会额外留出一点空间来记录关于原文件的属性和经过纠删编码后的各个块文件的属性,同时记录自身的块文件属性。
实施例4
如实施例3所述的GlusterFS基于纠删码的数据冗余存储方法,所不同的是,所述预留空间设置在块文件的末尾。
实施例5
如实施例2所述的GlusterFS基于纠删码的数据冗余存储方法,所不同的是,所述块文件的属性信息通过统一的编码规则标志,与普通文件进行区别。
实施例6
如实施例2所述的GlusterFS基于纠删码的数据冗余存储方法,所不同的是,当部分块文件损坏或普通文件丢失时,CheckCode模块扫描私有命名空间下的所有块文件的属性信息,恢复损坏的块文件。即使同名文件丢失也可以通过搜索块文件的属性信息得到完整的原文件。
Claims (5)
1.一种GlusterFS基于纠删码的数据冗余存储方法,其特征在于,通过实现GlusterFS模块CheckCode进行,CheckCode模块将存入GlusterFS的数据进行基于纠删码的编码,对原文件的访问进行解码合并;所述GlusterFS为基于模块化的堆栈式架构;
具体步骤如下:
1)将原文件提交给CheckCode模块,CheckCode模块对原文件进行拆分得到多个块文件和多个冗余编码块文件;通过属性编码规则生成编码信息;所述编码信息包括,原文件属性信息、冗余编码块文件属性信息和块文件属性信息;CheckCode模块将所述块文件以私有的命名方式按照普通文件存储到集群中;
2)将所有块文件的属性编码信息汇总,生成与原文件同名的普通文件;所述普通文件通过普通的存储方式存储,普通文件提供纠删码块文件的查找功能;
3)客户端访问文件时,CheckCode模块检测所访问文件的存储方式,如果文件采用纠删码的方式存储,则CheckCode模块首先访问相应的普通文件得到各个块文件的私有名称,取出相应的块文件属性信息,读出各个块文件的内容进行验证后合成原文件返回给客户端。
2.根据权利要求1所述的GlusterFS基于纠删码的数据冗余存储方法,其特征在于,每个块文件设置有预留空间,所述编码信息存储在所述预留空间内。
3.根据权利要求2所述的GlusterFS基于纠删码的数据冗余存储方法,其特征在于,所述预留空间设置在块文件的末尾。
4.根据权利要求1所述的GlusterFS基于纠删码的数据冗余存储方法,其特征在于,所述块文件的属性信息通过统一的编码规则标志,与普通文件进行区别。
5.根据权利要求1所述的GlusterFS基于纠删码的数据冗余存储方法,其特征在于,当部分块文件损坏或普通文件丢失时,CheckCode模块扫描私有命名空间下的所有块文件的属性信息,恢复损坏的块文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710489365.9A CN107357677B (zh) | 2017-06-24 | 2017-06-24 | 一种GlusterFS基于纠删码的数据冗余存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710489365.9A CN107357677B (zh) | 2017-06-24 | 2017-06-24 | 一种GlusterFS基于纠删码的数据冗余存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107357677A CN107357677A (zh) | 2017-11-17 |
CN107357677B true CN107357677B (zh) | 2020-09-08 |
Family
ID=60273620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710489365.9A Active CN107357677B (zh) | 2017-06-24 | 2017-06-24 | 一种GlusterFS基于纠删码的数据冗余存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107357677B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112328550A (zh) * | 2020-11-03 | 2021-02-05 | 深圳壹账通智能科技有限公司 | 一种分布式文件系统架构下的文件管理方法及装置 |
CN114710238B (zh) * | 2022-03-30 | 2023-11-17 | 蚂蚁区块链科技(上海)有限公司 | 纠删码算法冗余度确定方法及区块链节点 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693286A (zh) * | 2012-05-10 | 2012-09-26 | 华中科技大学 | 一种对文件内容与元数据进行组织管理的方法 |
CN103916483A (zh) * | 2014-04-28 | 2014-07-09 | 中国科学院成都生物研究所 | 一种针对编码冗余存储系统的自适应数据存储与重构方法 |
-
2017
- 2017-06-24 CN CN201710489365.9A patent/CN107357677B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102693286A (zh) * | 2012-05-10 | 2012-09-26 | 华中科技大学 | 一种对文件内容与元数据进行组织管理的方法 |
CN103916483A (zh) * | 2014-04-28 | 2014-07-09 | 中国科学院成都生物研究所 | 一种针对编码冗余存储系统的自适应数据存储与重构方法 |
Non-Patent Citations (1)
Title |
---|
GlusterFS企业级功能之EC纠删码;杨阳@TaoCloud;《blog.51cto》;20170511;第1-10页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107357677A (zh) | 2017-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10019317B2 (en) | Parity protection for data chunks in an object storage system | |
US10437672B2 (en) | Erasure coding and replication in storage clusters | |
US9823969B2 (en) | Hierarchical wide spreading of distributed storage | |
EP2787446B1 (en) | Distributed storage method, device and system | |
CN104965845B (zh) | 一种小文件的定位方法及系统 | |
CN103944981B (zh) | 一种基于纠删码技术改进的云存储系统及实现方法 | |
US9135115B2 (en) | Storing data in multiple formats including a dispersed storage format | |
US10108492B2 (en) | Rebuilding data stored in a dispersed storage network | |
CN101488104B (zh) | 一种实现高效安全存储的系统和方法 | |
US9880762B1 (en) | Compressing metadata blocks prior to writing the metadata blocks out to secondary storage | |
CN104111880B (zh) | 一种容三盘失效纠删码的单数据盘失效快速重建方法 | |
CN105956128B (zh) | 一种基于简单再生码的自适应编码存储容错方法 | |
US9558059B2 (en) | Detecting data requiring rebuilding in a dispersed storage network | |
CN103561057A (zh) | 基于分布式哈希表和纠删码的数据存储方法 | |
WO2014056381A1 (zh) | 数据冗余实现方法及装置 | |
CN109814807B (zh) | 一种数据存储方法及装置 | |
CN110427156B (zh) | 一种基于分片的mbr的并行读方法 | |
CN107357677B (zh) | 一种GlusterFS基于纠删码的数据冗余存储方法 | |
CN106027638B (zh) | 一种基于混合编码的hadoop数据分发方法 | |
CN102184079A (zh) | 一种raid5级别磁盘阵列的写性能优化方法 | |
US11728964B2 (en) | Performance aided data migration in a distributed storage network | |
US10592336B1 (en) | Layered indexing for asynchronous retrieval of redundancy coded data | |
US20220374162A1 (en) | Facilitating Write Requests in a Storage Network | |
Ko et al. | Fault tolerant erasure coded replication for HDFS based cloud storage | |
CN113157715A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 250000, No. 2877, fairway, Sun Town, Ji'nan hi tech Zone, Shandong Applicant after: SHANDONG CHAOYUE CNC ELECTRONICS Co.,Ltd. Address before: 250000, No. 2877, fairway, Sun Town, Ji'nan hi tech Zone, Shandong Applicant before: SHANDONG CHAOYUE NUMERICAL CONTROL ELECTRONIC Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |