一种集群系统中IO请求的处理方法、装置及相关设备与流程

文档序号:16916524发布日期:2019-02-19 19:00阅读:190来源:国知局
一种集群系统中IO请求的处理方法、装置及相关设备与流程

本申请涉及多设备集群系统技术领域,特别涉及一种集群系统中io请求的处理方法,还涉及一种集群系统中io请求的处理装置、设备、集群系统以及计算机可读存储介质。



背景技术:

随着计算机技术的迅猛发展,相应的计算机应用所产生的数据大量涌现,为实现计算机数据的高可用性,存储站点双活集群应运而生。存储站点双活集群由两个存储站点,即两台存储设备提供块数据存取服务,由一个仲裁站点提供集群的仲裁功能。

请参考图1,图1为现有技术中的一种存储站点双活集群的结构示意图,其中,站点1(site1)和站点2(site2)与主机host之间的块数据通道由fc(光纤通道)基于san(存储域网络)提供,与仲裁站点(quorum)之间的仲裁逻辑通过ip网络实现。集群映射给主机host的卷(lun0),在集群的两个站点中各有一个镜像,即站点1中的镜像lun0,站点2中的镜像lun0’,它们是一组数据的两个相同的备份,分别存储于相应的存储池(pool)中。在正常情况下,站点1作为主站点,用于处理来自主机的io请求,站点2作为备用站点。当站点1出现异常掉线时,仲裁站点通过仲裁逻辑感知到站点1掉线,此时,将进入站点切换流程,基于控制器(controller)中的缓存管理模块(cachemanager)完成两个站点之间的块缓存(blockcache)同步,并由站点2接管并执行上述io请求。

具体而言,请参考图2,图2为现有技术中的一种集群系统中io请求的处理方法的流程示意图。当站点1出现异常时,来自主机的io请求会被阻塞,即停止执行该io请求,待到仲裁站点完成仲裁后,即可进入站点切换流程,待到cache同步完成后,站点2方可接管原来由站点1处理的io请求进行处理,此时集群恢复io服务。因此,在上述整个站点切换的过程中,集群都将无法响应外部的io请求,造成io请求终止,极大的降低了io请求的处理效率。

因此,如何有效提高io请求的处理效率是本领域技术人员亟待解决的问题。



技术实现要素:

本申请的目的是提供一种集群系统中io请求的处理方法,该处理方法可实现在故障站点与备用站点的切换过程中,不中断io请求的执行过程,且优先执行该io请求,大大提高了io请求的处理效率;本申请的另一目的是提供一种集群系统中io请求的处理装置、设备、集群系统以及计算机可读存储介质,也具有上述有益效果。

为解决上述技术问题,本申请提供了一种集群系统中io请求的处理方法,所述处理方法包括:

当主站点发生故障时,备用站点开启cache同步服务;

当接收到主站点io请求时,判断所述主站点io请求对应的主站点cache是否完成同步;

若已完成同步,则停止所述cache同步服务,通过所述主站点cache执行所述主站点io请求;

若未完成同步,则停止所述cache同步服务,并同步所述主站点cache,通过所述主站点cache执行所述主站点io请求。

优选的,所述判断所述主站点io请求对应的主站点cache是否完成同步之前,还包括:

当接收到io请求时,判断所述io请求为所述主站点io请求还是备用站点io请求;

若为所述备用站点io请求,则停止所述cache同步服务,执行所述备用站点io请求;

若为所述主站点io请求,则执行所述判断所述主站点io请求对应的主站点cache是否完成同步的步骤。

优选的,所述判断所述io请求为所述主站点io请求还是备用站点io请求,包括:

对所述io请求进行解析处理,获得站点信息;

根据所述站点信息确定所述io请求为所述主站点io请求还是所述备用站点io请求。

优选的,所述集群系统中io请求的处理方法还包括:

当所述io请求执行完成后,继续执行所述cache同步服务。

优选的,所述执行所述cache同步服务,包括:

获取各个cache的当前状态位;

若所述当前状态位为1,则删除所述当前状态位对应的cache;

若所述当前状态位为0,则同步所述当前状态位对应的cache。

为解决上述技术问题,本申请提供了一种集群系统中io请求的处理装置,所述处理装置包括:

cache同步服务模块,用于当主站点发生故障时,备用站点开启cache同步服务;

同步状况判定模块,用于当接收到主站点io请求时,判断所述主站点io请求对应的主站点cache是否完成同步;若已完成同步,则进入第一io请求处理模块;若未完成同步,则进入第二io请求处理模块;

所述第一io请求处理模块,用于停止所述cache同步服务,通过所述主站点cache执行所述主站点io请求;

