数据读写方法及装置与流程

文档序号:12362529阅读:265来源:国知局
数据读写方法及装置与流程

本发明涉及通信领域,具体而言,涉及一种数据读写方法及装置。



背景技术:

云存储是云计算范畴的一个领域,是以分布式的技术架构,提供海量的数据存储服务以及高速读写访问的能力。云存储是一种服务,是由许许多多存储设备和服务器所构成的集合体。对使用者来说,使用云存储不是使用某一个具体的物理存储设备,而是使用整个云存储系统带来的一种数据访问服务。

分布式块存储是云存储的一种,通常由大量的存储服务器和存储设备构成,通过软件来进行协作。按照功能进行模块划分,有存储模块、协作模块、客户端模块。此外,分布式块存储以块设备接口的形式提供对外服务,常见的块设备接口为标准的小型计算机系统接口(Internet Small Computer System Interface,简称为iSCSI)接口或光纤信道(Fibre Channel,简称为FC)接口,提供块设备接口服务的网元在这里称为网关。网关通过调用分布式块存储的客户端模块,将整个分布式集群的存储能力对外暴露为标准的iSCSI或FC块设备服务。然后,业务应用可以通过iSCSI或FC接口使用块设备服务。

实现业务应用和块存储服务的端到端高可用性是一个技术难点。在相关技术中,通常使用多路径输入/输出(Multipath Input/Output,简称为MPIO)来解决问题,即业务应用到网关间有多条链路,多条链路可使用负荷分担或主备的方式承载业务应用的输入/输出(Input/Output,简称为I/O)请求。在出现单条路径失效时,可以在有限的时间内,将失效链路的负荷转移到其他链路上,对上层继续提供服务。但是,相关技术中通常一个存储卷只能对应一个网关,所以无法很好的解决网关本身失效的情况,在网关失效时,多条链路同时失效,业务应用的服务将中断。

针对相关技术中存在的单个网关失效时,无法读写该网关所连接的存储卷中的数据的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明提供了一种数据读写方法及装置,以至少解决相关技术中存在的单个网关失效时,无法读写该网关所连接的存储卷中的数据的问题。

根据本发明的一个方面,提供了一种数据读写方法,包括:接收业务应用发送的用于请求读写虚拟存储卷中存储的数据的读写请求,其中,所述业务应用通过至少两条路径连接至所述虚拟存储卷,所述虚拟存储卷是分布式块上创建的逻辑存储卷,所述路径 为所述业务应用经由网关连接至所述虚拟存储卷的路径;通过所述至少两条路径根据所述读写请求对所述虚拟存储卷中存储的数据进行读写处理。

可选地,通过所述至少两条路径根据所述读写请求对所述虚拟存储卷中存储的数据进行读写处理包括:通过所述至少两条路径上经由的网关向与所述网关相连的客户端发送用于读写所述虚拟存储卷中存储的数据的读写指令;通过所述客户端对所述虚拟存储卷中存储的数据进行读写处理。

可选地,通过所述客户端对所述虚拟存储卷中存储的数据进行读写处理包括:当两个以上客户端同时对所述虚拟存储卷中存储的所述数据进行读写处理时,对所述两个以上客户端进行并发互斥控制,其中,所述并发互斥控制为仅允许一个客户端对所述虚拟存储卷中存储的所述数据进行读写处理;根据并发互斥控制结果对所述虚拟存储卷中存储的所述数据进行读写处理。

可选地,所述至少两条路径包括一条第一路径和一条或多条第二路径中的一条第二路径,通过所述至少两条路径根据所述读写请求对所述虚拟存储卷中存储的数据进行读写处理包括:判断所述业务应用使用的第一路径上经由的第一网关是否失效;在判断结果为是的情况下,将所述第一网关中的全部负荷转移到所述业务应用的一条或多条第二路径中的一条第二路径经由的第二网关上;利用所述一条或多条第二路径中的一条第二路径对所述虚拟存储卷中存储的数据进行读写处理。

