CN103019614A - 分布式存储系统管理装置及方法 - Google Patents

分布式存储系统管理装置及方法 Download PDF

Info

Publication number
CN103019614A
CN103019614A CN2011102858028A CN201110285802A CN103019614A CN 103019614 A CN103019614 A CN 103019614A CN 2011102858028 A CN2011102858028 A CN 2011102858028A CN 201110285802 A CN201110285802 A CN 201110285802A CN 103019614 A CN103019614 A CN 103019614A
Authority
CN
China
Prior art keywords
storage server
data
node group
dummy node
unit
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
CN2011102858028A
Other languages
English (en)
Other versions
CN103019614B (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.)
Zhejiang Tmall Technology Co Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201110285802.8A priority Critical patent/CN103019614B/zh
Priority to TW100143929A priority patent/TWI521359B/zh
Priority to EP12769809.0A priority patent/EP2758880B1/en
Priority to PCT/US2012/055629 priority patent/WO2013043514A1/en
Priority to JP2014531888A priority patent/JP6341543B2/ja
Priority to US13/618,815 priority patent/US9053021B2/en
Publication of CN103019614A publication Critical patent/CN103019614A/zh
Priority to HK13106087.6A priority patent/HK1179366A1/zh
Application granted granted Critical
Publication of CN103019614B publication Critical patent/CN103019614B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2069Management of state, configuration or failover
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请公开了一种分布式存储系统管理装置,应用于包括N个存储服务器的分布式存储系统,该装置将其中M个存储服务器分为x个对等序列并形成y个虚拟节点组,且每个虚拟节点组中包括z个彼此属于不同对等序列的存储服务器,其余N-M个存储服务器为临时存储服务器。本申请还相应公开了一种分布式存储系统管理方法。本申请实施例提供的分布式存储系统管理装置及方法,通过对等序列及虚拟节点组的双重功能划分对存储服务器进行管理,能够保证数据备份在虚拟节点组中分属不同对等序列的存储服务器中,从而在某个对等序列中的存储服务器失效时可以继续由该虚拟节点组中其他对等序列的存储服务器提供数据读写服务。

Description