所述第二io请求处理模块,用于停止所述cache同步服务,并同步所述主站点cache,通过所述主站点cache执行所述主站点io请求。

优选的,所述集群系统中io请求的处理装置还包括:

io请求类别判断模块,用于当接收到io请求时,判断所述io请求为所述主站点io请求还是备用站点io请求;若为所述备用站点io请求,则进入第三io请求处理模块;若为所述主站点io请求,则进入所述同步状况判定模块;

所述第三io请求处理模块,用于停止所述cache同步服务,执行所述备用站点io请求。

为解决上述技术问题,本申请提供了一种集群系统中io请求的处理设备,所述处理设备包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现上述任意一种集群系统中io请求的处理方法的步骤。

为解决上述技术问题,本申请提供了一种集群系统,所述集群系统包括主站点和备用站点;其中,所述备用站点,用于实现上述任意一项所述的集群系统中io请求的处理方法的步骤。

为解决上述技术问题,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一种集群系统中io请求的处理方法的步骤。

本申请所提供的一种集群系统中io请求的处理方法,包括当主站点发生故障时,备用站点开启cache同步服务;当接收到主站点io请求时,判断所述主站点io请求对应的主站点cache是否完成同步;若已完成同步,则停止所述cache同步服务,通过所述主站点cache执行所述主站点io请求;若未完成同步,则停止所述cache同步服务,并同步所述主站点cache,通过所述主站点cache执行所述主站点io请求。

可见,本申请所提供的集群系统中io请求的处理方法,在主站点发生故障进行cache同步服务,如若接收到来自故障站点,即主站点的io请求时,可对该主站点io请求对应的cache同步与其他cache同步进行优先级区分,即将主站点io请求对应的cache同步处理流程设置为高优先级,以终止其他cache同步流程,由此,即可先执行主站点io请求对应的cache同步处理,并在其同步完成后直接执行上述主站点io请求,待到主站点io请求执行完毕后再继续之前终止的其他cache同步流程,由此,该集群系统中io请求的处理方法即可实现在故障站点与备用站点的切换过程中,不中断io请求的执行过程,且优先执行该io请求,大大提高了io请求的处理效率。

本申请所提供的一种集群系统中io请求的处理装置、设备、集群系统以及计算机可读存储介质,均具有上述有益效果,在此不再赘述。

附图说明

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

图1为现有技术中的一种存储站点双活集群的结构示意图;

图2为现有技术中的一种集群系统中io请求的处理方法的流程示意图;

图3为本申请所提供的一种集群系统中io请求的处理方法的流程示意图;

图4为本申请所提供的另一种集群系统中io请求的处理方法的流程示意图;

图5为本申请所提供的一种集群系统中io请求的处理装置的结构示意图;

图6为本申请所提供的一种集群系统中io请求的处理设备的结构示意图;

图7为本申请所提供的一种集群系统的结构示意图。

具体实施方式

本申请的核心是提供一种集群系统中io请求的处理方法,该处理方法可实现在故障站点与备用站点的切换过程中,不中断io请求的执行过程,且优先执行该io请求,大大提高了io请求的处理效率;本申请的另一核心是提供一种集群系统中io请求的处理装置、设备、集群系统以及计算机可读存储介质,也具有上述有益效果。

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

一般的,在已有的存储双活集群系统中,当主站点出现异常时,其接收的io请求会被阻塞,即停止执行该io请求,并进入主站点与备用站点之间的站点切换流程,即进行cache同步,待到cache同步完成后,备用站点方可接管原来由主站点处理的io请求进行处理,以恢复集群的io服务,因此,在已有技术的整个站点切换过程中,集群都将无法响应外部的io请求,造成io请求终止,极大的降低了io请求的处理效率。为解决上述问题,本申请提供了一种集群系统中io请求的处理方法,该处理方法可实现在故障站点与备用站点的切换过程中,不中断io请求的执行过程,且优先执行该io请求,大大提高了io请求的处理效率。

请参考图3,图3为本申请所提供的一种集群系统中io请求的处理方法的流程示意图,该处理方法可以包括:

s101:当主站点发生故障时,备用站点开启cache同步服务;

具体的,当主站点出现异常、发生故障导致无法正常运行时,仲裁站点将通过仲裁逻辑感知到主站点掉线,此时,将进入站点切换流程,通知备用站点开启cache同步服务,以进行主站点与备用站点之间的cache同步。

其中,上述cache同步过程可以块cache为单位实现集群系统中主站点与备用站点之间的整个cache同步。具体而言,可由运行于备用站点控制器上的卷管理模块发起所有位于主站点上的卷的cache同步请求;进一步,即可将该cache同步请求发送至同样运行于备用站点控制器上的cache服务同步模块,该cache服务同步模块可响应上述cache同步请求,并向对端站点,即主站点发起cache传输请求,同时,该cache服务同步模块也具备响应对端站点发送的cache传输请求的能力。

