用于存储系统的数据存储方法和装置的制造方法_3

文档序号:9581837阅读:来源:国知局
据中与第一数据不一致的部分作为待同步数据。可选地,第二数据和第一数据中可以包含数据的生成时间,在确定待同步数据之前,可以根据第二数据和第一数据的生成时间确定出待同步的数据量,将第二数据中生成时间最晚的待同步的数据量的数据作为待同步数据。
[0057]在本实施例的一些可选的实现方式中,上述用于存储系统的数据存储方法还可以包括:获取新的主存储节点和当前从存储节点的操作日志。则可以通过如下方式比对新的主存储节点的第一数据和当前从存储节点上报的第二数据,从而确定待同步数据:比对新的主存储节点的操作日志和当前从存储节点的操作日志,确定出增量操作日志,之后根据增量操作日志确定待同步数据。
[0058]在进一步的实现方式中,获取新的主存储节点和当前从存储节点的操作日志可以包括获取新的主存储节点和当前从存储节点的操作日志中消息的位置标识信息。所述的消息的位置标识信息可以用于记录当前最后一条操作日志的位置信息,可例如为操作日志中的偏移(offset)。上述确定增量操作日志的方法具体可以如下执行:比对新的主存储节点的操作日志中最后一条消息的第一位置标识信息与当前从存储节点的操作日志中最后一条消息的第二位置标识信息,根据第一位置标识信息和第二位置标识信息确定增量操作日志。其中,最后一条消息为与当前时间最接近的一条消息。可以根据新的主存储节点的偏移和当前从存储节点的偏移的不一致,来确定当前从存储节点响应于客户端的数据服务请求而生成的增量数据对应的增量操作日志。可选地,在每个存储节点(包括主存储节点和从存储节点)的存储区中可以开辟一段预设数据缓冲区(buf),用于存放操作日志中的最后一条消息及其位置标识信息。在比对最后一条消息的位置标识信息时,可以从预设数据缓冲区提取该位置标识信息进行比对。
[0059]通过比对新的主存储节点和当前从存储节点的预设数据缓冲区中的所保存的操作日志的最后一条消息,可以确定出当前从存储节点相对于新的主存储节点的增量操作日志,从而可以根据增量操作日志确定待同步数据。
[0060]步骤205,将待同步数据写入新的主存储节点。
[0061]在本实施例中,用于存储系统的数据存储方法运行于其上的电子设备可以将待同步数据写入新的主存储节点,从而使新的主存储节点存储所有客户端所请求的数据。由于在切换主存储节点之后,只需将当前从存储节点上接收到的新的数据写入新的主存储节点,减少了新的主存储节点所需要同步的数据,缩短了存储系统无法提供读服务的时间。
[0062]在本实施例的一些可选的实现方式中,用于存储系统的数据存储方法还可以包括:向客户端发出应答消息。在确定新的主存储节点写入了待同步数据之后,主存储节点可以向客户端发出读写请求的应答包,其中可以包括数据写入成功的消息,或者客户端所请求读取的数据。
[0063]在本实施例的一些可选的实现方式中,若用于存储系统的数据存储方法运行于从存储节点或其他电子设备中,新的主存储节点可以将应答消息发送给该从存储节点或该其他电子设备,由该从存储节点或该其他电子设备将应答消息转发给客户端。
[0064]可选地,在发送应答消息之前,新的主存储节点可以比对客户端数据服务请求的操作日志与当前备选从存储节点的操作日志,若当前备选从存储节点的操作日志中已包含客户端数据服务请求的操作日志,则表明当前备选从存储节点已存储了该数据服务请求对应的数据。这时,新的主存储节点可以发出应答消息。可选地,在比对客户端数据服务请求的操作日志与当前备选从存储节点的操作日志时,可以比对客户端数据服务请求生成的偏移与当前备选从存储节点的偏移,若客户端数据服务请求生成的偏移小于当前备选从存储节点的偏移,则表明当前备选从存储节点的操作日志中已包含客户端数据服务请求的操作日志,当前备选从存储节点已存储了该数据服务请求对应的数据,主存储节点可以对客户端的数据服务请求进行应答。
[0065]继续参见图3,图3示出了图2所示的用于存储系统的数据存储方法的数据交互示意图。如图3所示,主存储节点为数据分配从存储节点后,将数据写入对应的从存储节点,同时将主存储节点的所有数据同步至备选从存储节点。在主存储节点故障时,备选从存储节点作为新的主存储节点,接管存储系统的存储服务。这时,如果客户端向从存储节点I发出写请求,从存储节点I可以将客户端要求写入的数据上报新的主存储节点;如果客户端向从存储节点2发出读请求,从存储节点2可以向主存储节点发送客户端所读取的数据的地址以及读取时间,主存储节点可以将对应的操作日志存储在数据缓冲区中。
[0066]本申请的上述实施例通过将主存储节点的数据同步至备选从存储节点,在将备选主存储节点切换为新的主存储节点时,无需拉取存储系统的所有数据,只需对增量数据进行同步,有效减小了主存储节点切换时所需同步的数据量,缩短了存储系统无法提供服务的时间,有效提升了存储系统的稳定性。
[0067]进一步参考图4,其示出了用于存储系统的数据存储方法的又一个实施例的流程400。该用于存储系统的数据存储方法的流程400,包括以下步骤:
[0068]步骤401,将主存储节点的第一数据同步至至少一个备选从存储节点。
[0069]本实施例的存储系统可以为提供分布式高速缓冲存储服务的系统。为了提高系统的读写能力,一般采用一个主存储节点和多个从存储节点的存储架构。其中主存储节点可以存储所有数据的索引,从存储节点可以按主存储节点中的数据索引存储对应的数据。为了实现在故障时切换主存储节点,这种存储架构中可以包含一个故障处理模块。所述的故障处理模块可以设置于该用于存储系统的数据存储方法运行于其上的电子设备(如图1所示的服务器)中。
[0070]主存储节点的第一数据可以包括存储系统中已写入的所有数据、数据的索引以及其他的辅助数据(例如用于管理从存储节点状态的管理数据、用于记录存储操作的操作数据)等。故障处理模块可以将主存储节点的第一数据同步至至少一个备选从存储节点。同步的一种方式可以为:在接收到数据存储请求时,主存储节点可以为请求存储的数据分配从存储节点,并更新已写入的数据、数据索引和辅助数据,故障处理模块将更新后的已写入的数据、数据索引和辅助数据进行备份,并发送至备选从存储节点。
[0071 ] 在本实施例的一些可选的实现方式中,可以比对主存储节点和备选从存储节点中的数据,根据比对结果将备选从存储节点中未存储的数据写入备选从存储节点。可选地,主存储节点和各从存储节点可以记录当前的操作日志,则可以通过比对主存储节点和备选从存储节点的操作日志来进行主存储节点和从存储节点的数据比对。
[0072]步骤402,为备选从存储节点设定优先级。
[0073]在本实施例中,如果备选从存储节点有多个,可以为每个备选从存储节点设定优先级。可选地,可以为多个备选从存储节点设定互不相同的优先级。可以按照多种方式为备选从存储节点设定优先级,例如可以统计备选从存储节点的与主存储节点进行数据交互的频率,将数据交互的频率的排序作为对应备选从存储节点的优先级排序;还可以将备选从存储节点的缓存命中率的排序作为优先级的排序。
[0074]在本实施例的一些可选的实现方式中,在为备选从存储节点设定优先级之前,还可以从存储系统的从存储节点中确定出备选从存储节点。可以随机选取一定数量的从存储节点作为备选从存储节点,也可以将满足预定条件的从存储节点作为备选从存储节点。该预定条件可以包括存储效率高于预定效率值、数据存取速度快于预定速度值以及存储空间大于预定空间量等。在设定备选从存储节点的优先级时,也可以按照存储效率、数据存取速度、存储空间等的排序来对优先级进行排序。在一些可选的实现方式中,可以分别为存储效率、数据存取速度、存储空间设定权重,将归一化的存储效率值、数据存取速度值、存储空间值进行加权求和,得到备选从存储节点的优先级得分,根据得分的大小确定优先级。
[0075]步骤403,响应于主存储节点故障,按照切换优先级选择一个备选从存储节点切换为新的主存储节点。
[0076]在本实施例中,用于存储系统的数据存储方法运行于其上的电子设备可以实时地监测主存储节点的状态。当主存储节点故障时,上述故障处理模块可以根据备选从存储节点的优先级依次判断备选从存储节点是否可用,将优先级最高且可用的备选从存储节点切换为新的主存储节点。
[0077]步骤404,响应于客户端发出的服务请求,将当前从存储节点接收到的第二数据上报新的主存储节点。
[0078]其中,服务请求可以为写入数据的请求。主存储节点可以根据从存储节点的存储状态(例如空间占用率,缓存命中率等)来为该服务请求分配从存储节点。分配的从存储节
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1