可选地,在利用所述一条或多条第二路径中的一条第二路径对所述虚拟存储卷中存储的数据进行读写处理之后,还包括:确定所述第一网关恢复正常;将转移到所述第二网关中的全部负荷中的部分负荷转移到所述第一网关中,利用所述一条或多条第二路径中的一条第二路径和所述第一路径对所述虚拟存储卷中存储的数据进行读写处理;或者,将转移到所述第二网关中的全部负荷转移到所述第一网关中,利用所述第一路径对所述虚拟存储卷中存储的数据进行读写处理。

可选地,在接收所述业务应用发送的用于请求读写所述虚拟存储卷中存储的数据的所述读写请求之前,还包括:将所述虚拟存储卷的存储空间分解为一个或多个子存储空间;将所述一个或多个子存储空间分布至一个或多个存储设备中。

根据本发明的另一方面,提供了一种数据读写装置,包括:接收模块,用于接收业务应用发送的用于请求读写虚拟存储卷中存储的数据的读写请求,其中,所述业务应用通过至少两条路径连接至所述虚拟存储卷,所述虚拟存储卷是分布式块上创建的逻辑存储卷,所述路径为所述业务应用经由网关连接至所述虚拟存储卷的路径;处理模块,用于通过所述至少两条路径根据所述读写请求对所述虚拟存储卷中存储的数据进行读写处理。

可选地,所述处理模块包括:发送单元,用于通过所述至少两条路径上经由的网关向与所述网关相连的客户端发送用于读写所述虚拟存储卷中存储的数据的读写指令;第 一处理单元,用于通过所述客户端对所述虚拟存储卷中存储的数据进行读写处理。

可选地,所述第一处理单元包括:当两个以上客户端同时对所述虚拟存储卷中存储的所述数据进行读写处理时,对所述两个以上客户端进行并发互斥控制,其中,所述并发互斥控制为仅允许一个客户端对所述虚拟存储卷中存储的所述数据进行读写处理;根据并发互斥控制结果对所述虚拟存储卷中存储的所述数据进行读写处理。

可选地,所述至少两条路径包括一条第一路径和一条或多条第二路径,所述处理模块包括:判断单元,用于判断所述业务应用使用的第一路径上经由的第一网关是否失效;转移单元,用于在所述判断单元的判断结果为是的情况下,将所述第一网关中的全部负荷转移到所述业务应用的一条或多条第二路径中的一条第二路径经由的第二网关上;第二处理单元,用于利用所述一条或多条第二路径中的一条第二路径对所述虚拟存储卷中存储的数据进行读写处理。

可选地,所述处理模块还包括:确定单元,用于确定所述第一网关恢复正常;第三处理单元,用于将转移到所述第二网关中的全部负荷中的部分负荷转移到所述第一网关中,利用所述一条或多条第二路径中的一条第二路径和所述第一路径对所述虚拟存储卷中存储的数据进行读写处理;或者,第四处理单元,用于将转移到所述第二网关中的全部负荷转移到所述第一网关中,利用所述第一路径对所述虚拟存储卷中存储的数据进行读写处理。

可选地,所述装置还包括:分解模块,用于将所述虚拟存储卷的存储空间分解为一个或多个子存储空间;分布模块,用于将所述一个或多个子存储空间分布至一个或多个存储设备中。

通过本发明,采用接收业务应用发送的用于请求读写虚拟存储卷中存储的数据的读写请求,其中,所述业务应用通过至少两条路径连接至所述虚拟存储卷,所述虚拟存储卷是分布式块上创建的逻辑存储卷,所述路径为所述业务应用经由网关连接至所述虚拟存储卷的路径;通过所述至少两条路径根据所述读写请求对所述虚拟存储卷中存储的数据进行读写处理。解决了相关技术中存在的单个网关失效时,无法读写该网关所连接的存储卷中的数据的问题,进而达到了在单个网关失效时,也能够实现读取该网关所连接的存储卷中的数据,保证业务不中断的效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的数据读写方法的流程图;

