CN107071031A - 基于chunk块版本号的分布式块存储系统数据恢复判定方法 - Google Patents

基于chunk块版本号的分布式块存储系统数据恢复判定方法 Download PDF

Info

Publication number
CN107071031A
CN107071031A CN201710257826.XA CN201710257826A CN107071031A CN 107071031 A CN107071031 A CN 107071031A CN 201710257826 A CN201710257826 A CN 201710257826A CN 107071031 A CN107071031 A CN 107071031A
Authority
CN
China
Prior art keywords
version number
chunk
chunk blocks
blocks
code set
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
CN201710257826.XA
Other languages
English (en)
Other versions
CN107071031B (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.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
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 University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Priority to CN201710257826.XA priority Critical patent/CN107071031B/zh
Publication of CN107071031A publication Critical patent/CN107071031A/zh
Application granted granted Critical
Publication of CN107071031B publication Critical patent/CN107071031B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于chunk块版本号的分布式块存储系统数据恢复判定方法,包括以下步骤:chunk块版本号命名方法:根据对卷的操作、对chunk块的第一个blk块和最后一个blk块的写入操作对chunk块版本号命名;异常判断:将该SU上每个chunk块与其所在编码组的chunk块进行版本号的比较以对出现数据异常的chunk块的进行判断;数据恢复:对出现数据异常的chunk块数据进行恢复。该方法以chunk块版本号为主要特征来判定数据是否需要恢复,减少传统分布式块文件系统恢复数据时的数据量。

Description

基于chunk块版本号的分布式块存储系统数据恢复判定方法
技术领域
本发明涉及分布式块存储系统领域,具体涉及一种基于chunk块版本号的分布式块存储系统数据恢复判定方法。
背景技术
分布式存储系统是将数据分散存储在多台独立的设备上。分布式存储系统在数据组织处理上有两种模式:块级和文件级,即分布式块存储和分布式文件系统。分布式文件系统,例如Pvfs、Lustre、Ceph、PPFS,一般多个终端用户共同使用单个文件命名空间,这种系统往往比较复杂,并且必须支持所有在分布式环境中的文件系统的相关方案。分布式块存储系统,譬如:Petal、Sheepdog、Parallax、BLAST等,根据分布式环境的特点,利用多点资源,为用户提供基本的块存储服务,具有良好的可靠性、性能并支持弹性扩展。
对于分布式块存储系统,SU即Store Unit,系统级存储单元;在SU中,将其划分成多个大小相等的chunk块;在每个chunk中,又会将其划分为多个大小相等的blk;本质上来讲,这三者为不同粒度的存储单元。现有的SU宕机后又重新上线,采用现有方法则需要对整个SU的数据进行恢复,当SU的数据量大时,其数据恢复量也大,十分耗时。
发明内容
本发明为了解决上述技术问题提供一种基于chunk块版本号的分布式块存储系统数据恢复判定方法,以chunk块版本号为主要特征来判定数据是否需要恢复,减少传统分布式块文件系统恢复数据时的数据量。
本发明通过下述技术方案实现:
基于chunk块版本号的分布式块存储系统数据恢复判定方法,分布式块存储系统具有多个编码组,每个编码组中有多个SU,每个SU的chunk块都有一个版本号,包括,
chunk块版本号命名方法:根据对卷的操作、对chunk块的第一个blk块和最后一个blk块的写入操作对chunk块版本号命名;
异常判断:一台SU宕机后又重新上线,且SU能够获取该SU中每个chunk块隶属于的编码组,将该SU上每个chunk块与其所在编码组的chunk块进行版本号的比较以对出现数据异常的chunk块的进行判断;
数据恢复:对出现数据异常chunk块数据进行恢复。
本方法的原理基于流式数据的读写特性,同一个编码组group中所有的chunk块都同时更新,其版本号在正常情况下保持一致。chunk块的版本号在不断的改变过程中,即可根据chunk块的版本号对系统异常进行判断。通过上述原理即可对异常进行判断,即当同一个编码组中的chunk块版本号不一致即可判定异常,当异常出现时,仅对出现异常的chunk块数据进行恢复即可。每个SU上有多个chunk块,其数据量大,采用现有对整个SU的数据进行恢复的方式,其数据恢复量大,而本方案将恢复量从整个SU降至单个或几个chunk块,恢复的数据量大大减小。
作为优选,所述异常判断的方法具体为:
若chunk块为该编码组的第一个单元,则将其与所在编码组的第二个单元上的相应chunk块进行版本号的比较;
若chunk块不是该编码组的第一个单元,则将其与所在编码组的前一个单元所对应的chunk块进行版本号的比较。采用该异常判定方法,其可有效的提高其异常判定的可靠性。
作为优选,所述异常判断的方法具体为:若同一编码组的某一chunk块的版本号大于另一chunk块的版本号,则说明版本号出现不一致问题,系统出现异常,需对另一版本号较小chunk块对应的SU上的数据进行恢复;若同一编码组的某一chunk块的版本号小于另一chunk块的版本号,则需对该chunk块对应的SU上的数据进行恢复。
作为优选,所述chunk块版本号命名方法具体为:
在创建、删除卷时,对该编码组的所有chunk块的版本号进行重置;
在扩展卷时,该卷中原有的chunk块版本号不变,对新分配的chunk块版本号进行重置;
在对chunk块的第一个blk块或最后一个blk块进行写入操作时,对该chunk块的版本号进行递增操作。
进一步的,所述重置均为置0,所述递增操作的递增量为1。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明通过chunk块的版本号来判定数据是否需要恢复,减少传统分布式块文件系统恢复数据时的数据量。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
分布式块存储系统具有多个编码组,本方法以编码组为单位,每个编码组中有多个SU,每个SU的chunk块都有一个版本号ver_num,记录这个chunk块被整块覆盖写的次数,这是实现本方法的前置条件,具体的基于chunk块版本号的分布式块存储系统数据恢复判定方法包括以下步骤。
chunk块版本号命名方法:根据对卷的操作、对chunk块的第一个blk块和最后一个blk块的写入操作对chunk块版本号命名,具体的:
在创建、删除卷时,对该编码组的所有chunk块的版本号进行重置0;
在扩展卷时,该卷中原有的chunk块版本号不变,对新分配的chunk块版本号进行重置0;
在对chunk块的第一个blk块或最后一个blk块进行写入操作时,对该chunk块的版本号进行递增1操作。
由于流式数据的读写特性,同一个编码组group中所有的chunk块都同时更新,其版本号在正常情况下保持一致。chunk块的版本号在不断的改变过程中,即可根据chunk块的版本号对系统异常进行判断。异常判断的方法为当同一个编码组中的chunk块版本号不一致,判定系统出现异常。
当某一编码组出现异常,则需确定该编码组中出现错误的SU,以对该SU对应所属该编码组的chunk块上的数据进行恢复。SU能够获取该SU中每个chunk块隶属于哪个编码组,当一台发生故障的SU宕机后又重新上线则进行异常判断步骤,针对出现异常的编码组,对各chunk块版本号大小进行比较,判断需要恢复数据的相应SU的chunk块。
异常判断可采用下列方法:若同一编码组的某一chunk块的版本号大于另一chunk块的版本号,则需对另一chunk块对应的SU上的数据进行恢复;若同一编码组的某一chunk块的版本号小于另一chunk块的版本号,则需对该chunk块对应的SU上的数据进行恢复。比如SU1和SU2同在一个编码组中,SU1上的chunk块的版本号为ver1,SU2上的chunk块的版本号为ver2,其数据恢复判定过程具体为:若ver1>ver2,说明SU1上的chunk块数据已被覆盖写,但SU2的chunk块数据没有更新,存在不一致,需要对SU2上的数据进行恢复;若ver1=ver2,说明两个chunk块同步更新,属于正常情况;若ver1<ver2,说明SU2上的chunk块数据已被覆盖写,但SU1的chunk块数据没有更新,存在不一致,需要对SU1上的数据进行恢复。
上述的的异常判定方法中版本号的比较属于随机比较,其可能存在可靠性不强的问题,为了提高其判定的可靠性,可采用下述实施方式。
具体的,SU上每个chunk块与其所在编码组的chunk块进行版本号的比较,若chunk块为该编码组的第一个单元,则将其与所在编码组的第二个单元上的相应chunk块进行版本好的比较;若chunk块不是该编码组的第一个单元,则将其与所在编码组的前一个单元所对应的chunk块进行版本号的比较。举例说明,假设SU2上的chunk2和SU1上的chunk1、SU3上的chunk3、SU4上的chunk4属于同一编码组A,SU2上的chunk1和SU3上的chunk2、SU4上的chunk3、SU5上的chunk5属于同一编码组B。当SU2发生故障又重新上线后,则将SU2上的chunk2与其所在的同一编码组的前一单元SU1上的chunk1的版本号进行比较,若二者版本号不一致,SU2上的chunk2的版本号一定小于等于SU1上chunk1的版本号,则SU2上chunk2的数据需要恢复;在编码组B中,SU2为第一个单元,则将SU2上的chunk1与同一编码组的第二个单元SU3的chunk2的版本号进行比较,若二者版本号不一致,则SU2上chunk1的数据需要恢复。异常判断的步骤从理论上来讲,可以采用随机方式同一编码组的其他单元进行比较。但是由于是顺序读写的特性,与前一单元进行比较更为保险可靠。原因如下:由于是顺序读写,在同一编码组中,当当前SU上的数据出现异常时,其后继单元上的数据很有可能都会出现异常,在这种情况下,与后面单元进行比较所得结果是无效的。所以与同一编码组的前一单元进行比较,更为可靠,这也是采用该比较方法的优势所在。
采用本方法可有效的减少存储系统进行数据恢复时的数据量。以每台SU配备了40个chunk块,每个chunk块大小为100G为例,一台SU在一个编码组中拥有一个chunk块,不同的SU可以隶属于不同的编码组。当系统发生异常时,若采用本发明进行数据恢复,只需恢复故障SU上版本号不一致的chunk块中的数据,而不必将整台SU的数据全部恢复,这就将需要恢复的数据量由整台SU降低到只需恢复个别chunk块的数量级,效率可观。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.基于chunk块版本号的分布式块存储系统数据恢复判定方法,分布式块存储系统具有多个编码组,每个编码组中有多个SU,每个SU的chunk块都有一个版本号,其特征在于,包括,
chunk块版本号命名方法:根据对卷的操作、对chunk块的第一个blk块和最后一个blk块的写入操作对chunk块版本号命名;
异常判断:一台SU宕机后又重新上线,且SU能够获取该SU中每个chunk块隶属于的编码组,将该SU上每个chunk块与其所在编码组的chunk块进行版本号的比较以对出现数据异常的chunk块的进行判断;
数据恢复:对出现数据异常的chunk块数据进行恢复。
2.根据权利要求1所述的基于chunk块版本号的分布式块存储系统数据恢复判定方法,其特征在于,所述异常判断的方法具体为:
若chunk块为该编码组的第一个单元,则将其与所在编码组的第二个单元上的相应chunk块进行版本好的比较;
若chunk块不是该编码组的第一个单元,则将其与所在编码组的前一个单元所对应的chunk块进行版本号的比较。
3.根据权利要求1所述的基于chunk块版本号的分布式块存储系统数据恢复判定方法,其特征在于,所述异常判断的方法具体为:若同一编码组的某一chunk块的版本号大于另一chunk块的版本号,则需对另一chunk块对应的SU上的数据进行恢复;若同一编码组的某一chunk块的版本号小于另一chunk块的版本号,则需对该chunk块对应的SU上的数据进行恢复。
4.根据权利要求1所述的基于chunk块版本号的分布式块存储系统数据恢复判定方法,其特征在于,所述chunk块版本号命名方法具体为:
在创建、删除卷时,对该编码组的所有chunk块的版本号进行重置;
在扩展卷时,该卷中原有的chunk块版本号不变,对新分配的chunk块版本号进行重置;在对chunk块的第一个blk块或最后一个blk块进行写入操作时,对该chunk块的版本号进行递增操作。
5.根据权利要求4所述的基于chunk块版本号的分布式块存储系统数据恢复判定方法,其特征在于,所述重置均为置0,所述递增操作的递增量为1。
CN201710257826.XA 2017-04-19 2017-04-19 基于chunk块版本号的分布式块存储系统数据恢复判定方法 Active CN107071031B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710257826.XA CN107071031B (zh) 2017-04-19 2017-04-19 基于chunk块版本号的分布式块存储系统数据恢复判定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710257826.XA CN107071031B (zh) 2017-04-19 2017-04-19 基于chunk块版本号的分布式块存储系统数据恢复判定方法

Publications (2)

Publication Number Publication Date
CN107071031A true CN107071031A (zh) 2017-08-18
CN107071031B CN107071031B (zh) 2019-11-05

Family

ID=59600536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710257826.XA Active CN107071031B (zh) 2017-04-19 2017-04-19 基于chunk块版本号的分布式块存储系统数据恢复判定方法

Country Status (1)

Country Link
CN (1) CN107071031B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109981798A (zh) * 2019-04-12 2019-07-05 苏州浪潮智能科技有限公司 一种数据写入方法、系统及电子设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101334797A (zh) * 2008-08-04 2008-12-31 中兴通讯股份有限公司 一种分布式文件系统及其数据块一致性管理的方法
US20110153570A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Data replication and recovery method in asymmetric clustered distributed file system
CN102843403A (zh) * 2011-06-23 2012-12-26 盛大计算机(上海)有限公司 基于分布式文件系统的文件处理方法、系统及客户端
US8676851B1 (en) * 2012-08-30 2014-03-18 Google Inc. Executing transactions in distributed storage systems
CN105677252A (zh) * 2016-01-06 2016-06-15 华为技术有限公司 读数据的方法、数据处理方法及相关存储设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101334797A (zh) * 2008-08-04 2008-12-31 中兴通讯股份有限公司 一种分布式文件系统及其数据块一致性管理的方法
US20110153570A1 (en) * 2009-12-18 2011-06-23 Electronics And Telecommunications Research Institute Data replication and recovery method in asymmetric clustered distributed file system
CN102843403A (zh) * 2011-06-23 2012-12-26 盛大计算机(上海)有限公司 基于分布式文件系统的文件处理方法、系统及客户端
US8676851B1 (en) * 2012-08-30 2014-03-18 Google Inc. Executing transactions in distributed storage systems
CN105677252A (zh) * 2016-01-06 2016-06-15 华为技术有限公司 读数据的方法、数据处理方法及相关存储设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109981798A (zh) * 2019-04-12 2019-07-05 苏州浪潮智能科技有限公司 一种数据写入方法、系统及电子设备和存储介质

Also Published As

Publication number Publication date
CN107071031B (zh) 2019-11-05

Similar Documents

Publication Publication Date Title
CN101622606B (zh) 用于作为大容量、非易失性存储器的高速缓存的固态存储器的装置、系统和方法
CN101689131B (zh) 用于共享的、前端、分布式raid的装置、系统和方法
CN103577121B (zh) 一种基于Nand Flash的高可靠线性文件存取方法
CN103019614B (zh) 分布式存储系统管理装置及方法
CN104364765A (zh) 分布式数据存储系统中的数据存储和维护的方法以及对应设备
GB9907476D0 (en) Method for preventing transfer of data to corrupt addresses
CN102024016A (zh) 一种分布式文件系统快速数据恢复的方法
CN111444042B (zh) 一种基于纠删码的区块链数据存储方法
CN101281493A (zh) 与非闪存器及其管理方法
CN103136119A (zh) 非易失性高速缓冲存储器、其处理方法以及计算机系统
CN102521084A (zh) 一种数据存储以及读取方法
CN103077166B (zh) 小文件存储的空间复用方法和装置
CN106708653A (zh) 一种基于纠删码与多副本的混合税务大数据安全保护方法
CN107291593A (zh) 一种raid系统中故障磁盘的更换方法及装置
CN109491835A (zh) 一种基于动态分组码的数据容错方法
CN109492052B (zh) 一种scada分布式历史数据存储方法及系统
CN106648970A (zh) 文件备份方法和分布式文件系统
CN102799543B (zh) 在动态变化的存储介质上分散存储数据及恢复方法
CN106339387A (zh) 一种数据库集群中新增服务器的数据同步方法及装置
CN107071031A (zh) 基于chunk块版本号的分布式块存储系统数据恢复判定方法
CN108762978A (zh) 一种局部部分重复循环码的分组构造方法
CN106027638A (zh) 一种基于混合编码的hadoop数据分发方法
CN105068896B (zh) 基于raid备份的数据处理方法及装置
CN107885615A (zh) 分布式存储数据的复原方法与系统
CN105183401A (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
GR01 Patent grant
GR01 Patent grant