s102:当接收到主站点io请求时,判断主站点io请求对应的主站点cache是否完成同步;若已完成同步,则进入s103,若未完成同步,则进入s104;

具体的,在上述cache同步服务过程中,如若备用设备接收到主站点对应的io请求,即上述主站点io请求,则可判断该主站点io请求对应的主站点cache,也即位于主站点上的该主站点请求对应的卷的cache是否完成同步,若已经完成同步,则进入s103,若未完成同步,则进入s104。

其中,上述主站点io请求可以由技术人员根据实际需求通过主机发送至主站点,即技术人员可通过主机显示界面输入上述主站点io请求,再由主机将其通过相应的网络通道转发至上述主站点。

s103:停止cache同步服务,通过主站点cache执行主站点io请求;

具体的,若上述主站点io请求对应的主站点cache已经完成同步,则说明备用站点中已经获得主站点io请求对应的主站点cache,此时,为避免主设备io请求被中断,降低主站点io请求执行效率,可立即停止上述cache同步服务,并直接通过备用站点中经上述cache同步服务获得的主站点cache执行该主站点io请求。

s104:停止cache同步服务,并同步主站点cache,通过主站点cache执行主站点io请求。

具体的,若上述主站点io请求对应的主站点cache未完成同步,则说明备用站点并未获得主站点io请求对应的主站点cache,此时,同样为避免主设备io请求被中断导致主站点io请求执行效率的降低,可立即停止上述cache同步服务,直接进行主站点cache的同步服务,待到主站点cache同步完成后,即备用设备中获得上述主站点cache后,直接通过该主站点cache执行上述主站点io请求。

其中,对于上述主站点cache同步服务的过程,可通过运行于备用站点主控器上的cache同步请求模块识别当前cache同步请求的优先级。具体而言,如果是整卷的cache同步请求,则设置为默认的优先级;如果是主站点io请求对应的cache同步请求,则设置为高优先级。因此,对于上述主站点cache同步服务的过程,如果低优先级的cache同步请求正在被执行的同时,接收到了高优级的cache同步请求,则中断当前的cache同步请求,优先完成处理高优先级的请求,再恢复被中断的cache同步请求。

本申请所提供的集群系统中io请求的处理方法,在主站点发生故障进行cache同步服务,如若接收到来自故障站点,即主站点的io请求时,可对该主站点io请求对应的cache同步与其他cache同步进行优先级区分,即将主站点io请求对应的cache同步处理流程设置为高优先级,以终止其他cache同步流程,由此,即可先执行主站点io请求对应的cache同步处理,并在其同步完成后直接执行上述主站点io请求,待到主站点io请求执行完毕后再继续之前终止的其他cache同步流程,由此,该集群系统中io请求的处理方法即可实现在故障站点与备用站点的切换过程中,不中断io请求的执行过程,且优先执行该io请求,大大提高了io请求的处理效率。

在上述实施例的基础上,请参考图4,图4为本申请所提供的另一种集群系统中io请求的处理方法的流程示意图。

作为一种优选实施例,上述判断主站点io请求对应的主站点cache是否完成同步之前,还可以包括:

s202:当接收到io请求时,判断io请求为主站点io请求还是备用站点io请求;若为备用站点io请求,则进入s203;若为主站点io请求,则进入s204。

s203:停止cache同步服务,执行备用站点io请求;

具体的,主机下发的io请求可能为针对于主站点的io请求,即上述主站点io请求,也可能为针对于备用站点的io请求,即上述备用站点io请求。因此,备用站点在接收到主机下发的io请求时,还可进一步对其类别进行判断,以确定该io请求为主站点io请求还是为备用站点io请求,若为备用站点io请求,则由于备用站点中本身就保存有该备用站点io请对应的cache,故可直接通过该cache执行上述备用站点io请求;若为主站点io请求,则可进入s204进行后续cache同步状况的确定与判断。

优选的,上述判断io请求为主站点io请求还是备用站点io请求,可以包括:对io请求进行解析处理,获得站点信息;根据站点信息确定io请求为主站点io请求还是备用站点io请求。

具体的,对于上述io请求的类别判断过程,本申请提供了一种较为具体的实现方式,即对获取的io请求进行解析处理,获得相应的站点信息,如ip地址、标记信息等;进一步,即可根据该站点信息确定其所属的站点,即确定上述io请求为主站点io请求还是备用站点io请求。

在上述各个实施例的基础上,作为一种优选实施例,该集群系统中io请求的处理方法还可以包括:

当io请求执行完成后,继续执行cache同步服务。

具体的,为保证集群系统的正常运行,以及便于对即将接收到的下一个io请求进行后续处理,当上述当前io请求执行完毕后,可进一步恢复之前停止的cache同步服务。进一步,当接收到下一个io请求时,可参照上述实现方式进行处理。

优选的,上述执行cache同步服务可以包括获取各个cache的当前状态位;若当前状态位为1,则删除当前状态位对应的cache;若当前状态位为0,则同步当前状态位对应的cache。

具体的,可以为每个需要执行cache同步的卷维护一个块状态图(blockbitmap)。在块状态图中,每个块由一个状态位(bit)表示是否已经执行过cache同步。如果状态位为0,表示未完成cache同步,如果状态位为1,表示已完成cache同步。因此,当一个块的cache从对端站点传输完成,需要更新本地cache时,即当主站点将cache传输至备用站点,备用站点同步本地的cache时,可先检查该块cache的状态位,即上述当前状态位,若当前状态位为0,则执行cache同步;如果状态位为1,则表示此块cache已经完成上述cache同步,并更新了本地cache,此时删除当前状态位对应的cache即可,且无须执行cache同步,其原因在于该块cache的同步过程可能已经由高优先级的cache同步请求完成。

本申请实施例所提供的技术方案,通过执行对故障站点中所有cache的同步,可有效保证集群系统的正常运行,且便于对备用站点接收到的所有io请求进行处理。

为解决上述问题,请参考图5,图5为本申请所提供的一种集群系统中io请求的处理装置的结构示意图,该处理装置可包括:

cache同步服务模块10,用于当主站点发生故障时,备用站点开启cache同步服务;

同步状况判定模块20,用于当接收到主站点io请求时,判断主站点io请求对应的主站点cache是否完成同步;若已完成同步,则进入第一io请求处理模块30;若未完成同步,则进入第二io请求处理模块40;

第一io请求处理模块30,用于停止cache同步服务,通过主站点cache执行主站点io请求;

第二io请求处理模块40,用于停止cache同步服务,并同步主站点cache,通过主站点cache执行主站点io请求。

作为一种优选实施例,该集群系统中io请求的处理装置还可以包括:

io请求类别判断模块,用于当接收到io请求时,判断io请求为主站点io请求还是备用站点io请求;若为备用站点io请求,则进入第三io请求处理模块;若为主站点io请求,则进入同步状况判定模块20;

第三io请求处理模块,用于停止cache同步服务,执行备用站点io请求。

作为一种优选实施例,上述io请求类别判断模块可具体用于对io请求进行解析处理,获得站点信息;根据站点信息确定io请求为主站点io请求还是备用站点io请求。

对于本申请提供的装置的介绍请参照上述方法实施例,本申请在此不做赘述。

为解决上述问题,请参考图6,图6为本申请所提供的一种集群系统中io请求的处理设备的结构示意图,该处理设备可包括:

存储器11,用于存储计算机程序;

处理器12,用于执行计算机程序时实现如下步骤:

当主站点发生故障时,备用站点开启cache同步服务;当接收到主站点io请求时,判断主站点io请求对应的主站点cache是否完成同步;若已完成同步,则停止cache同步服务,通过主站点cache执行主站点io请求;若未完成同步,则停止cache同步服务,并同步主站点cache,通过主站点cache执行主站点io请求。

对于本申请提供的设备的介绍请参照上述方法实施例,本申请在此不做赘述。

为解决上述问题,请参考图7,图7为本申请所提供的一种集群系统的结构示意图,该集群系统可包括主站点1和备用站点2;其中,备用站点2用于实现以下步骤:

当主站点1发生故障时,备用站点2开启cache同步服务;当接收到主站点io请求时,判断主站点io请求对应的主站点cache是否完成同步;若已完成同步,则停止cache同步服务,通过主站点cache执行主站点io请求;若未完成同步,则停止cache同步服务,并同步主站点cache,通过主站点cache执行主站点io请求。

对于本申请提供的集群系统的介绍请参照上述方法实施例,本申请在此不做赘述。

为解决上述问题,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下骤:

当主站点发生故障时,备用站点开启cache同步服务;当接收到主站点io请求时,判断主站点io请求对应的主站点cache是否完成同步;若已完成同步,则停止cache同步服务,通过主站点cache执行主站点io请求;若未完成同步,则停止cache同步服务,并同步主站点cache,通过主站点cache执行主站点io请求。

该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

对于本申请提供的计算机可读存储介质的介绍请参照上述方法实施例,本申请在此不做赘述。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的集群系统中io请求的处理方法、装置、设备、集群系统以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围要素。

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