CN108156203A - 一种存储***及存储节点管理方法 - Google Patents
一种存储***及存储节点管理方法 Download PDFInfo
- Publication number
- CN108156203A CN108156203A CN201611109234.5A CN201611109234A CN108156203A CN 108156203 A CN108156203 A CN 108156203A CN 201611109234 A CN201611109234 A CN 201611109234A CN 108156203 A CN108156203 A CN 108156203A
- Authority
- CN
- China
- Prior art keywords
- information
- memory node
- database
- manager
- storage system
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2329—Optimistic concurrency control using versioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种存储***及存储节点管理方法,***包括至少两台存储节点:角色信息为管理者的第一存储节点、及角色信息不为管理者的第二存储节点;每台存储节点中运行管理服务;第二存储节点检测到第一存储节点出现故障后,通过各存储节点中运行的管理服务下的选举机制,判断自身角色信息是否为管理者;如果是,判断自身是否配置有访问存储***的地址信息,如果未配置,则获取并配置地址信息。应用本方案,在作为管理者的存储节点出现故障后,利用各存储节点中运行的管理服务下的选举机制,各存储节点都有可能成为新的管理者,新的管理者配置访问该存储***的地址信息,该存储***能够继续提供存储服务;因此,提高了存储***的可靠性。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种存储***及存储节点管理方法。
背景技术
现有的存储***一般包括管理节点和存储节点,存储节点为存储数据的物理介质,管理节点对***中各存储节点存储的数据进行管理。
在一些存储数据量较小的存储***中,通常不设置独立的管理节点,而是选定一台或少数几台存储节点作为管理者,管理者对存储***中各存储节点存储的数据进行管理。
上述方案中,管理者数量较少,如果管理者都出现故障,则该存储***瘫痪,不能继续提供存储服务,也就是说,该存储***的可靠性较差。
发明内容
本发明实施例的目的在于提供一种存储***及存储节点管理方法,提高存储***的可靠性。
为达到上述目的,本发明实施例公开了一种存储***,包括至少两台存储节点,每台存储节点中运行管理服务;所述至少两台存储节点中包含角色信息为管理者的第一存储节点、及角色信息不为管理者的第二存储节点;
所述第二存储节点,用于检测到所述第一存储节点出现故障后,通过各存储节点中运行的管理服务下的选举机制,判断自身角色信息是否为管理者;如果是,判断自身是否配置有访问所述存储***的地址信息,如果未配置,则获取并配置所述地址信息。
可选的,所述第二存储节点,还可以用于通过所述选举机制,判断自身是否为临时管理者:
如果是,发起选举,根据每个选举参与者发送的投票信息,确定所述存储***中各存储节点的角色信息,并利用所述各存储节点中运行的管理服务,对所述各存储节点的角色信息进行标识,以使所述各存储节点根据所述标识确定自身角色信息;
如果否,判断自身是否为选举参与者,如果是选举参与者,在临时管理者发起选举后,将投票信息发送给临时管理者。
可选的,所述第二存储节点,还可以用于在判断自身角色信息不为管理者的情况下,判断自身是否配置有访问所述存储***的地址信息,如果已配置,则删除所述地址信息。
可选的,所述第二存储节点,还可以用于通过自身运行的管理服务,接收故障提示信息,所述故障提示信息表示所述第一存储节点出现故障;
所述第二存储节点,还可以用于选举结束后,根据自身运行的管理服务中标识的角色信息,判断自身角色信息是否管理者。
可选的,所述第二存储节点,还可以用于通过自身运行的管理服务,接收数据变更信息;根据所述数据变更信息,更新自身存储的数据库。
可选的,所述数据库中存储有所述存储***中存储数据的索引信息、及所述存储***中各存储节点的节点信息;
所述第二存储节点,还可以用于根据所述数据变更信息中包含的变更数据的索引信息,更新所述数据库中的索引信息;根据所述数据变更信息中包含的变更存储节点的节点信息,更新所述数据库中的节点信息。
可选的,所述数据库中存储有所述存储***中存储数据的索引信息、及所述存储***中各存储节点的节点信息;
所述第二存储节点,还可以用于读取所述各存储节点存储数据的索引信息、及所述各存储节点的节点信息;
将所读取到的索引信息与所述数据库中的索引信息进行对比,得到第一对比结果;
将所读取到的节点信息与所述数据库中的节点信息进行对比,得到第二对比结果;
根据所述第一对比结果及所述第二对比结果,更新所述数据库。
可选的,所述数据库中还存储有每条索引信息对应的第一版本号、及每条节点信息对应的第二版本号;
所述第二存储节点,还可以用于根据所述第一对比结果,更新所述数据库中的索引信息及其对应的第一版本号;
根据所述第二对比结果,更新所述数据库中的节点信息及其对应的第二版本号。
为达到上述目的,本发明实施例还公开了一种存储节点管理方法,应用于存储***中的存储节点,所述存储***的各存储节点中运行管理服务;所述方法包括:
检测到角色信息为管理者的存储节点出现故障后,通过各存储节点中运行的管理服务下的选举机制,判断自身角色信息是否为管理者;
如果是,判断自身是否配置有访问所述存储***的地址信息,如果未配置,则获取并配置所述地址信息。
可选的,检测到角色信息为管理者的存储节点出现故障之后,所述方法还可以包括:
通过所述选举机制,判断自身是否为临时管理者:
如果是,发起选举,根据每个选举参与者发送的投票信息,确定所述存储***中各存储节点的角色信息,并利用所述各存储节点中运行的管理服务,对所述各存储节点的角色信息进行标识;
如果否,判断自身是否为选举参与者,如果是选举参与者,在临时管理者发起选举后,将投票信息发送给临时管理者。
可选的,在判断自身角色信息不为管理者的情况下,所述方法还包括:
判断自身是否配置有访问所述存储***的地址信息,如果已配置,则删除所述地址信息。
可选的,所述存储***中的存储节点中运行管理服务;检测到角色信息为管理者的存储节点出现故障的步骤可以包括:
通过自身运行的管理服务,接收故障提示信息,所述故障提示信息表示角色信息为管理者的存储节点出现故障;
所述通过各存储节点中运行的管理服务下的选举机制,判断自身角色信息是否管理者的步骤可以包括:
选举结束后,根据自身运行的管理服务中标识的角色信息,判断自身角色信息是否管理者。
可选的,所述方法还可以包括:
通过自身运行的管理服务,接收数据变更信息;
根据所述数据变更信息,更新自身存储的数据库。
可选的,所述数据库中存储有所述存储***中存储数据的索引信息、及所述存储***中各存储节点的节点信息;
在所述数据变更信息中包含变更数据的索引信息的情况下,所述更新自身存储的数据库的步骤可以包括:
根据所述数据变更信息中包含的变更数据的索引信息,更新所述数据库中的索引信息;
在所述数据变更信息中包含变更存储节点的节点信息的情况下,所述更新自身存储的数据库的步骤可以包括:
根据所述数据变更信息中包含的变更存储节点的节点信息,更新所述数据库中的节点信息。
可选的,所述数据库中存储有所述存储***中存储数据的索引信息、及所述存储***中各存储节点的节点信息;所述更新自身存储的数据库的步骤包括:
读取所述各存储节点存储数据的索引信息、及所述各存储节点的节点信息;
将所读取到的索引信息与所述数据库中的索引信息进行对比,得到第一对比结果;
将所读取到的节点信息与所述数据库中的节点信息进行对比,得到第二对比结果;
根据所述第一对比结果及所述第二对比结果,更新所述数据库。
可选的,所述数据库中还存储有每条索引信息对应的第一版本号、及每条节点信息对应的第二版本号,所述根据所述第一对比结果及所述第二对比结果,更新所述数据库的步骤可以包括:
根据所述第一对比结果,更新所述数据库中的索引信息及其对应的第一版本号;
根据所述第二对比结果,更新所述数据库中的节点信息及其对应的第二版本号。
由此可见,应用本发明实施例,在作为管理者的存储节点出现故障后,利用各存储节点中运行的管理服务下的选举机制,各存储节点都有可能成为新的管理者,新的管理者配置访问该存储***的地址信息,该存储***能够继续提供存储服务;因此,提高了存储***的可靠性。
当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种存储***的结构示意图;
图2为本发明实施例提供的一种存储节点管理方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决上述技术问题,本发明实施例提供了一种存储***及存储节点管理方法,该方法可以应用于该存储***中的存储节点。下面首先对本发明实施例提供的存储***进行详细说明。
存储***可以如图1所示,包含至少两台存储节点:存储节点1、存储节点2……存储节点N,或者,也可以仅包含存储节点1和存储节点2,具体不做限定。每台存储节点中运行管理服务;所述至少两台存储节点中包含角色信息为管理者的第一存储节点、及角色信息不为管理者的第二存储节点。
所述第二存储节点,可以用于检测到所述第一存储节点出现故障后,通过各存储节点中运行的管理服务下的选举机制,判断自身角色信息是否为管理者;如果是,判断自身是否配置有访问所述存储***的地址信息,如果未配置,则获取并配置所述地址信息。
需要说明的是,各存储节点中运行的管理服务可以互相通信,比如,该管理服务可以包括zookeeper服务,各存储节点通过zookeeper服务的事件通知机制,可以检测到角色信息为管理者的存储节点出现故障。
具体的,第二存储节点可以通过自身运行的zookeeper服务,接收故障提示信息,如果存储节点接收到故障提示信息,则表示角色信息为管理者的存储节点(第一存储节点)出现故障。
这种情况下,可以通过zookeeper服务下的选举机制,选举出新的管理者。作为一种实施方式,该第二存储节点可以通过该选举机制,判断自身是否为临时管理者:
如果是,发起选举,根据每个选举参与者发送的投票信息,确定所述存储***中各存储节点的角色信息,并利用所述各存储节点中运行的管理服务,对所述各存储节点的角色信息进行标识;
如果否,判断自身是否为选举参与者,如果是选举参与者,在临时管理者发起选举后,将投票信息发送给临时管理者。
具体来说,通过zookeeper服务,可以产生一个临时管理者,该临时管理者可以发起选举。该临时管理者可以指定其他存储节点为选举参与者:可以指定除自身以外的所有存储节点为选举参与者,也可以任意指定奇数个存储节点为选举参与者,具体不做限定。
被指定为选举参与者的存储节点将投票信息发送给临时管理者。临时管理者根据接收到的每个选举参与者发送的投票信息,确定各存储节点的角色信息(也就是确定管理者与非管理者)。临时管理者利用各存储节点中运行的zookeeper服务,对各存储节点的角色信息进行标识。这样,各存储节点便可以在选举结束后,根据自身运行的zookeeper服务中标识的角色信息,判断自身角色信息是否为管理者。
同样的,该第二存储节点可以在选举结束后,判断自身角色信息是否为管理者,如果是,则判断自身是否配置有访问所述存储***的地址信息,如果未配置,则获取并配置所述地址信息。
在本实施例中,如果第二存储节点判断自身角色信息不为管理者,则该第二存储节点可以判断自身是否配置有访问存储***的地址信息,如果已配置,则删除该地址信息。
该地址信息可以理解为虚拟IP地址,也就是存储***对外提供的虚拟IP地址,用户可以通过该虚拟IP地址访问该存储***。存储***中只有管理者配置该虚拟IP地址,因此,如果原管理者出现故障,某存储节点成为新管理者后,该新管理者应配置有该地址信息。具体的,该地址信息可以通过命令行直接获取。
另外,如果非管理者配置了该地址信息,该存储***会出现未知错误,因此,当存储节点判断自身角色信息不为管理者、且配置了该地址信息时,该存储节点应将该地址信息从自身删除。
作为本发明的一种实施方式,各存储节点中可以存储有数据库,存储节点通过自身运行的管理服务,接收到数据变更信息后,可以更新自身存储的数据库。
具体来说,如果存储***中的存储节点发生数据变更,该存储节点可以将该数据变更事件通过zookeeper服务的事件通知机制通知各存储节点。各存储节点通过自身运行的zookeeper服务可以接收到数据变更信息。
数据变更可以包括索引信息的变更,也可以包括节点信息的变更。举例来说,当存储***中增加、删除或者移动存储数据时,数据的索引信息发生变更;当存储***中某存储节点新增、删除子节点时,节点信息发生变更。上述数据库中可以既包含索引信息,又包含节点信息。
作为一种实施方式,该数据变更信息中可以包含变更数据的索引信息,这样,可以根据数据变更信息中包含的变更数据的索引信息,更新数据库中的索引信息。
作为一种实施方式,该数据变更信息中也可以包含变更存储节点的节点信息,这样,可以根据数据变更信息中包含的变更存储节点的节点信息,更新数据库中的节点信息。
作为一种实施方式,该数据变更信息中可以不包含索引信息,也不包含节点信息,仅起到提示作用。存储节点在接收到该数据变更信息后,读取各存储节点存储数据的索引信息、及各存储节点的节点信息;将所读取到的索引信息与数据库中的索引信息进行对比,得到第一对比结果;将所读取到的节点信息与数据库中的节点信息进行对比,得到第二对比结果;根据第一对比结果及第二对比结果,更新数据库。
为了方便描述,下面内容将索引信息与节点信息统称为记录。
具体的,可以针对每台存储节点中的记录,将其(假设为A)与自身数据库的记录B进行对比,如果有一些内容A1仅存在于A不存在于B,则可以将A1***到自身数据库中。
如果有一些内容B1仅存在于B不存在于A,而且B1对应的存储节点的子节点中均不存在B1,则可以将B1从本地数据库中删除。
如果有一些内容B2仅存在于B不存在于A,而且B2对应的存储节点下不存在子节点,则可以认为A中数据丢失,这种情况下,可以对B2对应的存储节点中的记录进行更新。
在本实施方式中,数据库中还可以存储有每条索引信息对应的第一版本号、及每条节点信息对应的第二版本号,因此,可以根据所述第一对比结果,更新所述数据库中的索引信息及其对应的第一版本号;根据所述第二对比结果,更新所述数据库中的节点信息及其对应的第二版本号。
具体的,每条记录被更新一次,其对应的版本号可以加1。
由于存储了每条记录的版本号,在上述对B2对应的存储节点中的记录进行更新的过程中,可以在各台存储节点中的记录中,确定版本号最大的记录,也就是确定最新的记录,根据最新的记录,对B2对应的存储节点中的记录进行更新。另外,其他存储节点也可以根据该最新的记录更新自身数据库。
需要说明的是,如果存储节点出现故障后重新上线,也可以根据存储***中各存储节点的数据库,对自身数据库进行更新。
下面介绍一种具体的实施方式:
存储***中各存储节点上都运行管理服务,该管理服务中包含zookeeper服务。存储***中的管理者(第一存储节点)出现故障,其他存储节点(第二存储节点)通过zookeeper服务的事件通知机制,检测到该管理者出现故障。
通过zookeeper服务下的选举机制,可以选举新管理者。具体的,通过zookeeper服务,可以产生一个临时管理者,该临时管理者可以发起选举。该临时管理者可以指定其他存储节点为选举参与者,具体的,可以指定除自身以外的所有存储节点为选举参与者,也可以任意指定奇数个存储节点为选举参与者,具体不做限定。
被指定为选举参与者的存储节点将投票信息发送给临时管理者。临时管理者根据接收到的每个选举参与者发送的投票信息,确定各存储节点的角色信息(也就是确定管理者与非管理者)。临时管理者利用各存储节点中运行的zookeeper服务,对各存储节点的角色信息进行标识。这样,各存储节点便可以根据自身运行的zookeeper服务中标识的角色信息,判断自身角色信息是否为管理者。
成为新管理者的存储节点应配置有该地址信息,这样才能使存储***向用户提供管理服务。具体的,该地址信息可以通过命令行直接获取。
另外,如果非管理者配置了该地址信息,该存储***会出现未知错误,因此,当存储节点判断自身角色信息不为管理者、且配置了该地址信息时,该存储节点应将该地址信息从自身删除。
需要说明的是,设置有管理节点的存储***也可以应用本方案:该***可以有两种工作模式,第一种工作模式下,管理节点和存储节点正常运行,第二种工作模式下,管理节点不运行或者作为存储节点运行,存储节点中的管理者进行数据管理。该***可以在两种工作模式下进行切换。
具体的,存储节点中运行的管理服务可以根据配置文件确定存储***的当前工作模式,如果当前工作模式为第二种工作模式,则可以执行本方案。也就是说,设置有管理节点的存储***可以根据实际情况,灵活选择是否执行本方案。
应用本发明所示实施例,在作为管理者的存储节点出现故障后,利用各存储节点中运行的管理服务下的选举机制,各存储节点都有可能成为新的管理者,新的管理者配置访问该存储***的地址信息,该存储***能够继续提供存储服务;因此,提高了存储***的可靠性。
图2为本发明实施例提供的一种存储节点管理方法的流程示意图,本发明图2所示实施例可以应用于存储***中的存储节点,所述存储***的各存储节点中运行管理服务;本发明图2所示实施例也可以应用于本发明图1所示实施例中的第二存储节点。图2包括:
S201:检测到角色信息为管理者的存储节点出现故障后,通过各存储节点中运行的管理服务下的选举机制,判断自身角色信息是否为管理者;如果是,执行S202。
作为一种实施方式,存储***中的存储节点中可以运行管理服务,各存储节点中运行的管理服务可以互相通信,比如,该管理服务可以包括zookeeper服务,各存储节点通过zookeeper服务的事件通知机制,可以检测到角色信息为管理者的存储节点出现故障。
具体的,存储节点可以通过自身运行的zookeeper服务,接收故障提示信息,如果存储节点接收到故障提示信息,则表示角色信息为管理者的存储节点出现故障。
这种情况下,可以通过zookeeper服务下的选举机制,选举出新的管理者。作为一种实施方式,该存储节点可以通过该选举机制,判断自身是否为临时管理者:
如果是,发起选举,根据每个选举参与者发送的投票信息,确定所述存储***中各存储节点的角色信息,并利用所述各存储节点中运行的管理服务,对所述各存储节点的角色信息进行标识;
如果否,判断自身是否为选举参与者,如果是选举参与者,在临时管理者发起选举后,将投票信息发送给临时管理者。
具体来说,通过zookeeper服务,可以产生一个临时管理者,该临时管理者可以发起选举。该临时管理者可以指定其他存储节点为选举参与者,具体的,可以指定除自身以外的所有存储节点为选举参与者,也可以任意指定奇数个存储节点为选举参与者,具体不做限定。
被指定为选举参与者的存储节点将投票信息发送给临时管理者。临时管理者根据接收到的每个选举参与者发送的投票信息,确定各存储节点的角色信息(也就是确定管理者与非管理者)。临时管理者利用各存储节点中运行的zookeeper服务,对各存储节点的角色信息进行标识。这样,各存储节点便可以在选举结束后,根据自身运行的zookeeper服务中标识的角色信息,判断自身角色信息是否为管理者。
S202:判断自身是否配置有访问所述存储***的地址信息,如果否,执行S203。
S203:获取并配置所述地址信息。
在本实施例中,如果存储节点判断自身角色信息不为管理者,则该存储可以判断自身是否配置有访问存储***的地址信息,如果已配置,则删除该地址信息。
该地址信息可以理解为虚拟IP地址,也就是存储***对外提供的虚拟IP地址,用户可以通过该虚拟IP地址访问该存储***。存储***中只有管理者配置该虚拟IP地址,因此,如果原管理者出现故障,某存储节点成为新管理者后,该新管理者应配置有该地址信息。具体的,该地址信息可以通过命令行直接获取。
另外,如果非管理者配置了该地址信息,该存储***会出现未知错误,因此,当存储节点判断自身角色信息不为管理者、且配置了该地址信息时,该存储节点应将该地址信息从自身删除。
应用本发明图2所示实施例,在作为管理者的存储节点出现故障后,利用各存储节点中运行的管理服务下的选举机制,各存储节点都有可能成为新的管理者,新的管理者配置访问该存储***的地址信息,该存储***能够继续提供存储服务;因此,提高了存储***的可靠性。
作为本发明的一种实施方式,各存储节点中可以存储有数据库,存储节点通过自身运行的管理服务,接收到数据变更信息后,可以更新自身存储的数据库。
具体来说,如果存储***中的存储节点发生数据变更,该存储节点可以将该数据变更事件通过zookeeper服务的事件通知机制通知各存储节点。各存储节点通过自身运行的zookeeper服务可以接收到数据变更信息。
数据变更可以包括索引信息的变更,也可以包括节点信息的变更。举例来说,当存储***中增加、删除或者移动存储数据时,数据的索引信息发生变更;当存储***中某存储节点新增、删除子节点时,节点信息发生变更。上述数据库中可以既包含索引信息,又包含节点信息。
作为一种实施方式,该数据变更信息中可以包含变更数据的索引信息,这样,可以根据数据变更信息中包含的变更数据的索引信息,更新数据库中的索引信息。
作为一种实施方式,该数据变更信息中也可以包含变更存储节点的节点信息,这样,可以根据数据变更信息中包含的变更存储节点的节点信息,更新数据库中的节点信息。
作为一种实施方式,该数据变更信息中可以不包含索引信息,也不包含节点信息,仅起到提示作用。存储节点在接收到该数据变更信息后,读取各存储节点存储数据的索引信息、及各存储节点的节点信息;将所读取到的索引信息与数据库中的索引信息进行对比,得到第一对比结果;将所读取到的节点信息与数据库中的节点信息进行对比,得到第二对比结果;根据第一对比结果及第二对比结果,更新数据库。
为了方便描述,下面内容将索引信息与节点信息统称为记录。
具体的,可以针对每台存储节点中的记录,将其(假设为A)与自身数据库的记录B进行对比,如果有一些内容A1仅存在于A不存在于B,则可以将A1***到自身数据库中。
如果有一些内容B1仅存在于B不存在于A,而且B1对应的存储节点的子节点中均不存在B1,则可以将B1从本地数据库中删除。
如果有一些内容B2仅存在于B不存在于A,而且B2对应的存储节点下不存在子节点,则可以认为A中数据丢失,这种情况下,可以对B2对应的存储节点中的记录进行更新。
在本实施方式中,数据库中还可以存储有每条索引信息对应的第一版本号、及每条节点信息对应的第二版本号,因此,可以根据所述第一对比结果,更新所述数据库中的索引信息及其对应的第一版本号;根据所述第二对比结果,更新所述数据库中的节点信息及其对应的第二版本号。
具体的,每条记录被更新一次,其对应的版本号可以加1。
由于存储了每条记录的版本号,在上述对B2对应的存储节点中的记录进行更新的过程中,可以在各台存储节点中的记录中,确定版本号最大的记录,也就是确定最新的记录,根据最新的记录,对B2对应的存储节点中的记录进行更新。另外,其他存储节点也可以根据该最新的记录更新自身数据库。
需要说明的是,如果存储节点出现故障后重新上线,也可以根据存储***中各存储节点的数据库,对自身数据库进行更新。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (16)
1.一种存储***,其特征在于,包括至少两台存储节点,每台存储节点中运行管理服务;所述至少两台存储节点中包含角色信息为管理者的第一存储节点、及角色信息不为管理者的第二存储节点;
所述第二存储节点,用于检测到所述第一存储节点出现故障后,通过各存储节点中运行的管理服务下的选举机制,判断自身角色信息是否为管理者;如果是,判断自身是否配置有访问所述存储***的地址信息,如果未配置,则获取并配置所述地址信息。
2.根据权利要求1所述的***,其特征在于,
所述第二存储节点,还用于通过所述选举机制,判断自身是否为临时管理者:
如果是,发起选举,根据每个选举参与者发送的投票信息,确定所述存储***中各存储节点的角色信息,并利用所述各存储节点中运行的管理服务,对所述各存储节点的角色信息进行标识,以使所述各存储节点根据所述标识确定自身角色信息;
如果否,判断自身是否为选举参与者,如果是选举参与者,在临时管理者发起选举后,将投票信息发送给临时管理者。
3.根据权利要求1所述的***,其特征在于,
所述第二存储节点,还用于在判断自身角色信息不为管理者的情况下,判断自身是否配置有访问所述存储***的地址信息,如果已配置,则删除所述地址信息。
4.根据权利要求2所述的***,其特征在于,
所述第二存储节点,还用于通过自身运行的管理服务,接收故障提示信息,所述故障提示信息表示所述第一存储节点出现故障;
所述第二存储节点,还用于选举结束后,根据自身运行的管理服务中标识的角色信息,判断自身角色信息是否管理者。
5.根据权利要求1所述的***,其特征在于,
所述第二存储节点,还用于通过自身运行的管理服务,接收数据变更信息;根据所述数据变更信息,更新自身存储的数据库。
6.根据权利要求5所述的***,其特征在于,所述数据库中存储有所述存储***中存储数据的索引信息、及所述存储***中各存储节点的节点信息;
所述第二存储节点,还用于根据所述数据变更信息中包含的变更数据的索引信息,更新所述数据库中的索引信息;根据所述数据变更信息中包含的变更存储节点的节点信息,更新所述数据库中的节点信息。
7.根据权利要求5所述的***,其特征在于,所述数据库中存储有所述存储***中存储数据的索引信息、及所述存储***中各存储节点的节点信息;
所述第二存储节点,还用于读取所述各存储节点存储数据的索引信息、及所述各存储节点的节点信息;将所读取到的索引信息与所述数据库中的索引信息进行对比,得到第一对比结果;将所读取到的节点信息与所述数据库中的节点信息进行对比,得到第二对比结果;根据所述第一对比结果及所述第二对比结果,更新所述数据库。
8.根据权利要求7所述的***,其特征在于,所述数据库中还存储有每条索引信息对应的第一版本号、及每条节点信息对应的第二版本号;
所述第二存储节点,还用于根据所述第一对比结果,更新所述数据库中的索引信息及其对应的第一版本号;根据所述第二对比结果,更新所述数据库中的节点信息及其对应的第二版本号。
9.一种存储节点管理方法,其特征在于,应用于存储***中的存储节点,所述存储***的各存储节点中运行管理服务;所述方法包括:
检测到角色信息为管理者的存储节点出现故障后,通过各存储节点中运行的管理服务下的选举机制,判断自身角色信息是否为管理者;
如果是,判断自身是否配置有访问所述存储***的地址信息,如果未配置,则获取并配置所述地址信息。
10.根据权利要求9所述的方法,其特征在于,检测到角色信息为管理者的存储节点出现故障之后,所述方法还包括:
通过所述选举机制,判断自身是否为临时管理者:
如果是,发起选举,根据每个选举参与者发送的投票信息,确定所述存储***中各存储节点的角色信息,并利用所述各存储节点中运行的管理服务,对所述各存储节点的角色信息进行标识;
如果否,判断自身是否为选举参与者,如果是选举参与者,在临时管理者发起选举后,将投票信息发送给临时管理者。
11.根据权利要求9所述的方法,其特征在于,在判断自身角色信息不为管理者的情况下,所述方法还包括:
判断自身是否配置有访问所述存储***的地址信息,如果已配置,则删除所述地址信息。
12.根据权利要求10所述的方法,其特征在于,检测到角色信息为管理者的存储节点出现故障的步骤包括:
通过自身运行的管理服务,接收故障提示信息,所述故障提示信息表示角色信息为管理者的存储节点出现故障;
所述通过各存储节点中运行的管理服务下的选举机制,判断自身角色信息是否管理者的步骤包括:
选举结束后,根据自身运行的管理服务中标识的角色信息,判断自身角色信息是否管理者。
13.根据权利要求9所述的方法,其特征在于,所述方法还包括:
通过自身运行的管理服务,接收数据变更信息;
根据所述数据变更信息,更新自身存储的数据库。
14.根据权利要求13所述的方法,其特征在于,所述数据库中存储有所述存储***中存储数据的索引信息、及所述存储***中各存储节点的节点信息;
在所述数据变更信息中包含变更数据的索引信息的情况下,所述更新自身存储的数据库的步骤包括:
根据所述数据变更信息中包含的变更数据的索引信息,更新所述数据库中的索引信息;
在所述数据变更信息中包含变更存储节点的节点信息的情况下,所述更新自身存储的数据库的步骤包括:
根据所述数据变更信息中包含的变更存储节点的节点信息,更新所述数据库中的节点信息。
15.根据权利要求13所述的方法,其特征在于,所述数据库中存储有所述存储***中存储数据的索引信息、及所述存储***中各存储节点的节点信息;所述更新自身存储的数据库的步骤包括:
读取所述各存储节点存储数据的索引信息、及所述各存储节点的节点信息;
将所读取到的索引信息与所述数据库中的索引信息进行对比,得到第一对比结果;
将所读取到的节点信息与所述数据库中的节点信息进行对比,得到第二对比结果;
根据所述第一对比结果及所述第二对比结果,更新所述数据库。
16.根据权利要求15所述的方法,其特征在于,所述数据库中还存储有每条索引信息对应的第一版本号、及每条节点信息对应的第二版本号;所述根据所述第一对比结果及所述第二对比结果,更新所述数据库的步骤包括:
根据所述第一对比结果,更新所述数据库中的索引信息及其对应的第一版本号;
根据所述第二对比结果,更新所述数据库中的节点信息及其对应的第二版本号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611109234.5A CN108156203B (zh) | 2016-12-06 | 2016-12-06 | 一种存储***及存储节点管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611109234.5A CN108156203B (zh) | 2016-12-06 | 2016-12-06 | 一种存储***及存储节点管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108156203A true CN108156203A (zh) | 2018-06-12 |
CN108156203B CN108156203B (zh) | 2021-01-08 |
Family
ID=62467661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611109234.5A Active CN108156203B (zh) | 2016-12-06 | 2016-12-06 | 一种存储***及存储节点管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108156203B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109167660A (zh) * | 2018-09-07 | 2019-01-08 | 腾讯科技(深圳)有限公司 | 选举代表节点设备方法、装置、计算机设备及存储介质 |
CN109189854A (zh) * | 2018-08-14 | 2019-01-11 | 新华三技术有限公司成都分公司 | 提供持续业务的方法及节点设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102929696A (zh) * | 2012-09-28 | 2013-02-13 | 北京搜狐新媒体信息技术有限公司 | 一种分布式***中心节点构建、提交、监控方法及装置 |
US20130117225A1 (en) * | 2011-11-03 | 2013-05-09 | Michael W. Dalton | Distributed storage medium management for heterogeneous storage media in high availability clusters |
CN103118130A (zh) * | 2013-02-25 | 2013-05-22 | 汉柏科技有限公司 | 一种用于分布式服务的集群管理方法和*** |
CN104753994A (zh) * | 2013-12-27 | 2015-07-01 | 杭州海康威视***技术有限公司 | 基于集群服务器***的数据同步方法及其装置 |
-
2016
- 2016-12-06 CN CN201611109234.5A patent/CN108156203B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130117225A1 (en) * | 2011-11-03 | 2013-05-09 | Michael W. Dalton | Distributed storage medium management for heterogeneous storage media in high availability clusters |
CN102929696A (zh) * | 2012-09-28 | 2013-02-13 | 北京搜狐新媒体信息技术有限公司 | 一种分布式***中心节点构建、提交、监控方法及装置 |
CN103118130A (zh) * | 2013-02-25 | 2013-05-22 | 汉柏科技有限公司 | 一种用于分布式服务的集群管理方法和*** |
CN104753994A (zh) * | 2013-12-27 | 2015-07-01 | 杭州海康威视***技术有限公司 | 基于集群服务器***的数据同步方法及其装置 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189854A (zh) * | 2018-08-14 | 2019-01-11 | 新华三技术有限公司成都分公司 | 提供持续业务的方法及节点设备 |
CN109189854B (zh) * | 2018-08-14 | 2021-06-08 | 新华三技术有限公司成都分公司 | 提供持续业务的方法及节点设备 |
CN109167660A (zh) * | 2018-09-07 | 2019-01-08 | 腾讯科技(深圳)有限公司 | 选举代表节点设备方法、装置、计算机设备及存储介质 |
WO2020048427A1 (zh) * | 2018-09-07 | 2020-03-12 | 腾讯科技(深圳)有限公司 | 选举代表节点设备方法、装置、计算机设备及存储介质 |
KR20210005678A (ko) * | 2018-09-07 | 2021-01-14 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 대표 노드 디바이스를 선출하기 위한 방법 및 장치, 및 컴퓨터 디바이스 및 저장 매체 |
CN109167660B (zh) * | 2018-09-07 | 2021-05-14 | 腾讯科技(深圳)有限公司 | 选举代表节点设备方法、装置、计算机设备及存储介质 |
JP2021526676A (ja) * | 2018-09-07 | 2021-10-07 | テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド | 代表ノード機器の選出方法並びにその、装置、コンピュータ機器及びコンピュータプログラム |
KR102339194B1 (ko) | 2018-09-07 | 2021-12-14 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 대표 노드 디바이스를 선출하기 위한 방법 및 장치, 및 컴퓨터 디바이스 및 저장 매체 |
JP7112518B2 (ja) | 2018-09-07 | 2022-08-03 | テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド | 代表ノード機器の選出方法並びにその、装置、コンピュータ機器及びコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
CN108156203B (zh) | 2021-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8775387B2 (en) | Methods and systems for validating accessibility and currency of replicated data | |
US20020112095A1 (en) | Method and apparatus for authorizing and reporting changes to device configurations | |
CN108932295A (zh) | 主数据库切换控制方法、装置、计算机设备和存储介质 | |
US20060236053A1 (en) | Memory device system, storage device, and log recording method | |
JP2005276177A (ja) | ネットワーク構成のチェックおよび修理のための方法、システムおよびプログラム | |
US9823997B2 (en) | Production resiliency testing system | |
CN107015885A (zh) | 主备用数据库切换时的服务提供方法、***和配置中心 | |
CN104104582B (zh) | 一种数据存储路径管理方法、客户端及服务器 | |
US10091060B2 (en) | Robust service deployment | |
CN108156203A (zh) | 一种存储***及存储节点管理方法 | |
CN107885859A (zh) | 一种文件个数配额的方法、装置和计算机可读存储介质 | |
CN112162761A (zh) | 自动化部署项目至公有云容器化平台的方法、***及设备 | |
CN106021027A (zh) | 终端数据处理方法和*** | |
JP6033189B2 (ja) | 通信装置、通信方法および通信プログラム | |
CN112748856A (zh) | 管理盘的方法、电子设备和计算机程序产品 | |
CN106470153B (zh) | 一种预防临时环路的方法和装置 | |
CN108459927A (zh) | 一种数据备份方法、装置和服务器 | |
CN107291575B (zh) | 一种数据中心故障时的处理方法和设备 | |
CN104750869A (zh) | 文件管理方法和装置 | |
CN108133034A (zh) | 共享存储访问方法及相关装置 | |
JP2009543238A (ja) | 情報及びメタデータを管理し記憶する装置及び方法 | |
US9973421B2 (en) | Method and device for connection management in a telecommunication network | |
US20190065065A1 (en) | Data protection method and storage server | |
CN106657227B (zh) | 一种变更订阅资源的方法及装置 | |
CN109614051A (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 |