分布式存储系统管理装置及方法
技术领域
本申请涉及分布式存储技术领域,尤其涉及一种具有高可用存储失效处理能力的分布式存储系统管理装置及方法。
背景技术
传统的存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。分布式存储系统采用可扩展的系统结构,通过利用多台存储服务器分担存储负荷,并利用位置服务器定位存储信息,不仅提高了系统的可靠性、可用性和存取效率,还使得后续的扩展更为便利。
另一方面,在各种应用环境中,存储系统中的数据都是宝贵的财富,各种存储系统均会致力于保证所存储的数据不因各种原因丢失。在分布式存储系统中,个别存储服务器的宕机、停机维护或网络故障等问题都有可能导致数据的丢失,甚至可能会导致整个存储系统的不可用,进而会影响到存储系统所服务的应用系统的可用性。为了避免这种状况的发生,分布式存储系统中通常采用以下两种存储失效处理机制,同时,这两种机制也都各自存在一定的缺点。
第一种存储失效处理机制中,是将两个不同的物理存储服务器配置为主从服务器,例如服务器A(主服务器)和服务器B(从服务器),正常情况下应用系统访问服务器A进行数据的读取和写入,并且写入服务器A的数据会同步至服务器B;一旦服务器A发生宕机等故障,应用系统便切换至服务器B进行数据读写;而在服务器A恢复正常后,再将服务器B的数据回迁到服务器A上。该机制的缺点在于,首先,正常情况下,从主服务器到从服务器的数据同步也会存在延时,当主服务器出现故障时,可能会导致小部分数据无法及时同步到从服务器,从而出现数据丢失;其次,主服务器从故障恢复正常后,需要将从服务器的数据迁回主服务器,由于此期间从服务器的数据一直在不断写入,所以这个迁回过程会比较复杂;最后,一旦主服务器、从服务器同时都出现故障,便会导致存储系统完全不可用。
另外一种新近出现的存储失效处理机制中,应用系统在进行数据写入时,是将同一个数据写入到多个(例如3个)彼此不相关联的服务器上,只要成功写入一定数量(例如2个)的服务器即认定为写入操作完成;而应用系统在进行数据读取时,便到上述多个服务器上同时读取,只要从一定数量(例如2个)的服务器上读取成功便认定为读取操作完成。由上述可以看出,该机制是通过数据备份的数量来弥补可能的服务器故障所造成的存储失效,其缺点在于,应用系统的数据读取和写入操作都需要同时访问多个服务器,然而写入操作并不能保证每次写入的数据完全不出差错,而读取操作便可能会读取到不一致的数据,这样应用系统在读取数据时还需要进行数据校验并修复不正确的数据,因此整个过程实现比较复杂且会导致系统性能变差。
发明内容
本申请的实施例旨在提供一种分布式存储系统管理装置及方法,以解决上述分布式系统中存储失效处理机制所存在的问题。
为实现上述目的,本申请的实施例提供了一种分布式存储系统管理装置,应用于包括N个存储服务器的分布式存储系统,该装置包括分组管理单元、数据写入单元及数据读取单元,其中,
所述分组管理单元用于将所述N个存储服务器中的M个存储服务器分为x个对等序列并形成y个虚拟节点组,且每个虚拟节点组中包括z个彼此属于不同对等序列的存储服务器,其余N-M个存储服务器为临时存储服务器,上述N、M、x、y为自然数常量且满足:N≥3,2≤M<N,x≥2,y≥1,x·y≥M;z为自然数变量且满足:2≤z≤x;
所述数据写入单元用于将数据写入到选择的一个虚拟节点组的每个存储服务器中,并在该虚拟节点组的部分存储服务器不可用时,将该数据写入到该虚拟节点组剩余可用的存储服务器以及所述临时存储服务器中;
所述数据读取单元用于从数据被写入的虚拟节点组中任一可用的存储服务器处读取该数据。
本申请的实施例还提供一种分布式存储系统管理方法,应用于包括N个存储服务器的分布式存储系统,并包括以下步骤:
S1.将M个存储服务器分为x个对等序列并形成y个虚拟节点组,且每个虚拟节点组中包括z个彼此属于不同对等序列的存储服务器,其余N-M个存储服务器为临时存储服务器,上述N、M、x、y为自然数常量且满足:N≥3,2≤M<N,x≥2,y≥1,x·y≥M;z为自然数变量且满足:2≤z≤x;
S21.在执行数据写入操作时将数据写入到选择的一个虚拟节点组的每个存储服务器中,并在该虚拟节点组的部分存储服务器不可用时,将该数据写入到该虚拟节点组剩余可用的存储服务器以及所述临时存储服务器中;
S22.在执行数据读取操作时从数据被写入的虚拟节点组中任一可用的存储服务器处读取该数据。
由上述技术方案可知,本申请实施例提供的分布式存储系统管理装置及方法,通过对等序列及虚拟节点组的双重功能划分对存储服务器进行管理,能够保证数据备份在虚拟节点组中分属不同对等序列的存储服务器中,从而在某个对等序列中的存储服务器失效时可以继续由该虚拟节点组中其他对等序列的存储服务器提供数据读写服务。
附图说明
图1为本申请分布式存储系统管理装置实施例的结构示意图;
图2为本申请分布式存储系统管理方法实施例一的流程图;
图3为本申请分布式存储系统管理方法实施例二的流程图。
具体实施方式
下面将详细描述本申请的具体实施例。应当注意,这里描述的实施例只用于举例说明,并不用于限制本申请。
图1为本申请分布式存储系统管理装置实施例的结构示意图,如图所示,本实施例的分布式存储系统管理装置11,用于对包括N个存储服务器121~12N的分布式存储系统进行管理。分布式存储系统管理装置11进一步包括分组管理单元110,其用于对上述分布式存储系统中的N个存储服务器121~12N进行分组管理,具体包括:在存储服务器121~12N中,选取M个存储服务器划分为x个对等序列,每个对等序列中包含一定数量的存储服务器,在一个实施例中,每个对等序列包含的存储服务器的个数相同,当然每个对等序列中包含的服务器的个数也可以不相同;接下来,继续将上述所选取的M个存储服务器划分为y个虚拟节点组,且使得每个虚拟节点组中都包括z个彼此属于不同对等序列的存储服务器;最后,将其余N-M个存储服务器设置为临时存储服务器。上述各字母所表示的量中,N、M、x、y为自然数常量且其取值分别满足:N≥3,2≤M<N,x≥2,y≥1,x·y≥M(“·”为乘法标记);z为自然数变量且取值满足:2≤z≤x。在一个实施例中,z可以是自然数常量,也即,使得每个虚拟节点组中存储服务器的个数相同,在这种情况下,为了满足每个虚拟节点组中各个存储服务器彼此属于不同对等序列,实际上x、y、M的取值需要满足M=x·y,而此时z=x。
下面结合数组的概念可以更好地理解本实施例中分组管理单元110以对等序列和虚拟节点组来对M个存储服务器进行双重划分的过程。例如,假设数组a[x][y]如下:
a [ x ] [ y ] = a 11 a 12 · · · · a 1 y a 21 · · · · · · · · a x 1 · · a xy
结合以上数组a[x][y],可以将上述存储服务器的划分过程看作将M个存储服务器填充至数组a[x][y]中作为数组元素的过程。在M=x·y的情况下,数组中的每个元素刚好与一个存储服务器对应,而每个虚拟节点组中存储服务器的个数z即为常量且z=x;而在M<x·y的情况下,在将M个存储服务器填充至数组后,数组中还会存在一定数量的空白元素,这时每个虚拟节点组中存储服务器的个数z(对应于每一列中非空白元素的个数)就可能是不固定的,但在满足x≥2,y≥1,2≤z≤x等条件下,这一情况应是允许的。
在一个实施例中,可以使得x、y、M的取值满足M=x·y,即,使得每个对等序列(也即每个虚拟节点组)中存储服务器的个数均相等,这样能够得到更好的负载均衡效果,后续的失效恢复也更为便利。为使描述更为简便,下文中除非有特别说明,均是基于这种每个对等序列中存储服务器个数相同的情形。在这种情形下,以上文所示的数组a[x][y]为例,M个存储服务器被划分为x个对等序列,例如,第1个和第x个对等序列所包含的存储服务器对应的数组元素分别是[a11、a12、...、a1y]和[ax1、ax2、...、axy];同时,这M个存储服务器又形成y个虚拟节点组,例如,第1个和第y个虚拟节点组所包含的存储服务器对应的数组元素分别是[a11、a21、...、ax1]和[a1y、a2y、...、axy]。
进一步如图1所示,本实施例的分布式存储系统管理装置11还包括数据写入单元111及数据读取单元112。其中,数据写入单元111用于将数据写入到任意选择或按预设规则选择的一个虚拟节点组的每个存储服务器中,并在该虚拟节点组的部分存储服务器不可用时,将该数据写入到该虚拟节点组里除去不可用存储服务器之外剩余所有可用的存储服务器以及临时存储服务器中;数据读取单元112用于从数据被写入的虚拟节点组中任一可用的存储服务器处读取该数据。由上述可知,基于对等序列和虚拟节点组的数据读写操作,每个数据写入时先选择要写入的虚拟节点组,再将该数据写入所选择的虚拟节点组中的每个存储服务器,这时实际上每个对等序列中都有存储服务器被写入该同一数据,最终,如果不考虑故障状况,在每个对等序列之间所有存储服务器存储的数据应该是对等的(相同的),这也是所称“对等序列”的含义所在;而在虚拟节点组中有存储服务器出现故障等不可用的情况时,本应写入该不可用存储服务器的数据则转而写入到选择的一个临时存储服务器中(至于同时应写入虚拟节点组中剩余可用存储服务器的数据则不受影响继续正常写入),以便后续存储服务器恢复可用后进行数据的迁回。另一方面,在进行数据的读取操作时,只需从该数据被写入的虚拟节点组中任意选取一个可用存储服务器进行读取即可。在一个实施例中,为了实现负载均衡,数据写入的虚拟节点组可以是随机进行选择,后文实施例中还将介绍一种依据特定算法进行随机选择的情况。
继续如图1所示,本实施例的分布式存储系统管理装置11还包括数据迁移单元113、重试控制单元114、失效判断单元115及数据路由单元116,下文将分别予以描述。
在一个实施例中,数据迁移单元113用于在不可用的存储服务器恢复可用时,将对应的临时存储服务器中存储的数据迁回该恢复可用的存储服务器;并用于在不可用的存储服务器无法恢复可用时,将该存储服务器所在的虚拟节点组里可用的存储服务器中存储的数据迁移至选择的一个临时存储服务器,并以该临时存储服务器替换不可用的存储服务器。从此处描述可以看出,临时存储服务器的设置有两方面的功能。第一个方面,临时存储服务器用于对存储服务器不可用期间写入的数据进行临时存储,以便在存储服务器恢复可用时进行数据迁回;第二个方面,临时存储服务器还作为存储服务器的替换,用于在后者不可恢复时及时从相应虚拟节点组中其他对等序列的存储服务器迁移全部数据,进而替换不可恢复的存储服务器,这里的“替换”是指从功能(相应的数据读写)到角色(相应所属的虚拟节点组和对等序列)的彻底替换。需要说明的是,上述临时存储服务器两个方面的功能是从整体上而言,但如果从个体考虑,为了保证两个方面的功能互不干扰,同时也考虑到这两个方面功能所适用的数据存储结构有所区别,优选地,每个临时存储服务器应当被设置为始终只承担单独一个方面的功能;例如,在一个实施例中,所有临时存储服务器在初始设置时就被划分为临时服务器和备份服务器,其中临时服务器只承担上述第一个方面的功能,而备份服务器则只承担上述第二个方面的功能。
在一个实施例中,重试控制单元114用于控制数据写入单元111及数据读取单元112在执行对应的数据写入或读取操作失败时按第一预定次数重试该数据写入或读取操作。失效判断单元115用于在重试控制单元114控制的重试达到第一预定次数时判断对应的存储服务器为不可用,并将该判断结果通知数据写入单元111及数据读取单元112;以及用于在存储服务器被判断为不可用后,利用重试控制单元114按第二预定次数检测该存储服务器的状态,在检测为可用时判断该存储服务器恢复可用或者在检测为不可用并达到第二预定次数时判断该存储服务器无法恢复可用,并将该判断结果通知数据迁移单元113。由上述可以看出,本申请的分布式存储系统管理装置实施例提供了瞬时失效、临时失效和永久失效三种情况下的处理机制。这里,瞬时失效是指由于网络瞬断或其他原因导致的应用服务器(应用程序)在极短时间内不能连接存储服务器的状况;为此,本实施例通过设置重试控制单元114来控制数据写入单元111或数据读取单元112重试一定次数的读写请求后即可恢复访问,并且为了不影响应用服务器(应用程序)的性能及使用体验,这里的重试次数通常设置较小,而且每两次重试之间可以不设置时间间隔。进一步,临时失效是指由于升级或者维护等原因导致存储服务器临时不可用,但经过适当时间后,存储服务器便能恢复提供服务;而永久失效是指由于硬盘损坏等极端原因导致的数据丢失而无法恢复的状况;为此,本实施例设置了失效判断单元115的判断和通知机制。首先,在重试控制单元114控制的重试次数达到第一预定次数后,失效判断单元114便可以判定对应的存储服务器失效(不可用),并将判定结果通知数据写入单元111及数据读取单元112,此后便如前文所述,数据写入操作会在失效存储服务器所对应虚拟节点组剩余所有可用的存储服务器以及临时存储服务器中进行,数据读取则仅在失效存储服务器所对应虚拟节点组中任一可用存储服务器中进行;之后,失效判断单元114利用重试控制单元114按第二预定次数重复检测该存储服务器的状态,在检测为可用时(表明该存储服务器经过“临时失效”后恢复可用)便可以通知数据迁移单元113开始进行从临时存储服务器到恢复可用存储服务器的数据迁回操作,在失效判断单元114检测到对应存储服务器为不可用并达到第二预定次数时(表明该存储服务器为“永久失效”),便可以通知数据迁移单元113开始进行从失效存储服务器所在虚拟组中的可用存储服务器到临时存储服务器的全部数据复制操作,最终该临时存储服务器将取代永久失效的存储服务器。
需要说明的是,在一个实施例中,上述重试控制单元114按第二预定次数重复检测该存储服务器的状态时,具体仍然可以像之前瞬时失效的重试时那样,通过控制数据写入单元111或数据读取单元112不断重试数据的写入或读取操作,并以重试是否成功来判断存储服务器的状态是否恢复可用;在一个实施例中,之前瞬时失效时按第一预定次数进行读写重试的数据可以就是原本要进行读写但未读写成功的正常数据,但之后按第二预定次数进行读写重试的数据可以是预先专门设置的测试数据,这是为了避免因正常数据可能较大而影响后一重试过程的执行效率。另外,为了使“永久失效”的判定维持严格标准,与前述第一预定次数相比,这里的第二预定次数通常设置较大,而且每两次重试之间可以设置一定的时间间隔;例如,可以在一天内按数秒的间隔不断重复检测,此时最终的第二预定次数可能会达到几万甚至几十万次。另外,由上述可知,临时失效和永久失效通常伴随着一些人为可以控制(例如升级、维护)或可以检测(例如硬盘故障)的因素,因此,在一个实施例中,失效判断单元114也可以借助人为的手段来判定临时失效的恢复和永久失效,例如可以通过人工手动输入在失效判断单元114管理的存储服务器状态表中将某个存储服务器的状态修改为“临时失效”、“可用”、“永久失效”等等。
在一个实施例中,数据路由单元116用于确定数据写入单元111写入数据以及数据读取单元读取数据时所选择的虚拟节点组;在一个实施例中,为了提高路由效率,数据路由单元116可以按照前文所述数组a[x][y]的方式对存储服务器加以管理。进一步,数据路由单元116还包括路由选择子单元1161,路由选择子单元1161用于按以下过程进行虚拟节点组的选择:将上述y虚拟节点组分别赋以0、1、...、y-1的编号进行管理;将待写入的数据的哈希值对y取模,得到[0,...,y-1]范围内的一个值,选择与该值对应编号的虚拟节点组作为数据写入单元写入该数据的虚拟节点组;同理,将待读取的数据的哈希值对y取模,得到[0,...,y-1]范围内的一个值,选择与该值对应编号的虚拟节点组作为数据读取单元读取该数据的虚拟节点组。这里,基于kv存储的原理,由于哈希值的唯一性,同一条数据在进行写入时由数据路由单元116所选择的虚拟节点组,与该条数据在进行读取时由数据路由单元116所选择的虚拟节点组,会绝对保持一致,由此便能够保证被随机写入到某个虚拟节点组的数据能够被准确地在同一虚拟节点组中读取到。进一步,通过上述过程可知,每条数据会随机分配到一个虚拟节点组并被写入该虚拟节点组里属于每个对等序列的存储服务器中,由此可以看出,从虚拟节点组的划分角度,是保证了分布式存储系统的负载均衡;从对等序列的划分角度,是保证了数据在所有对等序列中的备份。另外需要说明的是,上述根据取模算法选取虚拟节点组的过程只是示例,在不考虑存储的其他特性(例如数据分类、用户分组等等)时可以使用,而一般存储实现会使用更复杂的算法,尽管如此,该细节并不影响本申请的理解和实施,此处不再加以赘述。
在一个实施例中,上述分布式存储系统管理装置11中的数据写入单元111、数据读取单元112及数据路由单元116,可以设置在应用服务器上作为存储系统的客户端使用;而分组管理单元110、数据迁移单元113、重试控制单元114及失效判断单元115则可以单独设置在一个区别于存储服务器和应用服务器的管理服务器中,作为存储服务器与应用服务器之间的仲裁中介发挥作用。可以看出,这种具体位置上的设置并不影响上述分布式存储系统管理装置11中各单元的功能划分,因此并不影响本申请的理解和实施,此处不再加以赘述,图中也未例示。
图2为本申请分布式存储系统管理方法的实施例一流程图,本实施例的分布式存储系统管理方法应用于包括N个存储服务器的分布式存储系统,如图2所示,其包括以下步骤:
S201、将M个存储服务器分为x个对等序列并形成y个虚拟节点组,且每个虚拟节点组中包括z个彼此属于不同对等序列的存储服务器,其余N-M个存储服务器为临时存储服务器;
具体而言,本步骤首先是在N个存储服务器中,选取M个存储服务器划分为x个对等序列,每个对等序列中包含一定数量的存储服务器。在一个实施例中,每个对等序列包含的存储服务器的个数相同。接下来,继续将上述所选取的M个存储服务器划分为y个虚拟节点组,且使得每个虚拟节点组中都包括z个彼此属于不同对等序列的存储服务器。最后,将其余N-M个存储服务器设置为临时存储服务器。上述各字母所表示的量中,N、M、x、y为自然数常量且其取值分别满足:N≥3,2≤M<N,x≥2,y≥1,y·x≥M(“·”为乘法标记);z为自然数变量且取值满足:2≤z≤x。在一个实施例中,z可以是自然数常量,也即,使得每个虚拟节点组中存储服务器的个数相同,在这种情况下,为了满足每个虚拟节点组中各个存储服务器彼此属于不同对等序列,实际上x、y、M的取值需要满足M=x·y,而此时z=x。
S202、在执行数据写入操作时将数据写入到选择的一个虚拟节点组的每个存储服务器中,并在该虚拟节点组的部分存储服务器不可用时,将该数据写入到该虚拟节点组剩余所有可用的存储服务器以及选择的一个临时存储服务器中;
S203、在执行数据读取操作时从数据被写入的虚拟节点组中任一可用的存储服务器处读取该数据。
从步骤S202~S203可以看出,对于在对等序列和虚拟节点组双重功能划分基础上的数据读写操作,每个数据写入时先选择要写入的虚拟节点组,再将该数据写入所选择的虚拟节点组中的每个存储服务器,这时实际上每个对等序列中都有存储服务器被写入该数据;而在虚拟节点组中有存储服务器出现故障等不可用的情况时,本应写入该不可用存储服务器的数据则转而写入到选择的一个临时存储服务器中(至于同时应写入虚拟节点组中剩余可用存储服务器的数据则不受影响继续正常写入),以便后续存储服务器恢复可用后进行数据的迁回。另一方面,在进行数据的读取操作时,只需从该数据被写入的虚拟节点组中任意选取一个可用存储服务器进行读取即可。在一个实施例中,为了实现负载均衡,数据写入的虚拟节点组可以是随机进行选择,后文实施例中还将介绍一种依据特定算法进行随机选择的情况。
图3为本申请分布式存储系统管理方法实施例二的流程图,本实施例中将描述瞬时失效的处理机制,以及临时失效和永久失效的判断机制和处理机制,如图所示,本实施例的方法包括以下步骤:
S301、在执行数据读写操作失败时重试该数据读写操作,重试成功则进行下一条数据读写操作,失败则继续步骤S302;
S302、判断步骤S301重试是否达到第一预定次数,如果是则继续步骤S303,否则转回步骤S301继续重试;
步骤S301~S302可以看作是瞬时失效的处理机制,这时通常是由于网络瞬断或其他原因导致的应用服务器(应用程序)在极短时间内不能连接存储服务器,为此,本实施例的方法通过重试一定次数的读写请求后即可恢复访问,并且为了不影响应用服务器(应用程序)的性能及使用体验,这里重试的第一预定次数通常设置较小,而且每两次重试之间通常不设置时间间隔。
S303、判断对应的存储服务器为不可用,并继续步骤S304;
在一个实施例中,本步骤的判断结果可以通知给相关的数据读写操作单元,此后便如前文所述,数据写入操作会在失效存储服务器所对应虚拟节点组剩余所有可用的存储服务器以及临时存储服务器中进行,数据读取则仅在失效存储服务器所对应虚拟节点组中任一可用的存储服务器中进行。
S304、重复检测该存储服务器的状态,检测为可用时继续步骤S305,否则转入步骤S306;
S305、将对应的临时存储服务器中存储的数据迁回该恢复可用的存储服务器;
经过步骤S304,重复检测到失效存储服务器为可用时,可以认为是表明相应存储服务器经过“临时失效”后恢复可用,此时通常是服务器的升级和维护完成等情况,接下来便可以开始进行从临时存储服务器到恢复可用存储服务器的数据迁回操作。由于临时存储服务器中仅存储失效存储服务器失效期间所写入的数据,因此上述数据迁回操作会十分简便、迅速。
S306、判断步骤S304的重复检测是否达到第二预定次数,如果是则继续步骤S307,否则回到步骤S304继续重复检测。
S307、将该存储服务器所在的虚拟节点组里可用的存储服务器中存储的数据迁移至选择的一个临时存储服务器,并以该临时存储服务器替换不可用的存储服务器;
经过步骤S304和S305,在重复检测到失效存储服务器为不可用且达到第二预定次数时,可以认为是表明该存储服务器为“永久失效”,此时通常是发生了硬盘损坏等极端情况,接下来便可以开始进行从失效存储服务器所在虚拟组中的可用存储服务器到临时存储服务器的全部数据复制操作,并且最终以该临时存储服务器取代永久失效的存储服务器。在一个实施例中,为了使“永久失效”的判定维持严格标准,与前述的第一预定次数相比,这里的第二预定次数通常设置较大,而且每两次重试之间可以设置一定的时间间隔,例如,可以在一天内按数秒的间隔不断重复检测,此时最终的第二预定次数可能会达到几万甚至几十万次。另外,在一个实施例中,也可以借助人为介入的手段分别在步骤S304、S306中实现临时失效恢复和永久失效的判定。
由上述技术方案可知,本申请实施例提供的分布式存储系统管理装置及方法,通过对等序列及虚拟节点组的双重功能划分对存储服务器进行管理,在正常情况下,数据可以写入在虚拟节点组里分属于每个对等序列的存储服务器中,而读取时只需在该虚拟节点组里任一可用的存储服务器上进行;在某个存储服务器失效期间,数据的读取仍然只需在对应虚拟节点组里任一可用的存储服务器上进行,而写入的数据会同时备份到该虚拟节点组里所有可用的存储服务器以及临时存储服务器上;当存储服务器从临时失效状态中恢复时,便可以从前述临时存储服务器上迁回失效期间所写入的数据;当存储服务器因永久失效而无法恢复时,还可以将对应虚拟节点组里任一可用的存储服务器上的全部数据复制到临时存储服务器上,再以该临时存储服务器取代失效的存储服务器。
虽然已参照几个典型实施例描述了本申请,但应当理解,所用的术语是说明和示例性、而非限制性的术语。由于本申请能够以多种形式具体实施而不脱离申请的精神或实质,所以应当理解,上述实施例不限于任何前述的细节,而应在随附权利要求所限定的精神和范围内广泛地解释,因此落入权利要求或其等效范围内的全部变化和改型都应为随附权利要求所涵盖。