图2是根据本发明实施例的数据读写装置的结构框图;

图3是根据本发明实施例的数据读写装置中处理模块24的第一种结构框图;

图4是根据本发明实施例的数据读写装置中处理模块24的第二种结构框图;

图5是根据本发明实施例的数据读写装置中处理模块24的优选结构框图;

图6是根据本发明实施例的数据读写装置的优选结构框图;

图7是根据本发明实施例的分布式块存储及业务应用的系统结构示意图;

图8是根据本发明实施例的虚拟存储卷以及多路径连接示意图;

图9是根据本发明实施例的分布式块存储被封装后提供给业务应用的流程图;

图10是根据本发明实施例的切换控制器在处理网关失效和恢复时的流程图。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

在一个可选的实施例中,针对相关技术中存在的单个网关失效时,无法读写该网关所连接的存储卷中的数据的问题,所提出的解决方案是,将每个存储卷实时或准实时的进行备份到另一个存储卷中,并使用另一个网关提供服务,从而实现网关的高可用性。采用该种方法需要在底层设置两个存储卷。

在本实施例中还提供了一种数据读写方法,图1是根据本发明实施例的数据读写方法的流程图,如图1所示,该流程包括如下步骤:

步骤S102,接收业务应用发送的用于请求读写虚拟存储卷中存储的数据的读写请求,其中,该业务应用通过至少两条路径连接至上述虚拟存储卷,该虚拟存储卷是分布式块上创建的逻辑存储卷,该路径为业务应用经由网关连接至虚拟存储卷的路径;

步骤S104,通过上述至少两条路径根据读写请求对虚拟存储卷中存储的数据进行读写处理。

通过上述步骤,业务应用通过至少两条路径连接至虚拟存储卷中,也就是说,业务应用可以通过不同的网关连接至同一个虚拟存储卷中,从而当其中的一个网关失效时,还可以采用其他路径上的网关对虚拟存储卷进行读写处理。并且,该虚拟存储卷是分布式块上创建的逻辑存储卷,逻辑上,该虚拟存储卷是一段地址连续的存储空间。从而解决了相关技术中存在的单个网关失效时,无法读写该网关所连接的存储卷中的数据的问题,进而达到了在单个网关失效时,也能够实现读取该网关所连接的存储卷中的数据, 保证业务不中断的效果。

在一个可选的实施例中,通过上述至少两条路径根据读写请求对虚拟存储卷中存储的数据进行读写处理包括:通过上述至少两条路径上经由的网关向与该网关相连的客户端发送用于读写虚拟存储卷中存储的数据的读写指令;通过客户端对虚拟存储卷中存储的数据进行读写处理。其中,网关向客户端发送的读写指令可以是小型计算机系统接口(Small Computer System Interface,简称为SCSI)指令,经过客户端对该指令的转换可以将其对应到虚拟存储卷中数据片的读写。

在一个可选的实施例中,通过客户端对虚拟存储卷中存储的数据进行读写处理包括:当两个以上客户端同时对虚拟存储卷中存储的数据进行读写处理时,对该两个以上客户端进行并发互斥控制,其中,该并发互斥控制为仅允许一个客户端对虚拟存储卷中存储的数据进行读写处理;根据并发互斥控制结果对虚拟存储卷中存储的数据进行读写处理。采用上述并发互斥控制的目的是为了避免出现对数据的更新出现丢失,造成业务紊乱的问题。

