一种实现集群存储高可用性的方法、节点装置和系统的制作方法

文档序号:7861486阅读:278来源:国知局

专利名称::一种实现集群存储高可用性的方法、节点装置和系统的制作方法
技术领域
:本发明涉及网络存储系统
技术领域
,尤其涉及一种实现集群存储高可用性的方法、节点装置和系统。
背景技术
:云存储和大数据背景下,数据呈现爆炸式增长趋势。根据研究显示,2020年数字宇宙将达到35.2ZB,比2009年的O.8ZB猛增44倍,这其中80%以上为非结构化数据。高性能计算、医学影像、石油和天然气勘探、数字媒体和社会化WEB等大量数据密集型应用导致数据的井喷,不断对存储方法提出新的严峻挑战。集群存储是一种横向扩展(Scale-out)存储架构,具有容量和性能线性扩展的优势,已经得到全球市场的广泛认可。除了高性能、高扩展特点外,集群存储还应该具备高可用的特征,这对于企业核心业务系统尤为关键,保证关键业务的连续性。集群存储现有技术方案主要通过冗余技术解决可用性问题,包括副本技术、纠删码技术、主备或全活高可用性(HighAvailability,HA)技术。副本技术通过增加不同数量的副本,可以有效提高数据可用性,但是存储利用率低(为副本数量分之一),并增加了数据管理的复杂度。纠删码通过冗余编码提高存储可用性,并且具备较低的空间复杂度和数据冗余度,存储利用率高,但编码方式复杂,需要大量计算并降低业务性能,且适用集群节点数量较多的情形。主备(Active/Standby)HA技术同样采用冗余技术获取高可用性,但存储资源浪费严重。全活(Active/Active)HA技术通过监控并将故障节点资源(IP、服务进程、业务数据等)切换至正常节点上,使整个系统连续不间断对外提供服务。这种HA技术不仅能够提高可用性,而且具备负载均衡功能,资源利用率高。HA技术的主要问题是资源切换期间会导致服务中断,通常只接管IP和服务进程资源,而业务数据或物理存储资源需要由外部系统进行管理。
发明内容本发明的目的在于提出一种实现集群存储高可用性的方法、节点装置和系统,能够使得节点之间的资源切换期间,不仅接管故障节点的IP和服务进程资源,而且接管故障节点的存储软件服务进程和物理存储资源。为达此目的,本发明采用以下技术方案一种实现集群存储高可用性的方法,该方法包括根据接收到的节点状态信息触发接管事件;获取故障节点的卷信息、存储设备信息和存储区域网络(StorageAreaNetwork,SAN)存储信息并生成本地配置信息;挂载所述SAN集群中的存储设备并启动分布式文件系统服务例程,所述存储设备上的卷恢复使用。所述根据接收到的节点状态信息触发接管事件之前,进一步包括响应故障节点的备份请求,接收所述故障节点的状态信息。所述故障节点发出所述备份请求之前,进一步包括通过定期触发的监控事件接收监控信息,判断本地服务的状态;服务状态异常时,根据轮叫调度(RoundRobinScheduling)算法在所述SAN集群中确定一个备份节点;将本地的状态信息发送至其他节点并向所述备份节点发出备份请求。该方法还包括向所述SAN集群中的其他节点发送消息,更新所述卷信息和存储设备信息。如果所述故障节点已修复,则该方法还包括将备份节点的接管的资源重新接管至本地;向所述SAN集群中的其他节点发送消息,更新所述卷信息和存储设备信息;向备份节点发送释放资源消息。节点接管资源时进一步包括获取接管之前的连接信息,构造自动增加数字序列为零(Sequence=O)的确认字符(ACKnowledgeCharacter,ACK)请求报文,发送至之前连接的客户端;接收所述客户端的ACK应答报文,所述ACK应答报文中Sequence=N;向所述客户端发送复位连接(Resettheconnection,RST)请求,通知所述客户端重新建立TCP连接;与已重新建立传输端口的所述客户端建立TCP连接。—种实现集群存储高可用性的节点装置,包括定时器模块、事件处理模块、监控模块和通信模块;其中,定时器模块,用于向事件处理模块触发监控事件,定时对本节点的资源和服务等进行监控;监控模块,用于监控指定服务的状态,向事件处理模块返回服务的状态信息;通信模块,用于各个节点装置之间的信息传递和数据同步;事件处理模块,用于负责接收所述装置内各个模块的返回信息,并依此进行下一步的操作调度。还包括接管模块和释放模块;其中,接管模块,用于所述节点装置作为备份节点时,接收出现故障节点的各项资源,包括SAN存储设备和卷以及对应的分布式文件系统服务;释放模块,用于所述故障节点回复后,将所述接管模块接管的各项资源释放。所述节点装置作为备份节点接管故障节点的资源后,与所述故障节点连接的客户端重新建立TCP连接。一种实现集群存储高可用性的系统,包括至少两个任一所述的节点装置以及SAN中的存储设备。采用本发明的技术方案,能够使得节点之间的资源切换期间,不仅接管故障节点的IP和服务进程资源,而且接管故障节点的存储软件服务进程和物理存储资源,支持NFS/CIFS/HTTP/FTP/ISCSI协议以及PanaFS协议,利用TCP/IP协议的连接重连技术,实现了故障节点的透明接管,不会产生接管期间的业务中断。图I是本发明实施例提供的实现集群存储高可用性的节点装置的结构示意图。图2是本发明实施例提供的实现集群存储高可用性的节点装置作为备用节点时的结构示意图。图3是本发明实施例提供的实现集群存储高可用性的系统结构示意图。图4是本发明实施例提供的实现集群存储高可用性的方法流程图。图5是本发明实施例中故障节点发出备份请求的流程图。图6是本发明实施例中故障节点修复后系统内信息交互过程的示意图。图7是本发明实施例中接管业务资源的节点与客户端重新建立TCP连接的过程示意图。具体实施例方式下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。图I是本发明具体实施方式提供的实现集群存储高可用性的节点装置的结构示意图。该节点装置包括定时器模块、事件处理模块、监控模块和通信模块;其中,定时器模块,用于向事件处理模块触发监控事件,定时对本节点的资源和服务等进行监控。HA系统通过定时器来触发事件,定时对本节点的资源和服务等进行监控,若状态发生改变,则会将信息与其他节点进行同步,并触发相应的事件进行处理。定时器模块的作用是设置时间间隔触发定义的事件,包括定期触发监控事件,定期触发keepalive事件等。监控模块,用于监控指定服务的状态,向事件处理模块返回服务的状态信息。所述监控模块定期监控指定服务的状态,并通过返回值的形式,向事件处理模块返回服务的状态信息。若服务正常,则返回0,否则返回非O值。通信模块,用于各个节点装置之间的信息传递和数据同步;包括周期性的心跳和数据同步。事件处理模块,用于负责接收所述装置内各个模块的返回信息,并依此进行下一步的操作调度。当图I所示的节点作为备份节点时,该节点装置进一步包括接管模块和释放模块,如图2所示,其中,接管模块,用于所述节点装置作为备份节点时,接收出现故障节点的各项资源,包括SAN存储设备和卷以及对应的分布式文件系统服务。所述接管模块负责接收出现故障节点的各项资源,主要包括SAN存储、对应的分布式文件系统服务。接管模块首先获取到故障节点管理的SAN存储信息、存储设备信息和卷信息,然后在本节点上生成完整的配置信息,挂载所述SAN集群中的存储设备并启动分布式文件系统服务,建立在这些存储设备之上的卷即可恢复使用。所述分布式文件系统服务,可采用Lustre、Panasas、Ceph、pNFS或者PanaFS等分布式存储系统。本发明实施例优选PanaFS分布式文件系统,它使用私有的PanaFS协议进行数据访问,它是CIFS/NFS/FTP/HTTP等访问协议的基础,提供统一的共享存储空间。Panafs是可移植操作系统接ロ(PortableOperatingSystemInterface,P0SIX)标准兼容的协议,具有闻扩展、闻可用、闻性能、闻效能等特点释放模块,用于所述故障节点回复后,将所述接管模块接管的各项资源释放。所述节点装置的事件处理模块类似于调度程序,负责接收不同模块的返回信息,并以此作为依据,进行下一歩的操作,主要包括以下几类I.接收定时器的消息,调用监控模块。2.接收监控模块的消息。若监控模块返回值为0,则表示服务正常。与之前监控的结果进行比较,若之前状态为异常,则表示当前节点现在已经被修复,需要执行恢复资源的过程,如图3所示。若返回非O值,则表示本节点的服务出现异常,将执行以下步骤(I)在所在节点中,采用轮叫调度(RoundRobinScheduling)算法,选择ー个节点作为备份节点;(2)调用通信模块,将本节点的状态信息发送到其他节点;(3)向备份节点发送消息。备份节点收到消息后将执行接管模块。3.接收其他节点发送的消息。若本节点被选择作为备份节点,则运行接管模块。若接收到修复节点的信息,则运行释放模块。图3是本发明实施例提供的实现集群存储高可用性的系统结构示意图。基于SAN架构的集群存储系统,后端存储采用中高端磁盘阵列子系统,支持独立冗余磁盘阵列(RedundantArrayofIndependentDisk,RAID)0、1、5、6、10等不同级别RAID等级,并通过光纤FC接ロ连接到各个集群节点。SAN磁盘阵列通过不同RAID等级对数据进行保护,通过冗余机制提供高可用性,同时降低了一定程度的存储利用率。在这种架构下,如果再采用副本或者纠删码来提供集群服务高可性,就会进ー步降低存储利用率或者大幅降低集群系统性能。当集群节点服务器发生故障时,后端SAN存储通常仍然处于正常工作状态,存储在其上面的数据也是完整一致的。因此,完全可以从正常工作的其他集群节点中选择ー个节点来接管故障节点的资源和服务,继续对外提供数据服务,保证业务的连续性。本发明专利的HA方法与现有HA技术方案不同的是,面向基于SAN架构的集群存储系统,采用全活HA架构技木,不仅接管故障节点的IP和服务进程资源,而且接管故障节点的存储软件服务进程和物理存储资源,支持NFS/CIFS/HTTP/FTP/ISCSI协议以及PanaFS协议。利用TCP/IP协议的连接重连技术,实现了故障节点的透明接管,不会产生接管期间的业务中断。本方法保证集群存储系统的存储利用率以及系统性能不会受到影响,并且可以透明接管完整的系统资源,提供更高的系统可用性,主要设计原则如下I.当某个节点由于停机,或者系统出现异常,不能再向上层的应用提供数据存储服务时,则需要由备份节点接管连接到该节点上的SAN存储设备,并启动相应的服务,以保证前端应用仍然可以正常地进行数据存储操作。2.为平衡系统中各节点的负载,避免备份节点的负载过重,当出现故障的节点修复后,需要将被接管的SAN存储重新恢复。3.在上述的接管与恢复过程中,需要保证对前端的数据存储没有明显影响,分布式文件系统服务不中断,做到透明接管和恢复。4.备份节点的选择,采用Round-Robin轮询法,在当前正常工作的节点中选择其中之一作为备份节点。集群中某个节点出现故障后,HA系统会采用轮询算法,在状态为OK的节点中选择其中ー个,接管故障节点的IP地址。这样在被选择的节点上就会触发takeip事件,发生了takeip事件的节点均可作为备份节点,并执行故障接管操作。故障节点恢复后,之前漂移的IP会重新漂移回来,同时触发takeip事件,并执行故障恢复操作。现有HA技术方案往往只处理集群节点上各种业务服务的可用性,比如CIFS、NFS、HTTP、FTP等服务,而对故障前已经与节点建立的TCP/IP连接或者会话(Session)不作处理,会造成接管期间业务中断,无法实现透明接管。本方法中使用TCP欺骗技术,接管节点主动与已经建立连接的客户端重新建立连接,从而实现透明接管。重新建立连接的流程如下I.新节点(接管节点)从共享存储中获取之前的连接信息,构造自动增加数字序列为零(Sequence=O)的ACK请求报文,发送给客户端;2.客户端收到请求后,发送ACK应答,并纠正Sequence=N;3.新节点得到正确sequence后,发送RST请求,通知客户端重新建立TCP连接;4.客户端重新建立传输端ロ,TCP连接重建完成。图4是本发明实施例提供的实现集群存储高可用性的方法流程图,该方法包括S401,根据接收到的节点状态信息触发接管事件。备份节点通过通讯模块接收到故障节点的状态信息,发送至事件处理模块并触发接管事件。S402,获取故障节点的卷信息、存储设备信息和SAN存储信息并生成本地配置信息。根据所述故障节点使用的卷信息、存储设备信息和所在SAN信息生成本地配置用于接管时挂载相应的存储资源。S403,挂载所述SAN集群中的存储设备并启动panaFS服务例程,所述存储设备上的卷恢复使用。所述S401中备份节点根据接收到的节点状态信息触发接管事件之前,响应故障节点的备份请求,接收所述故障节点的状态信息。所述故障节点发出所述备份请求之前,如图5所示,还包括以下步骤S501,通过定期触发的监控事件接收监控信息,判断本地服务的状态;S502,服务状态异常时,根据轮叫调度(RoundRobinScheduling)算法在所述SAN集群中确定ー个备份节点;S503,所述故障节点将本地的状态信息发送至其他节点并向所述备份节点发出备份请求。所述备份节点接管存储资源成功后,向所述SAN集群中的其他节点发送消息,更新所述卷信息和存储设备信息。当所述故障节点已修复时,如图6所示,所述故障节点将备份节点的接管的资源重新接管至本地;向所述SAN集群中的其他节点发送消息,更新所述卷信息和存储设备信息;向备份节点发送释放资源消息。所述备份节点收到释放资源消息后,将之前接管的资源释放。无论是备份节点接管故障节点的存储资源,还是故障节点恢复后从备份节点重新接管原有的存储资源,都需要与存在业务连接客户端重新建立TCP连接,该重新建立TCP连接的过程如图7所示,包括I.获取接管之前的连接信息,构造自动增加数字序列为零(Sequence=O)的ACK请求报文,发送至之前连接的客户端;2.接收所述客户端的ACK应答报文,所述ACK应答报文中Sequence=N;3.向所述客户端发送RST请求,通知所述客户端重新建立TCP连接;4.与已重新建立传输端ロ的所述客户端建立TCP连接。本方法中使用TCP欺骗技术,接管节点主动与已经建立连接的客户端重新建立连接,从而实现透明接管,业务不会发生中断。实现透明接管,需要对集群存储系统通信协议进行修改,对服务端和客户端软件模块通信流程进行重构。透明故障接管对于关键业务系统非常关键,客户端仅会表现短暂的阻塞,不会导致连接中断或异常退出等现象,能够保证数据一致性和业务的连续性,实现更高的集群可用性。采用本发明的技术方案,能够使得节点之间的资源切换期间,不仅接管故障节点的IP和服务进程资源,而且接管故障节点的存储软件服务进程和物理存储资源,支持NFS/CIFS/HTTP/FTP/ISCSI协议以及PanaFS协议,利用TCP/IP协议的连接重连技术,实现了故障节点的透明接管,不会产生接管期间的业务中断。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。权利要求1.一种实现集群存储高可用性的方法,其特征在于,该方法包括根据接收到的节点状态信息触发接管事件;获取故障节点的卷信息、存储设备信息和存储区域网络(storageAreaNetwork,SAN)存储信息并生成本地配置信息;挂载所述SAN集群中的存储设备并启动分布式文件系统服务例程,所述存储设备上的卷恢复使用。2.如权利要求I所述的方法,其特征在于,所述根据接收到的节点状态信息触发接管事件之前,进一步包括响应故障节点的备份请求,接收所述故障节点的状态信息。3.如权利要求2所述的方法,其特征在于,所述故障节点发出所述备份请求之前,进一步包括通过定期触发的监控事件接收监控信息,判断本地服务的状态;服务状态异常时,根据轮叫调度(RoundRobinScheduling)算法在所述SAN集群中确定一个备份节点;将本地的状态信息发送至其他节点并向所述备份节点发出备份请求。4.如权利要求1-3任一所述的方法,其特征在于,该方法还包括向所述SAN集群中的其他节点发送消息,更新所述卷信息和存储设备信息。5.如权利要求4所述的方法,其特征在于,如果所述故障节点已修复,则该方法还包括将备份节点的接管的资源重新接管至本地;向所述SAN集群中的其他节点发送消息,更新所述卷信息和存储设备信息;向备份节点发送释放资源消息。6.如权利要求5所述的方法,其特征在于,节点接管资源时进一步包括获取接管之前的连接信息,构造自动增加数字序列为零(Sequence=O)的确认字符(ACKnowledgeCharacter,ACK)请求报文,发送至之前连接的客户端;接收所述客户端的ACK应答报文,所述ACK应答报文中Sequence=N;向所述客户端发送复位连接(Resettheconnection,RST)请求,通知所述客户端重新建立TCP连接;与已重新建立传输端口的所述客户端建立TCP连接。7.一种实现集群存储高可用性的节点装置,其特征在于,包括定时器模块、事件处理模块、监控模块和通信模块;其中,定时器模块,用于向事件处理模块触发监控事件,定时对本节点的资源和服务等进行监控;监控模块,用于监控指定服务的状态,向事件处理模块返回服务的状态信息;通信模块,用于各个节点装置之间的信息传递和数据同步;事件处理模块,用于负责接收所述装置内各个模块的返回信息,并依此进行下一步的操作调度。8.如权利要求7所述的节点装置,其特征在于,还包括接管模块和释放模块;其中,接管模块,用于所述节点装置作为备份节点时,接收出现故障节点的各项资源,包括SAN存储设备和卷以及对应的分布式文件系统服务;释放模块,用于所述故障节点回复后,将所述接管模块接管的各项资源释放。9.如权利要求8所述的节点装置,其特征在于,所述节点装置作为备份节点接管故障节点的资源后,与所述故障节点连接的客户端重新建立TCP连接。10.一种实现集群存储高可用性的系统,其特征在于,包括至少两个如权利要求7-9任一所述的节点装置以及SAN中的存储设备。全文摘要本发明公开了一种实现集群存储高可用性的方法、节点装置和系统,该方法包括根据接收到的节点状态信息触发接管事件;获取故障节点的卷信息、存储设备信息和SAN存储信息并生成本地配置信息;挂载所述SAN集群中的存储设备并启动分布式文件系统服务例程,所述存储设备上的卷恢复使用。本发明能够使得节点之间的资源切换期间,不仅接管故障节点的IP和服务进程资源,而且接管故障节点的存储软件服务进程和物理存储资源,支持NFS/CIFS/HTTP/FTP/ISCSI协议以及PanaFS协议,利用TCP/IP协议的连接重连技术,实现了故障节点的透明接管,不会产生接管期间的业务中断。文档编号H04L12/24GK102868754SQ20121036357公开日2013年1月9日申请日期2012年9月26日优先权日2012年9月26日发明者刘爱贵申请人:北京联创信安科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1