Claims (10)

1.一种分布式存储系统管理装置,应用于包括N个存储服务器的分布式存储系统,该装置包括分组管理单元、数据写入单元及数据读取单元,其中,
所述分组管理单元用于将所述N个存储服务器中的M个存储服务器分为x个对等序列并形成y个虚拟节点组,且每个虚拟节点组中包括z个彼此属于不同对等序列的存储服务器,其余N-M个存储服务器为临时存储服务器,上述N、M、x、y为自然数常量且满足:N≥3,2≤M<N,x≥2,y≥1,x·y≥M;z为自然数变量且满足:2≤z≤x;
所述数据写入单元用于将数据写入到选择的一个虚拟节点组的每个存储服务器中,并在该虚拟节点组的部分存储服务器不可用时,将该数据写入到该虚拟节点组剩余可用的存储服务器以及所述临时存储服务器中;
所述数据读取单元用于从数据被写入的虚拟节点组中任一可用的存储服务器处读取该数据。
2.如权利要求1所述的分布式存储系统管理装置,其中,还包括数据迁移单元,所述数据迁移单元用于在不可用的存储服务器恢复可用时,将对应的临时存储服务器中存储的数据迁回该恢复可用的存储服务器;并用于在不可用的存储服务器无法恢复可用时,将该存储服务器所在的虚拟节点组里可用的存储服务器中存储的数据迁移至选择的一个临时存储服务器,并以该临时存储服务器替换所述不可用的存储服务器。
3.如权利要求2所述的分布式存储系统管理装置,其中,还包括重试控制单元及失效判断单元,
所述重试控制单元用于控制所述数据写入单元及所述数据读取单元在执行对应的数据写入或读取操作失败时按第一预定次数重试该数据写入或读取操作;
所述失效判断单元用于在所述重试控制单元控制的重试达到所述第一预定次数时判断对应的存储服务器为不可用,并将该判断结果通知所述数据写入单元及所述数据读取单元;以及用于在存储服务器被判断为不可用后,利用所述重试控制单元按第二预定次数重复检测该存储服务器的状态,在检测为可用时判断该存储服务器恢复可用或者在检测为不可用达到所述第二预定次数时判断该存储服务器无法恢复可用,并将该判断结果通知所述数据迁移单元。
4.如权利要求1所述的分布式存储系统管理装置,其中,还包括数据路由单元,所述数据路由单元用于确定所述数据写入单元写入数据以及所述数据读取单元读取数据时所选择的虚拟节点组。
5.如权利要求4所述的分布式存储系统管理装置,其中,所述数据路由单元还包括路由选择子单元,所述路由选择子单元用于分别赋以0、1、...、y-1的编号管理所述y个虚拟节点组,并根据将待写入的数据的哈希值对y取模得到的值选择与该值对应编号的虚拟节点组作为所述数据写入单元写入该数据的虚拟节点组,以及根据将待读取的数据的哈希值对y取模得到的值选择与该值对应编号的虚拟节点组作为所述数据读取单元读取该数据的虚拟节点组。
6.如权利要求1所述的分布式存储系统管理装置,其中,x、y、M的取值满足M=x·y。
7.一种分布式存储系统管理方法,应用于包括N个存储服务器的分布式存储系统,其中,该方法包括以下步骤:
S1.将M个存储服务器分为x个对等序列并形成y个虚拟节点组,且每个虚拟节点组中包括z个彼此属于不同对等序列的存储服务器,其余N-M个存储服务器为临时存储服务器,上述N、M、x、y为自然数常量且满足:N≥3,2≤M<N,x≥2,y≥1,x·y≥M;z为自然数变量且满足:2≤z≤x;
S21.在执行数据写入操作时将数据写入到选择的一个虚拟节点组的每个存储服务器中,并在该虚拟节点组的部分存储服务器不可用时,将该数据写入到该虚拟节点组剩余可用的存储服务器以及所述临时存储服务器中;
S22.在执行数据读取操作时从数据被写入的虚拟节点组中任一可用的存储服务器处读取该数据。
8.如权利要求7所述的分布式存储系统管理方法,其中,还包括以下步骤:
S31.在不可用的存储服务器恢复可用时,将对应的临时存储服务器中存储的数据迁回该恢复可用的存储服务器;
S32.在不可用的存储服务器无法恢复可用时,将该存储服务器所在的虚拟节点组里可用的存储服务器中存储的数据迁移至选择的一个临时存储服务器,并以该临时存储服务器替换所述不可用的存储服务器。
9.如权利要求8所述的分布式存储系统管理方法,其中,还包括以下步骤:
S41.在执行数据写入或读取操作失败时重试该数据写入或读取操作;
S42.在步骤S41重试达到第一预定次数时判断对应的存储服务器为不可用;
S43.在存储服务器被判断为不可用后,重复检测该存储服务器的状态,在检测为可用时判断该存储服务器恢复可用并转步骤S31,在检测为不可用且达到第二预定次数时判断该存储服务器无法恢复可用并转步骤S32。
10.如权利要求7所述的分布式存储系统管理方法,其中,还包括以下步骤:
分别赋以0、1、...、y-1的编号管理所述y个虚拟节点组,并在步骤S21执行数据写入操作时,根据将待写入的数据的哈希值对y取模得到的值选择与该值对应编号的虚拟节点组作为写入该数据的虚拟节点组;以及在步骤S22执行数据读取操作时,根据将待读取的数据的哈希值对y取模得到的值选择与该值对应编号的虚拟节点组作为读取该数据的虚拟节点组。
CN201110285802.8A 2011-09-23 2011-09-23 分布式存储系统管理装置及方法 Active CN103019614B (zh)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201110285802.8A CN103019614B (zh) 2011-09-23 2011-09-23 分布式存储系统管理装置及方法
TW100143929A TWI521359B (zh) 2011-09-23 2011-11-30 Distributed storage system management device and method
PCT/US2012/055629 WO2013043514A1 (en) 2011-09-23 2012-09-14 Management apparatus and method of distributed storage system
JP2014531888A JP6341543B2 (ja) 2011-09-23 2012-09-14 分散型記憶システム管理装置および方法
EP12769809.0A EP2758880B1 (en) 2011-09-23 2012-09-14 Management apparatus and method of distributed storage system
US13/618,815 US9053021B2 (en) 2011-09-23 2012-09-14 Management apparatus and method of distributed storage system
HK13106087.6A HK1179366A1 (zh) 2011-09-23 2013-05-23 分布式存儲系統管理裝置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110285802.8A CN103019614B (zh) 2011-09-23 2011-09-23 分布式存储系统管理装置及方法

