CN1326045C - 构建高可用分布式存储系统的方法 - Google Patents

构建高可用分布式存储系统的方法 Download PDF

Info

Publication number
CN1326045C
CN1326045C CNB03112402XA CN03112402A CN1326045C CN 1326045 C CN1326045 C CN 1326045C CN B03112402X A CNB03112402X A CN B03112402XA CN 03112402 A CN03112402 A CN 03112402A CN 1326045 C CN1326045 C CN 1326045C
Authority
CN
China
Prior art keywords
node
data
read
abutting connection
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.)
Expired - Fee Related
Application number
CNB03112402XA
Other languages
English (en)
Other versions
CN1567237A (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.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Langchao Electronic Information Industry Co 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 Langchao Electronic Information Industry Co Ltd filed Critical Langchao Electronic Information Industry Co Ltd
Priority to CNB03112402XA priority Critical patent/CN1326045C/zh
Publication of CN1567237A publication Critical patent/CN1567237A/zh
Application granted granted Critical
Publication of CN1326045C publication Critical patent/CN1326045C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及计算机应用技术领域,是一种建立在并行文件系统和分布式文件系统之上的高可用分布式存储系统构建方法,该方法是将分布式存储系统内的数据存储节点按顺序组成镜像矢量环,并在镜像矢量环内的各个存储节点上设置网络标识,同时利用邻接复制技术将一个节点的数据复制到其邻接节点,当节点出现故障或节点的增加或减少以及改变可用级别时,通过不同的客户端读写机制保证分布式存储系统的高可用性、可扩展性和动态的可配置能力。应用本发明的方法不需要专用的硬件系统支持,非常适合廉价机群系统,提高性价比。因此,广泛推广应用可以产生很好的经济效益,同时也可以改变目前高端应用中高可用性支持基本依赖外来技术的现象。

Description

构建高可用分布式存储系统的方法
技术领域
本发明涉及计算机应用技术领域,具体地说是一种建立在并行文件系统和分布式文件系统之上的计算机高可用分布式存储系统的方法。
背景技术
一个高可用系统是指在当系统中出现软件或硬件故障时还能让计算机持续工作的可用系统,现有技术是通过系统文件的复制来实现。如果一些文件不可用,其备份文件会代替其继续工作。目前,高可用系统通常通过共享存储方式或分布式存储方式来实现系统文件的备份。在分布式存储系统中,由于系统内节点不共享相同的数据存储单元,数据的高可用性是通过添加额外的存储单元和建立新的数据备份方式来实现。所以在分布式存储系统中,建立高效的科学的数据备份方式显得尤为重要。
发明内容
本发明的构建高可用分布式存储系统的方法,是将分布式存储系统内的数据存储节点按顺序组成镜像矢量环,并在镜像矢量环内的各个存储节点上设置网络标识,同时利用邻接复制技术将一个节点的数据复制到其邻接节点,当节点出现故障或节点的增加或减少以及改变可用级别时,通过不同的客户端读写机制保证分布式存储系统的高可用性、可扩展性和动态的可配置能力。
而镜像矢量环是通过赋予互联网络内每个数据存储节点唯一的网络标识,按一定顺序将所有标识串连成一个首尾相接的链,并根据采用文件系统的不同而采取不同的组织形式,该组织形式包括并行文件系统下镜像矢量环和分布式文件系统下的镜像矢量环,镜像矢量环中网络标识依次排列的方向为正向,节点的邻接与镜像矢量环的方向一致为正向邻接方向,反之为反向邻接方向,无论何种方向邻接都能保证互联网络内的数据存储节点与客户端有直接或间接的物理通路。
在并行文件系统下,镜像矢量环中的一个文件数据可以被分为多个顺序连接的条块,并且按照条块回路中的网络标识所规定的顺序依次存放在各个节点上,分布式文件系统下镜像矢量环只用来确定在数据复制过程中的目标节点位置,利用邻接复制技术为分布式存储系统的一种数据备份方式,根据可用级别确定邻接复制的邻接距离m,选择文件或文件条块复制到与其所在节点的邻接距离小于或等于m的并且邻接方向为正向的所有邻接节点之上,并通过客户端的读写机制在文件访问阶段保证各个复制数据与原文件数据的一致性,将一个文件数据条块的读请求直接发往原始的存储节点并正常操作,而写请求则首先根据其可用级别确定邻接复制的邻接距离m,然后发往文件条块所在节点和与之距离小于等于m的所有正向邻接节点上,并等待所有节点的写操作正常返回,才标志这个写操作成功。
可用级别的确定是在分布式存储系统内,各个节点在一定时间T内平均失效率为P,存储系统内节点个数为N,邻接复制的邻接距离为m,当系统中相邻的大于或等于m+1个节点同时失效时,才使该系统失效,由此规定可用级别为该系统在T时间内一直可访问的概率,其计算的公式为:
P = 1 - C N 1 P m + 1 ( 1 - P ) N - m - 1 - C N 1 P m + 2 ( 1 - P ) N - m - 2 - . . . . . . - C N 1 P N - 1 ( 1 - P ) - P N
假设分布式存储系统中可用级别的等级至少为P1,可通过以下不等式确定满足条件最小邻接复制的邻接距离m值:
P 1 ≤ 1 - C N 1 P m + 1 ( 1 - P ) N - m - 1 - C N 1 P m + 2 ( 1 - P ) N - m - 2 - . . . . . . - C N 1 P N - 1 ( 1 - P ) - P N
节点出现故障时的客户端读写机制,包括客户端访问时节点失效的判断策略和节点失效后的数据读写机制,客户端访问时节点失效的判断策略为:客户端对某个文件在某个节点上的数据进行访问时,在规定的失效时间内得不到响应,可怀疑其失效,再重发一次读写请求,在失效时间内如仍得不到响应,确认该节点失效,通知文件系统的管理节点,并在客户端进行标识;分布式存储系统内的文件系统的管理节点,负责系统中故障节点的恢复、向系统增加或减少节点、改变系统可用级别等管理与维护,本身不提供文件访问服务;在节点失效后数据读写机制中,客户端不再向故障节点发送读写请求,而直接将读写请求发送给该故障节点的正向邻接节点,当节点邻接距离m=1时,客户端会将读请求转移到其正向邻接距离为1的邻接节点,并等待其返回响应,当节点邻接距离m大于或等于2时,客户端会将写请求发送给该故障节点的正向邻接并邻接距离小于或等于m的节点,而读请求将转移到其正向邻接距离为1的邻接节点,并等待其返回响应,如果此节点失效,则转向邻接距离为2的正向邻接节点,依次直至邻接距离为m的正向邻接节点,当故障节点修复后需要加入到存储系统中时,首先要进行恢复节点与其邻接节点的数据的同步操作,然后进入到系统正常运行的客户端读写机制状态。恢复节点与邻接节点的数据同步操作,是先将所有到达该故障节点的写请求缓冲到请求缓冲区中,然后从其正向邻接节点读回自己原有的所有文件数据,再根据邻接复制的邻接距离从反向邻接节点读取数据,建立反向邻接节点的备份数据,如果邻接复制的邻接距离为m,操作时将反向邻接距离小于和等于m的反向邻接节点上的原始数据拷贝至该故障节点。
在节点增加或减少时的客户端读写机制中,根据文件系统类型的不同分为并行文件系统下的客户端读写机制与分布式文件系统下的客户端读写机制,其中并行文件系统下的客户端读写机制为系统中增加一个或多个数据存储节点时,首先将数据重新分布,撤销原有的镜像矢量环,让存储系统恢复到单一镜像矢量环的状态下以文件的重新分布来实现,每个文件有其自己的镜像矢量环,文件系统的管理节点需要读出该文件原有镜像矢量环下的所有数据并以新的镜像矢量环来分布,此时原有的镜像矢量环和新的节点数目下的镜像矢量环同时存在,原有数据以原来的镜像矢量环分布,文件系统的管理节点需要读出所有原有数据以新的镜像矢量环来分布,文件的数据重新分布后,需改写并行文件系统的元数据服务器相关信息,之后客户端对该文件的读写请求将被指向新的镜像矢量环。
当客户端发起对一个文件访问,首先通过访问元数据服务器得到该文件的元数据信息,元数据信息中会表明该文件应用新的镜像矢量环还是应用原有的镜像矢量环,如果在数据重新分布过程中客户端读写请求的文件当前正在重新分布,将采取相应的数据读写锁机制来限制其对该文件的读写,在数据重新分布过程中,一旦数据读写锁机制启动,向系统内继续添加或减少节点的请求将被禁止。
在分布式文件系统下的客户端读写机制中增加新节点时,数据不需要重新分布,新增节点需从其反向邻接节点复制数据,并把该节点数据复制到其正向邻接节点,之后改写文件系统的元数据服务器相关信息,当系统在正常状态下运行减少节点时的客户端读写机制时,对于分布式文件系统与并行文件系统,数据均需要重新分布,数据重新分布完成后,撤销原有的镜像矢量环,系统恢复到单一镜像矢量环状态,并从系统中删除失效节点;在数据重新分布时,要将故障节点原始数据的读请求转移到其正向邻接距离为1的正向邻接节点的备份数据中,当系统运行减少节点时的客户端读写机制时,节点减少限制到系统
中出现具有两个节点配置的最小镜像矢量环为止。
分布式文件系统正常状态下运行减少节点时的客户端读写机制,管理节点根据邻接节点复制的邻接距离m,确保该节点的m个反向邻接节点在该节点的m个正向邻接节点上有正确的备份数据,然后把该节点的原始数据与其正向邻接距离为1的正向邻接节点上的原始数据合并,并建立新的原始数据在其后m个正向邻接节点上的备份数据,备份数据完成后,该节点从系统中删除。
系统内某故障节点失效时需要运行把该节点从系统删除时的客户端读写机制,此时管理节点根据邻接复制的邻接距离m,确保该故障节点的m个反向邻接节点在该节点的m个正向邻接节点上有正确的备份数据,然后把该故障节点在正向邻接距离为1的邻接节点上的备份数据与此节点上的原始数据合并,并建立新的原始数据在其后m个正向邻接节点上的备份数据,备份数据完成后,该故障节点从系统中删除。
改变可用级别时的客户端读写机制,是可用级别确定邻接复制的邻接距离m,通过增大或减少m值时的客户端读写机制来保证分布式存储系统的高可用性,如果邻接复制的邻接距离由m1增大到m2,管理节点将复制各个节点上的数据到其正向邻接距离小于等于m2并大于m1的所有正向邻接节点上,并改写文件系统的元数据服务器的相关信息,如果邻接复制的邻接距离由m1减小到m2,管理节点将删除与各个节点正向邻接距离小于等于m1并大于m2的所有正向邻接节点上的数据,并改写文件系统的元数据服务器的相关信息,在改变系统可用级别的过程中,客户端对系统的读写请求将被禁止。
附图说明
图1是m=1,N=6镜像矢量环数据分布示意图;
图2是m=2,N=6镜像矢量环数据分布示图;
图3是m=1,N=5扩展到N=6镜像矢量环数据重新分布示意图;
图4是N=6,m=1改变到m=2镜像矢量环数据分布示意图。
具体实施方式
参照附图对本发明的构建高可用分布式存储系统的方法作进一步的描述。
本发明旨在向分布式存储系统之上的并行文件系统和分布式文件系统提供高可用保证。该分布式存储系统由两个或两个以上的数据存储节点组成,每个节点具有本地的存储单元。数据存储节点通过直接或间接的物理通路与客户端相连,而存储节点间可以有也可以没有物理通路。
首先按照规定的顺序将存储系统内数据存储节点组成一个镜像矢量环,并确定该镜像矢量环内各个存储节点的网络标识。数据的读写及复制规则根据文件系统的不同而不同,并由相应的客户端存取机制来完成。如果系统上运行并行文件系统,一个文件的数据可以被分为多个顺序连接的条块,并且按照回路中的网络标识所规定的顺序依次存放。而在运行分布式文件系统中,可通过虚拟逻辑矢量环来确定邻接复制技术中数据复制的目标节点。
系统的高可用程度是由可用级别来决定,我们假设存储系统中,各个节点在一定时间T内平均失效概率为P,存储系统内节点个数为N,邻接复制的邻接距离为m,当且仅当系统中相邻的大于,等于m+1个节点同时失效,我们才判断该系统失效。这样我们规定可用级别为该系统在T时间内一直可访问的概率,其计算的公式为:
P = 1 - C N 1 P m + 1 ( 1 - P ) N - m - 1 - C N 1 P m + 2 ( 1 - P ) N - m - 2 - . . . . . . - C N 1 P N - 1 ( 1 - P ) - P N
假设分布式存储系统中可用级别的等级至少为P1,可通过以下不等式确定满足条件最小邻接复制的邻接距离m值:
P 1 ≤ 1 - C N 1 P m + 1 ( 1 - P ) N - m - 1 - C N 1 P m + 2 ( 1 - P ) N - m - 2 - . . . . . . - C N 1 P N - 1 ( 1 - P ) - P N
系统的运行管理与维护是通过文件系统的管理节点来实现的,管理节点主要负责系统中故障节点的恢复、向系统增加或减少节点,改变系统可用级别等管理与维护工作,但本身不提供文件访问服务。此外,管理节点的高可用性可通过双机热备的形式来实现,当主管理节点出现故障时,从管理节点会接替其工作。由于管理节点所做的工作主要是与其他节点进行通信,工作负载不是很大,所以双机热备的管理节点本身的高可用性并不会对整个系统的高可用性产生很大影响。
在系统正常运行过程中,数据的一致性由客户端的读写机制来完成,客户端的读写机制根据文件系统的不同而不同。在并行文件系统中,客户端对一个文件数据条块的读请求直接发往原始的存储节点,并正常操作。而写请求,则根据邻接复制的邻接距离m,将数据发往文件条块所在节点和与之距离小于等于m的正向邻接节点上,并等待所有节点的写操作正常返回,才标志这个写操作成功,在分布式文件系统中,客户端的读写机制与并行文件系统相同。
当系统中节点出现故障时,首先要进行失效节点的判断,当客户端对某个文件在某个节点上的数据进行访问时,其访问在规定的失效时间内得不到响应,可以怀疑其失效、再重发一次读写请求,如果仍然在失效时间内得不到响应,就认为该节点失效,并在客户端进行标示,某个客户端独立判断存储系统内各个节点是否失效。确认存储系统内某个节点失效后,对其的读写请求均不能正常响应,客户端会将读请求转移到其邻接距离为1的正向邻接点,并等待邻接点返回响应,如果邻接距离为1的正向邻接节点失效,则转向邻接距离为2的正向邻接节点,依次直至邻接距离为m的正向邻接节点,如果邻接距离为m的正向邻接节点也失效,则系统失效;客户端根据失效判断机制判断出某个节点失效后,会通知管理节点,并在客户端设置失效的标志,而且不会再向该节点发送写请求,并只等待到其余相关节点的响应即认为操作成功。
当故障节点经修复重新加入到存储系统中时,此时的系统处于带故障运行状态,首先要进行恢复此节点与其邻接节点的数据的同步操作,数据同步的步骤为:首先缓冲所有到达该节点的请求到请求缓冲区中,然后从其正向邻接节点读回自己原有的所有文件数据,再从反向邻接节点读取数据,建立反向邻接节点的备份数据。对于反向邻接节点数据的建立要与当前邻接复制的邻接距离m有关,要将反向邻接距离小于和等于m的所有反向邻接节点上的原始数据拷贝至该节点,完成后处理缓冲区中的访问请求,直至与所有数据同步。系统恢复到正常运行状态。
在节点增加或减少时的客户端读写机制中,根据文件系统类型的不同分为并行文件系统下的客户端读写机制与分布式文件系统下的客户端读写机制,其中并行文件系统下的客户端读写机制为系统中增加一个或多个数据存储节点时,首先将数据重新分布,撤销原有的镜像矢量环,让存储系统恢复到单一镜像矢量环的状态下以文件的重新分布来实现,每个文件有其自己的镜像矢量环,文件系统的管理节点需要读出该文件原有镜像矢量环下的所有数据并以新的镜像矢量环来分布,此时原有的镜像矢量环和新的节点数目下的镜像矢量环同时存在,原有数据以原来的镜像矢量环分布,文件系统的管理节点需要读出所有原有数据以新的镜像矢量环来分布,文件的数据重新分布后,需改写并行文件系统的元数据服务器相关信息,之后客户端对该文件的读写请求将被指向新的镜像矢量环。
客户端发起对一个文件访问,首先通过访问元数据服务器得到该文件的元数据信息,元数据信息中会表明该文件应用新的镜像矢量环还是应用原有的镜像矢量环,如果在数据重新分布过程中客户端读写请求的文件当前正在重新分布,将采取相应的数据读写锁机制来限制其对该文件的读写,在数据重新分布过程中,一旦数据读写锁机制启动,向系统内继续添加或减少节点的请求将被禁止。
在分布式文件系统下,数据不需要重新分布,新增节点需从其反向邻接节点复制数据,并把该节点数据复制到其正向邻接节点,之后改写文件系统的元数据服务器相关信息。
当向系统中减少一个数据存储节点时,系统的运行要由相应的客户端读写机制来完成。在并行文件系统下,包括系统正常运行状态下减少一个节点时的客户端读写机制和系统内某节点失效需要把其从系统删除时的客户端读写机制两种情况。在系统正常运行状态下减少一个节点时,首先数据需要重新分布,数据重新分布完成后,撤销原有的镜像矢量环,系统恢复到单一镜像矢量环状态,并从系统中删除此节点。此过程的数据重新分布机制与增加一个节点时的数据重新分布机制相同。在系统内某节点失效需要其从系统删除时,首先数据需要重新分布,此时对故障节点原始数据的读请求转移到其正向邻接距离为1的正向邻接节点的备份数据。数据重新分布完成后,撤销原有的镜像矢量环,系统恢复到单一镜像矢量状态,并从系统中删除此节点。
在分布文件系统下,也包括系统正常运行状态下减少一个节点时的客户端读写机制和系统内某节点失效需要把其从系统删除时的客户端读写机制两种情况。在系统正常运行状态下减少一个节时,管理节点首先根据邻接复制的邻接距离m,确保该节点的m个反向邻接节点在该节点的m个正向邻接节点上有正确的备份数据,然后把该节点的原始数据在其正向邻接距离为1的正向邻接节点上的原始数据合并,并建立新的原始数据在其后m个正向邻接节点上的备份数据。完成后,从系统中删除该节点。在系统内某节点失效需要把其从系统删除时,管理节点首先根据邻接复制的邻接距离m,确保该故障节点的m个反向邻接点在该故障节点的m个正向邻接节点上有正确的备份数据,然后把该故障节点在正向邻接距离为1的邻接节点上的备份数据与此节点上的原始数据合并,并建立新的原始数据在其后m个正向邻接节点上的备份数据。完成后,从系统中删除该节点。
当向系统中增加或减少2个或2个以上节点时客户端读写机制,其客户端读写机制与增加或减少一个节点时的客户端读写机制相同。此外,当向系统中减少节点时,减少将限制到系统中出现具有两个节点配置的最小镜像矢量环为止。
当改变系统的可用级别时,首先由可用级别确定邻接复制的邻接距离m,通过增大或减少m值时的客户端读写机制,来保证分布式存储系统的高可用性。当增大可用级别时,如果邻接复制的邻接距离由m1增大到m2,管理节点将复制各个节点上的数据到其正向邻接距离小于等于m2并大于m1的所有正向邻接节点上,并改写文件系统的元数据服务器的相关信息。当减小可用级别时,如果邻接复制的邻接距离由m1减小到m2,管理节点将删除与各个节点正向邻接距离小于等于m1并大于m2的所有正向邻接节点上的数据,并改写文件系统的元数据服务器的相关信息。在改变系统可用级别的过程中,客户端对系统的读写请求将被禁止。当系统可用级别更改结束时,重新开放服务,允许客户端对系统的读写请求。
实施例
构建高可用分布式存储系统可以基于并行文件系统或分布文件系统来实现,接下来我们以在并行文件系统上构建高可用系统为例,阐述构建此系统的详细过程。包括m=1和m=2时的系统构建机制、节点出现故障和故障恢复机制、节点扩展和改变系统可用级别时的相应客户端读写机制。
如图1所示,图中每个存储节点的数据备份在其邻接距离为1正向邻接节点。
邻接复制的邻接距离m为1时的系统状态。该系统由6个节点组成,箭头指示方向表示镜像矢量环的正向,即邻接复制的正方向。节点内的实线圆表示该节点的本地存储数据,虚线圆表示其反向邻接点在该节点的数据备份。节点通过网络标识(即节点号)构成从1到6首尾相接的封闭的镜像矢量环。系统运行过程中,客户端对一个文件数据条块的读请求按规定的顺序(1-2-3-4-5-6)直接发往原始的存储节点,并正常操作。而写请求则同时发往文件条块所在节点和其正向邻接节点上,即按实线圆标识顺序(1-2-3-4-5-6)和虚线圆标识顺序(1-2-3-4-5-6)分别写一次,并等待所有节点的写操作正常返回,才标志这个写操作成功。
当系统内某个节点发生故障时,例如节点3发生故障,客户端的读写机制采取以下规则。首先判断节点3为故障节点,当访问节点3时在规定的失效时间内得不到响应,可以怀疑其失效,再重发一次读写请求,如果仍然在失效时间内得不到到响应,就认为该节点失效,并在客户端进行标记。在节点3失效状态下,客户端将发往节点3的读写请求转移到其正向邻接节点,即节点4,并等待节点4返回响应。
当节点3经修复后加入到存储系统中时,此时的系统处于带故障运行状态,要进行恢复节点3与其邻接节点的数据的同步操作,首先缓冲所有到达该节点3的请求到请求缓冲区中,然后从其正向邻接节点4读回自己原有的所有文件数据,再从反向邻接节点2读取数据,建立反向邻接节点的备份数据。完成后,处理缓冲区中的访问请求,直至与所有数据同步。系统恢复到正常状态。
如图2所示,图中每个存储节点的数据备份在其邻接邻距离为1的正向邻接节点和邻接距离为2的正向邻接节点上。
该系统由6个节点组成,箭头指示方向表示镜像矢量环的正向,即邻接复制的正方向。节点内实线圆表示该节点的本地存储数据,虚线圆表示与其反向邻接距离分别为1和2的反向邻接节点在该节点上的数据备份。节点通过网络标识(即节点号)构成从1到6首尾相接的封闭的镜像矢量环。系统运行过程中,客户端对一个文件数据条块的读请求按规定的顺序(如1-2-3-4-5-6)直接发往原始的存储节点,并正常操作。而写请求则同时发往文件条块所在节点和其邻接距离为1的正向邻接节点上,即按实线圆标识顺序(1-2-3-4-5-6)和两个虚线圆标识顺序(1-2-3-4-5-6)分别写一次,并等待所有节点的写操作正常返回,才标志这个写操作成功。
当系统内某个节点发生故障或恢复后重新加入到系统时,客户端的读写机制与m=1时的情况相同。如果相邻两个节点在规定恢复时间内相继失效,即认为同时失效,此时客户端的读写机制会采取以下规则。如节点3和节点4同时失效,首先判断节点3和节点4为失效节点,判断机制与m=1时相同。此时客户端发往节点3和节点4的读请求将转移到其邻接节点5,并等待节点5返回响应。发往节点3的写请求则发往节点5,并等待节点5返回响应,而发往节点4的写请求则发往节点5和节点6,并等待节点5和节点6的响应。
当节点3经修复后加入到存储系统中时,首先缓冲所有到达该节点3的请求到请求缓冲区中,然后从其正向邻接点5读回自己原有的所有文件数据,再从反向邻接节点1和反向邻接节点2读取数据,建立反向邻接节点的备份数据。完成后,处理缓冲区中的访问请求,直至与所有数据同步,系统恢复到正常状态。
当节点4经修复后加入到存储系统中时,首先缓冲所有到达该节点4的请求到请求缓冲区中,然后从其正向邻接节点5读回自己原有的所有文件数据,再从反向邻接节点2和反向邻接节点3读取数据,建立反向邻接节点的备份数据。如果此时反向邻接节点3故障还没有完成修复,会标识3为故障节点,此时客户端的读写机制与m=1相同。完成后,处理缓冲区中的访问请求,直至与所有数据同步,系统恢复到正常状态。
如图3所示,三个图分别表示节点加入前,节点加入中,节点加入后系统中的数据分布状态。在节点加入过程中存在两个镜像矢量环,其中浅色环为原有的镜像矢量环,深色环为新的镜像矢量环。
向系统中加入节点时,通常会把此节点加入到镜像矢量环网络标识的尾部,如图所示节点6加入系统时会加在节点5的尾部。节点加入过程分为以下几个步骤:节点加入前;节点加入中和节点加入后。节点6加入前,系统内只存在一个镜像矢量环,数据条块的读取顺序为1-2-3-4-5。当节点6加入到系统中时,此时文件系统的管理节点将进行数据的重新分布工作,此过程中系统内存在两个镜像矢量环,即原有的镜像矢量环和新建的镜像矢量环,在图中分别用浅色和深色圆环来表示。数据的重新分布以文件的重新分布形式来实现,文件系统的管理节点需要读出该文件原有镜像矢量环下的所有数据并以新的镜像矢量环来分布。如管理节点从原镜像矢量环读出某文件的数据条块(图中实线圆所示1-2-3-4-5),重组文件并以新的镜像矢量环来分布(图中实线圆表示的1-2-3-4-5-6),同时复制新的数据条块到其正向邻接节点(图中虚线圆表示的1-2-3-4-5-6)。数据分布过程中,客户端将发起对某个文件的访问,通过访问元数据服务器得到该文件的元数据信息,元数据信息中会表明该文件应用新的镜像矢量环还是原有的镜像矢量环,客户端其后的读写操作都会在元数据所指的镜像矢量环中进行。数据重分布后,需改写并行文件系统的元数据服务器相关信息,之后客户端对该文件的读写请求将被指向新的镜像矢量环。此时撤销原有的镜像矢量环,系统恢复到单一镜像矢量环状态。如果在数据重新分布过程中客户端读写请求的文件当前正在重新分布,将采取相应的数据读写锁机制来限制其对该文件的读写。待数据全部重新分布完成后,文件系统的管理节点将撤销原有的镜像矢量环,系统恢复到单一镜像矢量环状态。整个数据分布的过程可由运行在后台的进程来完成,该进程的优先级可设置为最低,以保证对外服务的质量。
如图4所示,上下两个图分别表示m=1时和m=2时系统中的数据分布状态,其中深色环为在原镜像矢量环分布数据基础上新增的镜像存储数据。
其中上图表示m=1时系统中的数据分布状态,下图表示m=2时系统中的数据分布状态。当改变系统的可用级别时,首先由可用级别确定邻接复制的邻接距离m,如图所示通过使m从1增加到2来提高系统的可用级别,即提高系统的高可用性。在改变系统可用级别的过程中,客户端对系统的读写请求将被禁止。
当m=1时,系统内的数据分布状态如上图所示,每个节点的备份数据存在于其邻接距离为1的正向邻接节点上,即节点2有节点1数据备份,节点3有节点2的数据备份,等等。当m=2时,系统内每个节点的数据备份应存在于其邻接距离为1和邻接距离为2的正向的邻接节点上,所以管理节点会读出某个节点的全部数据并复制到与其邻接距离为2的正向邻接节点上,如下图所示,节点1的数据复制到节点3,节点2的数据复制到节点4,以此类推。当数据复制结束时,改写文件系统的元数据服务器的相关信息,以便系统运行时采取新的可用级别。系统可用级别改写结束后,重新开放服务,允许客户端对系统的读写请求。如果改变可用级别以使邻接复制的邻接距离m从2减小到1,其运行机制与m从1增大到2的过程相同,管理节点将删除与各个节点正向邻接距离为2的正向邻接节点上的数据,并改写文件系统的元数据服务器的相关信息。
本发明的方法可适用于大多数的网络文件系统,经过对网络文件系统的改造,可以在相对廉价的存储机群上提供目前只有专用系统可提供的高可用性保证,同时,应用该技术的存储系统,其可用级别可以根据需要进行配置,可广泛应用于对数据可用性要求很高的网络存储环境中。
由于本发明的方法应用不需要专用的硬件系统支持,可应用于一般的网络存储机群中,这就适合大多数廉价机群系统,性价比较高。因而,推广应用本发明的方法可以产生很高的经济效益。同时也可以改变目前高端应用中高可用性支持基本依赖外来技术的现象。

Claims (13)

1、构建高可用分布式存储系统的方法,其特征在于将分布式存储系统内的数据存储节点按顺序组成镜像矢量环,并在镜像矢量环内的各个存储节点上设置网络标识,同时利用邻接复制技术将一个节点的数据复制到其邻接节点,当节点出现故障或节点的增加或减少以及改变可用级别时,通过不同的客户端读写机制保证分布式存储系统的高可用性、可扩展性和动态的可配置能力。
2、根据权利要求1所述的方法,其特征在于镜像矢量环是通过赋予互联网络内每个数据存储节点唯一的网络标识,按一定顺序将所有标识串连成一个首尾相接的链,并根据采用文件系统的不同而采取不同的组织形式,该组织形式包括并行文件系统下镜像矢量环和分布式文件系统下的镜像矢量环,镜像矢量环中网络标识依次排列的方向为正向,节点的邻接与镜像矢量环的方向一致为正向邻接方向,反之为反向邻接方向,无论何种方向邻接都能保证互联网络内的数据存储节点与客户端有直接或间接的物理通路。
3、根据权利要求2所述的方法,其特征在于并行文件系统下镜像矢量环中的一个文件数据被分为多个顺序连接的条块,并且按照条块回路中的网络标识所规定的顺序依次存放在各个节点上,分布式文件系统下镜像矢量环只用来确定在数据复制过程中的目标节点位置。
4、根据权利要求1所述的方法,其特征在于利用邻接复制技术为分布式存储系统的一种数据备份方式,根据可用级别确定邻接复制的邻接距离m,选择文件或文件条块复制到与其所在节点的邻接距离小于或等于m的并且邻接方向为正向的所有邻接节点之上,并通过客户端的读写机制在文件访问阶段保证各个复制数据与原文件数据的一致性,将一个文件数据条块的读请求直接发往原始的存储节点并正常操作,而写请求则首先根据其可用级别确定邻接复制的邻接距离m,然后发往文件条块所在节点和与之距离小于或等于m的所有正向邻接节点上,并等待所有节点的写操作正常返回,才标志这个写操作成功。
5、根据权利要求1所述的方法,其特征在于可用级别的确定是在分布式存储系统内,各个节点在一定时间T内平均失效率为P,存储系统内节点个数为N,邻接复制的邻接距离为m,当系统中相邻的大于或等于m+1个节点同时失效时,才使该系统失效,由此规定可用级别为该系统在T时间内一直可访问的概率,其计算的公式为:
P = 1 - C N 1 P m + 1 ( 1 - P ) N - m - 1 - C N 1 P m + 2 ( 1 - P ) N - m - 2 - · · · · · · - C N 1 P N - 1 ( 1 - P ) - P N
假设分布式存储系统中可用级别的等级至少为P1,通过以下不等式确定满足条件最小邻接复制的邻接距离m值:
P 1 ≤ 1 - C N 1 P m + 1 ( 1 - P ) N - m - 1 - C N 1 P m + 2 ( 1 - P ) N - m - 2 - · · · · · · - C N 1 P N - 1 ( 1 - P ) - P N .
6、根据权利要求1所述的方法,其特征在于节点出现故障时的客户端读写机制,包括客户端访问时节点失效的判断策略和节点失效后的数据读写机制,客户端访问时节点失效的判断策略为:客户端对某个文件在某个节点上的数据进行访问时,在规定的失效时间内得不到响应,怀疑其失效,再重发一次读写请求,在失效时间内如仍得不到响应,确认该节点失效,通知文件系统的管理节点,并在客户端进行标识;分布式存储系统内的文件系统的管理节点,负责系统中故障节点的恢复、向系统增加或减少节点、改变系统可用级别的管理与维护,本身不提供文件访问服务;在节点失效后数据读写机制中,客户端不再向故障节点发送读写请求,而直接将读写请求发送给该故障节点的正向邻接节点,当节点邻接距离m=1时,客户端会将读请求转移到其正向邻接距离为1的邻接节点,并等待其返回响应,当节点邻接距离m大于或等于2时,客户端会将写请求发送给该故障节点的正向邻接并邻接距离小于或等于m的节点,而读请求将转移到其正向邻接距离为1的邻接节点,并等待其返回响应,如果此节点失效,则转向邻接距离为2的正向邻接节点,依次直至邻接距离为m的正向邻接节点,当故障节点修复后需要加入到存储系统中时,首先要进行恢复节点与其邻接节点的数据的同步操作,然后进入到系统正常运行的客户端读写机制状态。
7、根据权利要求6所述的方法,其特征在于,恢复节点与邻接节点的数据同步操作,是先将所有到达该故障节点的写请求缓冲到请求缓冲区中,然后从其正向邻接节点读回自己原有的所有文件数据,再根据邻接复制的邻接距离从反向邻接节点读取数据,建立反向邻接节点的备份数据,如果邻接复制的邻接距离为m,操作时将反向邻接距离小于和等于m的反向邻接节点上的原始数据拷贝至该故障节点。
8、根据权利要求1所述方法,其特征在于在节点增加或减少时的客户端读写机制中,根据文件系统类型的不同分为并行文件系统下的客户端读写机制与分布式文件系统下的客户端读写机制,其中并行文件系统下的客户端读写机制为系统中增加一个或多个数据存储节点时,首先将数据重新分布,撤销原有的镜像矢量环,让存储系统恢复到单一镜像矢量环的状态下以文件的重新分布来实现,每个文件有其自己的镜像矢量环,文件系统的管理节点需要读出该文件原有镜像矢量环下的所有数据并以新的镜像矢量环来分布,此时原有的镜像矢量环和新的节点数目下的镜像矢量环同时存在,原有数据以原来的镜像矢量环分布,文件系统的管理节点需要读出所有原有数据以新的镜像矢量环来分布,文件的数据重新分布后,需改写并行文件系统的元数据服务器相关信息,之后客户端对该文件的读写请求将被指向新的镜像矢量环。
9、根据权利要求8所述的方法,其特征在于客户端发起对一个文件访问,首先通过访问元数据服务器得到该文件的元数据信息,元数据信息中会表明该文件应用新的镜像矢量环还是应用原有的镜像矢量环,如果在数据重新分布过程中客户端读写请求的文件当前正在重新分布,将采取相应的数据读写锁机制来限制其对该文件的读写,在数据重新分布过程中,一旦数据读写锁机制启动,向系统内继续添加或减少节点的请求将被禁止。
10.根据权利要求9所述的方法,其特征在于在分布式文件系统下的客户端读写机制中增加新节点时,数据不需要重新分布,新增节点需从其反向邻接节点复制数据,并把该新增节点数据复制到其正向邻接节点,之后改写文件系统的元数据服务器相关信息,当系统在正常状态下运行减少节点时的客户端读写机制时,对于分布式文件系统与并行文件系统,数据均需要重新分布,数据重新分布完成后,撤销原有的镜像矢量环,系统恢复到单一镜像矢量环状态,并从系统中删除失效节点;在数据重新分布时,要将故障节点原始数据的读请求转移到其正向邻接距离为1的正向邻接节点的备份数据中,当系统运行减少节点时的客户端读写机制时,节点减少限制到系统中出现具有两个节点配置的最小镜像矢量环为止。
11、根据权利要求10所述的方法,其特征在于分布式文件系统正常状态下运行减少节点时的客户端读写机制,管理节点根据邻接节点复制的邻接距离m,确保该节点的m个反向邻接节点在该节点的m个正向邻接节点上有正确的备份数据,然后把该节点的原始数据与其正向邻接距离为1的正向邻接节点上的原始数据合并,并建立新的原始数据在其后m个正向邻接节点上的备份数据,备份数据完成后,该节点从系统中删除。
12、根据权利要求11所述的方法,其特征在于系统内某故障节点失效时需要运行把该节点从系统删除时的客户端读写机制,此时管理节点根据邻接复制的邻接距离m,确保该故障节点的m个反向邻接节点在该节点的m个正向邻接节点上有正确的备份数据,然后把该故障节点在正向邻接距离为1的邻接节点上的备份数据与此节点上的原始数据合并,并建立新的原始数据在其后m个正向邻接节点上的备份数据,备份数据完成后,该故障节点从系统中删除。
13、根据权利要求1所述的方法,其特征在于改变可用级别时的客户端读写机制,是可用级别确定邻接复制的邻接距离m,通过增大或减少m值时的客户端读写机制来保证分布式存储系统的高可用性,如果邻接复制的邻接距离由m1增大到m2,管理节点将复制各个节点上的数据到其正向邻接距离小于或等于m2并大于m1的所有正向邻接节点上,并改写文件系统的元数据服务器的相关信息,如果邻接复制的邻接距离由m1减小到m2,管理节点将删除与各个节点正向邻接距离小于或等于m1并大于m2的所有正向邻接节点上的数据,并改写文件系统的元数据服务器的相关信息,在改变系统可用级别的过程中,客户端对系统的读写请求将被禁止。
CNB03112402XA 2003-06-09 2003-06-09 构建高可用分布式存储系统的方法 Expired - Fee Related CN1326045C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB03112402XA CN1326045C (zh) 2003-06-09 2003-06-09 构建高可用分布式存储系统的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB03112402XA CN1326045C (zh) 2003-06-09 2003-06-09 构建高可用分布式存储系统的方法

Publications (2)

Publication Number Publication Date
CN1567237A CN1567237A (zh) 2005-01-19
CN1326045C true CN1326045C (zh) 2007-07-11

Family

ID=34468913

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB03112402XA Expired - Fee Related CN1326045C (zh) 2003-06-09 2003-06-09 构建高可用分布式存储系统的方法

Country Status (1)

Country Link
CN (1) CN1326045C (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346779A (zh) * 2011-10-18 2012-02-08 中国联合网络通信集团有限公司 分布式文件系统和主控节点的备份方法

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188569B (zh) * 2006-11-16 2011-05-04 饶大平 在网络上构建数据量子空间的方法及分布式文件存储系统
GB2461955A (en) * 2008-07-25 2010-01-27 Gnodal Ltd Ethernet bridge or router employing a distributed MAC address table
CN101645038A (zh) * 2009-05-20 2010-02-10 中国科学院声学研究所 基于彼特森的网络存储结构的数据存储方法
CN101562543B (zh) * 2009-05-25 2013-07-31 阿里巴巴集团控股有限公司 一种缓存数据的处理方法、处理系统和装置
US8554993B2 (en) * 2009-09-21 2013-10-08 Translattice, Inc. Distributed content storage and retrieval
CN102122306A (zh) * 2011-03-28 2011-07-13 中国人民解放军国防科学技术大学 一种数据处理方法及应用该方法的分布式文件系统
CN102622412A (zh) * 2011-11-28 2012-08-01 中兴通讯股份有限公司 一种分布式文件系统中的并发写入方法及装置
CN103516734B (zh) * 2012-06-20 2018-01-12 阿里巴巴集团控股有限公司 数据处理方法、设备和系统
CN103973497A (zh) * 2014-05-23 2014-08-06 浪潮电子信息产业股份有限公司 一种基于高密度微服务器实现多路并发存储的方法和装置
CN104202434A (zh) * 2014-09-28 2014-12-10 北京奇虎科技有限公司 节点访问方法和装置
CN107155307B (zh) * 2014-10-31 2020-04-28 华为技术有限公司 访问文件的方法、系统和主机
CN104639661A (zh) * 2015-03-13 2015-05-20 华存数据信息技术有限公司 分布式存储系统及文件存储和读取方法
CN105847855A (zh) * 2016-05-13 2016-08-10 天脉聚源(北京)传媒科技有限公司 一种节目处理方法及系统
CN106527982B (zh) * 2016-10-25 2019-04-12 西安交通大学 一种针对由异构存储设备组成的对象存储系统的对象分布算法
EP3557445A4 (en) 2016-12-30 2019-11-27 Huawei Technologies Co., Ltd. TRANSACTION PROCESSING AND DEVICE
CN107357689B (zh) * 2017-08-02 2020-09-08 郑州云海信息技术有限公司 一种存储节点的故障处理方法及分布式存储系统
CN110019065B (zh) * 2017-09-05 2023-05-05 阿里巴巴集团控股有限公司 日志数据的处理方法、装置及电子设备
CN110901691B (zh) * 2018-09-17 2021-10-29 株洲中车时代电气股份有限公司 一种铁电数据的同步系统、方法和列车网络控制系统
CN110493300B (zh) * 2018-09-27 2021-11-23 北京白山耘科技有限公司 一种分布式数据系统及分布式数据同步方法
CN109407981A (zh) * 2018-09-28 2019-03-01 深圳市茁壮网络股份有限公司 一种数据处理方法及装置
CN113157492A (zh) * 2021-04-07 2021-07-23 北京思特奇信息技术股份有限公司 一种分布式数据库的备份方法和恢复方法以及备份系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08195767A (ja) * 1995-01-19 1996-07-30 Fuji Electric Co Ltd バックアップリングの監視方法
US6260069B1 (en) * 1998-02-10 2001-07-10 International Business Machines Corporation Direct data retrieval in a distributed computing system
CN1336589A (zh) * 2000-07-28 2002-02-20 国际商业机器公司 数据管理应用程序的故障恢复方法和系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08195767A (ja) * 1995-01-19 1996-07-30 Fuji Electric Co Ltd バックアップリングの監視方法
US6260069B1 (en) * 1998-02-10 2001-07-10 International Business Machines Corporation Direct data retrieval in a distributed computing system
CN1336589A (zh) * 2000-07-28 2002-02-20 国际商业机器公司 数据管理应用程序的故障恢复方法和系统

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102346779A (zh) * 2011-10-18 2012-02-08 中国联合网络通信集团有限公司 分布式文件系统和主控节点的备份方法

Also Published As

Publication number Publication date
CN1567237A (zh) 2005-01-19

Similar Documents

Publication Publication Date Title
CN1326045C (zh) 构建高可用分布式存储系统的方法
US5423037A (en) Continuously available database server having multiple groups of nodes, each group maintaining a database copy with fragments stored on multiple nodes
US9785498B2 (en) Archival storage and retrieval system
US7328373B2 (en) Data processing system
US8086661B2 (en) Method for resolving collisions in a database replication system by relaxing a constraint that contributes to collisions, or removing the cause of the constraint that contributes to the collisions
RU2208834C2 (ru) Способ и система восстановления целостности базы данных в системе секционированных баз данных без разделения ресурсов с использованием виртуальных дисков коллективного использования и машиночитаемый носитель для них
US8214334B2 (en) Systems and methods for distributed system scanning
CN1893370B (zh) 用于服务器群集恢复和维护的方法和系统
CN101655813B (zh) 存储系统
US5555404A (en) Continuously available database server having multiple groups of nodes with minimum intersecting sets of database fragment replicas
CN101577735B (zh) 一种接管故障元数据服务器的方法、装置及系统
CN109729129A (zh) 存储集群的配置修改方法、存储集群及计算机系统
CN106708653B (zh) 一种基于纠删码与多副本的混合税务大数据安全保护方法
CN1653427A (zh) 用于创建虚拟数据拷贝的方法和装置
CN1838055A (zh) 具有数据跟踪的存储复制系统
CN102024016A (zh) 一种分布式文件系统快速数据恢复的方法
Goodrich et al. The rainbow skip graph: a fault-tolerant constant-degree distributed data structure
CN100507862C (zh) 用于数据存储服务的资源管理
CN105049258A (zh) 网络容灾系统的数据传输方法
CN114363350A (zh) 一种服务治理系统及方法
CN109582735A (zh) 一种区块链知识单元存储系统
CN107547657A (zh) 一种基于云存储系统中单点数据编号的方法、装置以及存储介质
Ubaidillah et al. An efficient data replication technique with fault tolerance approach using BVAG with checkpoint and rollback-recovery
Byun et al. Resilient data management for replicated mobile database systems
US20110213862A1 (en) User profile synchronization

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070711

Termination date: 20160609