在一个可选的实施例中,上述至少两条路径包括一条第一路径和一条或多条第二路径,通过上述两个至少两条路径根据读写请求对虚拟存储卷中存储的数据进行读写处理包括:判断给业务应用使用的第一路径上经由的第一网关是否失效;在判断结果为是的情况下,将该第一网关中的全部负荷转移到业务应用的一条或多条第二路径中的一条第二路径经由的第二网关上;利用该一条或多条第二路径中的一条第二路径对虚拟存储卷中存储的数据进行读写处理。从前面描述的实施例中可以确定,每个业务应用可以通过多条路径连接虚拟存储卷,在进行数据的读写时,业务应用可以只使用一条路径经由的网关进行读写处理,在此可以将业务应用使用的网关称为第一网关,当第一网关发生故障后,需要利用其他的网关进行业务处理,可以将该第一网关的负荷转移到业务应用的其他路径的网关上边,可以从其他路径中选择一条用于接替第一路径业务的一个路径,这里可以将选择的该路径称为第二路径,该第二路径的网关称为第二网关。由于业务应用所连接的网关都是可以访问虚拟存储卷的,因此,利用其他网关进行业务处理和利用第一网关进行业务处理对外表现是一样的,不会造成业务的中断。

在一个可选的实施例中,在利用第二路径对虚拟存储卷中存储的数据进行读写处理之后,还包括:确定第一网关恢复正常;将转移到第二网关中的全部负荷中的部分负荷转移到第一网关中,利用第二路径和第一路径对虚拟存储卷中存储的数据进行读写处理;或者,将转移到第二网关中的全部负荷转移到第一网关中,利用该第一路径对虚拟存储卷中存储的数据进行读写处理。

在一个可选的实施例中,在接收业务应用发送的用于请求读写虚拟存储卷中存储的数据的读写请求之前,还包括:将虚拟存储卷的存储空间分解为一个或多个子存储空间;将一个或多个子存储空间分布至一个或多个存储设备中。该存储设备可以是物理的存储模块。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

在本实施例中还提供了一种数据读写装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图2是根据本发明实施例的数据读写装置的结构框图,如图2所示,该装置包括接收模块22和处理模块24,下面对该装置进行说明。

接收模块22,用于接收业务应用发送的用于请求读写虚拟存储卷中存储的数据的读写请求,其中,该业务应用通过至少两条路径连接至虚拟存储卷,该虚拟存储卷是分布式块上创建的逻辑存储卷,该路径为业务应用经由网关连接至虚拟存储卷的路径;处理模块24,连接至上述接收模块22,用于通过至少两条路径根据读写请求对虚拟存储卷中存储的数据进行读写处理。

图3是根据本发明实施例的数据读写装置中处理模块24的第一种结构框图,如图3所示,该处理模块24包括发送单元32和第一处理单元34,下面对该处理模块24进行说明。

发送单元32,用于通过上述至少两条路径上经由的网关向与网关相连的客户端发送用于读写虚拟存储卷中存储的数据的读写指令;第一处理单元34,连接至上述发送单元32,用于通过客户端对虚拟存储卷中存储的数据进行读写处理。

可选地,上述第一处理单元34包括:当两个以上客户端同时对虚拟存储卷中存储的数据进行读写处理时,对该两个以上客户端进行并发互斥控制,其中,并发互斥控制为仅允许一个客户端对虚拟存储卷中存储的数据进行读写处理;根据并发互斥控制结果对虚拟存储卷中存储的数据进行读写处理。

在一个可选的实施例中,上述至少两条路径包括一条第一路径和一条或多条第二路径,图4是根据本发明实施例的数据读写装置中处理模块24的第二种结构框图,如图4所示,该处理模块24包括判断单元42、转移单元44和第二处理单元46,下面对该处理模块24进行说明。

判断单元42,用于判断业务应用使用的第一路径上经由的第一网关是否失效;转移单元44,连接至上述判断单元42,用于在判断单元42的判断结果为是的情况下,将第 一网关中的全部负荷转移到业务应用的一条或多条第二路径中的一条第二路径经由的第二网关上;第二处理单元46,连接至上述转移单元44,用于利用该一条或多条第二路径中的一条第二路径对虚拟存储卷中存储的数据进行读写处理。

图5是根据本发明实施例的数据读写装置中处理模块24的优选结构框图,如图5所示,该装置除包括图4所示的所有单元外,还包括确定单元52以及第三处理单元54或者第四处理单元56,下面对该处理模块24进行说明。

确定单元52,用于确定第一网关恢复正常;第三处理单元54,连接至上述确定单元52,用于将转移到第二网关中的全部负荷中的部分负荷转移到第一网关中,利用该一条或多条第二路径中的一条第二路径和第一路径对虚拟存储卷中存储的数据进行读写处理;或者,第四处理单元56,连接至上述确定单元52,用于将转移到第二网关中的全部负荷转移到第一网关中,利用第一路径对虚拟存储卷中存储的数据进行读写处理。

图6是根据本发明实施例的数据读写装置的优选结构框图,如图6所示,该装置除包括图2所示的所有模块外,还包括分解模块62和分布模块64,下面对该装置进行说明。

分解模块62,用于将虚拟存储卷的存储空间分解为一个或多个子存储空间;分布模块64,连接至上述分解模块62和接收模块22,用于将一个或多个子存储空间分布至一个或多个存储设备中。

图7是根据本发明实施例的分布式块存储及业务应用的系统结构示意图,如图7中的系统结构图所示,本发明实施例中的块存储是分布式架构,由存储模块(同上述的存储设备)、协作模块(同上述的分解模块62和分布模块64)和客户端模块(同上述的客户端)组成,该系统还包括网关、切换控制器(对应于上述的判断单元42、转移单元44、第二处理单元46、确定单元52、第三处理单元54、第四处理单元56)和业务应用。

其中,存储模块的作用是实际对数据进行高可靠的存储;协作模块的主要作用是管理数据的分布信息,以及管理虚拟的存储卷的信息;客户端模块的主要作用是对外提供以存储卷为单位的块存储服务能力,并且可以通过多个客户端模块同时访问同一个虚拟存储卷。客户端模块将网关传输的SCSI块接口指令转换为分布式块存储内部的数据读写操作。

网关作用是将客户端提供的存储卷的块设备接口转换为标准iSCSI或FC协议,供业务应用使用;切换控制器的作用是负责观察网关是否失效,并在失效时将失效网关的负荷及地址切换给其他正常的网关;业务应用的作用是块存储服务的最终使用单元,将分布式块存储内部的虚拟存储卷通过客户端和网关的接口,映射为本地一个块设备路径后进行使用。

在本发明实施例中,存储卷是虚拟的,可通过多个客户端模块和网关同时对外提供 服务。然后业务应用侧使用多路径机制,将同一个虚拟的存储卷从多个网关上提供的块存储服务重新映射为一个存储卷使用。一个虚拟存储卷是分布式块存储内部创建的逻辑上的存储卷。逻辑上,存储卷是一段地址连续的存储空间;在分布式块存储的实现中,实际是由协作模块将虚拟存储卷的逻辑上的存储空间分解为若干个离散的存储空间,分布到各个存储模块上进行存储。虚拟存储卷的分布规则,也由协作模块负责拟定和存储。

对客户端模块以上的模块(网关和业务应用)来说,对外呈现的是完整的、地址连续的存储卷;而客户端模块会根据虚拟存储卷的分布规则,将虚拟存储卷分解为若干个零散的数据片,分布地存储于各个存储模块上。网关发来的一条SCSI指令,经过客户端模块转换后,对应到一个数据片的读写。本发明中,如果多个客户端收到的SCSI指令需要对同一个数据片同时访问时,存储模块会对针对这个数据片的读写进行并发互斥控制,避免出现对数据片的更新出现丢失,使得多个客户端模块可以同时访问同一个虚拟存储卷,并且基于该特性将虚拟存储卷纳入多路径管理。

当有网关出现失效时,切换控制器在有限时间内发现网关的失效,并且将失效网关之前承载的负荷,以及失效网关的地址一起转移到其他网关上。其有益效果在于始终保持多路径连接时路径个数的冗余,防止继续发生网关或链路失效时引起服务不可用的情况。