Publications (2)

Publication Number Publication Date
CN103019614A true CN103019614A (zh) 2013-04-03
CN103019614B CN103019614B (zh) 2015-11-25

Family

ID=47003228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110285802.8A Active CN103019614B (zh) 2011-09-23 2011-09-23 分布式存储系统管理装置及方法

Country Status (7)

Country Link
US (1) US9053021B2 (zh)
EP (1) EP2758880B1 (zh)
JP (1) JP6341543B2 (zh)
CN (1) CN103019614B (zh)
HK (1) HK1179366A1 (zh)
TW (1) TWI521359B (zh)
WO (1) WO2013043514A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778180A (zh) * 2014-01-14 2015-07-15 上海盛大网络发展有限公司 云存储元数据处理系统
CN105260401A (zh) * 2015-09-17 2016-01-20 国网北京市电力公司 电力数据查询存储方法及装置
CN106030501A (zh) * 2014-09-30 2016-10-12 株式会社日立制作所 分布式存储系统
CN107948248A (zh) * 2017-11-01 2018-04-20 平安科技(深圳)有限公司 分布式存储方法、控制服务器及计算机可读存储介质
CN110046160A (zh) * 2019-03-15 2019-07-23 中国科学院计算技术研究所 一种基于条带的一致性哈希存储系统构建方法
CN110300170A (zh) * 2019-06-28 2019-10-01 杭州复杂美科技有限公司 区块链分布式存储下载方法、设备和存储介质
WO2022222346A1 (zh) * 2021-04-19 2022-10-27 浙江中控技术股份有限公司 一种数据存储方法及装置

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9697226B1 (en) * 2013-06-28 2017-07-04 Sanmina Corporation Network system to distribute chunks across multiple physical nodes
US20150006846A1 (en) 2013-06-28 2015-01-01 Saratoga Speed, Inc. Network system to distribute chunks across multiple physical nodes with disk support for object storage
CN105095290B (zh) * 2014-05-15 2019-02-15 中国银联股份有限公司 一种分布式存储系统的数据布局方法
CN104049912B (zh) * 2014-05-23 2017-09-15 上海爱数信息技术股份有限公司 基于虚拟化平台的分布式存储管理方法
CN106202092B (zh) 2015-05-04 2020-03-06 阿里巴巴集团控股有限公司 数据处理的方法及系统
CN107291750B (zh) 2016-03-31 2020-11-06 阿里巴巴集团控股有限公司 一种数据迁移方法和装置
JP6732508B2 (ja) * 2016-04-15 2020-07-29 キヤノン株式会社 データを保存するシステム、サーバー、方法、及びプログラム
CN108829350B (zh) 2018-05-31 2020-02-21 阿里巴巴集团控股有限公司 基于区块链的数据迁移方法和装置
CN111381770B (zh) * 2018-12-30 2021-07-06 浙江宇视科技有限公司 一种数据存储切换方法、装置、设备及存储介质
US11748166B2 (en) * 2020-06-26 2023-09-05 EMC IP Holding Company LLC Method and system for pre-allocation of computing resources prior to preparation of physical assets

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108593A1 (en) * 2003-11-14 2005-05-19 Dell Products L.P. Cluster failover from physical node to virtual node
WO2008109321A1 (en) * 2007-03-08 2008-09-12 Nec Laboratories America, Inc. Method and system for a self managing and scalable grid storage

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2793517B2 (ja) * 1995-03-22 1998-09-03 甲府日本電気株式会社 データ転送制御装置
JP2001195205A (ja) * 2000-01-14 2001-07-19 Nippon Telegr & Teleph Corp <Ntt> データ蓄積システムのデータ復旧方法及びそのプログラムを記録した媒体
AU2003291014A1 (en) 2002-11-14 2004-06-15 Isilon Systems, Inc. Systems and methods for restriping files in a distributed file system
DE10350590A1 (de) 2003-10-30 2005-06-16 Ruprecht-Karls-Universität Heidelberg Verfahren und Vorrichtung zum Sichern von Daten bei mehreren unabhängigen Schreib-Lese-Speichern
JP4426333B2 (ja) * 2004-02-18 2010-03-03 株式会社日立製作所 ディスクアレイ装置
JP4327130B2 (ja) * 2005-06-24 2009-09-09 富士通株式会社 ディスクアレイアクセス動的制御装置、及び方法
US7546321B2 (en) 2005-12-19 2009-06-09 Yahoo! Inc. System and method for recovery from failure of a storage server in a distributed column chunk data store
US8051362B2 (en) * 2007-06-15 2011-11-01 Microsoft Corporation Distributed data storage using erasure resilient coding
JP2011505617A (ja) * 2007-11-22 2011-02-24 中国移▲動▼通信集▲団▼公司 データ・ストレージ方法、管理サーバ、ストレージ設備及びシステム
US8370833B2 (en) * 2008-02-20 2013-02-05 Hewlett-Packard Development Company, L.P. Method and system for implementing a virtual storage pool in a virtual environment
US7992037B2 (en) 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
US8176247B2 (en) 2008-10-28 2012-05-08 Pivot3 Method and system for protecting against multiple failures in a RAID system
US8327186B2 (en) 2009-03-10 2012-12-04 Netapp, Inc. Takeover of a failed node of a cluster storage system on a per aggregate basis
JP4852118B2 (ja) * 2009-03-24 2012-01-11 株式会社東芝 ストレージ装置及び論理ディスク管理方法
US8341457B2 (en) 2010-03-11 2012-12-25 Lsi Corporation System and method for optimizing redundancy restoration in distributed data layout environments
JP2011215794A (ja) 2010-03-31 2011-10-27 Fujitsu Ltd 分散ストレージシステム及びプログラム
EP2387200B1 (en) 2010-04-23 2014-02-12 Compuverde AB Distributed data storage
CN102316127B (zh) 2010-06-29 2014-04-23 阿尔卡特朗讯 无线通信系统中基于分布式存储的文件传输方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050108593A1 (en) * 2003-11-14 2005-05-19 Dell Products L.P. Cluster failover from physical node to virtual node
WO2008109321A1 (en) * 2007-03-08 2008-09-12 Nec Laboratories America, Inc. Method and system for a self managing and scalable grid storage

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104778180A (zh) * 2014-01-14 2015-07-15 上海盛大网络发展有限公司 云存储元数据处理系统
CN104778180B (zh) * 2014-01-14 2020-03-06 上海盛大网络发展有限公司 云存储元数据处理系统
CN106030501A (zh) * 2014-09-30 2016-10-12 株式会社日立制作所 分布式存储系统
CN106030501B (zh) * 2014-09-30 2020-02-07 株式会社日立制作所 系统、方法以及分布式存储系统
CN105260401A (zh) * 2015-09-17 2016-01-20 国网北京市电力公司 电力数据查询存储方法及装置
CN107948248A (zh) * 2017-11-01 2018-04-20 平安科技(深圳)有限公司 分布式存储方法、控制服务器及计算机可读存储介质
CN110046160A (zh) * 2019-03-15 2019-07-23 中国科学院计算技术研究所 一种基于条带的一致性哈希存储系统构建方法
CN110300170A (zh) * 2019-06-28 2019-10-01 杭州复杂美科技有限公司 区块链分布式存储下载方法、设备和存储介质
WO2022222346A1 (zh) * 2021-04-19 2022-10-27 浙江中控技术股份有限公司 一种数据存储方法及装置

