一种基于实时应用集群的元数据集群设计方法
【专利摘要】本发明提供一种基于实时应用集群的元数据集群设计方法,其具体设计过程为:初始部署:首先进行元数据集群的初始配置,由若干元数据节点组成元数据集群,生成配置文件并同步至各个元数据节点,分别在各元数据节点上完成元数据存储的初始化;启动集群时顺序启动各个元数据节点,配置文件中编号最小的元数据节点自动取得领导权,并引导整个元数据集群建立全局一致性缓存和共享锁;故障恢复;增加新的元数据节点。该一种基于实时应用集群的元数据集群设计方法和现有技术相比,实现集群文件系统中元数据集群的横向扩展,有效的解决了大规模集群文件系统中的元数据性能瓶颈,实用性强,易于推广。
【专利说明】一种基于实时应用集群的元数据集群设计方法
【技术领域】
[0001]本发明涉及计算机集群【技术领域】,更具体地说是基于实时应用集群的元数据集群设计方法。
【背景技术】
[0002]随着网络应用的迅速发展,网络信息数据量越来越大,PB级别的海量数据存储变得越来越重要。传统意义的文件系统已不能满足现有应用的大容量、高可靠性、高性能等要求,为满足这些新要求,新的集群存储系统应用得到了广泛重视。
[0003]在传统的集群文件系统中,元数据性能往往会成为系统的性能瓶颈。早期的集群文件系统有且仅有一个元数据节点负责元数据的存储、访问和处理。在技术更先进的集群文件系统中,存在多个元数据节点同时提供服务,实现了元数据访问性能的横向扩展。然而一般的元数据集群普遍基于子树分区技术对元数据进行逻辑分割,不同的元数据访问由不同的元数据节点提供服务。基于子树分区技术的元数据分割机制带来的问题是产生了元数据的数据隔离,进而导致了跨越子树分区的元数据操作需要进行二段式提交,每个元数据节点的高可用机制设计也较为复杂,在实际工程化的过程中困难重重,同时对于元数据总量并不高而元数据访问热度超高的业务无法取得良好的效果。子树分区技术按照分区的时机又可以细分为静态子树分区与动态子树分区两种。
[0004]基于静态子树分区的元数据集群技术较为成熟,其元数据分割是静态分割的,一般由系统管理员制定好元数据静态分割的规则,系统配置后可实现静态的元数据分割。静态子树分区的主要缺点是无法应对的数据访问热点经常发生变化的应用场景,由于元数据的分割服务,导致系统只能对于数据热点分割较为明显的应用产生良好的效果。在高可用性方面,元数据集群的节点之间不是相互备份的关系,需要各自保证自身的可用性,任一节点宕机均会导致系统的部分或全部不可用。
[0005]基于动态子树分区的元数据集群技术较少见到企业级的工程实现,其算法能够实现根据元数据访问的热点动态的进行元数据的分割。其对元数据访问热点的响应往往存在滞后,无法适应于元数据访问热点经常变化的场景,且目前未有可行的工程实现。
[0006]对于元数据绝对数量不是特别巨大,元数据访问热度经常变化的场景,以上方案均无法取得良好的效果,且在高可用层面均存在导致系统可用性降低的问题。
[0007]针对这一情况,本专利设计并实现了一种基于实时应用集群的元数据集群机制。
【发明内容】
[0008]本发明的技术任务是解决现有技术的不足,提供一种基于实时应用集群的元数据集群设计方法。
[0009]本发明的技术方案是按以下方式实现的,该一种基于实时应用集群的元数据集群设计方法,其具体设计过程为:
一、初始部署:首先进行元数据集群的初始配置,由若干元数据节点组成元数据集群,生成配置文件并同步至各个元数据节点,分别在各元数据节点上完成元数据存储的初始化;启动集群时顺序启动各个元数据节点,配置文件中编号最小的元数据节点自动取得领导权,并引导整个元数据集群建立全局一致性缓存和共享锁。
[0010]二、故障恢复:元数据集群在正常运行时,当有一个元数据节点发生宕机,则该元数据节点自动从集群中下线,剩余的元数据节点继续提供服务;该节点修复后启动的过程中,节点加入集群后,取得集群最新的日志序号,自动从其他节点中请求数据变更日志,待所有未完成的日志处理完成后,该节点加入到集群中,继续提供元数据服务。
[0011]三、增加新的元数据节点:在元数据集群正常运行时,可增加新的元数据处理节点,即新的元数据节点启动后主动申请加入集群,同时该节点进入数据初始填充流程,直接从集群其他节点并行的请求系统全部日志和数据,并进行日志回放,日志回放完成后,元数据节点加入集群,并提供元数据服务。
[0012]所述元数据集群是指由若干元数据节点通过高速网络建立全局一致性缓存和共享锁构建的实时应用集群,其中所有元数据节点均提供全局命名空间的元数据服务,整个集群元数据性能横向扩展,所有元数据节点均处于Active状态。
[0013]所述全局一致性缓存实现元数据节点间的缓存同步:系统元数据存储于每个节点的存储设备上,当某个元数据被访问时,接收这个元数据请求的元数据节点会将此元数据的信息加载到全局一致性缓存中,后续的访问均可从此全局一致性缓存中获得加速。
[0014]所述步骤一中的共享锁机制实现用户访问元数据时在整个元数据集群中进行全局加锁,其使用租约机制,每个锁由某一个元数据节点持有,该元数据节点在整个集群中定期广播该租约的续期消息,当该节点发生故障时,则无法在广播租约续期消息,集群中其余节点在需要获取该锁时根据租约过期情况选择重新加锁。
[0015]本发明与现有技术相比所产生的有益效果是:
本发明的一种基于实时应用集群的元数据集群设计方法使用实时应用集群技术构建元数据集群,实现集群文件系统中元数据集群的横向扩展,在低延迟高速互联网络的支持下,本发明在元数据集群的节点数小于或等于8个时,具有相对于单节点近似线性的性能提升,有效的解决了大规模集群文件系统中的元数据性能瓶颈,实用性强,易于推广。
【专利附图】
【附图说明】
[0016]附图1为本发明中元数据集群的示意图。
【具体实施方式】
[0017]下面结合附图对本发明的一种基于实时应用集群的元数据集群设计方法作以下详细说明。
[0018]如附图1所示,本发明提出了一种基于实时应用集群的元数据集群设计方法,其具体设计过程为:
一、初始部署:首先进行元数据集群的初始配置,由若干元数据节点组成元数据集群,生成配置文件并同步至各个元数据节点,分别在各元数据节点上完成元数据存储的初始化;启动集群时顺序启动各个元数据节点,配置文件中编号最小的元数据节点自动取得领导权,并引导整个元数据集群建立全局一致性缓存和共享锁。[0019]二、故障恢复:元数据集群在正常运行时,当有一个元数据节点发生宕机,则该元数据节点自动从集群中下线,剩余的元数据节点继续提供服务;该节点修复后启动的过程中,节点加入集群后,取得集群最新的日志序号,自动从其他节点中请求数据变更日志,待所有未完成的日志处理完成后,该节点加入到集群中,继续提供元数据服务.三、增加新的元数据节点:在一个运行正常的元数据集群中,可以随时增加新的元数据处理节点。新的元数据节点启动后会主动申请加入集群,由于此节点并未存储任何元数据,因此该节点会进入数据初始填充流程,直接从集群其他节点并行的请求系统全部日志和数据,并进行日志回放。日志回放完成后,元数据节点加入集群,并提供元数据服务。
[0020]本专利设计了基于实时应用集群的元数据集群机制。元数据集群中的所有元数据节点均提供全局命名空间的元数据服务,元数据节点之间通过高速网络建立全局一致性缓存和共享锁构建实时应用集群,整个集群元数据性能横向扩展,所有元数据节点均处于Active状态,任意一个节点岩机均不影响整个集群的元数据服务。
[0021]本专利使用了基于高速互联网络的全局一致性缓存实现元数据节点间的缓存同步。系统元数据存储于每个节点的存储设备上,当某个元数据被访问时,接收这个元数据请求的元数据节点会将此元数据的信息加载到全局一致性缓存中,后续的访问均可从此全局一致性缓存中获得加速。
[0022]本专利建立了一套基于共享锁控制的全局一致性缓存,元数据节点之间的通信依靠该全局一致性缓存的缓存管理实现。所有的元数据操作均在全局一致性缓存中执行,并根据缓存刷新策略写入到磁盘中。在良好的硬件环境中,本专利使用带有额外电池供电的专有内存实现此全局一致性缓存,在此环境下全部节点掉电均不会造成数据丢失,系统可以安全的使用Write-Back的缓存刷新策略。在一般的硬件环境下,不存在带有额外电池供电的专有内存,本专利设计的机制可以使用普通的内存实现全局一致性缓存,同时支持Write-Through和Write-Back缓存策略。使用Write-Through策略时,全部节点岩机仍不会丢失数据。在使用Write-Back策略时,只要系统中可用的元数据节点数大于等于1,就可以保证元数据的数据安全。在这种环境下,对于数据安全性要求不是特别苛刻的话,也可以使用Write-Back策略。在本专利设计的基于实时应用集群的元数据集群机制中,使用Write-Back缓存策略的性能高于使用Write-Back缓存策略。
[0023]本专利设计了一个基于高速互联网络的共享锁机制,用于实现用户访问元数据时在整个元数据集群中进行全局加锁。该共享锁机制的存在保证了事务性的元数据操作在整个元数据集群的数据同步和一致。共享锁机制的设计使用了租约机制,每个锁由某一个元数据节点持有,该元数据节点在整个集群中定期广播该租约的续期消息,当该节点发生故障时,则无法在广播租约续期消息,集群中其余节点在需要获取该锁时根据租约过期情况选择重新加锁,以此保证了故障状态下的共享锁的自动释放。
[0024]本发明通过在多个元数据节点同时提供完整的元数据服务,实现系统元数据性能的横向扩展和多个元数据节点同时服务的高可用机制。每个元数据节点拥有独立的存储,并保存全部的元数据。元数据节点之间通过低延迟高速网络互连,共享全局一致性缓存和全局元数据锁信息,通过该共享实现了多个元数据节点间的协商一致,同时提供服务。
[0025]本发明能够降低故障恢复过程中,元数据重新定位的运算量。在基于子树分区的元数据集群中的元数据节点发生故障、进行冗余数据的重新构建过程中,需要更新元数据集群内元数据节点管理的元数据的映射关系。而采用本专利提出的基于实时应用集群的元数据集群机制,则不需要进行元数据的数据恢复和重新构建,剩余可用的元数据节点依然可以提供完整的元数据服务。
[0026]当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
【权利要求】
1.一种基于实时应用集群的元数据集群设计方法,其特征在于其具体设计过程为: 一、初始部署:首先进行元数据集群的初始配置,由若干元数据节点组成元数据集群,生成配置文件并同步至各个元数据节点,分别在各元数据节点上完成元数据存储的初始化;启动集群时顺序启动各个元数据节点,配置文件中编号最小的元数据节点自动取得领导权,并引导整个元数据集群建立全局一致性缓存和共享锁; 二、故障恢复:元数据集群在正常运行时,当有一个元数据节点发生宕机,则该元数据节点自动从集群中下线,剩余的元数据节点继续提供服务;该节点修复后启动的过程中,节点加入集群后,取得集群最新的日志序号,自动从其他节点中请求数据变更日志,待所有未完成的日志处理完成后,该节点加入到集群中,继续提供元数据服务; 三、增加新的元数据节点:在元数据集群正常运行时,可增加新的元数据处理节点,即新的元数据节点启动后主动申请加入集群,同时该节点进入数据初始填充流程,直接从集群其他节点并行的请求系统全部日志和数据,并进行日志回放,日志回放完成后,元数据节点加入集群,并提供元数据服务。
2.根据权利要求1所述的一种基于实时应用集群的元数据集群设计方法,其特征在于:所述元数据集群是指由若干元数据节点通过高速网络建立全局一致性缓存和共享锁构建的实时应用集群,其中所有元数据节点均提供全局命名空间的元数据服务,整个集群元数据性能横向扩展,所有元数据节点均处于Active状态。
3.根据权利要求2所述的一种基于实时应用集群的元数据集群设计方法,其特征在于:所述全局一致性缓存实现元数据节点间的缓存同步:系统元数据存储于每个节点的存储设备上,当某个元数据被访问时,接收这个元数据请求的元数据节点会将此元数据的信息加载到全局一致性缓存中,后续的访问均可从此全局一致性缓存中获得加速。
4.根据权利要求3所述的一种基于实时应用集群的元数据集群设计方法,其特征在于:所述步骤一中的共享锁机制实现用户访问元数据时在整个元数据集群中进行全局加锁,其使用租约机制,每个锁由某一个元数据节点持有,该元数据节点在整个集群中定期广播该租约的续期消息,当该节点发生故障时,则无法在广播租约续期消息,集群中其余节点在需要获取该锁时根据租约过期情况选择重新加锁。
【文档编号】H04L29/08GK103795801SQ201410048696
【公开日】2014年5月14日 申请日期:2014年2月12日 优先权日:2014年2月12日
【发明者】王恩东, 文中领, 张立强, 孟圣智 申请人:浪潮电子信息产业股份有限公司