一种存储数据的方法及集群管理节点技术

技术编号:12900458 阅读:67 留言:0更新日期:2016-02-24 10:54
本发明专利技术实施例公开了一种存储数据的方法及集群管理节点,所述方法包括:集群管理节点接收各个存储节点上报的节点信息并存储至节点信息表;根据所述节点信息表中的节点信息划分硬盘分组,对于冗余配比为N+M的集群,为每个区域选择的硬盘数量小于M;若某个区域发生故障,则将故障区域内的存储节点在所述节点信息表中的状态更新为故障状态;将更新后的节点信息表中的内容以及硬盘分组的信息同步至正常存储节点以及客户端代理节点,以便所述客户端代理节点在接收到数据读写的业务请求时,与所述硬盘分组中的正常存储节点交互完成数据读写的业务。采用本发明专利技术,可提升数据存储以及数据读写业务的可靠性。

【技术实现步骤摘要】

本专利技术涉及存储
,尤其涉及一种存储数据的方法及集群管理节点
技术介绍
横向扩展(Scale-out,NAS)的存储系统具有灵活的扩展性,随着用户对容量、性能的要求逐步提升,集群规模可以从几个节点扩展为几百个节点。集群部署完成后,会先把硬盘分组,文件写入时,通过哈希(hash)算法选择文件写入的硬盘分组。以冗余配比为2+1为例,即每个硬盘分组包括3块硬盘,数据写入时,两块硬盘存放原始数据,一块硬盘存放校验和,当分组中一块硬盘故障后,会为该分组重新选一块硬盘,然后通过纠删码(ErasureCode)算法,根据剩下两块硬盘的内容恢复出故障硬盘的数据。通常一个硬盘分组在一个节点只选择一块硬盘,当任一节点故障时,不影响数据读写的业务:对于读数据的业务,如果原始数据在故障节点,可根据校验和恢复出原始数据;对于写数据的业务,只将数据写入正常的节点。当故障节点恢复正常后,会根据Erasure Code算法计算出故障期间缺失的数据,并写入恢复正常后的故障节点。为了保证各硬盘占用率均衡,一块硬盘一般属于多个硬盘分组。虽然以上的现有技术可以确保节点故障时数据读写的业务正常进行,例如当冗余配比为4+2时,任何2个节点故障都不会影响数据读写的业务,但是对于跨区域的集群即集群分布在多个区域(通常一个区域对应一个机房),任一区域的节点全部故障时,数据读写的业务将无法正常进行,因此也就不能实现区域级可靠性。
技术实现思路
本专利技术实施例提供一种存储数据的方法及集群管理节点,以解决跨区域的集群中某个区域的节点全部故障时数据读写的业务无法正常进行的问题。本专利技术第一方面提供了一种存储数据的方法,包括:集群管理节点接收各个存储节点上报的节点信息并存储至节点信息表,所述节点信息中包含节点标识、节点的硬盘列表及节点所属区域;所述集群管理节点根据所述节点信息表中的节点信息划分硬盘分组,对于冗余配比为N+M的集群,为每个区域选择的硬盘数量小于M,其中,N为用于存储原始数据的硬盘数量,Μ为用于存储校验和的硬盘数量,且N和Μ均为大于1的整数;若某个区域发生故障,则所述集群管理节点将故障区域内的存储节点在所述节点信息表中的状态更新为故障状态;所述集群管理节点将更新后的节点信息表中的内容以及硬盘分组的信息同步至正常存储节点以及客户端代理节点,以便所述客户端代理节点在接收到数据读写的业务请求时,与所述硬盘分组中的正常存储节点交互完成数据读写的业务。结合第一方面的实现方式,在第一方面第一种可能的实现方式中,所述集群管理节点根据所述节点信息表中的节点信息划分硬盘分组,对于冗余配比为Ν+Μ的集群,为每个区域选择的硬盘数量小于M,还包括:根据所述冗余配比和所述集群中的区域数量,为所述集群中的区域平均选择硬盘数量。结合第一方面的第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述各个存储节点上报的节点信息通过心跳信息上报。结合第一方面、或第一方面第一种至第二种任一可能的实现方式,在第一方面第三种可能的实现方式中,若所述客户端代理节点接收到客户端的写数据业务请求,则选择硬盘分组,在向该硬盘分组中的正常存储节点发送写数据消息并进行写数据之后,向元数据管理节点写元数据。结合第一方面、或第一方面第一种至第二种任一可能的实现方式,在第一方面第四种可能的实现方式中,若所述客户端代理节点接收到客户端的读数据业务请求,则向元数据管理节点读元数据,并根据所述元数据得到对应文件所在的硬盘分组,向该硬盘分组中的正常存储节点发送读数据消息读数据,并在根据正常存储节点中读到的冗余数据恢复出原始数据之后,将所述原始数据返回给所述客户端。本专利技术第二方面提供了一种集群管理节点,包括:接收单元,用于接收各个存储节点上报的节点信息并存储至节点信息表,所述节点信息中包含节点标识、节点的硬盘列表及节点所属区域;分组单元,用于根据所述节点信息表中的节点信息划分硬盘分组,对于冗余配比为N+M的集群,为每个区域选择的硬盘数量小于M,其中,N为用于存储原始数据的硬盘数量,Μ为用于存储校验和的硬盘数量,且N和Μ均为大于1的整数;更新单元,用于若某个区域发生故障,则将故障区域内的存储节点在所述节点信息表中的状态更新为故障状态;发送单元,用于将更新后的节点信息表中的内容以及硬盘分组的信息同步至正常存储节点以及客户端代理节点,以便所述客户端代理节点在接收到数据读写的业务请求时,与选择的硬盘分组中的正常存储节点交互完成数据读写的业务。结合第二方面的实现方式,在第二方面第一种可能的实现方式中,所述分组单元还用于:根据所述冗余配比和所述集群中的区域数量,为所述集群中的区域平均选择硬盘数量。结合第二方面的第一种可能的实现方式,在第二方面第二种可能的实现方式中,所述各个存储节点上报的节点信息通过心跳信息上报。结合第二方面、或第二方面第一种至第二种任一可能的实现方式,在第二方面第三种可能的实现方式中,若所述客户端代理节点接收到客户端的写数据业务请求,则选择硬盘分组,在向该硬盘分组中的正常存储节点发送写数据消息并进行写数据之后,向元数据管理节点写元数据。结合第二方面、或第二方面第一种至第二种任一可能的实现方式,在第二方面第四种可能的实现方式中,若所述客户端代理节点接收到客户端的读数据业务请求,则向元数据管理节点读元数据,并根据所述元数据得到对应文件所在的硬盘分组,向该硬盘分组中的正常存储节点发送读数据消息读数据,并在根据正常存储节点中读到的冗余数据恢复出原始数据之后,将所述原始数据返回给所述客户端。实施本专利技术实施例,具有如下有益效果:通过在划分硬盘分组时,对于冗余配比为N+M的集群,为每个区域选择的硬盘数量小于M,使得某个区域故障导致其包含的存储节点全部故障时,可以更新故障存储节点的状态,并在进行数据读写的业务时,仅通过CA节点和正常存储节点的交互便能够确保数据读写的业务正常进行,从而提成了数据存储的可靠性以及数据读写业务的可靠性,并将这种可靠性扩大至区域级别,利于存储系统在容量扩大后的正常工作,提供更加大容量且稳定的存储性能。【附图说明】为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术存储数据的方法的第一实施例的流程示意图;图2为本专利技术存储数据的方法的第二实施例的流程示意图;图3为本专利技术存储数据的方法的第三实施例的流程示意图图4为本专利技术集群管理节点的第一实施例的组成示意图;图5为本专利技术集群管理节点的第二实施例的组成示意图。【具体实施方式】下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1,为本专利技术存储数据的方法的第一实施例的流程示意图,在本实施例中,所述方法包括:S101,集群管理节点接收各个存储节点上报的节点信息并存储至节点信息表。其中,所述节当前第1页1 2 3&n本文档来自技高网...

【技术保护点】
一种存储数据的方法,其特征在于,包括:集群管理节点接收各个存储节点上报的节点信息并存储至节点信息表,所述节点信息中包含节点标识、节点的硬盘列表及节点所属区域;所述集群管理节点根据所述节点信息表中的节点信息划分硬盘分组,对于冗余配比为N+M的集群,为每个区域选择的硬盘数量小于M,其中,N为用于存储原始数据的硬盘数量,M为用于存储校验和的硬盘数量,且N和M均为大于1的整数;若某个区域发生故障,则所述集群管理节点将故障区域内的存储节点在所述节点信息表中的状态更新为故障状态;所述集群管理节点将更新后的节点信息表中的内容以及硬盘分组的信息同步至正常存储节点以及客户端代理节点,以便所述客户端代理节点在接收到数据读写的业务请求时,与所述硬盘分组中的正常存储节点交互完成数据读写的业务。

【技术特征摘要】

【专利技术属性】
技术研发人员:汪正洋
申请(专利权)人:成都华为技术有限公司
类型:发明
国别省市:四川;51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1