基于缓存集群的缓存方法和系统技术方案

技术编号:13286333 阅读:59 留言:0更新日期:2016-07-09 02:25
本申请提供了一种基于缓存集群的缓存方法,包括:缓存客户端确定待写入数据对应的缓存分区的分区号;根据分区号向视图服务节点查询待写入数据对应的缓存分区的主节点信息;接收视图服务节点返回的待写入数据对应的缓存分区的主节点信息,并根据主节点信息向待写入数据对应的缓存分区的主节点发送写请求,写请求携带待写入数据;待写入数据对应的缓存分区的主节点根据写请求,将待写入数据写入本地写回缓存;从视图服务节点获取待写入数据对应的缓存分区的各个备节点信息,并将待写入数据复制到待写入数据对应的缓存分区的各个备节点。该方法可以提升缓存规模集群的可靠性。

【技术实现步骤摘要】

本专利技术涉及存储领域,尤其涉及基于缓存集群的缓存方法和系统
技术介绍
在现有的数据中心与存储产品中,闪存(flash)等高速非易失性缓存设备被广泛的用来加速后台共享存储的访问速度。缓存的写入方式可分为透写(write-through)和写回(write-back)两种方式。透写(write-through)指的是在写入缓存设备的同时也写入共享存储设备一份。其优点是操作简单,缓存设备和共享存储设备中数据保持一致,不易丢失数据;其缺点是访问数据速度较慢,整体的读写速度受共享存储设备的影响大,提升系统的每秒的输入输出数(inputoutputpersecond,IOPS)较难。回写(write-back)指的是在写入缓存设备时并不同步写入共享存储设备中,数据在写入缓存设备后即可向上层业务返回写成功,同时通过后台管理在适当的时候写入共享存储设备中。其优点是读写速度快,即IOPS高,其缺点是操作管理复杂,当缓存设备故障时易造成数据不一致。由于对于数据中心与存储产品中,产品的IOPS是一项非常重要的指标参数,因此写回缓存设备被广泛使用在各类存储产品中。为了克服写回缓存设备容易造成的数据不一致问题,须在写回缓存设备中增加保证数据一致性(dataconsistency)的机制。现有技术中,采用双节点互为镜像的方式,将一个写回缓存设备的写回缓存镜像到另一个节点。主要方式为:当某个写回缓存设备接受写业务时,>其同时拷贝该请求至相应的镜像写回缓存设备,在镜像写回缓存设备中同时执行该写操作,从而保证互为镜像的两个写回缓存设备的数据一致。从而当其中某个写回缓存设备故障时,可以从相应的镜像写回缓存设备中恢复并获得数据,从而保证数据的一致性。由上可见,双写回缓存设备互为镜像的方式可以在一定程度上解决写回缓存的两副本一致性问题,但是这种方式只支持2个写回缓存设备互为镜像,无法满足大规模集群的可靠性需求。
技术实现思路
本专利技术实施例提供基于缓存集群的缓存方法和系统,可以满足大规模集群的可靠性需求。一方面,提供了一种基于缓存集群的缓存方法,所述缓存集群包括视图服务节点和多个存储节点,每个存储节点包含至少一个写回缓存设备,每个所述写回缓存设备包括多个子分区,多个所述子分区构成一个缓存分区,每个所述缓存分区包含一个主子分区和至少一个备子分区,所述视图服务节点用于记录每个所述缓存分区的视图信息,所述视图信息包括每个所述缓存分区包含各个子分区所在的缓存设备的节点信息,其中,第一缓存分区的主子分区所在的存储节点为所述第一缓存分区的主节点,所述第一缓存分区的各个备子分区所在的存储节点为所述第一缓存分区的备节点,所述第一缓存分区为所述缓存集群中的任一缓存分区,所述方法包括:缓存客户端确定待写入数据对应的缓存分区的分区号;所述缓存客户端根据所述待写入数据对应的缓存分区的分区号向所述视图服务节点查询所述待写入数据对应的缓存分区的主节点信息;所述缓存客户端接收所述视图服务节点返回的所述待写入数据对应的缓存分区的主节点信息,并根据所述待写入数据对应的缓存分区的主节点信息向所述待写入数据对应的缓存分区的主节点发送写请求,所述写请求携带所述待写入数据;所述待写入数据对应的缓存分区的主节点根据所述写请求,将所述待写入数据写入本地写回缓存;所述待写入数据对应的缓存分区的主节点从所述视图服务节点获取所述待写入数据对应的缓存分区的各个备节点信息,并将所述待写入数据复制到所述待写入数据对应的缓存分区的各个备节点。由上可见,本专利技术实施例中通过将写回缓存设备划分为多个子分区,由多个子分区构成一个缓存分区,当缓存客户端要写入数据时,首先确定待写入数据对应的缓存分区的分区号,有利于实现负载均衡;并且,视图服务节点记录每个缓存分区的视图信息,视图信息包括每个缓存分区包含各个子分区所在的缓存设备的节点信息,便于实现缓存客户端将待写入数据将数据备份到多个缓存设备上,提高了缓存方法的可靠性。在一种可能的设计中,所述方法还包括:所述待写入数据对应的缓存分区的主节点确认所述待写入数据对应的缓存分区的各个备节点均将所述待写入数据复制完成;所述待写入数据对应的缓存分区的主节点向所述缓存客户端发送写响应;所述缓存客户端接收所述待写入数据对应的缓存分区的主节点发送的写响应,确认缓存完成。在一种可能的设计中,所述待写入数据对应的缓存分区的主节点根据所述写请求,将所述待写入数据写入本地写回缓存之前,所述方法还包括:所述待写入数据对应的缓存分区的主节点向所述视图服务节点查询所述待写入数据对应的缓存分区的视图信息;所述待写入数据对应的缓存分区的主节点根据所述待写入数据对应的缓存分区的视图信息,确认自身为所述待写入数据对应的缓存分区的主节点。由上可见,所述待写入数据对应的缓存分区的主节点在接收到所述缓存客户端发送的写请求后,不是直接将所述待写入数据写入本地写回缓存,而是先确认自身为所述待写入数据对应的缓存分区的主节点,从而可以提高执行操作的准确性,避免当缓存客户端发送写请求后,主节点发生了切换引起的误操作。在一种可能的设计中,所述视图信息还包括所述待写入数据对应的缓存分区的主分区切换次数;所述待写入数据对应的缓存分区的主节点根据所述待写入数据对应的缓存分区的视图信息,确认自身为所述待写入数据对应的缓存分区的主节点之后,所述方法还包括:验证所述写请求中携带的所述待写入数据对应的缓存分区的主分区切换次数与所述待写入数据对应的缓存分区的视图信息中携带的的主分区切换次数一致。由上可见,视图服务节点中的视图信息可能会发生更新,通过验证所述写请求中携带的所述待写入数据对应的缓存分区的主分区切换次数与所述待写入数据对应的缓存分区的视图信息中携带的的主分区切换次数一致,可以确保主节点中存储最新的视图信息,当验证结果不一致时,触发主节点从视图服务节点获取最新的视图信息。在一种可能的设计中,所述待写入数据对应的缓存分区的主节点根据所述写请求,将所述待写入数据写入本地写回缓存,包括:所述待写入数据对应的缓存分区的主节点根据所述写请求,生成所述待写入数据的操作项,所述操作项中包括操作序列号和操作参数;根据所述操作项中包括的操作序列号和操作参数,将所述待写入数据写入本地写回缓存。由上可见,主节点根据写请求生成相应的操作项,然后根据操作项包括的操作序本文档来自技高网...
基于缓存集群的缓存方法和系统

【技术保护点】
一种基于缓存集群的缓存方法,其特征在于,所述缓存集群包括视图服务节点和多个存储节点,每个存储节点包含至少一个写回缓存设备,每个所述写回缓存设备包括多个子分区,多个所述子分区构成一个缓存分区,每个所述缓存分区包含一个主子分区和至少一个备子分区,所述视图服务节点用于记录每个所述缓存分区的视图信息,所述视图信息包括每个所述缓存分区包含各个子分区所在的缓存设备的节点信息,其中,第一缓存分区的主子分区所在的存储节点为所述第一缓存分区的主节点,所述第一缓存分区的各个备子分区所在的存储节点为所述第一缓存分区的备节点,所述第一缓存分区为所述缓存集群中的任一缓存分区,所述方法包括:缓存客户端确定待写入数据对应的缓存分区的分区号;所述缓存客户端根据所述待写入数据对应的缓存分区的分区号向所述视图服务节点查询所述待写入数据对应的缓存分区的主节点信息;所述缓存客户端接收所述视图服务节点返回的所述待写入数据对应的缓存分区的主节点信息,并根据所述待写入数据对应的缓存分区的主节点信息向所述待写入数据对应的缓存分区的主节点发送写请求,所述写请求携带所述待写入数据;所述待写入数据对应的缓存分区的主节点根据所述写请求,将所述待写入数据写入本地写回缓存;所述待写入数据对应的缓存分区的主节点从所述视图服务节点获取所述待写入数据对应的缓存分区的各个备节点信息,并将所述待写入数据复制到所述待写入数据对应的缓存分区的各个备节点。...

【技术特征摘要】
1.一种基于缓存集群的缓存方法,其特征在于,所述缓存集群包括视图
服务节点和多个存储节点,每个存储节点包含至少一个写回缓存设备,每个
所述写回缓存设备包括多个子分区,多个所述子分区构成一个缓存分区,每
个所述缓存分区包含一个主子分区和至少一个备子分区,所述视图服务节点
用于记录每个所述缓存分区的视图信息,所述视图信息包括每个所述缓存分
区包含各个子分区所在的缓存设备的节点信息,其中,第一缓存分区的主子
分区所在的存储节点为所述第一缓存分区的主节点,所述第一缓存分区的各
个备子分区所在的存储节点为所述第一缓存分区的备节点,所述第一缓存分
区为所述缓存集群中的任一缓存分区,所述方法包括:
缓存客户端确定待写入数据对应的缓存分区的分区号;
所述缓存客户端根据所述待写入数据对应的缓存分区的分区号向所述视
图服务节点查询所述待写入数据对应的缓存分区的主节点信息;
所述缓存客户端接收所述视图服务节点返回的所述待写入数据对应的缓
存分区的主节点信息,并根据所述待写入数据对应的缓存分区的主节点信息
向所述待写入数据对应的缓存分区的主节点发送写请求,所述写请求携带所
述待写入数据;
所述待写入数据对应的缓存分区的主节点根据所述写请求,将所述待写入
数据写入本地写回缓存;
所述待写入数据对应的缓存分区的主节点从所述视图服务节点获取所述
待写入数据对应的缓存分区的各个备节点信息,并将所述待写入数据复制到
所述待写入数据对应的缓存分区的各个备节点。
2.如权利要求1所述的方法,其特征在于,所述待写入数据对应的缓存
分区的主节点根据所述写请求,将所述待写入数据写入本地写回缓存之前,
所述方法还包括:
所述待写入数据对应的缓存分区的主节点向所述视图服务节点查询所述

\t待写入数据对应的缓存分区的视图信息;
所述待写入数据对应的缓存分区的主节点根据所述待写入数据对应的缓
存分区的视图信息,确认自身为所述待写入数据对应的缓存分区的主节点。
3.如权利要求2所述的方法,其特征在于,所述视图信息还包括所述待
写入数据对应的缓存分区的主分区切换次数;
所述待写入数据对应的缓存分区的主节点根据所述待写入数据对应的缓
存分区的视图信息,确认自身为所述待写入数据对应的缓存分区的主节点之
后,所述方法还包括:
验证所述写请求中携带的所述待写入数据对应的缓存分区的主分区切换
次数与所述待写入数据对应的缓存分区的视图信息中携带的主分区切换次数
一致。
4.如权利要求1所述的方法,其特征在于,所述待写入数据对应的缓存
分区的主节点根据所述写请求,将所述待写入数据写入本地写回缓存,包括:
所述待写入数据对应的缓存分区的主节点根据所述写请求,生成所述待写
入数据的操作项,所述操作项中包括操作序列号和操作参数;
根据所述操作项中包括的操作序列号和操作参数,将所述待写入数据写入
本地写回缓存。
5.如权利要求4所述的方法,其特征在于,所述将所述待写入数据复制
到所述待写入数据对应的缓存分区的各个备节点,包括:
所述待写入数据对应的缓存分区的主节点将所述写请求和所述操作项发
送给所述待写入数据对应的缓存分区的各个备节点;
所述待写入数据对应的缓存分区的各个备节点向所述视图服务节点查询
所述待写入数据对应的缓存分区的视图信息;
所述待写入数据对应的缓存分区的各个备节点接收所述视图服务节点返
回的所述待写入数据对应的缓存分区的视图信息,所述视图信息中还包括所
述待写入数据对应的缓存分区的主分区切换次数;
所述待写入数据对应的缓存分区的各个备节点验证所述写请求中携带的
所述待写入数据对应的缓存分区的主分区切换次数与所述视图信息中包括的
所述待写入数据对应的缓存分区的主分区切换次数一致;
所述待写入数据对应的缓存分区的各个备节点验证所述操作项中的操作
序列号与预期的操作序列号一致;
所述待写入数据对应的缓存分区的各个备节点根据所述操作项中包括的
操作序列号和操作参数,将数据写入本地写回缓存。
6.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述视图服务节点确认第二缓存分区的当前主节点发生故障,所述视图
服务节点为所述第二缓存分区选择新的主节点并更新所述第二缓存分区的视
图信息并将更新后的视图信息推送给所述第二缓存分区的主节点和各个备节
点;
所述第二缓存分区选择的新的主节点根据所述更新后的视图信息确定其...

【专利技术属性】
技术研发人员:刘力协孔伟康
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:东;44

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

1