Also Published As

Publication number Publication date
HK1179366A1 (zh) 2013-09-27
CN103019614B (zh) 2015-11-25
EP2758880B1 (en) 2017-01-11
EP2758880A1 (en) 2014-07-30
JP2014531668A (ja) 2014-11-27
JP6341543B2 (ja) 2018-06-13
TW201314470A (zh) 2013-04-01
WO2013043514A1 (en) 2013-03-28
US9053021B2 (en) 2015-06-09
TWI521359B (zh) 2016-02-11
US20130080488A1 (en) 2013-03-28

Similar Documents

Publication Publication Date Title
CN103019614B (zh) 分布式存储系统管理装置及方法
CN106201338B (zh) 数据存储方法及装置
CN103354923B (zh) 一种数据重建方法、装置和系统
CN103777897B (zh) 用于在主要和辅助存储位置之间复制数据的方法和系统
CN103810058B (zh) 虚拟机备份方法、设备及系统
CN106776130B (zh) 一种日志恢复方法、存储装置和存储节点
CN101980137B (zh) 廉价磁盘冗余阵列重构方法、装置及系统
CN104714756B (zh) 用于在双向同步镜像环境中进行本地锁定的方法和系统
CN102981927A (zh) 分布式独立冗余磁盘阵列存储方法及分布式集群存储系统
CN104166606A (zh) 文件备份方法和主存储设备
US9009431B2 (en) Virtual snapshot system and method
CN103597463A (zh) 恢复服务的自动配置
CN103049400A (zh) 一种磁盘重构方法及其装置
CN103905220B (zh) 数据同步处理方法及系统
CN106899654A (zh) 一种序列值生成方法、装置及系统
CN112181736A (zh) 分布式存储系统及分布式存储系统的配置方法
CN106648970A (zh) 文件备份方法和分布式文件系统
CN107729536A (zh) 一种数据存储方法和装置
CN103530206B (zh) 一种数据恢复的方法和设备
CN102226892B (zh) 一种磁盘容错处理方法及设备
CN102629223B (zh) 一种数据修复方法及装置
CN114546510A (zh) 一种挂起功能的验证方法、装置、电子设备及存储介质
EP2313829A1 (en) Recovery control in mirrored disks
CN104407806A (zh) 独立磁盘冗余阵列组硬盘信息的修改方法和装置
CN103176745A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1179366

Country of ref document: HK

C14 Grant of patent or utility model
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: GR

Ref document number: 1179366

Country of ref document: HK

TR01 Transfer of patent right

Effective date of registration: 20211115

Address after: Room 507, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province

Patentee after: Zhejiang tmall Technology Co., Ltd

Address before: P.O. Box 847, 4th floor, Grand Cayman capital building, Cayman Islands

Patentee before: Alibaba Group Holdings Limited

TR01 Transfer of patent right