基于raid0存储的mpp数据库集群副本实现方法

文档序号:9667376阅读:623来源:国知局
基于raid 0 存储的mpp 数据库集群副本实现方法
【技术领域】
[0001] 本发明属于数据库技术领域,主要涉及一种基于RAID0存储的MPP数据库集群副 本实现方法。
【背景技术】
[0002] 在大数据时代,企业生产的数据规模越来越大;同时,企业借助数据进行商务分析 的深度和复杂度的要求也越来越高。传统单一服务器模式的数据库在处理规模、计算强度 等方面遇到前所未有的挑战。在大型服务器采购、维护、升级高成本的情况下,基于硬件的、 完全不共享体系的MPP数据库集群成为企业首选。
[0003] 如图1所示,MPP数据库集群通过高速网络将多个数据库服务器联合起来组成集 群,可以实现综合性能优于单个大型服务器。MPP数据库集群依据并行计算原理,将大规模 数据预先进行切片处理,并将数据分片存储到各个节点服务器中,其充分利用每个节点服 务器的计算能力,使得计算靠近数据,实现就地处理。在进行数据访问时,可以将任务并行 的分散到多个节点服务器上,待每个节点上计算完成后,将各自部分的结果汇总并得到最 终的结果。其充分利用每个节点服务器的能力,使得集群系统具有线性扩展能力和无与伦 比的处理性能。
[0004] 数据分片技术可以充分利用各个节点硬件资源,提高系统并行处理能力,但也会 带来单点故障问题。随着企业的业务增长,数据库集群系统处理的数据规模越来越大,当 存储容量到达PB级别时,系统中的存储节点可能成百上千。数据规模的增长、访问负载的 增大,使得节点故障成为一种常态,数据可靠性面临严峻挑战;同时,在数据日益成为企业 的核心财产时,如何保证数据的安全、实现容灾也是企业日益关注的问题。因此,需要寻找 解决方案实现系统的高可用,现有的做法是使用HA技术为各个节点服务器做双机。如图2 所示,高可用HA方案采用HA硬件冗余方案,集群需要为N数量的节点配置Μ数量的备机 (Ν彡Μ)。虽然ΗΑ技术可以在一定程度上提高系统的可用性,但仍存在诸多问题:
[0005] (1)无法充分利用硬件资源。ΗΑ技术要求一台服务器处于工作状态,另一台服务 器处于备用状态,不参与工作。并且需要二者配置相同的硬、软件,保证发生故障切换后,备 机不会成为短板。由于整个系统存在相当大比例数量的服务器处于常备状态,严重浪费硬 件资源,增加企业的采购成本。
[0006] (2)数据安全性低。使用ΗΑ技术,主、备服务器通过磁盘阵列共享一份数据,数 据的安全系数低、丢失风险高。在存储层面,虽然磁盘阵列自身带有冗余功能,可以在一定 程度上提高存储安全性;但由于过于透明,集群系统无法灵活制定冗余数据的访问、维护策 略。
[0007] (3)故障节点切换实时性差。ΗΑ的故障切换有一定的时间延迟,较理想的延迟是 控制在秒级别。在系统崩溃、网络故障等比较复杂的情况下,切换可能需要更长的时间延 迟,达到分钟级别。当然,ΜΡΡ类型的应用对系统恢复时间并没有过于严苛的要求,但企业 仍然无法接受较长的延迟。
[0008] 此外,通过多机热备、硬件IPMI等一些手段可以降低问题带来的影响,但始终无 法从根本上解决;并且,随着数据、节点规模的增长,问题会愈发严重。

【发明内容】

