著录项信息
专利名称 | 数据资源复制方法以及装置 |
申请号 | CN201510098052.1 | 申请日期 | 2015-03-05 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-06-03 | 公开/公告号 | CN104679611A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F11/14 | IPC分类号 | G;0;6;F;1;1;/;1;4;;;G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 浙江宇视科技有限公司 | 申请人地址 | 浙江省杭州市滨江区西兴街道江陵路88号10幢南座1-11层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 浙江宇视科技有限公司 | 当前权利人 | 浙江宇视科技有限公司 |
发明人 | 张敏 |
代理机构 | 北京博思佳知识产权代理有限公司 | 代理人 | 林祥 |
摘要
本发明提供一种数据资源复制方法以及装置,其中该方法包括:在分别向多个存储节点发送具有数据资源的写入请求后,若判断多个存储节点中的任意存储节点进行数据资源写入失败,将数据资源写入失败的存储节点作为故障节点;向管理节点发送查询消息;在接收到管理节点回复的应答消息后,根据管理节点回复的应答消息确定所述故障节点的关机状态为正常关机状态时,则不向备份节点发送所述写入请求,当确定所述关机状态为非正常关机状态时,将所述具有数据资源的写入请求发送至备份节点。避免了因关机的存储节点开机时,将写入备份节点的数据资源大量转移到开机的存储节点的情况,进而提高swift云存储集群的可靠性以及可用性。
数据资源复制方法以及装置\n技术领域\n[0001] 本发明涉及通信技术领域,尤其涉及数据资源复制方法以及装置。\n背景技术\n[0002] 由于Openstack Object Storage(Swift)具有强大的扩展性、冗余性和持久性,目前多基于Swift来完成使用普通硬件构建冗余的、可扩展的分布式云存储集群架构。\n[0003] 如图1所示,基于swift的云存储集群架构中包括管理节点(Manager)、接入节点(Proxy)以及存储节点(Storage)。由于Swift是采用多份(>=3)复制机制来提高数据资源的可靠性的技术,因此在访问swift云存储时,客户端将具有数据资源的写入请求发送到管理节点后,由管理节点将该写入请求分发到接入节点上,接入节点将该数据资源按照指定的副本数量写入多个存储节点上,来完成数据资源的存储。\n[0004] 现有技术中,在数据资源写入存储节点的过程中,如果对应的存储节点关机,接入节点会自动寻找handoff(后备)资源,即备份节点,来保证写入的数据资源按指定的副本数量写入,并向客户端返回写入成功。\n[0005] 但是,在云存储集群系统的维护操作中通常需要重启或关机存储节点,例如升级存储节点软件或更换存储节点硬件时。这种情况的存储节点可以很快正常开机。因此,在数据资源写入存储节点时若检测到存储节点关机,且关机的存储节点正是因为上述原因造成的正常关机,那么该关机的存储节点将很快恢复正常。此时,若将数据资源写入备份节点后,根据swift机制的标准还要将写入备份节点上的数据资源转移到恢复正常的存储节点,这样一来,在具有大规模的存储节点组建的swift云存储集群架构中,若大量的进行数据资源复制、转移,则会大幅降低swift云存储集群架构的可用性以及可靠性。\n发明内容\n[0006] 针对现有技术的缺陷,本发明提供了数据资源复制方法以及装置。\n[0007] 本发明提供一种数据资源复制方法,应用于基于Openstack Object Storage(swift)的云存储集群的Proxy接入节点,所述存储集群还包括Manager管理节点、Storage存储节点,其中,该方法包括:\n[0008] 在分别向多个存储节点发送具有数据资源的写入请求后,若判断多个存储节点中的任意存储节点进行数据资源写入失败,将数据资源写入失败的存储节点作为故障节点;\n[0009] 向管理节点发送查询消息,以查询所述故障节点的关机状态;\n[0010] 在接收到管理节点回复的应答消息后,根据管理节点回复的应答消息确定所述故障节点的关机状态为正常关机状态还是非正常关机状态,当确定所述关机状态为正常关机状态时,则不向备份节点发送所述写入请求,当确定所述关机状态为非正常关机状态时,将所述具有数据资源的写入请求发送至备份节点。\n[0011] 本发明还提供一种数据资源复制方法,应用于基于Openstack Object Storage(swift)的云存储集群的Manager管理节点,所述存储集群还包括Proxy接入节点、Storage存储节点,所述方法包括:\n[0012] 接收存储节点发送的关机消息,将所述存储节点的关机消息保存至全局关机信息中;\n[0013] 在接收到查询存储节点关机状态的查询消息后,获取所述查询消息中携带的存储节点的节点标识;\n[0014] 检查所述全局关机信息中是否有与所述存储节点的节点标识对应的存储节点的关机消息,并得到查询结果;\n[0015] 根据所述查询结果回复应答消息,以使发送所述查询消息的节点根据所述查询结果判断所述存储节点的关机状态。\n[0016] 本发明还提供一种数据资源复制方法,应用于基于Openstack Object Storage(swift)的云存储集群的Storage存储节点,所述存储集群还包括Proxy接入节点、Manager管理节点,所述方法包括:\n[0017] 定期向存储有自身保存的数据资源的副本的其他存储节点发送审核消息,以检查本地存储的数据资源与保存至其他存储节点的副本内容是否一致;\n[0018] 若在预设超时时间未接收到所述其他存储节点中任意存储节点回复的回应消息,将未回复回应消息的存储节点作为故障节点,并向管理节点发送查询消息,以查询所述故障节点的关机状态;\n[0019] 接收管理节点回复的应答消息,若根据所述应答消息确定所述故障节点为非正常关机状态,将所述本地存储的数据资源中与所述故障节点对应的数据资源写入备份节点,若根据所述应答消息确定所述故障节点为正常关机状态,则不会将所述本地存储的数据资源中与所述故障节点对应的数据资源写入备份节点。\n[0020] 本发明还提供一种数据资源复制装置,应用于基于Openstack Object Storage(swift)的云存储集群的Proxy接入节点,所述存储集群还包括Manager管理节点、Storage存储节点,所述装置包括:\n[0021] 判断单元,用于在分别向多个存储节点发送具有数据资源的写入请求后,若判断多个存储节点中的任意存储节点进行数据资源写入失败,将数据资源写入失败的存储节点作为故障节点;\n[0022] 发送单元,用于向管理节点发送查询消息,以查询所述故障节点的关机状态;\n[0023] 确定单元,用于在接收到管理节点回复的应答消息后,根据管理节点回复的应答消息确定所述故障节点的关机状态为正常关机状态还是非正常关机状态,当确定所述关机状态为正常关机状态时,则不向备份节点发送所述写入请求,当确定所述关机状态为非正常关机状态时,将所述具有数据资源的写入请求发送至备份节点。\n[0024] 本发明还提供一种数据资源复制装置,应用于基于Openstack Object Storage(swift)的云存储集群的Manager管理节点,所述存储集群还包括Proxy接入节点、Storage存储节点,所述装置包括:\n[0025] 保存单元,用于接收存储节点发送的关机消息,将所述存储节点的关机消息保存至全局关机信息中;\n[0026] 获取单元,用于在接收到查询存储节点关机状态的查询消息后,获取所述查询消息中携带的存储节点的节点标识;\n[0027] 检查单元,用于检查预存的全局关机信息中是否有与所述存储节点的节点标识对应的存储节点的关机消息,并得到查询结果;\n[0028] 发送单元,用于根据所述查询结果回复携带有节点状态标记的应答消息,以使发送所述查询消息的节点根据所述节点状态标记判断所述存储节点的关机状态。\n[0029] 本发明还提供一种数据资源复制装置,应用于基于Openstack Object Storage(swift)的云存储集群的Storage存储节点,所述存储集群还包括Proxy接入节点、Manager管理节点,所述装置包括:\n[0030] 审核单元,用于定期向存储有自身保存的数据资源的副本的其他存储节点发送审核消息,以检查本地存储的数据资源与保存至其他存储节点的副本内容是否一致;\n[0031] 发送单元,用于在预设超时时间未接收到所述其他存储节点中任意存储节点回复的回应消息,将未回复回应消息的存储节点作为故障节点,并向管理节点发送具有所述故障节点的查询消息,以查询所述故障节点的关机状态;\n[0032] 接收单元,用于接收管理节点回复的具有节点状态标记的应答消息,若根据所述节点状态标记确定所述故障节点为非正常关机状态,将本地存储的数据资源中与所述故障节点对应的数据资源写入备份节点,若根据所述应答消息确定所述故障节点为正常关机状态,则不会将所述本地存储的数据资源中与所述故障节点对应的数据资源写入备份节点。\n[0033] 本发明提供的数据资源复制方法以及装置,在分别向多个存储节点发送写入请求后,若存在数据资源写入失败的故障节点,查询该故障节点的关机状态,并在确定该故障节点的关机状态为正常关机状态时,向管理节点发送与故障节点对应的数据更新标记,以使所述故障节点在开机后获取所述数据资源,并使用所述数据资源同步更新其保存的数据资源。避免了因关机的存储节点开机时,将写入备份节点的数据资源大量转移到开机的存储节点的情况,进而提高swift云存储集群的可靠性以及可用性。\n附图说明\n[0034] 图1是本发明实施例中的基于swift的云存储集群组网环境示意图;\n[0035] 图2是本发明实施例中一种数据资源复制方法流程示意图;\n[0036] 图3是本发明实施例中另一种数据资源复制方法流程示意图;\n[0037] 图4是本发明实施例中另一种数据资源复制方法流程示意图;\n[0038] 图5是本发明实施例中一种数据资源复制装置的逻辑结构示意图;\n[0039] 图6是本发明实施例中另一种数据资源复制装置的逻辑结构示意图;\n[0040] 图7是本发明实施例中另一种数据资源复制装置的逻辑结构示意图;\n[0041] 图8是本发明实施例中数据资源复制装置所在管理节点、接入节点或存储节点的硬件架构示意图。\n具体实施方式\n[0042] 为使本申请的目的,技术方案及优点更加清楚明白,以下参照附图对本申请方案做进一步的详细说明。\n[0043] 为了解决现有技术中存在的问题,本发明提供了数据资源复制方法以及装置。\n[0044] 请参考图2,为本发明提供的数据资源复制方法的处理流程示意图,该数据资源复制方法可应用于基于Openstack Object Storage(swift)的云存储集群的Manager管理节点,所述存储集群还包括Proxy接入节点、Storage存储节点,该数据资源复制方法包括以下步骤:\n[0045] 步骤201,接收存储节点发送的关机消息,将所述存储节点的关机消息保存至全局关机信息中;\n[0046] 实际应用中,当客户端需将数据资源写入swift云存储集群时,swift云存储集群中的管理节点可以接收到客户端发送的携带有待写入数据资源的写入请求,并由管理节点将该写入请求分配给接入节点,以使接入节点将该写入请求发送至对应的多个存储节点进行数据资源的写入。\n[0047] 本发明实施例中的管理节点还用于管理各存储节点的开、关机消息,在有存储节点主动关机或主动重启时,管理节点可以接收到该存储节点的关机消息,并将该关机消息记录在本地的全局关机信息中。\n[0048] 其中,该关机消息中具有发送该关机消息的存储节点的节点标识,例如该存储节点的IP地址。该全局关机信息也可以存储于管理节点后台服务的全局数据结构中。\n[0049] 本发明实施例中还可以预先为管理节点设置一定时器,并事先为该定时器设置一定时时长,即预设容忍时间。\n[0050] 管理节点在将接收的关机消息存储至全局关机信息时,开启该定时器,以记录接收到该关机消息的时间。若在接收关机消息后的时间到达预设容忍时间之前,管理节点接收到关机的存储节点的开机消息,可以确定该存储节点已开机,那么将该存储节点从所述全局关机信息中删除。\n[0051] 若接收关机消息后的时间到达预设容忍时间时,仍未接收到该关机的存储节点的开机消息,可以确定该存储节点为非正常关机状态,即该存储节点故障,那么将该存储节点从全局关机信息中删除。同时,还可以向swift云存储集群管理员发送告警通知,提醒swift云存储集群管理员,该存储节点故障。\n[0052] 步骤202,在接收到查询存储节点关机状态的查询消息后,获取所述查询消息中携带的存储节点的节点标识;\n[0053] 本发明实施例中的管理节点还可以为其他节点提供查询服务。例如,接入节点或者存储节点可以向管理节点发送具有待查询的存储节点的节点标识的查询消息,以根据查询结果判断该待查询的存储节点是正常关机状态还是非正常关机状态。例如,该节点标识可以是存储节点的IP地址。\n[0054] 步骤203,检查预存的全局关机信息中是否有与所述存储节点的节点标识对应的存储节点的关机消息,并得到查询结果;\n[0055] 在管理节点接收到接入节点或者存储节点发送的具有待查询的存储节点IP地址的查询消息时,可以查找本地的全局关机信息中是否存在与该存储节点IP地址对应的关机消息,并得到查询结果。\n[0056] 其中,该查询结果为与查询消息中携带的待查询的存储节点IP地址对应的节点状态标记,该节点状态标记用于表征管理节点的全局关机信息中是否具有该待查询的存储节点的关机消息。若管理节点的全局关机信息中具有该待查询的存储节点的关机消息,那么该节点状态标记可以是关机标记(例如,节点状态标记为1);否则该节点状态标记可以为空(例如,该节点状态标记为null),或者是其他用于表征非正常关机的标记(例如,该节点状态标记为0)。\n[0057] 步骤204,根据所述查询结果回复携带有节点状态标记的应答消息,以使发送所述查询消息的节点根据所述节点状态标记判断所述存储节点的关机状态。\n[0058] 之后,向发送查询消息的节点发送具有查询结果的应答消息,以使发送查询消息的节点根据该查询结果判断该待查询的存储节点的关机状态。\n[0059] 例如,本发明实施例中,若该查询结果中节点状态标记为关机标记,可以说明所查询的存储节点为正常关机状态,并未发生故障;若该查询结果中节点状态标记为空,或为其他用于表征非正常关机的标记,可以说明查询的存储节点为非正常关机状态,即查询节点故障。\n[0060] 进一步地,在接入节点向存储节点发送写入请求后,若根据上述流程确定该存储节点为正常关机状态,管理节点还可以接收到接入节点发送的具有数据更新标记的标记消息。该标记消息中还包括待进行标记的存储节点的IP地址,管理节点获取该数据更新标记以及存储节点的IP地址后,可根据该IP地址查找到本地的全局关机信息中与其对应的关机消息,管理节点根据该标记消息对该关机消息添加数据更新标记。在后续接收到添加了数据更新标记的存储节点发送的开机消息时,通过向该存储节点回复具有该数据更新标记的更新消息,以通知该存储节点更新其存储的数据资源。\n[0061] 请参考图3,为本发明提供的数据资源复制方法的处理流程示意图,该数据资源复制方法可应用于基于Openstack Object Storage(swift)的云存储集群的Proxy接入节点,所述存储集群还包括Storage存储节点、Manager管理节点,该数据资源复制方法包括以下步骤:\n[0062] 步骤301,在分别向多个存储节点发送具有数据资源的写入请求后,若判断多个存储节点中的任意存储节点进行数据资源写入失败,将数据资源写入失败的存储节点作为故障节点;\n[0063] 当客户端需将数据资源写入swift云存储集群时,接入节点接收经由管理节点进行负载均衡后转发的具有数据资源的写入请求,并由接入节点根据预先指定的数据资源存储副本数,利用数据资源的名称和写入的逻辑空间名根据哈希算法计算出其在swift云存储集群中对应的多个物理存储节点,该多个物理存储节点的数量与该指定的数据资源存储副本数一致。之后,将接收的写入请求中的数据资源按其副本数生成对应数量的写入请求分别写到相等数量的物理存储节点上。\n[0064] 例如,指定的数据资源存储副本数为3,那么接入节点接收前端业务写入请求时,自动生成3份包含数据资源的写入请求分别发送至对应的3个存储节点,收到请求的3个存储节点将资源数据写入到对应的存储位置,并向接入节点返回处理结果。\n[0065] 如果,该计算出的3个存储节点运行正常,那么各存储节点则会将该数据资源成功写入到自身对应的位置后,并向接入节点回复写入成功的回应消息。接入节点在接收到该3个存储节点回复的写入成功的回应消息后,可以确定本次的数据资源写入成功,并向客户端返回写入成功的消息。\n[0066] 通常情况下,各存储节点均可以长时间的持续正常运行。但是,存储节点也会出现故障的情况,例如:\n[0067] 1、在需要对存储节点进行软件的更换或升级时,则需要对swift云存储集群中的存储节点逐一进行主动关机或主动重启的操作,此时,存储节点则会出现短时间的关机状态。该种情况通常是本发明上述的正常关机状态。\n[0068] 2、在存储节点出现软件功能损坏或死机等情况时,存储节点可能并未关机,但是相对于其他节点来说,由于接收不到该存储节点回应的消息,也认为该存储节点处于关机状态。该种情况通常是本发明上述的非正常关机状态。\n[0069] 因此,在向3个存储节点分别发送具有数据资源的写入请求后,如果有任意存储节点因上述情况处于关机状态,接入节点则不能接收到处于关机状态的存储节点回复的回应消息。\n[0070] 若接入节点在向3个存储节点发送具有数据资源的写入请求,并到达预设的超时时长后,未接收到3个存储节点中任意一个存储节点回复的回应消息,可以确定该未回复回应消息的存储节点为关机状态,并将该存储节点作为故障节点。\n[0071] 步骤302,向管理节点发送查询消息,以查询所述故障节点的关机状态;\n[0072] 本发明实施例中的管理节点保存有根据收集swift云存储集群中各存储节点的开、关机消息而建立的全局关机信息,该全局关机信息中包括正常关机的存储节点,即上述情况1中的存储节点。\n[0073] 接入节点可以将故障节点的IP地址作为故障节点的节点标识,携带在查询消息中发送至管理节点,以查询该全局关机信息中是否具有该故障节点的关机消息,并以此来判断该故障节点的关机状态。\n[0074] 步骤303,在接收到管理节点回复的应答消息后,根据管理节点回复的应答消息确定所述故障节点的关机状态为正常关机状态还是非正常关机状态,当确定所述关机状态为正常关机状态时,则不向备份节点发送所述写入请求,当确定所述关机状态为非正常关机状态时,将所述具有数据资源的写入请求发送至备份节点。\n[0075] 其中,该节点状态标记用于表征管理节点的全局关机信息中是否具有该故障节点的关机消息,若有,该节点状态标记可以是关机标记(例如,节点状态标记为1);否则该节点状态标记可以为空(例如,该节点状态标记为null),或者是其他用于表征非正常关机的标记(例如,该节点状态标记为0)。\n[0076] 接入节点在接收管理节点回复的具有节点状态标记的应答消息后,若该节点状态标记为关机标记,可以确定该故障节点为情况1中的正常关机状态。此时,为了避免因故障节点为短时间关机,在重启后需将写入备份节点上的数据资源再转移到恢复正常的存储节点的情况,本发明实施例并不重新选取备份节点并写入数据资源,而是向管理节点发送具有与该故障节点对应的标记消息,以使管理节点在节点数据库中将该故障节点添加数据更新标记,以记录该故障节点有数据资源需要更新。同时,向客户端发送写入成功的消息,以通知客户端本次数据资源写入已完成。这样一来,在故障节点开机并向管理节点发送开机消息后,若接收到管理节点发送的具有数据更新标记的标记消息,即可说明在故障节点关机过程中的数据资源有更新,那么故障节点可以自动将该数据资源写入自身指定的位置,避免了在写入数据资源时,因存储节点的正常关机,而将数据资源大量写入备份节点,并在存储节点开机时,再将写入备份节点的数据资源转移到开机的存储节点的情况,进而提高swift云存储集群的可靠性以及可用性。\n[0077] 然而,接入节点在接收管理节点回复的具有节点状态标记的应答消息后,若该节点状态标记为空或其他用于表征非正常关机的标记,说明管理节点的全局关机信息中并未有该故障节点的关机消息,可以确定该故障节点为上述情况2中的非正常关机状态。此时,接入节点可以选取出备份节点,并将具有数据资源的写入请求发送至该备份节点,以使备份节点将该数据资源写入备份节点的指定位置。接入节点在接收到该备份节点回复的写入成功消息后,确定该数据资源写入成功,并向客户端发送写入成功的消息,以通知客户端本次数据资源写入已完成。同时,还可以向swift云存储集群管理员发送告警通知,提醒swift云存储集群管理员,该存储节点可能故障。\n[0078] 请参考图4,为本发明提供的数据资源复制方法的处理流程示意图,该数据资源复制方法可应用基于Openstack Object Storage(swift)的云存储集群的Storage存储节点,所述存储集群还包括Proxy接入节点、Manager管理节点,该数据资源复制方法包括以下步骤:\n[0079] 步骤401,定期向存储有自身保存的数据资源的副本的其他存储节点发送审核消息,以检查本地存储的数据资源与保存至其他存储节点的副本内容是否一致;\n[0080] 本发明实施例中,存储节点在接收到的接入节点发送的具有数据资源的写入请求,并将数据资源存储后,还可以通过定期向存储有与自身存储的数据资源一致的存储节点发送审核消息,来审核本地存储的数据资源与存储至其他存储节点的数据资源副本的内容是否一致。\n[0081] 如果在本地存储节点向其他存储节点发送了审核消息后,接收到该其他存储节点回复的携带有校验和的回应消息,本地存储节点可以根据该校验和来校验该其他存储节点存储的数据资源副本与本地存储节点的数据资源内容是否一致,若一致,确定此次数据资源审核通过,则不进行处理,若不一致,确定此次数据资源审核未通过,则修复本地存储节点存储的数据资源。\n[0082] 步骤402,若在预设超时时间未接收到所述其他存储节点中任意存储节点回复的回应消息,将未回复回应消息的存储节点作为故障节点,并向管理节点发送查询消息,以查询所述故障节点的关机状态;\n[0083] 如果在本地存储节点向其他存储节点发送了审核消息,并到达预设的超时时长后,仍未接收到其他存储节点中任意存储节点回复的回应消息,可以确定未回复回应消息的存储节点为关机状态,并将其作为故障节点。\n[0084] 之后,本地存储节点可以将故障节点的IP地址作为故障节点的节点标识,携带在查询消息中发送至管理节点,以查询该全局关机信息中是否具有该故障节点的关机消息,并以此来判断该故障节点的关机状态。\n[0085] 步骤403,接收管理节点回复的具有节点状态标记的应答消息,若根据所述节点状态标记确定所述故障节点为非正常关机状态,将本地存储的数据资源中与所述故障节点对应的数据资源写入备份节点,若根据所述应答消息确定所述故障节点为正常关机状态,则不会将所述本地存储的数据资源中与所述故障节点对应的数据资源写入备份节点。\n[0086] 存储节点在接收到管理节点回复的具有节点状态标记的应答消息后,可以根据该节点状态标记来获知故障节点是正常关机状态还是非正常关机状态。\n[0087] 若管理节点的全局关机信息中具有该故障节点的关机消息,该应答消息中的节点状态标记可以是关机标记(例如,节点状态标记为1),可以确定该故障节点为本发明上述的情况1中的正常关机状态。此时,为了避免将存入该正常关机状态的故障节点中的数据资源再转移到备份节点的情况发生,本发明实施例并不会如现有技术中重新选取备份节点并写入数据资源,而是默认为该次数据资源审核通过。由此,可有效避免了现有技术中因存储节点正常关机,而将数据资源大量转移至备份节点的步骤,进而提高swift云存储集群的可靠性以及可用性。\n[0088] 然而,若管理节点的全局关机信息中不具有该故障节点的关机消息,该节点状态标记可以为空(例如,该节点状态标记为null),或者是其他用于表征非正常关机的标记(例如,该节点状态标记为0)。存储节点在根据节点状态标记确定该故障节点为本发明上述的情况2中的非正常关机状态,例如该故障节点已故障时,可以重新选取出备份节点,并将本地存储节点上与故障节点对应的数据资源副本写入备份节点,以保证swift云存储集群中多份复制机制的运行正常。\n[0089] 进一步地,本发明实施例中的存储节点在开机以及正常关机时可以分别向管理节点发送开、关机消息,以通知管理节点更新其全局关机信息。若本地存储节点为故障节点,在本地存储节点开机时,可向管理节点发送开机消息,若接收到管理节点发送的具有数据更新标记的更新消息,说明在本地存储节点关机过程中,存储的数据资源有更新,即,有新的数据资源要写入本地存储节点。那么本地存储节点可以根据该数据更新标记获取对应的数据资源,并写入本地存储节点。\n[0090] 本发明还提供了一种数据资源复制装置,图5为该数据资源复制装置的结构示意图,该装置可以应用在基于Openstack Object Storage(swift)的云存储集群的Manager管理节点,所述存储集群还包括Proxy接入节点、Storage存储节点,该数据资源复制装置可以包括保存单元501、获取单元502、检查单元503以及发送单元504,其中:\n[0091] 保存单元501,用于接收存储节点发送的关机消息,将所述存储节点的关机消息保存至全局关机信息中;\n[0092] 获取单元502,用于在接收到查询存储节点关机状态的查询消息后,获取所述查询消息中携带的存储节点的节点标识;\n[0093] 检查单元503,用于检查预存的全局关机信息中是否有与所述存储节点的节点标识对应的存储节点的关机消息,并得到查询结果;\n[0094] 发送单元504,用于根据所述查询结果回复携带有节点状态标记的应答消息,以使发送所述查询消息的节点根据所述节点状态标记判断所述存储节点的关机状态。\n[0095] 进一步地,所述保存单元501还用于记录接收到所述存储节点的关机消息的时间;\n[0096] 进一步地,所述装置还包括删除单元505,用于当接收所述关机消息后的时间到达预设容忍时间之前,接收到所述存储节点的开机消息,确定所述存储节点已开机,将所述存储节点从所述全局关机信息中删除;当接收所述关机消息后的时间到达预设容忍时间时,未接收到所述存储节点的开机消息,确定所述存储节点为非正常关机状态,将所述存储节点从所述全局关机信息中删除。\n[0097] 进一步地,所述获取单元502还可以用于若接收到接入节点发送的标记消息,获取所述标记消息中的存储节点的节点标识以及数据更新标记;所述检查单元502还用于查找本地的全局关机信息中与所述存储节点的节点标识对应的关机消息;\n[0098] 进一步地,所述装置还包括标记单元506用于对所述对应的关机消息添加数据更新标记;所述发送单元503还用于在接收到具有数据更新标记的存储节点发送的开机消息时,回复具有所述数据更新标记的更新消息,以通知所述存储节点更新其存储的数据资源。\n[0099] 另外,本发明应用于管理节点的数据资源复制装置在具体的处理流程中可以与上述应用于管理节点的数据资源复制方法的处理流程一致,在此不再赘述。\n[0100] 本发明还提供了一种数据资源复制装置,图6为该数据资源复制装置的结构示意图,该装置可以应用在基于Openstack Object Storage(swift)的云存储集群的Proxy接入节点,所述存储集群还包括Manager管理节点、Storage存储节点,该数据资源复制装置可以包括判断单元601、发送单元602以及确定单元603,其中:\n[0101] 判断单元601,用于在分别向多个存储节点发送具有数据资源的写入请求后,若判断多个存储节点中的任意存储节点进行数据资源写入失败,将数据资源写入失败的存储节点作为故障节点;\n[0102] 发送单元602,用于向管理节点发送查询消息,以查询所述故障节点的关机状态;\n[0103] 确定单元603,用于在接收到管理节点回复的应答消息后,根据管理节点回复的应答消息确定所述故障节点的关机状态为正常关机状态还是非正常关机状态,当确定所述关机状态为正常关机状态时,则不向备份节点发送所述写入请求,当确定所述关机状态为非正常关机状态时,将所述具有数据资源的写入请求发送至备份节点。\n[0104] 进一步地,所述确定单元603还用于当确定所述关机状态为正常关机状态时,向所述管理节点发送携带有与所述故障节点对应的数据更新标记的标记消息,以使所述故障节点在开机后获取所述数据资源,并使用所述数据资源同步更新其保存的数据资源。\n[0105] 另外,本发明应用于接入节点的数据资源复制装置在具体的处理流程中可以与上述应用于接入节点的数据资源复制方法的处理流程一致,在此不再赘述。\n[0106] 本发明还提供了一种数据资源复制装置,图7为该数据资源复制装置的结构示意图,该装置可以应用在基于Openstack Object Storage(swift)的云存储集群的Storage存储节点,所述存储集群还包括Proxy接入节点、Manager管理节点,该数据资源复制装置可以包括审核单元701、发送单元702以及接收单元703,其中:\n[0107] 审核单元701,用于定期向存储有自身保存的数据资源的副本的其他存储节点发送审核消息,以检查本地存储的数据资源与保存至其他存储节点的副本内容是否一致;\n[0108] 发送单元702,用于在预设超时时间未接收到所述其他存储节点中任意存储节点回复的回应消息,将未回复回应消息的存储节点作为故障节点,并向管理节点发送具有所述故障节点的查询消息;\n[0109] 接收单元703,用于接收管理节点回复的具有节点状态标记的应答消息,若根据所述节点状态标记确定所述故障节点为非正常关机状态,将本地存储的数据资源中与所述故障节点对应的数据资源写入备份节点,若根据所述应答消息确定所述故障节点为正常关机状态,则不会将所述本地存储的数据资源中与所述故障节点对应的数据资源写入备份节点。\n[0110] 进一步地,所述发送单元702还可以用于在确定存储节点正常关机时,向管理节点发送关机消息,所述关机消息携带所述存储节点的节点标识,以供所述管理节点存储所述关机消息;若所述本地存储节点为故障节点,在所述本地存储节点开机后,向管理节点发送开机消息;\n[0111] 进一步地,所述装置还可以包括更新单元704,用于在接收到管理节点发送的具有数据更新标记的更新消息时,根据所述数据更新标记更新本地存储节点存储的数据资源。\n[0112] 另外,本发明应用于本地存储节点的数据资源复制装置在具体的处理流程中可以与上述用于本地存储节点的数据资源复制方法的处理流程一致,在此不再赘述。\n[0113] 上述装置可以通过软件实现,也可以通过硬件实现,为示例方便,本发明数据资源复制装置所在的管理节点、接入节点以及存储节点的硬件架构示意图均可参考图8所示,其基本硬件环境包括中央处理器CPU、转发芯片、存储器以及其他硬件,其中存储器件中包括机器可读指令,CPU读取并执行机器可读指令执行图5、6以及7中各单元的功能。\n[0114] 从以上各种方法和装置的实施方式中可以看出,本发明提供的数据资源复制方法以及装置,在分别向多个存储节点发送写入请求后,若存在数据资源写入失败的故障节点,查询该故障节点的关机状态,并在确定该故障节点的关机状态为正常关机状态时,向管理节点发送与故障节点对应的数据更新标记,以使故障节点在开机后将所述数据资源写入所述故障节点。避免了在写入数据资源时,因存储节点的正常关机,而将数据资源大量写入备份节点,并在存储节点开机时,再将写入备份节点的数据资源转移到开机的存储节点的情况。还有效避免了在审核数据资源时,由于存储节点的正常关机,而将数据资源大量转移至备份节点的情况,进而提高swift云存储集群的可靠性以及可用性。\n[0115] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
法律信息
- 2018-03-09
- 2015-08-12
实质审查的生效
IPC(主分类): G06F 11/14
专利申请号: 201510098052.1
申请日: 2015.03.05
- 2015-06-03
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有引用任何外部专利数据! |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |