一种存储双活方法、装置、系统及计算机可读存储介质与流程

文档序号:13875853阅读:127来源:国知局
一种存储双活方法、装置、系统及计算机可读存储介质与流程

本发明涉及存储双活技术领域,特别涉及一种存储双活方法、装置、系统及计算机可读存储介质。



背景技术:

数据是任何公司最重要的资产之一,为保证数据连续性,存储双活系统应运而生。然而前端复杂应用,例如:vmware、oraclerac(realapplicationclusters,即实时应用集群)等大型集群在搭配存储双活功能时存在诸多问题,其中,比较突出的问题是由于存储双活远程访问导致的存储整体性能下降的问题,客户为保证数据高可用性不得不接受存储性能的下降。

因此,如何提供一种存储双活方法,以在实现存储双活的前提下有效降低存储性能的损耗,是本领域技术人员亟待解决的技术问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种存储双活方法,通过存储i/ogroup(input/outputgroup,即io访问组)的横向拉伸,实现本地读写,在实现存储双活的前提下有效的降低了存储性能损耗。其具体方案如下:

一种存储双活方法,包括:

将每一io访问组内两个节点分别部署在具有相应站点感知功能的生产站点,得到相应的svc节点,以确保每个生产站点主机的i/o读写只与本地节点发生交互;

任一生产站点的主机选择从与相应节点的站点属性相同的后端存储读取数据,以实现本地读功能;

任一生产站点的主机向任一svc节点发送写请求,在接收到该svc节点返回的写应答后将写数据发送至该svc节点;所述写数据通过所述vdm镜像到另一生产站点中相应的svc节点,以将所述写数据分别写入相应生产站点的后端存储,实现本地写功能。

优选的,该方法还包括:

仲裁站点上的存储将活动仲裁功能赋予所述仲裁站点存储上的mdisk;其中,所述仲裁站点与每一生产站点之间均有心跳,以防止脑裂现象发生。

优选的,所述站点感知功能包括本地读i/o优化功能、本地写i/o优化功能、以及确保i/o本地化功能。

优选的,所述任一生产站点的主机向任一svc节点发送写请求,在接收到该svc节点返回的写应答后将写数据发送至该svc节点;所述写数据通过所述vdm镜像到另一生产站点中相应的svc节点,以将所述写数据分别写入相应生产站点的后端存储,实现本地写功能的步骤,包括:

步骤1:主机向第一svc节点发送写请求;

步骤2:所述第一svc节点向所述主机返回写就绪消息;

步骤3:所述主机向所述第一svc节点发送写数据;

步骤4:通过所述vdm将写缓存数据镜像到另一生产站点中对应的第二svc节点;

步骤5:所述第二svc节点向所述第一svc节点返回写完成标识;

步骤6:所述第一svc节点向所述主机返回写完成标识;

步骤7:所述第一svc节点和所述第二svc节点向相应生产站点的后端存储发送写请求;

步骤8:相应的后端存储分别向所述第一svc节点和所述第二svc节点返回写就绪消息;

步骤9:所述第一svc节点和所述第二svc节点分别向相应的后端存储发送写数据;

步骤10:后端存储分别向所述第一svc节点和所述第二svc节点返回写完成标识,完成整个写操作。

优选的,所述将每一io访问组内两个节点分别部署在具有相应站点感知功能的生产站点,得到相应的svc节点的步骤,还包括:

生产站点根据相应的站点感知功能感知该站点所有svc节点的状况。

优选的,所述任一生产站点的主机选择从与相应节点的站点属性相同的后端存储读取数据的步骤,包括:

判断当前svc节点是否存在故障;如果是,则切换到其他处于正常状态的svc节点。

优选的,所述任一生产站点的主机向任一io访问组相应的节点发送写请求的步骤,还包括:

判断当前io访问组中的两个svc节点是否均存在故障;如果是,则切换到其他任意io访问组。

相应的,本发明还提供了一种存储双活装置,包括:

节点部署模块,用于将每一io访问组内两个节点分别部署在具有相应站点感知功能的生产站点,得到相应的svc节点,以确保每个生产站点主机的i/o读写只与本地节点发生交互;

本地读功能模块,用于任一生产站点的主机选择从与相应节点的站点属性相同的后端存储读取数据,以实现本地读功能;

本地写功能模块,用于任一生产站点的主机向任一svc节点发送写请求,在接收到该svc节点返回的写应答后将写数据发送至该svc节点;所述写数据通过所述vdm镜像到另一生产站点中相应的svc节点,以将所述写数据分别写入相应生产站点的后端存储,实现本地写功能。

优选的,该装置还包括:

仲裁模块,用于仲裁站点上的存储将活动仲裁功能赋予所述仲裁站点存储上的mdisk;其中,所述仲裁站点与每一生产站点之间均有心跳,以防止脑裂现象发生。

相应的,本发明还提供了一种存储双活系统,包括如上述存储双活方法所述的生产站点、svc节点以及仲裁站点。

相应的,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述存储双活方法的步骤。

本发明公开的存储双活方法具有以下有益效果,首先将每一io访问组内两个节点分别部署在具有相应站点感知功能的生产站点,得到相应的svc节点,以确保每个生产站点主机的i/o读写只与本地节点发生交互;在任意生产站点下的主机需要进行数据读取操作时,任一生产站点的主机选择从与相应节点的站点属性相同的后端存储读取数据,以实现本地读功能;在任意生产站点下的主机需要进行数据写入操作时,任一生产站点的主机向任一svc节点发送写请求,在接收到该svc节点返回的写应答后将写数据发送至该svc节点;所述写数据通过所述vdm镜像到另一生产站点中相应的svc节点,以将所述写数据分别写入相应生产站点的后端存储,实现本地写功能。

每一io访问组内两个节点分别部署在具有相应站点感知功能的不同生产站点,两个生产站点均在线运行,这样做是为了将每一io访问组内两个节点进行跨站点拉伸,而上述生产站点的站点感知功能确保了主机的读写操作均为本地操作,避免了跨站点的数据访问而带来的io读写性能下降的问题。由此可见,本发明公开的存储双活方法可在实现存储双活的前提下有效的降低看存储性能的损耗。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1本发明公开的一种存储双活方法流程图;

图2为本发明公开的一种具体的存储双活方法流程图;

图3为本发明公开的一种具体的存储双活方法中任意生产站点下的主机需要进行数据写入操作时具体流程图;

图4为本发明公开的一种存储双活装置结构示意图;

图5为本发明公开的一种存储双活系统结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种存储双活方法,参见图1所示,该方法包括:

步骤s11:将每一io访问组内两个节点分别部署在具有相应站点感知功能的生产站点,得到相应的svc节点,以确保每个生产站点主机的i/o读写只与本地节点发生交互。

需要说明的是,在本申请实施例中,上述每一io访问组是根据实际情况的需求,将预先规划好的所需io访问组数量中的每一个io访问组,可以一个io访问组,也可以是多个io访问组。此外,存储对外提供服务的最小单位是一个io_group,即io访问组,其中,一个io_group由两个node(节点)组成,每个i/ogroup的两个节点分别部署在两个生产站点。

本申请实施例中,上述生产站点是在地域上相互分隔但拥有同样的资源的两个数据数据中心,或者是两个为业务提供数据的后端存储或数据库。通过步骤s11可将每一io访问组内的两个节点跨站点拉伸,以便i/o可以根据实际情况自动切换节点。

步骤s12:任一生产站点的主机选择从与相应节点的站点属性相同的后端存储读取数据,以实现本地读功能。

需要说明的是,上述后端存储为生产站点(数据中心)下为业务提供数据的后端存储。基于上述,生产站点之间相互分隔,故有不同的站点属性,例如在第一生产站点site1设置在第一位置,第二生产站点site2设置在第二位置,那么第一生产站点下的主机的站点属性即为site1,同理,第二生产站点下的主机的站点属性即为site2。

本申请实施例中,相应站点属性下的主机在需要读取相应数据时,只能通过与该主机站点属性相同的后端存储进行数据的读取,也即,本申请实施例下的读取操作均是本地读取,避免了跨站点的数据访问。

步骤s13:任一生产站点的主机向任一svc节点发送写请求,在接收到该svc节点返回的写应答后将写数据发送至该svc节点;所述写数据通过所述vdm镜像到另一生产站点中相应的svc节点,以将所述写数据分别写入相应生产站点的后端存储,实现本地写功能。

可以理解的是,数据中心脑裂可以简单地理解为两个数据中心间的网络和存储链路同时发生中断,导致两个数据中心内的应用、数据库或者操作系统同时抢占和利用共享的资源,造成资源的数据不一致,产生重大影响。而这个问题是存储跨中心双活方案设计、实施阶段不可避免要遇到的问题,故本申请实施例的存储双活方法还可以具体包括:

仲裁站点上的存储将活动仲裁功能赋予所述仲裁站点存储上的mdisk;其中,所述仲裁站点与每一生产站点之间均有心跳,以防止脑裂现象发生。

本申请实施例公开的存储双活方法,每一io访问组内两个节点分别部署在具有相应站点感知功能的不同生产站点,两个生产站点均在线运行,这样做是为了将每一io访问组内两个节点进行跨站点拉伸,而上述生产站点的站点感知功能确保了主机的读写操作均为本地操作,避免了跨站点的数据访问而带来的io读写性能下降的问题。由此可见,本发明公开的存储双活方法可在实现存储双活的前提下有效的降低看存储性能的损耗。

本发明实施例公开了一种具体的存储双活方法,相对于上一实施例,本实施例对技术方案作了进一步的说明和优化。参照图2所示,该方法具体包括以下步骤:

步骤s21:将每一io访问组内两个节点分别部署在具有相应站点感知功能的生产站点,得到相应的svc节点,生产站点根据相应的站点感知功能感知该站点所有svc节点的状况。

步骤s22:判断当前svc节点是否存在故障;如果是,任一生产站点的主机选择从与相应正常节点的站点属性相同的后端存储读取数据,以实现本地读功能。

步骤s23:判断当前io访问组中的两个svc节点是否均存在故障;如果是,则任一生产站点的主机向其他任意io访问组任一正常svc节点发送写请求,在接收到该svc节点返回的写应答后将写数据发送至该svc节点;所述写数据通过所述vdm镜像到另一生产站点中相应的svc节点,以将所述写数据分别写入相应生产站点的后端存储,实现本地写功能。

需要说明的是,参照图3所示,步骤s23的具体流程可以具体包括:

步骤1:主机向第一svc节点发送写请求。

步骤2:所述第一svc节点向所述主机返回写就绪消息。

步骤3:所述主机向所述第一svc节点发送写数据。

步骤4:通过所述vdm将写缓存数据镜像到另一生产站点中对应的第二svc节点;

步骤5:所述第二svc节点向所述第一svc节点返回写完成标识;

步骤6:所述第一svc节点向所述主机返回写完成标识;

步骤7:所述第一svc节点和所述第二svc节点向相应生产站点的后端存储发送写请求。

步骤8:相应的后端存储分别向所述第一svc节点和所述第二svc节点返回写就绪消息。

步骤9:所述第一svc节点和所述第二svc节点分别向相应的后端存储发送写数据。

步骤10:后端存储分别向所述第一svc节点和所述第二svc节点返回写完成标识,完成整个写操作。

其中,步骤1至步骤6对应用延时有一定影响,步骤7至步骤10为异步操作,对应用延时无影响。

需要说明的是,本申请所有实施例中所述的站点感知功能包括本地读i/o优化功能、本地写i/o优化功能、以及确保i/o本地化功能。

本实施例除了具备上述实施例的有益效果之外,还实现了在多个io访问组横向拉伸的集群架构中,可以感知每一站点的所有节点,以确保业务不仅仅能在一个io访问组内的节点间切换,也能在多个io访问组之间切换,即当当前的io访问组宕掉之后,业务可以横向切换到其他的io访问组,达到全冗余。

相应的,本申请实施例公开了一种存储双活装置,参见图4所示,该装置包括:

节点部署模块41,用于将每一io访问组内两个节点分别部署在具有相应站点感知功能的生产站点,得到相应的svc节点,以确保每个生产站点主机的i/o读写只与本地节点发生交互;

本地读功能模块42,用于任一生产站点的主机选择从与相应节点的站点属性相同的后端存储读取数据,以实现本地读功能;

本地写功能模块43,用于任一生产站点的主机向任一svc节点发送写请求,在接收到该svc节点返回的写应答后将写数据发送至该svc节点;所述写数据通过所述vdm镜像到另一生产站点中相应的svc节点,以将所述写数据分别写入相应生产站点的后端存储,实现本地写功能。

基于上述实施例的介绍,该装置还可以具体包括:仲裁模块,用于仲裁站点上的存储将活动仲裁功能赋予所述仲裁站点存储上的mdisk;其中,所述仲裁站点与每一生产站点之间均有心跳,以防止脑裂现象发生。

关于本实施例中各个模块之间的具体工作过程请参照本发明公开的运动目标跟踪方法,在此不再赘述。

相应的,本申请实施例还公开了一种存储双活系统,包括如上述存储双活方法所述的生产站点、svc节点以及仲裁站点,参见图5所示。需要说明的是,本实施例技术部分的具体内容可参见本文上述实施例,在此不再赘述。

相应的,本申请实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述存储双活方法的步骤。具体内容可参见本文上述实施例,在此不再赘述。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种存储双活方法、装置、系统及计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1