CN107357689A - 一种存储节点的故障处理方法及分布式存储系统 - Google Patents
一种存储节点的故障处理方法及分布式存储系统 Download PDFInfo
- Publication number
- CN107357689A CN107357689A CN201710652512.XA CN201710652512A CN107357689A CN 107357689 A CN107357689 A CN 107357689A CN 201710652512 A CN201710652512 A CN 201710652512A CN 107357689 A CN107357689 A CN 107357689A
- Authority
- CN
- China
- Prior art keywords
- memory node
- disk
- memory
- image data
- mirror image
- 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
- 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/1466—Management of the backup or restore process to make the backup process non-disruptive
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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开了一种存储节点的故障处理方法及分布式存储系统,当存储节点出现故障时,根据未出现故障的第一存储节点上存储的与该故障的存储节点上的源数据块对应的镜像数据块,重构该故障的存储节点上的源数据块,根据未故障的第二存储节点上存储的与该故障的存储节点上的镜像数据块对应的源数据块,重构该故障的存储节点上的镜像数据块;将该重构的源数据块和镜像数据块分别存储到未出现故障的两个存储节点上。从本发明实施例可见,根据未故障存储节点上的源数据块和镜像数据块重构故障的存储节点上的镜像数据块和源数据块,使得分布式存储系统依然可用。
Description
技术领域
本发明涉及分布式存储技术,尤指一种存储节点的故障处理方法及分布式存储系统。
背景技术
传统的存储系统采用集中的存储服务器存放所有数据,存储服务器的单点故障和安全性的是大众的焦点,为了满足存储系统的高可用性,一般会使用raid0|1|5|6配置,保证存储系统不因单个硬盘故障而整体故障。但是,即使配置可靠性最高的raid6,最多只能支持2块硬盘同时发生故障。如果2块硬盘故障后没有及时更换新盘,那么整个存储系统将发生故障而不可用。此外,传统的存储系统在性能、可靠性和可扩展性等方面也不适合大规模存储应用的需要。而分布式存储系统采用可扩展的系统结构,利用多个存储节点分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。因此,随着企业数据规模的不断壮大,互联网和云计算的不断发展,越来越多的企业和领域开始使用分布式存储系统。
对于相关技术中的分布式存储系统,当一份完整的数据存储到分布式存储系统中,该数据被切分为N个源数据块,然后计算出M个冗余数据条带,并最终保存在分布式存储系统的N+M个不同的存储节点中。例如,如图1所示,一份完整的数据按照4个源数据块+2个冗余数据条带的方式存储在6个存储节点上。只要整个分布式存储系统中同时故障的存储节点数小于或等于M,该分布式存储系统就可以持续提供服务。但如果同时故障的存储节点的个数大于M,整个分布式存储系统将不可用,M取值范围为1~4。然而,在实际情况中,大规模的分布式存储系统(例如,超过100个存储节点的分布式存储系统),存储节点越多,其相应的故障率就越高。如果同时故障4台或4台以上的存储节点之后,没有得到及时修复或更换存储节点,那么整个的分布式存储系统不可以用。而对企业用户来说,大部分的存储节点依然正常,故障存储节点只是占少数,却要因为少数存储节点故障而使整个分布式存储系统不可用,只有更换故障的存储节点或进行整个分布式存储系统数据的迁移、重建才能使分布式存储系统继续可用。
发明内容
为了解决上述技术问题,本发明提供了一种存储节点的故障处理方法及分布式存储系统,在分布式存储系统的多个存储节点出现故障,且不维修或者更换故障的存储节点的情况下,分布式存储系统能够继续可用。
为了达到本发明目的,本发明提供了一种存储节点的故障处理方法,包括:
当存储节点出现故障时,根据未出现故障的第一存储节点上存储的与该故障的存储节点上的源数据块对应的镜像数据块,重构该故障的存储节点上的源数据块,根据未故障的第二存储节点上存储的与该故障的存储节点上的镜像数据块对应的源数据块,重构该故障的存储节点上的镜像数据块;
将该重构的源数据块和镜像数据块分别存储到未出现故障的两个存储节点上。
进一步地,在所述重构该故障的存储节点上的源数据块,且所述重构该故障的存储节点上的镜像数据块之前,还包括:
将N个源数据块分别存储在N个不同的存储节点上,将N个镜像数据块分别存储在N个不同的存储节点上,其中N个源数据块与N个镜像数据块一一对应,同一个存储节点上存储的源数据块和镜像数据块不对应,N为正整数。
进一步地,在所述将N个源数据块分别存储在N个不同的存储节点上,将N个镜像数据块分别存储在N个不同的存储节点上之前,还包括:
对于N个所述存储节点中的每个存储节点,
将所述存储节点的磁盘划分为第一类磁盘和第二类磁盘;
在所述存储节点所有的第一类磁盘中选择一个第一类磁盘作为用于存储集群信息的表决磁盘,将该表决磁盘设置成预定冗余模式;
选择所述存储节点所有的第二类磁盘作为用于存储数据库信息的磁盘,将每个该磁盘设置成预定冗余模式。
进一步地,所述预定冗余模式为默认冗余模式或者高度冗余模式。
进一步地,在所述重构该故障的存储节点上的源数据块,且所述重构该故障的存储节点上的镜像数据块之后,还包括:
若所述未出现故障的存储节点个数等于预定数值,则在所述未出现故障的任一存储节点的第一类磁盘中选择一个未作为表决磁盘的第一类磁盘作为表决磁盘;
若该表决磁盘所在的存储节点出现故障,则在所述未出现故障的任一存储节点的第一类磁盘中选择一个未作为表决磁盘的第一类磁盘作为表决磁盘。
进一步地,若所述N为偶数,则所述预定数值为若所述N为奇数,则所述预定数值为
进一步地,每个所述存储节点的磁盘个数和磁盘总空间均相同。
本发明还提供了一种分布式存储系统,包括:
重构模块,用于当存储节点出现故障时,根据未出现故障的第一存储节点上存储的与该故障的存储节点上的源数据块对应的镜像数据块,重构该故障的存储节点上的源数据块,根据未故障的第二存储节点上存储的与该故障的存储节点上的镜像数据块对应的源数据块,重构该故障的存储节点上的镜像数据块;
第一存储模块,用于将该重构的源数据块和镜像数据块分别存储到未出现故障的两个存储节点上。
进一步地,还包括:
第二存储模块,用于将N个源数据块分别存储在N个不同的存储节点上,将N个镜像数据块分别存储在N个不同的存储节点上,其中N个源数据块与N个镜像数据块一一对应,同一个存储节点上存储的源数据块和镜像数据块不对应,N为正整数。
进一步地,还包括:
划分模块,用于对于N个所述存储节点中的每个存储节点,将所述存储节点的磁盘划分为第一类磁盘和第二类磁盘;
第一设置模块,用于对于N个所述存储节点中的每个存储节点,在所述存储节点所有的第一类磁盘中选择一个第一类磁盘作为用于存储集群信息的表决磁盘,将该表决磁盘设置成预定冗余模式;
第二设置模块,用于对于N个所述存储节点中的每个存储节点,选择所述存储节点所有的第二类磁盘作为用于存储数据库信息的磁盘,将每个该磁盘设置成预定冗余模式。
进一步地,还包括:
第一选择模块,用于若所述未出现故障的存储节点个数等于预定数值,则在所述未出现故障的任一存储节点的第一类磁盘中选择一个未作为表决磁盘的第一类磁盘作为表决磁盘;
第二选择模块,用于若该表决磁盘所在的存储节点出现故障,则在所述未出现故障的任一存储节点的第一类磁盘中选择一个未作为表决磁盘的第一类磁盘作为表决磁盘。
进一步地,每个所述存储节点的磁盘个数和磁盘总空间均相同。
与现有技术相比,本发明至少包括当存储节点出现故障时,根据未出现故障的第一存储节点上存储的与该故障的存储节点上的源数据块对应的镜像数据块,重构该故障的存储节点上的源数据块,根据未故障的第二存储节点上存储的与该故障的存储节点上的镜像数据块对应的源数据块,重构该故障的存储节点上的镜像数据块;将该重构的源数据块和镜像数据块分别存储到未出现故障的两个存储节点上。从本发明实施例可见,当存储节点出现故障时,重构故障的存储节点上的镜像数据块和源数据块并存储到未出现故障的存储节点上,使得未出现故障的存储节点依然可用,从而提高了存储节点的高可用性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1为现有技术中在分布式存储系统中存储数据的原理示意图;
图2为本发明实施例提供的一种存储节点的故障处理方法的流程示意图;
图3为本发明实施例提供的一种在分布式存储系统中存储数据的原理示意图;
图4为本发明实施例提供的一种分布式存储系统的结构示意图;
图5为本发明实施例提供的另一种分布式存储系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明实施例提供一种存储节点的故障处理方法,如图2所示,该方法包括:
步骤101、当存储节点出现故障时,根据未出现故障的第一存储节点上存储的与该故障的存储节点上的源数据块对应的镜像数据块,重构该故障的存储节点上的源数据块,根据未故障的第二存储节点上存储的与该故障的存储节点上的镜像数据块对应的源数据块,重构该故障的存储节点上的镜像数据块。
具体地,每个存储节点上的源数据块和镜像数据块有标记,根据出现故障的存储节点上的源数据块的标记,确定哪个存储节点上存储有与该故障的存储节点上的源数据块对应的镜像数据块,根据出现故障的存储节点上的镜像数据块的标记,确定哪个存储节点上存储有与该故障的存储节点上的镜像数据块对应的源数据块。
例如,如图3所示,当存储节点6出现故障时,由于存储节点6上存储有分片6和分片5’,而在存储节点4上存储有与分片6对应的分片6’,在存储节点5上存储有与分片5’对应的分片5,因此,根据存储节点4上存储的分片6’重构存储节点6上存储的分片6,根据存储节点5上存储的分片5重构存储节点6上存储的分片5’。
步骤102、将该重构的源数据块和镜像数据块分别存储到未出现故障的两个存储节点上。
具体地,将该重构的源数据块存储到未出现故障的一存储节点上,将该重构的镜像数据块存储到未出现故障的另一存储节点上,同一存储节点上存储的镜像数据块和源数据块不对应。
例如,重构存储节点6上存储的分片6和分片5’,将分片6存储到未出现故障的存储节点上,该存储节点只要不是存储有分片6’的存储节点4即可,即满足同一个存储节点上存储的源数据块和镜像数据块不对应即可,例如,将分片6存储到存储节点1至存储节点3中的任一个或者存储到存储节点5,将分片5’存储到未出现故障的存储节点上,该存储节点只要不是存储有分片5的存储节点5即可,例如,将分片5’存储到存储节点1至存储节点4中的任一个存储节点。
进一步地,在图2对应的实施例的基础上,在步骤101之前,还包括:
将N个源数据块分别存储在N个不同的存储节点上,将N个镜像数据块分别存储在N个不同的存储节点上,其中N个源数据块与N个镜像数据块一一对应,同一个存储节点上存储的源数据块和镜像数据块不对应,N为正整数。
具体地,分布式存储系统包括N个不同的存储节点,在将一份数据存储到分布式存储系统中时,将该数据分成成N个源数据块,并且产生与每个源数据块对应的镜像数据块,即产生N个镜像数据块,两个对应的源数据块和镜像数据块的数据内容相同。将N个源数据块分别存储在N个存储节点上,将N个镜像数据块分别存储在N个存储节点上,即一个存储节点上存储一个源数据块和一个镜像数据块,同一个存储节点上存储不对应的源数据块和镜像数据块。
例如,如图3所示,一份数据被分成6个源数据块,分别为分片1至分片6,6个源数据块与6个镜像数据块一一对应,6个镜像数据块分别为分片1’至分片6’,其中分片1和分片1’相同,分片2和分片2’相同,分片3和分片3’相同,分片4和分片4’相同,分片5和分片5’相同,分片6和分片6’相同,在存储节点1上存储有分片1和分片3’,在存储节点2上存储有分片2和分片4’,在存储节点3上存储有分片3和分片1’,在存储节点4上存储有分片4和分片6’,在存储节点5上存储有分片5和分片2’,在存储节点6上存储有分片6和分片5’。
进一步地,在图2对应的实施例的基础上,在将N个源数据块分别存储在N个不同的存储节点上,将N个镜像数据块分别存储在N个不同的存储节点上之前,还包括:
对于N个存储节点中的每个存储节点,将存储节点的磁盘划分为第一类磁盘和第二类磁盘;在存储节点所有的第一类磁盘中选择一个第一类磁盘作为用于存储集群信息的表决磁盘,将该表决磁盘设置成预定冗余模式;选择存储节点所有的第二类磁盘作为用于存储数据库信息的磁盘,将每个该磁盘设置成预定冗余模式。
具体地,将存储节点划分为2个分区,其中一个分区中的磁盘为第一类磁盘,另一个分区中的磁盘为第二类磁盘。然后安装oracle grid存储软件,创建diskgroup ocrvote:分别从每个存储节点的第一类磁盘中选择一个第一类磁盘作为表决磁盘(即vote磁盘),该表决磁盘用于存储集群信息,并设置成预定冗余模式,该表决磁盘的集合为diskgroupocrvote,每一个表决磁盘为一个单独的故障组(failgroup)。例如有6个存储节点,6个表决磁盘分别为不同的故障组,即crvote_01、ocrvote_02、ocrvote_03、ocrvote_04、ocrvote_05、ocrvote_06。将设置成预定冗余模式的第一类磁盘的属性设置为oracle默认。其次,使用asmca命令创建diskgroup data:选择所有的第二类磁盘作为用于存储数据库的磁盘,每个该磁盘设置成预定冗余模式,用于存储数据库的磁盘的集合为diskgroup data。每个存储节点为一个单独的故障组,例如,有6个存储节点,6个存储节点分别为不同的故障组,即failgroup1、failgroup2、failgroup3、failgroup4、failgroup5、failgroup6。将所有的用于存储数据库的磁盘的属性设置为oracle默认。在设置完以上的信息之后就可以在分布式存储系统上创建数据库。
进一步地,预定冗余模式为默认冗余模式或者高度冗余模式。
本方案利用了oracle自动存储管理(Automatic Storage Management,ASM)冗余模式的功能特性,oracle ASM提供了3种冗余模式,其中的2种冗余模式就是默认冗余(Normal Redundancy)模式和高度冗余(High Redundancy)模式。默认冗余模式表示oracle提供2份镜像来保护数据,有效磁盘空间是所有磁盘设备大小之和的1/2,高度冗余模式表示oracle提供3份镜像来保护数据,以提高性能和数据的安全,最少需要三块磁盘,有效磁盘空间是所有磁盘设备大小之和的1/3,虽然冗余级别高了,但是硬件的代价也最高。
当分布式存储系统中的存储节点个数在100之内,预定冗余模式为默认冗余模式,当分布式存储系统中的存储节点个数超过100,预定冗余模式为高度冗余模式。
进一步地,在步骤101之后,还包括:
若未出现故障的存储节点个数等于预定数值,则在未出现故障的任一存储节点的第一类磁盘中选择一个未作为表决磁盘的第一类磁盘作为表决磁盘;若该表决磁盘所在的存储节点出现故障,则在未出现故障的任一存储节点的第一类磁盘中选择一个未作为表决磁盘的第一类磁盘作为表决磁盘。
例如,分布式存储系统中总共有6个存储节点,存储节点1至存储节点6。当存储节点6出现故障时,执行如下的数据重构步骤恢复剩余5个存储节点的高可用性。
1)检查未出现故障的存储节点上是否有足够的存储空间来存储重构的数据。
2)若有足够的存储空间来存储重构的数据,则删除出现故障的存储节点上的所有数据来重构数据。
具体地,将分布式存储系统切换到系统grid用户界面,以sysasm的身份登录数据库:
Su-grid
Sqlplus/as sysasm
Alter system set asm_power_limit=10scope=both;
Alter diskgroup data drop disks in failgroup fg6;
Alter diskgroup data rebalance power 10;
......
3)观察数据重构进度,确保重构成功完成。
Su-grid
Asmcmd
Lsdg;
Lsop;
只要上述的重构过程能够成功完成,未故障的5个存储节点组成的diskgroupdata和diskgroup ocrvote依然具有高可用性,即使未故障的5个存储节点中的任意一个存储节点发生故障,整个分布式存储系统依然可用。
当剩余未故障的5个存储节点中有一个存储节点发生故障,假如存储节点5,重复以上的数据重构步骤来重构存储节点5上的数据,执行如下代码:
Alter diskgroup data drop disks in failgroup fg5;
Alter diskgroup data reablance power 10;
......
此时剩余4个存储节点未发生故障,在这4个存储节点中又有一个存储节点发生故障,假如存储节点4,依然重复以上的数据重构步骤来重构存储节点4上的数据,执行如下代码:
Alter diskgroup data drop disks in failgroup fg4;
Alter diskgroup data reablance power 10;
......
此时剩余3个存储节点未发生故障,在这3个存储节点种选择一个存储节点,假如选择存储节点1,在存储节点1的第一类磁盘中,选择一个不是表决磁盘的第一类磁盘,将该第一类磁盘作为表决磁盘,从而在存储节点1中添加一个表决磁盘,并设置该表决磁盘为单独的一个故障组。具体执行如下代码:
Alter diskgroup ocrvote add failgroup OCRVOTE_004disk‘/dev/store1vote2’
在剩余的3个存储节点中,diskgroup data和diskgroup ocrvote都具有高可用冗余特性。可以允许继续宕任意一个存储节点,如存储节点1、存储节点2、存储节点3,而不影响整个存储系统数据的完整性,并正常对外提供服务。
此后,在这3个存储节点中又有一个存储节点发生故障,a)如果存储节点2或者存储节点3出现故障,则依然重复以上的数据重构步骤来重构存储节点2或者存储节点3上的数据,执行如下代码:
Alter diskgroup data drop disks in failgroup fg3;
Alter diskgroup data reablance power 10;
......
或
Alter diskgroup data drop disks in failgroup fg2;
Alter diskgroup data reablance power 10;
......
b)如果这3个存储节点中的存储节点1出现故障,则重构存储节点1上的数据,此外还在未出现故障的存储节点2和存储节点3中选择一个存储节点,比如存储节点2,在存储节点2的第一类磁盘中,选择一个不是表决磁盘的第一类磁盘,将该第一类磁盘作为表决磁盘,从而在存储节点2中添加一个表决磁盘,并设置该表决磁盘为单独的一个故障组。执行如下代码:
Alter diskgroup data drop disks in failgroup fg1;
Alter diskgroup data reablance power 10;
......
Alter diskgroup ocrvote add failgroup OCRVOTE_005disk'/dev/store2vote2';
在重构数据成功后,此时剩余2个存储节点可用,可用允许继续宕机一个存储节点。
如果想要满足在剩余的2个存储节点中,可以故障任意一个存储节点,需要在存储节点2中添加一个表决磁盘,并设置该表决磁盘为单独的一个failgroup,具体执行如下代码:
Alter diskgroup ocrvote add failgroup OCRVOTE_005disk'/dev/store2vote2';
以上步骤展示了在6个存储节点中,故障一个至5个存储节点,整个分布式存储系统依然具有很高的可用性。特别是在大规模的分布式存储系统中,采用本方案可以提高分布式存储系统的高可用性,充分利用资源。
进一步地,若N为偶数,则预定数值为若N为奇数,则预定数值为
上述中的符号为向上取整符号,例如,
进一步地,每个存储节点的磁盘个数和磁盘总空间均相同。
本发明实施例所提供的存储节点的故障处理方法,当存储节点出现故障时,根据未出现故障的第一存储节点上存储的与该故障的存储节点上的源数据块对应的镜像数据块,重构该故障的存储节点上的源数据块,根据未故障的第二存储节点上存储的与该故障的存储节点上的镜像数据块对应的源数据块,重构该故障的存储节点上的镜像数据块;将该重构的源数据块和镜像数据块分别存储到未出现故障的两个存储节点上。从本发明实施例可见,当存储节点出现故障时,重构故障的存储节点上的镜像数据块和源数据块并存储到未出现故障的存储节点上,使得未出现故障的存储节点依然可用,从而提高了存储节点的高可用性。
本发明实施例提供一种分布式存储系统,如图4所示,该分布式存储系统2包括:
重构模块21,用于当存储节点出现故障时,根据未出现故障的第一存储节点上存储的与该故障的存储节点上的源数据块对应的镜像数据块,重构该故障的存储节点上的源数据块,根据未故障的第二存储节点上存储的与该故障的存储节点上的镜像数据块对应的源数据块,重构该故障的存储节点上的镜像数据块。
第一存储模块22,用于将该重构的源数据块和镜像数据块分别存储到未出现故障的两个存储节点上。
进一步地,在图4对应的实施例的基础上,本发明提供了另一种分布式存储系统,如图5所示,该分布式存储系统2还包括:
第二存储模块23,用于将N个源数据块分别存储在N个不同的存储节点上,将N个镜像数据块分别存储在N个不同的存储节点上,其中N个源数据块与N个镜像数据块一一对应,同一个存储节点上存储的源数据块和镜像数据块不对应,N为正整数。
进一步地,如图5所示,该分布式存储系统2还包括:
划分模块24,用于对于N个存储节点中的每个存储节点,将存储节点的磁盘划分为第一类磁盘和第二类磁盘。
第一设置模块25,用于对于N个存储节点中的每个存储节点,在存储节点所有的第一类磁盘中选择一个第一类磁盘作为用于存储集群信息的表决磁盘,将该表决磁盘设置成预定冗余模式。
第二设置模块26,用于对于N个存储节点中的每个存储节点,选择存储节点所有的第二类磁盘作为用于存储数据库信息的磁盘,将每个该磁盘设置成预定冗余模式。
进一步地,预定冗余模式为默认冗余模式或者高度冗余模式。
进一步地,如图5所示,该分布式存储系统2还包括:
第一选择模块27,用于若未出现故障的存储节点个数等于预定数值,则在未出现故障的任一存储节点的第一类磁盘中选择一个未作为表决磁盘的第一类磁盘作为表决磁盘。
第二选择模块28,用于若该表决磁盘所在的存储节点出现故障,则在未出现故障的任一存储节点的第一类磁盘中选择一个未作为表决磁盘的第一类磁盘作为表决磁盘。
进一步地,若N为偶数,则预定数值为若N为奇数,则预定数值为
进一步地,每个存储节点的磁盘个数和磁盘总空间均相同。
在实际应用中,重构模块21、第一存储模块22、第二存储模块23、划分模块24、第一设置模块25、第二设置模块26、第一选择模块27和第二选择模块28均可由分布式存储系统2中的CPU、微处理器(Micro Processor Unit,MPU)、数字信号处理器(Digital SignalProcessor,DSP)或现场可编程门阵列(Field Programmable Gate Array,FPGA)等实现。
本发明实施例所提供的分布式存储系统,当存储节点出现故障时,根据未出现故障的第一存储节点上存储的与该故障的存储节点上的源数据块对应的镜像数据块,重构该故障的存储节点上的源数据块,根据未故障的第二存储节点上存储的与该故障的存储节点上的镜像数据块对应的源数据块,重构该故障的存储节点上的镜像数据块;将该重构的源数据块和镜像数据块分别存储到未出现故障的两个存储节点上。从本发明实施例可见,当存储节点出现故障时,重构故障的存储节点上的镜像数据块和源数据块并存储到未出现故障的存储节点上,使得未出现故障的存储节点依然可用,从而提高了存储节点的高可用性。
本发明实施例提供又一种分布式存储系统,该分布式存储系统包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现的步骤包括:
当存储节点出现故障时,根据未出现故障的第一存储节点上存储的与该故障的存储节点上的源数据块对应的镜像数据块,重构该故障的存储节点上的源数据块,根据未故障的第二存储节点上存储的与该故障的存储节点上的镜像数据块对应的源数据块,重构该故障的存储节点上的镜像数据块;
将该重构的源数据块和镜像数据块分别存储到未出现故障的两个存储节点上。
进一步地,上述处理器执行计算机程序时实现的步骤还包括:
将N个源数据块分别存储在N个不同的存储节点上,将N个镜像数据块分别存储在N个不同的存储节点上,其中N个源数据块与N个镜像数据块一一对应,同一个存储节点上存储的源数据块和镜像数据块不对应,N为正整数。
进一步地,上述处理器执行计算机程序时实现的步骤还包括:
对于N个所述存储节点中的每个存储节点,
将所述存储节点的磁盘划分为第一类磁盘和第二类磁盘;
在所述存储节点所有的第一类磁盘中选择一个第一类磁盘作为用于存储集群信息的表决磁盘,将该表决磁盘设置成预定冗余模式;
选择所述存储节点所有的第二类磁盘作为用于存储数据库信息的磁盘,将每个该磁盘设置成预定冗余模式。
进一步地,所述预定冗余模式为默认冗余模式或者高度冗余模式。
进一步地,上述处理器执行计算机程序时实现的步骤还包括:
若所述未出现故障的存储节点个数等于预定数值,则在所述未出现故障的任一存储节点的第一类磁盘中选择一个未作为表决磁盘的第一类磁盘作为表决磁盘;
若该表决磁盘所在的存储节点出现故障,则在所述未出现故障的任一存储节点的第一类磁盘中选择一个未作为表决磁盘的第一类磁盘作为表决磁盘。
进一步地,若N为偶数,则预定数量为若N为奇数,则预定数量为
进一步地,每个存储节点的磁盘个数和磁盘总空间均相同。
虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (12)
1.一种存储节点的故障处理方法,其特征在于,包括:
当存储节点出现故障时,根据未出现故障的第一存储节点上存储的与该故障的存储节点上的源数据块对应的镜像数据块,重构该故障的存储节点上的源数据块,根据未故障的第二存储节点上存储的与该故障的存储节点上的镜像数据块对应的源数据块,重构该故障的存储节点上的镜像数据块;
将该重构的源数据块和镜像数据块分别存储到未出现故障的两个存储节点上。
2.根据权利要求1所述的存储节点的故障处理方法,其特征在于,在所述重构该故障的存储节点上的源数据块,且所述重构该故障的存储节点上的镜像数据块之前,还包括:
将N个源数据块分别存储在N个不同的存储节点上,将N个镜像数据块分别存储在N个不同的存储节点上,其中N个源数据块与N个镜像数据块一一对应,同一个存储节点上存储的源数据块和镜像数据块不对应,N为正整数。
3.根据权利要求2所述的存储节点的故障处理方法,其特征在于,在所述将N个源数据块分别存储在N个不同的存储节点上,将N个镜像数据块分别存储在N个不同的存储节点上之前,还包括:
对于N个所述存储节点中的每个存储节点,
将所述存储节点的磁盘划分为第一类磁盘和第二类磁盘;
在所述存储节点所有的第一类磁盘中选择一个第一类磁盘作为用于存储集群信息的表决磁盘,将该表决磁盘设置成预定冗余模式;
选择所述存储节点所有的第二类磁盘作为用于存储数据库信息的磁盘,将每个该磁盘设置成预定冗余模式。
4.根据权利要求3所述的存储节点的故障处理方法,其特征在于,
所述预定冗余模式为默认冗余模式或者高度冗余模式。
5.根据权利要求3或4所述的存储节点的故障处理方法,其特征在于,在所述重构该故障的存储节点上的源数据块,且所述重构该故障的存储节点上的镜像数据块之后,还包括:
若所述未出现故障的存储节点个数等于预定数值,则在所述未出现故障的任一存储节点的第一类磁盘中选择一个未作为表决磁盘的第一类磁盘作为表决磁盘;
若该表决磁盘所在的存储节点出现故障,则在所述未出现故障的任一存储节点的第一类磁盘中选择一个未作为表决磁盘的第一类磁盘作为表决磁盘。
6.根据权利要求5所述的存储节点的故障处理方法,其特征在于,
若所述N为偶数,则所述预定数值为若所述N为奇数,则所述预定数值为
7.根据权利要求1至6中任一项所述的存储节点的故障处理方法,其特征在于,
每个所述存储节点的磁盘个数和磁盘总空间均相同。
8.一种分布式存储系统,其特征在于,包括:
重构模块,用于当存储节点出现故障时,根据未出现故障的第一存储节点上存储的与该故障的存储节点上的源数据块对应的镜像数据块,重构该故障的存储节点上的源数据块,根据未故障的第二存储节点上存储的与该故障的存储节点上的镜像数据块对应的源数据块,重构该故障的存储节点上的镜像数据块;
第一存储模块,用于将该重构的源数据块和镜像数据块分别存储到未出现故障的两个存储节点上。
9.根据权利要求8所述的分布式存储系统,其特征在于,还包括:
第二存储模块,用于将N个源数据块分别存储在N个不同的存储节点上,将N个镜像数据块分别存储在N个不同的存储节点上,其中N个源数据块与N个镜像数据块一一对应,同一个存储节点上存储的源数据块和镜像数据块不对应,N为正整数。
10.根据权利要求9所述的分布式存储系统,其特征在于,还包括:
划分模块,用于对于N个所述存储节点中的每个存储节点,将所述存储节点的磁盘划分为第一类磁盘和第二类磁盘;
第一设置模块,用于对于N个所述存储节点中的每个存储节点,在所述存储节点所有的第一类磁盘中选择一个第一类磁盘作为用于存储集群信息的表决磁盘,将该表决磁盘设置成预定冗余模式;
第二设置模块,用于对于N个所述存储节点中的每个存储节点,选择所述存储节点所有的第二类磁盘作为用于存储数据库信息的磁盘,将每个该磁盘设置成预定冗余模式。
11.根据权利要求10所述的分布式存储系统,其特征在于,还包括:
第一选择模块,用于若所述未出现故障的存储节点个数等于预定数值,则在所述未出现故障的任一存储节点的第一类磁盘中选择一个未作为表决磁盘的第一类磁盘作为表决磁盘;
第二选择模块,用于若该表决磁盘所在的存储节点出现故障,则在所述未出现故障的任一存储节点的第一类磁盘中选择一个未作为表决磁盘的第一类磁盘作为表决磁盘。
12.根据权利要求8至11中任一项所述的分布式存储系统,其特征在于,
每个所述存储节点的磁盘个数和磁盘总空间均相同。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710652512.XA CN107357689B (zh) | 2017-08-02 | 2017-08-02 | 一种存储节点的故障处理方法及分布式存储系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710652512.XA CN107357689B (zh) | 2017-08-02 | 2017-08-02 | 一种存储节点的故障处理方法及分布式存储系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107357689A true CN107357689A (zh) | 2017-11-17 |
CN107357689B CN107357689B (zh) | 2020-09-08 |
Family
ID=60287444
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710652512.XA Active CN107357689B (zh) | 2017-08-02 | 2017-08-02 | 一种存储节点的故障处理方法及分布式存储系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107357689B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874918A (zh) * | 2018-05-30 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种数据处理装置、数据库一体机及其数据处理方法 |
CN108920210A (zh) * | 2018-06-28 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种加载存储控制软件的方法、系统及相关组件 |
CN109145056A (zh) * | 2018-09-07 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种数据缩容的方法、装置和计算机可读存储介质 |
CN111158608A (zh) * | 2019-12-31 | 2020-05-15 | 云和恩墨(北京)信息技术有限公司 | 硬盘故障处理方法、装置及分布式系统 |
CN113687790A (zh) * | 2021-09-06 | 2021-11-23 | 锐捷网络股份有限公司 | 数据重构方法、装置、设备及存储介质 |
CN114625325A (zh) * | 2022-05-16 | 2022-06-14 | 阿里云计算有限公司 | 分布式存储系统及其存储节点离线处理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567237A (zh) * | 2003-06-09 | 2005-01-19 | 浪潮电子信息产业股份有限公司 | 构建高可用分布式存储系统的方法 |
CN101515296A (zh) * | 2009-03-06 | 2009-08-26 | 成都市华为赛门铁克科技有限公司 | 数据更新方法和装置 |
US20150052214A1 (en) * | 2011-12-28 | 2015-02-19 | Beijing Qihoo Technology Company Limited | Distributed system and data operation method thereof |
CN105550229A (zh) * | 2015-12-07 | 2016-05-04 | 北京奇虎科技有限公司 | 分布式存储系统数据修复的方法和装置 |
CN106227464A (zh) * | 2016-07-14 | 2016-12-14 | 中国科学院计算技术研究所 | 一种双层冗余存储系统及其数据写入、读取及恢复方法 |
EP3353657A2 (en) * | 2015-09-21 | 2018-08-01 | Tigerit Americas, LLC | Fault-tolerant methods, systems and architectures for data storage, retrieval and distribution |
-
2017
- 2017-08-02 CN CN201710652512.XA patent/CN107357689B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567237A (zh) * | 2003-06-09 | 2005-01-19 | 浪潮电子信息产业股份有限公司 | 构建高可用分布式存储系统的方法 |
CN101515296A (zh) * | 2009-03-06 | 2009-08-26 | 成都市华为赛门铁克科技有限公司 | 数据更新方法和装置 |
US20150052214A1 (en) * | 2011-12-28 | 2015-02-19 | Beijing Qihoo Technology Company Limited | Distributed system and data operation method thereof |
EP3353657A2 (en) * | 2015-09-21 | 2018-08-01 | Tigerit Americas, LLC | Fault-tolerant methods, systems and architectures for data storage, retrieval and distribution |
CN105550229A (zh) * | 2015-12-07 | 2016-05-04 | 北京奇虎科技有限公司 | 分布式存储系统数据修复的方法和装置 |
CN106227464A (zh) * | 2016-07-14 | 2016-12-14 | 中国科学院计算技术研究所 | 一种双层冗余存储系统及其数据写入、读取及恢复方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108874918A (zh) * | 2018-05-30 | 2018-11-23 | 郑州云海信息技术有限公司 | 一种数据处理装置、数据库一体机及其数据处理方法 |
CN108874918B (zh) * | 2018-05-30 | 2021-11-26 | 郑州云海信息技术有限公司 | 一种数据处理装置、数据库一体机及其数据处理方法 |
CN108920210A (zh) * | 2018-06-28 | 2018-11-30 | 郑州云海信息技术有限公司 | 一种加载存储控制软件的方法、系统及相关组件 |
CN109145056A (zh) * | 2018-09-07 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种数据缩容的方法、装置和计算机可读存储介质 |
CN111158608A (zh) * | 2019-12-31 | 2020-05-15 | 云和恩墨(北京)信息技术有限公司 | 硬盘故障处理方法、装置及分布式系统 |
CN111158608B (zh) * | 2019-12-31 | 2021-11-23 | 云和恩墨(北京)信息技术有限公司 | 硬盘故障处理方法、装置及分布式系统 |
CN113687790A (zh) * | 2021-09-06 | 2021-11-23 | 锐捷网络股份有限公司 | 数据重构方法、装置、设备及存储介质 |
CN114625325A (zh) * | 2022-05-16 | 2022-06-14 | 阿里云计算有限公司 | 分布式存储系统及其存储节点离线处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107357689B (zh) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107357689A (zh) | 一种存储节点的故障处理方法及分布式存储系统 | |
US9823980B2 (en) | Prioritizing data reconstruction in distributed storage systems | |
Nachiappan et al. | Cloud storage reliability for big data applications: A state of the art survey | |
US8464090B2 (en) | Recovery of failed disks in an array of disks | |
CN105335251A (zh) | 一种故障恢复方法及系统 | |
CN107003933B (zh) | 部分复制码的构建方法、装置及其数据修复的方法 | |
US10860256B2 (en) | Storing data utilizing a maximum accessibility approach in a dispersed storage network | |
Datta et al. | An overview of codes tailor-made for better repairability in networked distributed storage systems | |
CN106354548A (zh) | 分布式数据库系统中虚拟集群创建、管理方法及装置 | |
CN108733516A (zh) | 多云安全存储动态平衡备份方法及系统 | |
KR101254179B1 (ko) | 분산 파일 시스템에서 효율적인 자료 복구 방법 | |
US10469406B2 (en) | Partial task execution in a dispersed storage network | |
JP5723309B2 (ja) | サーバおよびプログラム | |
Ko et al. | Fault tolerant erasure coded replication for HDFS based cloud storage | |
US20220394091A1 (en) | Storing a Data Object as Data Regions in a Storage Network | |
Datta et al. | An overview of codes tailor-made for better repairability in networked distributed storage systems | |
Li et al. | A hierarchical RAID architecture towards fast recovery and high reliability | |
Li et al. | Exploiting decoding computational locality to improve the I/O performance of an XOR-coded storage cluster under concurrent failures | |
CN109151016B (zh) | 流量转发方法和装置、服务系统、计算设备及存储介质 | |
Shi et al. | Novel data placement algorithm for distributed storage system based on fault-tolerant domain | |
Datta et al. | Storage codes: Managing big data with small overheads | |
US10095582B2 (en) | Partial rebuilding techniques in a dispersed storage unit | |
Xu et al. | Towards optimisation of replicated erasure codes for efficient cooperative repair in cloud storage systems | |
He et al. | Replicate distribution method of minimum cost in cloud storage for Internet of things | |
Pei et al. | Cooperative repair based on tree structure for multiple failures in distributed storage systems with regenerating codes |
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 |