为实现高可用性,业务应用通常会采用多路径的方式,即通过多个网络适配器的多条链路连接同一个存储卷。当其中一路网络适配器或上级网络交换设备失效后,仍然能够通过另一个路径访问。相关技术中的多路径是业务应用与同一个网关间的多路径;而本发明实施例中的多路径是业务应用与同一个虚拟存储卷间的多路径,中间穿越多组网关和客户端模块,如图8所示,图8是根据本发明实施例的虚拟存储卷以及多路径连接示意图。

为了进一步提升整体的高可用性,本发明使用切换控制器管理网关提供服务的策略,如图7所示。当有网关出现失效时,切换控制器在有限时间内发现网关的失效,并且将失效网关之前承载的负荷,以及失效网关的地址一起转移到其他网关上。其有益效果在于始终保持多路径连接时路径个数的冗余,防止继续发生网关或链路失效时引起服务不可用的情况。

本发明实施例中的在分布式块存储中创建虚拟存储卷,并经过封装后提供给业务应用的步骤如下:

第一步,在分布式块存储系统中创建虚拟存储卷,虚拟存储卷被切分为若干个数据片,并分布在若干个存储模块;

第二步,在每个网关节点上,部署分布式块存储的客户端模块,因存储模块对同一个数据片有读写的并发控制,客户端模块可以访问到同一个虚拟存储卷并进行数据读写;

第三步,网关将客户端模块提供的块存储接口转换为标准块存储接口,提供给业务应用;

第四步,业务应用连接多个网关的块存储接口并挂载为本地的多个存储路径,于是从业务应用到虚拟存储卷建立了多条端到端的I/O路径;

第五步,业务应用使用多路径机制将多个存储路径合并为一个存储路径使用,这里的多个存储路径实际对应的是同一个虚拟存储卷。

本发明实施例中,多个网关使用切换控制器实现网关服务的高可用性的步骤如下:

第一步,正常服务过程中发生网关失效,切换控制器观察到网关失效;

第二步,切换控制器选择其他网关来承担失效网关的负荷;

第三步,失效网关在一段时间后启动,切换控制器观察到失效网关重新启动;

第四步,切换控制器重新分配负荷,使失效网关恢复服务提供。

采用本发明实施例中的方法和装置,能够强化了块存储服务的高可用性,克服了网关节点自身单点失效的问题,并且保持了业务应用多路径连接时的路径冗余,避免进一步发生路径失效时对服务造成影响。

下面结合具体的应用场景对本发明进行说明:

VMWare(一种商业虚拟机软件)/KVM(Kernel-based Virtual Machine,一种开源虚拟机)虚拟桌面场景。

在虚拟桌面场景中,业务应用使用VMWare,或KVM软件虚拟桌面管理系统,通过网关提供的iSCSI或FC标准接口挂载分布式块存储提供的存储卷。虚拟桌面系统采用多路径方式连接多个网关,多个网关通过客户端模块映射同一个虚拟存储卷。并且网关节点通过切换控制器实现更高的可用性。VMWare通常会将存储卷转换为VMFS格式的存储池,然后在存储池中创建虚机镜像文件,供虚拟桌面使用。KVM通常是将存储卷直接作为块设备提供给虚拟桌面使用。通过本发明中的技术,将获得更高的可用性。

Openstack(一个开源的云计算管理平台项目)场景。

在Openstack中,有Nova(计算组织控制器),Cinder(存储组织控制器)等模块使用分布式块存储提供的存储卷作为存储后端。Nova和Cinder通常会采用多路径方式连接多个网关,多个网关通过客户端模块映射同一个虚拟存储卷。并且网关节点通过切换控制器实现更高的可用性。

数据库场景。

在数据库场景中,例如Oracle(一种商业数据库软件)或MySQL(一种开源数据 库软件)数据库,可以将分布式块存储的存储卷作为存储后端,采用多路径方式连接多个网关,多个网关通过客户端模块映射同一个虚拟存储卷。并且网关节点通过切换控制器实现更高的可用性。数据库可直接使用存储卷的块接口,或者将存储卷格式化为文件系统来使用。通过本发明实施例中的方案,将获得更高的可用性。

数据备份系统。

