一种基于高可用存储系统的数据保护方法
【专利摘要】本发明涉及一种基于高可用存储系统的数据保护方法,包括以下步骤:1)指定高可用存储系统的存储池属性altroot和存储池属性failmode,并设置相应的存储池配置文件;2)根据所指定的存储池属性执行存储节点上电。与现有技术相比,本发明采用指定存储池属性,减少对文件系统挂载点的依赖性,提高存储故障的容错性,从而在一定程度上保证存储设备的稳定性及存储数据的可靠性,同时通过集群网络心跳监测集群节点异常,自动接管异常节点业务,保证存储设备的稳定性。
【专利说明】一种基于高可用存储系统的数据保护方法
【技术领域】
[0001]本发明涉及计算机存储【技术领域】,尤其是涉及一种基于高可用存储系统的数据保护方法。
【背景技术】
[0002]随着IT信息系统的不断发展,尤其是大数据的飞速发展,数据在企业的应用中越来越广,如何提供IT系统的高可用性成为建设稳健的计算机系统的首要任务之一。构成计算机网络系统的三大要素:网络系统、服务器系统、存储系统,其中,网络系统涉及一些网络设备,服务器系统指用户可使用的各种服务器,存储系统是用户数据的存储地点,它在计算机网络系统的地位尤为重要,构建高可用存储系统是当务之急。使用软件或硬件技术实现存储系统的高度可用性,其主要技术指标是存储切换功能等。当一台存储出现故障时,另一台备用的存储可以快速切换,达到存储不停机的目的。
[0003]实现存储切换功能的核心功能是心跳机制,通过心跳机制实现高可用存储节点之间状态的监测。心跳是在集群节点间传递的通讯包,用于监测集群节点、网络和网络接口的工作状态,防止节点的孤立,以保证群集的正常运作。传统心跳的实现方式主要包括:基于网络状态监控的网络心跳和基于读写共享存储特定区域的共享存储心跳。网络心跳用于监控集群中存储节点的网络及网络接口的工作状态,存储节点网络状态异常或网口不可用时,存储业务中断、存储资源不可用,网络心跳监控启动正常节点接管存储业务,其监控对象粒度是存储节点。共享存储心跳是利用共享存储介质的锁机制,锁信息直接写入到共享存储介质,锁使用租约管理,带有时间戳信息。任何节点、进程访问存储资源读取锁信息时,若存储资源被锁,则等待锁释放才能访问。对共享介质的读写,最终通过SCSI写入,SCSI通过预留、释放方式实现访问控制。共享存储心跳监控对象粒度为共享存储介质,并非存储节点,某共享介质的异常将会导致存储节点异常,存储节点正常资源因为节点的异常而不可用,这对单节点多存储资源的应用场景不适用。SCSI,全称Small Computer SystemInterface,它是一种用于计算机和智能设备间系统级接口的独立处理器标准。
[0004]高可用存储节点网络异常,可借助于ZFS文件系统存储池属性。动态文件系统ZFS是一款128bit的支持无限扩容的文件系统,它拥有自优化、自动校验数据完整、支持存储池易管理等诸多优点。ZFS是基于存储池,通过存储池来管理无聊存储空间。与典型映射物理存储设备的传统文件系统不同:ZFS所有在存储池中的文件系统都可以使用存储池的资源。
[0005]ZFS完全抛弃卷管理,所有设备集中到存储池来管理。存储池描述存储的物理特征,扮演创建文件系统的专门存储空间。文件系统不再局限于单独物理设备,而是共享到存储池中。存储池的挂载点信息,为文件系统的根挂载目录。指定存储池的挂载点信息,相应地修改文件系统的根挂载目录,而文件系统上电加载依赖于根挂载目录。
【发明内容】
[0006]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于高可用存储系统的数据保护方法,通过指定高可用存储系统中存储池属性,从而提高存储故障的容错性,达到保证存储设备的稳定性及存储数据的安全、可靠性。
[0007]本发明的目的可以通过以下技术方案来实现:
[0008]一种基于高可用存储系统的数据保护方法,包括以下步骤:
[0009]I)指定高可用存储系统的存储池属性altroot和存储池属性failmode,并设置相应的存储池配置文件;
[0010]2)根据所指定的存储池属性执行存储节点上电。
[0011]所述步骤I)具体为:
[0012]101)发送指定存储池属性altroot的指令,并判断指定是否成功,若是,则执行步骤102),若否,则退出;
[0013]102)启动集群监测进程,查询集群信息,判断集群中是否存在多个存储节点,若是,则执行步骤103),若否,则执行步骤105);
[0014]103)查询集群存储节点上的存储池资源,判断指定属性的存储池是否存在于其它存储节点上,若是,则退出,若否,则执行步骤105);
[0015]104)指定存储池属性failmode,执行步骤105);
[0016]105)修改存储池配置文件。
[0017]所述步骤2)具体为:
[0018]201)启动存储节点上存储池上电过程监控进程;
[0019]202)读取存储池配置文件;
[0020]203)判断当前存储池是否归属于高可用存储系统,若是,则执行步骤204),若否,则执行步骤205);
[0021]204)查询当前高可用存储系统存储池信息,判断当前存储池是否归属于集群其它节点,若是,则退出,若否,则执行步骤205);
[0022]205)指定存储池属性altroot为文件夹/mountpoint,导入存储池,完成存储池的上电过程。
[0023]所述存储池配置文件的格式为tinyxml格式。
[0024]所述存储池配置文件存储有存储池信息,所述存储池信息包括存储池名、存储池guid值及存储池状态。
[0025]还包括集群网络心跳监控模块实时监测存储节点是否发生异常的步骤,具体为:
[0026]301)启动集群网络心跳监控模块,读取相应的监控配置文件;
[0027]302)根据监控配置文件发送心跳包,监控存储状态;
[0028]303)判断存储节点是否发生异常,若是,则执行重启或存储业务切换操作,若否,则返回步骤302)。
[0029]所述监控配置文件存储有集群配置资源和心跳间隔。
[0030]所述执行存储业务切换操作时,自动读取发生异常的存储节点的存储池配置文件,自动导入存储池。
[0031]与现有技术相比,本发明具有如下有益效果:
[0032]1、本发明指定存储池属性altroot,高可用存储节点上电启动时,读取存储池配置文件自动导入存储池,从而减少对系统挂载点依赖,且不依赖系统文件cachefile,从而确保高可用存储节点可集中管理系统中的存储池。
[0033]2、高可用存储节点切换业务时,读取高可用存储节点的存储池同步配置文件,自动导入存在于集群中非本存储节点的存储池,保证存储数据的完整性。
[0034]3、共享磁盘异常引起业务切换时,集群网络心跳监测集群节点异常,自动接管异常节点业务,涉及到读取同步的存储池配置文件,自动导入存储池,保证存储设备的稳定性。
【专利附图】
【附图说明】
[0035]图1为本发明指定存储池属性流程示意图;
[0036]图2为本发明存储节点上电启动流程示意图;
[0037]图3为本发明存储节点异常监测流程示意图。
【具体实施方式】
[0038]下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
[0039]本发明实施例提供一种基于高可用存储系统的数据保护方法,用于控制存储系统中所有存储池的上电过程,并对存储节点的存储池配置文件管理,包括以下步骤:
[0040]I)指定高可用存储系统的存储池属性altroot和存储池属性failmode,并设置相应的存储池配置文件;
[0041]2)根据所指定的存储池属性执行存储节点上电。
[0042]如图1所示,指定存储池属性的具体流程为:
[0043]步骤slOl,发送指定存储池属性altroot的指令给ZFS文件系统;
[0044]步骤sl02,判断指定是否成功,若是,则执行步骤sl03,若否,则退出;
[0045]步骤sl03,启动集群监测进程,发送消息查询集群信息;
[0046]步骤sl04,判断集群中是否存在多个存储节点,若是,则执行步骤sl05,若否,则执行步骤s 107 ;
[0047]步骤sl05,查询集群存储节点上的存储池资源,判断指定属性的存储池是否存在于其它存储节点上,若是,则退出,若否,则执行步骤sl06 ;
[0048]步骤sl06,指定存储池属性failmode为panic,执行步骤sl07 ;
[0049]步骤sl07,修改存储池配置文件。
[0050]通过指定存储池属性根挂载目录altroot,altroot属性通常用于存储池上电导入时,不再依赖于系统文件,而依赖自定义的存储池配置文件,更方便对系统上电存储资源监控,保证数据的一致性、安全性。
[0051]failmode属性控制存储池异常时系统的行为,行为值panic用于共享介质异常业务切换,指定存储池属性failmode为panic,一旦共享存储介质或者连接共享存储介质与存储节点的连接线异常,存储节点会因存储池panic异常重启,产生心跳网络异常,集群业务自动发生切换。对共享式的高可用存储,异常的共享磁盘导致存储池发生异常,异常存储池所在存储节点panic重启,正常存储节点接管异常节点存储业务,且不会因为异常节点存储资源未释放引起存储池的脑裂。
[0052]高可用存储系统中,存储节点的存储池配置文件采用tinyxml格式,方便存储池管理,其中存储有存储池信息,所述存储池信息包括存储池名、存储池guid值及存储池状态等O
[0053]执行存储节点上电,其实质是存储节点上的存储池资源的导入操作,默认情况下依赖与系统文件cachefile,由于指定存储池属性altroot及存储池配置文件,存储池上电导入更加便捷且易于操作,其流程如图2所示:
[0054]步骤s201,启动存储节点上存储池上电过程监控进程;
[0055]步骤s202,读取本存储节点的存储池配置文件;
[0056]步骤s203,判断当前存储池是否归属于高可用存储系统,若是,则执行步骤s204,若否,则执行步骤s205;
[0057]步骤s204,发送消息查询当前高可用存储系统存储池信息,判断当前存储池是否归属于集群其它节点,若是,则退出,若否,则执行步骤s205 ;
[0058]步骤s205,指定存储池属性altroot为文件夹/mountpoint,导入存储池;
[0059]步骤s206,完成存储池的上电过程。
[0060]本实施例提供的数据保护方法可监控集群中各存储节点存储池状态,发现存储节点异常时,其他正常节点快速接管业务,保证数据的安全性、一致性。存储节点的异常原因可分为掉电异常、存储资源异常,掉电异常时,异常节点的处理与存储节点上电过程一致,正常节点接管工作与存储资源异常一致。发现存储节点异常的具体流程如图3所示:
[0061]步骤s301,启动集群网络心跳监控模块,并进行必要的初始化;
[0062]步骤s302,检测是否存在相应的监控配置文件,该文件中存储集群配置资源和心跳间隔,若存在这样的配置文件,则执行步骤s303,否则退出;
[0063]步骤s303,根据监控配置文件发送心跳包,监控存储状态;
[0064]步骤s304,判断存储节点是否正常,若是,则结束,持续提供正常的存储业务,若否,则执行步骤s305 ;
[0065]步骤s305,若高可用存储共享磁盘异常,异常存储池的节点panic重启,若网络心跳监测存储池异常节点,执行存储业务切换操作,自动接管异常节点业务,读取发生异常的存储节点的存储池配置文件,自动导入存储池。
【权利要求】
1.一种基于高可用存储系统的数据保护方法,其特征在于,包括以下步骤: 1)指定高可用存储系统的存储池属性altroot和存储池属性failmode,并设置相应的存储池配置文件; 2)根据所指定的存储池属性执行存储节点上电。
2.根据权利要求1所述的基于高可用存储系统的数据保护方法,其特征在于,所述步骤I)具体为: 101)发送指定存储池属性altroot的指令,并判断指定是否成功,若是,则执行步骤102),若否,则退出; 102)启动集群监测进程,查询集群信息,判断集群中是否存在多个存储节点,若是,则执行步骤103),若否,则执行步骤105); 103)查询集群存储节点上的存储池资源,判断指定属性的存储池是否存在于其它存储节点上,若是,则退出,若否,则执行步骤105); 104)指定存储池属性failmode,执行步骤105); 105)修改存储池配置文件。
3.根据权利要求1所述的基于高可用存储系统的数据保护方法,其特征在于,所述步骤2)具体为: 201)启动存储节点上存储池上电过程监控进程; 202)读取存储池配置文件; 203)判断当前存储池是否归属于高可用存储系统,若是,则执行步骤204),若否,则执行步骤205); 204)查询当前高可用存储系统存储池信息,判断当前存储池是否归属于集群其它节点,若是,则退出,若否,则执行步骤205); 205)指定存储池属性altroot为文件夹/mountpoint,导入存储池,完成存储池的上电过程。
4.根据权利要求1-3任一所述的基于高可用存储系统的数据保护方法,其特征在于,所述存储池配置文件的格式为tinyxml格式。
5.根据权利要求1-3任一所述的基于高可用存储系统的数据保护方法,其特征在于,所述存储池配置文件存储有存储池信息,所述存储池信息包括存储池名、存储池guid值及存储池状态。
6.根据权利要求1所述的基于高可用存储系统的数据保护方法,其特征在于,还包括集群网络心跳监控模块实时监测存储节点是否发生异常的步骤,具体为: 301)启动集群网络心跳监控模块,读取相应的监控配置文件; 302)根据监控配置文件发送心跳包,监控存储状态; 303)判断存储节点是否发生异常,若是,则执行重启或存储业务切换操作,若否,则返回步骤302)。
7.根据权利要求6所述的基于高可用存储系统的数据保护方法,其特征在于,所述监控配置文件存储有集群配置资源和心跳间隔。
8.根据权利要求6所述的基于高可用存储系统的数据保护方法,其特征在于,所述执行存储业务切换操作时,自动读取发生异常的存储节点的存储池配置文件,自动导入存储
。葚K S/s P ^ ^ ΓΙ^ΓXl V 8寸ε 寸09寸O!—Iδ
【文档编号】H04L12/26GK104504348SQ201410766282
【公开日】2015年4月8日 申请日期:2014年12月11日 优先权日:2014年12月11日
【发明者】何云 申请人:上海爱数软件有限公司