[0009] 本发明的目的在于克服现有技术的不足,提供一种设计合理、安全可靠且使用方 便的基于RAID0存储的MPP数据库集群副本实现方法。
[0010] 本发明解决现有的技术问题是采取以下技术方案实现的:
[0011] -种基于RAID0存储的MPP数据库集群副本实现方法,包括副本分布算法模块、 副本状态维护模块、访问重定向模块、数据一致性维护模块并通过以下步骤实现:
[0012] 步骤1、使用副本分布算法模块进行数据库存储部署;
[0013] 步骤2、使用副本分布算法模块计算副本存储位置;
[0014] 步骤3、使用副本分布算法模块创建副本存储实体;
[0015] 步骤4、使用副本状态维护模块进行副本元信息维护;
[0016] 步骤5、使用访问重定向模块进行副本数据访问;
[0017] 步骤6、使用数据一致性维护模块进行副本数据一致性维护。
[0018] 而且,所述步骤1采用RIAD0方式的磁盘阵列或本地磁盘,并在MPP集群的系统 层面进行数据冗余。
[0019] 而且,所述步骤2采用Hash算法中的冲突处理机制进行副本位置计算,并采用如 下两个不同的步长处理Hash冲突:
[0020] (1)在第一个步长为数据的分片数目时,即在MPP集群的节点数目足够多的情况 下,将副本散列在与本数据所有的分片非相关的节点上;
[0021] (2)在第二个步长为1时,即在使用分片数目做步长选择失败的情况下,将不同数 据分片的副本之间进行重叠存储。
[0022] 而且,所述步骤3的具体创建方法为:数据分片的副本采用基本表存储数据;副本 同原数据分片使用相同的表名,且使用不同的模式名。
[0023] 而且,所述副本元信息包括副本的节点映射信息、状态信息,该副本的节点映射信 息类同分片的映射信息,该副本的节点状态信息包括负载信息和有效性信息,负载信息记 录的是副本所在节点服务器的CPU和内存负载状况,有效性信息包括在线、离线、失效三种 状态。
[0024] 而且,所述步骤5进行副本数据的访问包括查询操作和修改操作,所述查询操作 方法为:根据副本的状态信息,进行过滤故障和均衡负载,将查询导向最合适的位置;所述 修改操作方法为:当某一个数据分片的副本都没有更新成功时,则本次更新失败,否则更新 成功,并将出错节点标识为失效。
[0025] 而且,所述步骤6进行副本数据一致性维护包括手动维护和自动维护。
[0026] 而且,所述的手动维护方法为:用户使用对外接口进行维护,如果分片的有效副本 数目超过默认副本数目,则将多余的副本删除,只保留默认副本数目或者用户指定的副本 数目;如果某个分片的有效副本数目少于默认副本数目,则增加副本至默认副本数目或用 户指定的副本数目。
[0027] 而且,所述的自动维护方法为:判断有效副本的数目,当有效副本数目不在最小副 本数目阈值和最大副本数目阈值范围内时进行维护;在自动维护时,如果失效副本为数据 失效,则截断原副本表数据;如果失效副本为结构失效,则新建副本表,并通过同步数据、更 新元信息方法对失效副本进行处理。
[0028] 本发明的优点和积极效果是:
[0029] 1、本发明为MPP数据库集群引入系统层面的数据冗余,通过牺牲一定的存储空间 来换取数据安全,提高了系统可用性。当出现硬件故障或副本数据被破坏(失效)时,系统 自动将对该数据分片的访问导向另一个可用副本,实现对外不间断服务。
[0030] 2、本发明能够优化并发访问,根据副本的负载信息,将访问导向最合适的副本,解 决单一数据并发访问"过热"问题,提高系统的吞吐性能。由于在MPP集群系统层面实现了 数据冗余,因此,在存储层面,数据安全不再是关注重点,可以使用存储性能最高的RAID0 方式,充分发挥数据"条带化"的高10性能。
[0031] 3、本发明能够自动完成对副本的存储、管理、状态、数据维护,上述维护操作对外 完全"透明",不会对已有项目的移植带来额外影响,同时也可以方便地实现多数据中心之 间的数据镜像备份。
【附图说明】
[0032] 图1是现有MPP数据库集群体系结构图;
[0033] 图2是高可用HA方案结构图;
[0034] 图3是本发明的MPP集群副本架构图;
[0035] 图4是副本的元信息组织结构图;
[0036] 图5是本发明的副本数据一致性维护流程图。
【具体实施方式】
[0037] 以下结合附图对本发明实施例做进一步详述:
[0038] -种基于RAID0存储的MPP数据库集群副本实现方法,是在MPP集群数据分片基 础上,为每一个分片创建一定数量的副本,按照一定的算法规则散列在存储系统中,并实现 对副本数据的同步修改,并严格保证数据一致。本发明主要包括副本分布算法模块、副本状 态维护模块、访问重定向模块、数据一致性维护模块。副本对外表现"透明",所有功能模块 都将由系统自行驱动,用户仍然使用原有的系统API接口访问。本发明提供了一些必要的 对外接口,供用户设置一些指导性推荐策略,例如副本数目。本发明的基本架构参见图3。
[0039] -种基于RAID0存储的MPP数据库集群副本实现方法,包括以下步骤:
[0040] 步骤1、使用副本分布算法模块进行数据库存储部署。
[0041] 本发明采用RIAD0方式的磁盘阵列或本地存储。RAID0将数据进行"条带化"分 布存储,其充分利用总线的带宽,可以显著提高磁盘整体存取性能。但是,由于RAID0不提 供数据冗余,数据的安全性最差。本发明在MPP集群的系统层面进行了数据冗余,实现系统 自身对数据的安全保障,可以对存储设备自身层面的数据安全保障技术不做要求。
[0042] 步骤2、使用副本分布算法模块计算副本存储位置
[0043] 副本存放位置选择的基本策略是尽量降低副本出现于同一节点服务器的几率,提 高并发访问性能。在本步骤中,选择算法核心为Hash算法,借助于Hash算法中的冲突处理
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1