数据备份系统是一种容灾软件,为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合复制到其它的存储介质,可以使用分布式块存储作为目标介质,数据备份系统采用多路径方式连接多个网关,多个网关通过客户端模块映射同一个虚拟存储卷,并且网关节点通过切换控制器实现更高的可用性。

图9是根据本发明实施例的分布式块存储被封装后提供给业务应用的流程图,如图9所示,在分布式块存储中创建虚拟存储卷,并经过封装后提供给业务应用的步骤如下。

步骤S902,在分布式块存储系统中创建虚拟存储卷,可用命令行方式或图形界面方式实现;创建虚拟存储卷时,至少需指定虚拟存储卷的名称,最大存储容量,副本数,以及数据的分布规则等特征;

步骤S904,虚拟存储卷被切分为若干个数据片,并分布在若干个存储模块;

步骤S906,在每个网关节点上,部署分布式块存储的客户端模块,因存储模块对同一个数据片有读写的并发控制,客户端模块可以访问到同一个虚拟存储卷并进行数据读写;

步骤S908,网关节点将客户端模块提供的块存储接口转换为标准的iSCSI或FC块存储接口,提供给业务应用使用;

步骤S910,业务应用连接多个网关的块存储接口并挂载为本地的多个存储路径;

步骤S912,从业务应用到虚拟存储卷建立多条端到端的IO路径;

步骤S914,业务应用使用多路径机制将多个存储路径合并为一个存储路径使用,这里的多个存储路径实际对应的是同一个虚拟存储卷。

在上述架构基础上,对多个网关使用切换控制器实现网关服务的高可用性。如图10所示,图10是根据本发明实施例的切换控制器在处理网关失效和恢复时的流程图,如图10所示,该流程包括如下步骤:

步骤S1002,正常服务过程中,发生网关A失效;

步骤S1004,切换控制器观察到网关A失效,切换控制器通过心跳机制和网关的状态查看指令来观察网关是否工作正常;

步骤S1006,切换控制器选择其他网关(网关B)来承担之前网关A的负荷,切换 控制器会更改网关B上的配置信息,使其加载之前网关A的配置信息,并且将网关A的服务地址切换到网关B上;这里的服务地址和配置信息存在相对固定的对应关系,是多对多的,一个地址可对应多个虚拟存储卷的配置信息,多个地址可以对应相同的虚拟存储卷配置信息;

步骤S1008,网关A在一段时间后恢复,能够启动,此时网关A没有服务地址,且不承担负荷;

步骤S1010,切换控制器观察到网关A恢复;

步骤S1012,切换控制器进行负荷分配,将网关B上的一部分负荷分配到网关A上,切换控制器会使网关B的一部分服务地址切换到网关A上,并且更改网关A的配置信息,使其加载服务地址对应的配置信息;

步骤S1014,网关A开始提供服务。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述模块分别位于多个处理器中。

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:

S1,接收业务应用发送的用于请求读写虚拟存储卷中存储的数据的读写请求,其中,该业务应用通过至少两条路径连接至上述虚拟存储卷,该虚拟存储卷是分布式块上创建的逻辑存储卷,该路径为业务应用经由网关连接至虚拟存储卷的路径;

S2,通过上述至少两条路径根据读写请求对虚拟存储卷中存储的数据进行读写处理。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

通过上述实施例能够达在分布式的块存储架构中,实现业务应用和块存储服务的端到端高可用性。当业务应用和网关间单条路径失效,或单个网关失效时,对业务应用的块存储服务能够自动的快速恢复。相对于现有技术,本发明实施例中的技术方案克服了单个网关失效时,服务会中断的问题;此外,相关技术中单条链路失效时,将由剩余的其他链路承担其负荷,不仅性能会有所下降,且剩余的链路如果再出现失效的情况,将影响服务的提供,本发明实施例中的方案也能够很好的解决这些问题。解决了相关技术中多路径技术中存在单条路径失效时,路径冗余不完整,无法承受进一步路径失效的问 题。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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