存储系统中操作请求处理方法和装置与流程

文档序号:17633905发布日期:2019-05-11 00:17阅读:170来源:国知局
存储系统中操作请求处理方法和装置与流程

本发明涉及信息技术领域,特别涉及一种存储系统中操作请求处理方法和装置。



背景技术:

存储系统中,元数据服务器用于管理对存储系统的操作请求,记录存储系统的元数据。用户在访问存储系统时,首先要与元数据服务器进行通信,获取操作请求所需要的元数据。

为了保证存储系统的负载均衡,现有技术中,存储系统基于全局分布式负载均衡方案,根据存储设备之间进行信息交互实现存储系统的负载均衡,但是存储设备之间进行信息交互不方便。



技术实现要素:

基于现有技术存在的上述问题,本发明实施例提供了一种存储系统中操作请求处理方法、装置及非易失性计算机可读存储介质,以及一种生成流表项转发规则的方法、装置及非易失性计算机可读存储介质。

第一方面,本发明实施例提供了一种存储系统中操作请求处理方法,所述存储系统包括:控制器、交换机和与所述交换机通信的存储设备,所述控制器与所述交换机通信,所述控制器用于制定并下发所述交换机的流表;所述方法包括:

所述交换机接收操作请求,所述操作请求携带请求标识;其中,所述请求标识包括用户组信息和存储策略信息中的至少一种;

所述交换机根据所述请求标识查询所述交换机的流表,获得与所述操作请求匹配的流表项;

所述交换机根据所述匹配的流表项的转发规则,向所述存储设备中的目标存储设备转发所述操作请求。

根据第一方面实施例,在第一种可能的实施方式中,当所述请求标识为用户组信息时,所述操作请求的虚拟局域网络标识位携带所述用户组信息,所述匹配的流表项的包头域的虚拟局域网络标识位携带所述用户组信息;或

当所述请求标识为存储策略信息时,所述操作请求的互联网协议服务类型位携带所述存储策略信息,所述匹配的流表项的包头域的互联网协议服务类型位携带所述存储策略信息;或

当所述请求标识为用户组信息和存储策略信息时,所述操作请求的虚拟局域网络标识位携带所述用户组信息,所述操作请求的互联网协议服务类型位携带所述存储策略信息,所述匹配的流表项的包头域的虚拟局域网络标识位携带所述用户组信息,所述包头域的互联网协议服务类型位携带所述存储策略信息。

根据第一方面实施例,在第二种可能的实施方式中,当所述操作请求为读取请求时,所述匹配的流表项的转发规则是由所述控制器根据存储所请求数据的存储设备流量负载制定的。

根据第二可能的实施方式,在第三种可能的实施方式中,还包括:

所述交换机更新所述匹配的流表项中记录的向所述目标存储设备转发读取请求的次数。

根据第一方面实施例或第一方面实施例的第一种可能实施方式,在第四种可能的实施方式中,当所述操作请求为写入请求时,所述匹配的流表项的转发转发规则是由所述控制器根据所述存储设备剩余存储空间制定的。

根据第四种可能的实施方式,在第五种可能的实施方式中,还包括:

所述交换机更新所述匹配的流表项中记录的向所述目标存储设备转发写入请求的次数。

第二方面,本发明实施例提供了一种生成流表项转发规则的方法,包括:所述方法应用于存储系统,所述存储系统包括:控制器、交换机和与所述交换机通信的存储设备,所述控制器与所述交换机通信,所述控制器用于制定并下发所述交换机的流表;所述方法包括:

所述控制器获取与所述交换机通信的存储设备剩余存储空间信息;

所述控制器根据所述存储设备剩余存储空间信息,生成与写入请求匹配的转发规则,所述写入请求用于向与所述交换机通信的存储设备写入数据。

根据第二方面,在第一种可能的实施方式中,所述控制器获取与所述交换机通信的存储设备剩余存储空间信息,具体包括:

所述控制器接收所述存储设备上报的剩余存储空间信息。

根据第二方面,在第二种可能的实施方式中,所述控制器获取与所述交换机通信的存储设备剩余存储空间信息,具体包括:

所述控制器获取所述交换机流表中流表项记录的向所述存储设备转发写入请求次数及写入数据大小;

所述控制器根据所述存储设备的存储空间、所述写入请求次数及写入数据大小计算,所述与所述存储设备的剩余存储空间。

第三方面,本发明实施例提供了一种生成流表项转发规则的方法,包括:所述方法应用于存储系统,所述存储系统包括:控制器、交换机和与所述交换机通信的存储设备,所述控制器与所述交换机通信,所述控制器用于制定并下发所述交换机的流表;所述方法包括:

所述控制器获取存储所请求数据的存储设备的流量负载信息;

所述控制器根据所述存储所请求数据的存储设备的流量负载信息,生成与读取请求匹配的转发规则。

根据第三方面,在第一种可能的实施方式中,所述控制器获取所述存储所请求数据的存储设备的流量负载信息,具体包括:

所述控制器接收所述存储所请求数据的存储设备上报的流量负载信息。

根据第三方面,在第二种可能的实施方式中,所述控制器获取所述存储所请求数据的存储设备的流量负载信息,具体包括:

所述控制器获取所述交换机流表中流表项记录的向所述存储所请求数据的存储设备转发操作请求的次数;其中,所述操作请求包括写入请求和读取请求。

第四方面,本发明实施例提供了一种交换机,包括,所述交换机应用于存储系统,所述存储系统包括:控制器、所述交换机和与所述交换机通信的存储设备,所述控制器与所述交换机通信,所述控制器用于制定并下发所述交换机的流表;所述交换机包括:

接收单元,用于接收操作请求,所述操作请求携带请求标识;其中,所述请求标识包括用户组信息和存储策略信息中的至少一种;

查询单元,用于根据所述请求标识查询交换机的流表,获得与所述操作请求匹配的流表项;

转发单元,用于根据所述匹配的流表项的转发规则,向所述存储设备中的目标存储设备转发所述操作请求。

根据第四方面,在第一种可能的实施方式中,当所述操作请求为读取请求时,所述匹配的流表项的转发规则是由所述控制器根据存储所请求数据的存储设备流量负载制定的。

根据第四方面,在第二种可能的实施方式中,当所述操作请求为写入请求时,所述匹配的流表项的转发转发规则是由所述控制器根据所述存储设备剩余存储空间制定的。

第五方面,本发明实施例提供了一种控制器,包括,所述控制器应用于存储系统,所述存储系统包括:所述控制器、交换机和与所述交换机通信的存储设备,所述控制器与所述交换机通信,所述控制器用于制定并下发所述交换机的流表;所述控制器包括:

获取单元,用于获取与所述交换机通信的存储设备剩余存储空间信息;

生成单元,用于根据所述存储设备剩余存储空间信息,生成与写入请求匹配的转发规则,所述写入请求用于向与所述交换机通信的存储设备写入数据。

根据第五方面,在第一种可能的实施方式中,所述获取单元,具体用于:接收所述存储设备上报的剩余存储空间信息。

根据第五方面,在第二种可能的实施方式中,所述获取单元,具体用于:获取所述交换机流表中流表项记录的向所述存储设备转发写入请求次数及写入数据大小;

所述控制器根据所述存储设备的存储空间、所述写入请求次数及写入数据大小,计算所述存储设备的剩余存储空间。

第六方面,本发明实施例提供了一种控制器,包括,所述控制器应用于存储系统,所述存储系统包括:所述控制器、交换机和与所述交换机通信的存储设备,所述控制器与所述交换机通信,所述控制器用于制定并下发所述交换机的流表;所述控制器包括:

获取单元,用于获取存储所请求数据的存储设备的流量负载信息;

生成单元,用于根据所述存储所请求数据的存储设备的流量负载信息,生成与读取请求匹配的转发规则。

根据第六方面,在第一种可能的实施方式中,所述获取单元,具体用于:接收所述存储所请求数据的存储设备上报的流量负载信息。

根据第六方面,在第二种可能的实施方式中,所述获取单元,具体用于:获取所述交换机流表中流表项记录的向所述存储所请求数据的存储设备转发操作请求的次数;其中,所述操作请求包括写入请求和读取请求。

第七方面,本发明实施例提供了一种交换机,所述交换机应用于存储系统,所述存储系统包括:控制器、所述交换机和与所述交换机通信的存储设备,所述控制器与所述交换机通信,所述控制器用于制定并下发所述交换机的流表;所述交换机包括中央处理器和内存,所述中央处理器和所述内存通过总线连接,所述内存用于存储计算机指令,所述中央处理器执行所述内存中存储的所述计算机指令,实现本发明第一方面或第一方面第一至第四种任一可能的实施方式。

第八方面,本发明实施例提供了一种控制器,所述控制器应用于存储系统,所述存储系统包括:所述控制器、交换机和与所述交换机通信的存储设备,所述控制器与所述交换机通信,所述控制器用于制定并下发所述交换机的流表;所述控制器包括中央处理器和内存,所述中央处理器和所述内存通过总线连接,所述内存用于存储计算机指令,所述中央处理器执行所述内存中存储的所述计算机指令,实现本发明第二方面、第二方面第一或第二种可能的实施方式。

第九方面,本发明实施例提供了一种控制器,所述控制器应用于存储系统,所述存储系统包括:所述控制器、交换机和与所述交换机通信的存储设备,所述控制器与所述交换机通信,所述控制器用于制定并下发所述交换机的流表;所述控制器包括中央处理器和内存,所述中央处理器和所述内存通过总线连接,所述内存用于存储计算机指令,所述中央处理器执行所述内存中存储的所述计算机指令,实现本发明第三方面、第三方面第一或第二种可能的实施方式。

第十方面,本发明实施例提供了一种非易失性计算机可读存储介质,所述计算机存储介质存储计算机指令,当计算机执行所述计算机指令时,用于实现本发明第一方面或第一方面第一至第四种任一可能的实施方式。

第十一方面,本发明实施例提供了一种非易失性计算机可读存储介质,所述计算机存储介质存储计算机指令,当计算机执行所述计算机指令时,用于实现本发明第二方面、第二方面第一或第二种可能的实施方式。

第十二方面,本发明实施例提供了一种非易失性计算机可读存储介质,所述计算机存储介质存储计算机指令,当计算机执行所述计算机指令时,用于实现本发明第三方面、第三方面第一或第二种可能的实施方式。

本发明实施例,在存储系统中,交换机接收操作请求,操作请求携带请求标识;交换机根据请求标识查询交换机的流表,获得与操作请求匹配的流表项,交换机根据匹配的流表项的转发规则,向存储设备中的目标存储设备转发操作请求,利用软件定义网络(Software Defined Network)的特性,根据交换机流表项的转发规则处理操作请求,实现了存储设备负载均衡,减少了存储设备之间的信息交互。

附图说明

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

图1为本发明实施例方法示意图;

图2为本发明实施例对象存储系统示意图;

图3为基于开放流(Openflow)协议的软件定义网络系统图;

图4为软件定义网络中交换机中的流表;

图5为流表中流表项结构示意图;

图6为流表项包头域结构示意图;

图7为本发明实施例对象存储系统的对象操作请求处理方法示意图;

图8为本发明实施例控制器生成流表项转发规则的方法示意图;

图9为本发明实施例控制器生成流表项转发规则的方法示意图;

图10为交换机示意图;

图11为控制器示意图。

具体实施例

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

本发明实施例应用于存储系统中,所述存储系统包括:控制器、交换机和与交换机通信的存储设备,所述控制器与所述交换机通信,所述控制器用于制定并下发所述交换机的流表。存储系统可以为文件级存储系统、数据块级存储系统或对象存储系统。存储系统也可以包含文件级存储系统、数据块级存储系统和对象存储系统中至少两种。

如图1所示,本发明实施例提供的存储系统中的操作请求处理方法如下:

101:交换机接收操作请求,所述操作请求携带请求标识;其中,所述请求标识包括用户组信息和存储策略信息中的至少一种;

102:所述交换机根据所述请求标识查询所述交换机的流表,获得与所述操作请求匹配的流表项;

103:所述交换机根据所述匹配的流表项的转发规则,向存储设备中的目标存储设备转发所述操作请求。

其中一种实施方式,当所述请求标识为用户组信息时,所述操作请求的虚拟局域网络标识位携带所述用户组信息,所述匹配的流表项的包头域的虚拟局域网络标识位携带所述用户组信息;或

当所述请求标识为存储策略信息时,所述操作请求的互联网协议服务类型位携带所述存储策略信息,所述匹配的流表项的包头域的互联网协议服务类型位携带所述存储策略信息;或

当所述请求标识为用户组信息和存储策略信息时,所述操作请求的虚拟局域网络标识位携带所述用户组信息,所述操作请求的互联网协议服务类型位携带所述存储策略信息,所述匹配的流表项的包头域的虚拟局域网络标识位携带所述用户组信息,所述包头域的互联网协议服务类型位携带所述存储策略信息。

其中一种实施方式,当所述操作请求为读取请求时,所述匹配的流表项的转发规则是由所述控制器根据存储所请求数据的存储设备流量负载制定的。

进一步地,还包括:所述交换机更新所述匹配的流表项中记录的向所述目标存储设备转发读取请求的次数。

其中一种实施方式,当所述操作请求为写入请求时,所述匹配的流表项的转发转发规则是由所述控制器根据所述存储设备剩余存储空间制定的。

进一步地,还包括:所述交换机更新所述匹配的流表项中记录的向所述目标存储设备转发写入请求的次数。

本发明实施例中请求标识包括用户组信息和存储策略信息中的至少一种,其中,用户组信息可以为客户端的IP地址信息,或者客户端的地址信息等;存储策略信息可以为所请求数据在存储设备中的副本数量,或者请求写入数据在存储设备中的副本数量。

本发明实施例提供的存储系统中操作请求的处理方法,利用软件定义网络的特性,根据交换机流表项的转发规则处理操作请求,实现了存储设备的负载均衡,减少了存储设备之间的信息交互。

以对象存储系统为例,在对象存储系统中,对象作为数据存储的基本单位,一个对象包括文件的数据和文件的元数据,操作请求为对象操作请求,包括对象读取请求和对象写入请求,读取请求,即对象读取请求所请求的数据为对象,对象写入请求所写入的数据为对象,在对象存储系统中,存储设备为对象存储设备。在本发明实施例中,如图2所示,对象存储系统包括元数据服务器103、控制器104、交换机1051至105m、存储设备1061、1062、1063至106L,在对象存储系统中,即对象存储设备1061、1062、1063至106L。其中L为整数,表示对象存储设备数量,具体取值不作限定。元数据服务器103,用于存储对象存储设备1061、1062、1063至106L中存储的数据的请求标识,这里即用于存储对象存储设备1061、1062、1063至106L中存储的对象的请求标识,关于请求标识,后述会详细介绍;对象存储设备1061、1062、1063至106L,用于存储数据,在对象存储系统中,即用于存储对象;交换机1051至105m与控制器104构成软件定义网络,交换机1051至105m与对象存储设备1061、1062、1063至106L通信;交换机1051至105m,用于根据流表中的流表项的转发规则向对象存储设备1061、1062、1063至106L转发操作请求,在对象存储系统中,即对象操作请求;控制器104,用于制定和更新交换机1051至105m的流表中的流表项。本发明实施例中,只给出了控制器104,本发明实施例的对象存储系统中,控制器并不限定于只有1个,可以由多个控制器,以实现负载均衡和冗余。图2所示的客户端1011至101n,一种实现方式,通过对象存储系统代理102发送对象操作请求,访问对象存储设备1061、1062、1063至106L,其中,n为整数,表示客户端数量,具体取值不作限定,本发明实施例中对象存储系统代理102可以为独立的物理服务器,也可以集成在客户端1011至101n中,本发明对此不作限定。

由控制器104和交换机1051至105m组成的软件定义网络中,控制器与交换机1051至105m通过安全通道进行通信。例如,控制器104与交换机1051至105m可以通过Openflow协议通信,控制器制定并更新交换机1051至105m中存储的流表的流表项,本发明实施例中,控制器104与交换机1051之间使用Openflow协议只是一种示例性描述,本发明也适用于在软件定义网络中的其他协议实现的方式。以交换机1051和控制器104为例,如图3所示,控制器104制定并更新交换机1051中流表的流表项,当交换机1051接收到对象操作请求后,解析对象操作请求,在交换机1051的流表中查询与该对象操作请求匹配的流表项,根据匹配的流表项的转发规则处理该对象操作请求。具体地,一种实施方式,在交换机1051中,流表由流表项1、流表项2至流表项R构成,其中R为自然数。如图4所示,交换机1051接收对象操作请求,查询流表的流表项,通常是以流水线方式查询流表的流表项,如果查询到与对象操作请求匹配的流表项,则根据该匹配的流表项的转发规则进行处理。对于图4所示的流表中的流表项,具体结构如图5所示,包括包头域、计数器和转发规则三部分。包头域用于进行对象操作请求的匹配;计数器用于对该流表项处理对象操作请求的次数进行统计;转发规则用于决定对象操作请求的转发方式,例如如何转发该对象操作请求,决定向哪一个端口转发操作请求等。其中,如图6所示,包头域包括输入端口、媒体访问控制(Media Access Control,MAC)源地址、MAC目的地址、以太网类型、虚拟局域网络标识(Virtual Local Area Network Identification,VLAN ID)、互联网协议(Internet Protocol,IP)源地址、IP目的地址、IP端口、IP服务类型(Type of Service,ToS)位、传输控制协议(Transmission Control Protocol,TCP)源端口和TCP目的端口。本发明实施例中的对象操作请求,可以封装请求标识,请求标识包括用户组信息和存储策略信息中的至少一种。如将用户组信息封装在对象操作请求中,具体地,用户组信息可以封装在对象操作请求的VLAN ID位中,存储策略信息封装在对象操作请求的IP ToS位中,请求标识的封装可以由对象存储系统代理102完成。当交换机1051接收到对象操作请求后,查询交换机1051的流表中与对象操作请求匹配的流表项。根据查询到的匹配的流表项的转发规则处理对象操作请求。当根据转发规则转发对象操作请求后,计数器更新该流表项的对象操作请求转发次数。当不存在与对象操作请求匹配的流表项时,将该对象操作请求转发到控制器104,控制器104为该对象操作请求制定转发规则,生成流表项,更新交换机1051上的流表。

基于上述描述,本发明实施例提供了在图2所示的系统架构下一种对象存储系统的对象操作请求处理方法,如图7所示,包括:

步骤701:交换机接收对象操作请求,所述对象操作请求携带请求标识;其中,所述请求标识包括用户组信息和存储策略信息中的至少一种;

步骤702:所述交换机根据所述请求标识查询所述交换机的流表,获取与所述操作请求匹配的流表项;

步骤703:所述交换机根据所述匹配的流表项的转发规则,向对象存储设备中的目标对象存储设备转发所述对象操作请求。

在上述对象存储系统的对象操作请求处理方法中,当所述请求标识为用户组信息时,所述对象操作请求的虚拟局域网络标识位携带所述用户组信息,所述匹配的流表项的包头域的虚拟局域网络标识位携带所述用户组信息;或

当所述请求标识为存储策略信息时,所述对象操作请求的互联网协议服务类型位携带所述存储策略信息,所述匹配的流表项的包头域的互联网协议服务类型位携带所述存储策略信息;或

当所述请求标识为用户组信息和存储策略信息时,所述对象操作请求的虚拟局域网络标识位携带所述用户组信息,所述对象操作请求的互联网协议服务类型位携带所述存储策略信息,所述匹配的流表项的包头域的虚拟局域网络标识位携带所述用户组信息,所述包头域的互联网协议服务类型位所述存储策略信息。

本发明实施例提供的对象存储系统中,在将携带请求标识的对象操作请求通过软件定义网络中的交换机转发至对应的对象存储设备,控制器制定交换机流表项中的转发规则,交换机根据流表项中的转发规则转发对象读取请求,实现了对象存储设备负载均衡,减少了对象存储设备之间的信息交互。

结合图2,具体地,在图7所示的对象操作请求处理方法中,当所述对象操作请求为对象读取请求时,所述匹配的流表项的转发规则是由所述控制器根据存储所请求对象的对象存储设备流量负载制定的。所述交换机根据所述匹配的流表项的转发规则向所述对象存储设备中的目标对象存储设备转发所述对象操作请求后还包括:所述交换机更新所述匹配的流表项中记录的向所述对象目标存储设备转发对象读取请求的次数。接下来将具体描述。

以客户端101向对象存储系统发送读取请求为例,客户端101发送读取请求。对象存储系统代理102接收客户端101发送的读取请求,根据所述读取请求,访问元数据服务器103,获取被请求对象的请求标识。请求标识包括用户组信息和存储策略信息中的至少一种。所述请求标识是对象写入到对象存储设备后,将对象写入请求携带的用户组信息和存储策略信息中的至少一种存储到元数据服务器103,元数据服务器103存储的请求标识是由存储写入对象的对象存储设备向元数据服务器103注册的该对象的请求标识的内容决定。当客户端向对象存储系统发起对该对象的读取请求时,查询元数据服务器103,获取该对象的请求标识。其中,用户组信息可以为向对象存储系统写入该对象的客户端的IP地址信息,或者其他可以标识向对象存储系统写入该对象的客户端的信息;存储策略信息可以为所请求的对象在对象存储设备中的副本数量。对于对象读取请求,由于所请求的对象已经存储在对象存储设备中,当所请求的对象被写入到对象存储设备上时,会向元数据服务器103发送该对象的请求标识。本发明实施例以请求标识包括用户组信息和存储策略为例,其中用户组信息为写入所请求对象的客户端IP地址信息,存储策略信息为所请求的对象的副本数量为3。对象存储系统代理102将从元数据服务器103获取的请求标识进行封装,生成对象读取请求,对象读取请求的具体格式如图6所示,本发明实施例中,将用户组信息封装到对象读取操作请求的VLAN ID位,将存储策略信息封装到对象读取操作请求的IP ToS位。

对象存储系统代理102将对象读取请求发送到交换机1051。

交换机1051接收存储系统代理102发送的对象读取请求,解析出该对象读取请求的VLAN ID位和ToS位信息,分别获取用户组信息和存储策略信息。根据解析出的用户组信息和存储策略信息,查询流表的流表项。用从对象读取请求的VLAN ID位解析出的用户组信息和从对象读取请求的IP ToS位解析出的存储策略信息分别与流表项的包头域匹配,查找到匹配的流表项,则根据该匹配的流表项的转发规则进行转发。具体地,对于对象读取请求,流表项的转发规则是控制器104根据存储所请求对象的对象存储设备流量负载制定的,即根据所请求对象所在的对象存储设备的流量负载,选择目标对象存储设备。例如,如图4所示的流表中,流表项3为与所述对象读取请求匹配的流表项,流表项3的结构如图5所示,则包头域中的VLAN ID的信息与所述对象读取请求VLAN ID中的信息匹配,包头域中的IP ToS位中的信息与所述对象读取请求IP ToS位中的信息匹配。流表项3中的转发规则是由控制器104根据存储所请求对象的对象存储设备的流量负载制定的,如对象存储设备1061、1062和1063为存储所请求对象的3个副本的对象存储设备。控制器104根据对象存储设备1061、1062和1063的流量负载确定对象存储设备1061为流量负载最小的对象存储设备,则转发规则为向对象存储设备1061转发该对象读取请求。控制器104根据对象存储设备1061、1062和1063的流量负载制定转发规则,具体地,交换机1051会周期性地向控制器104上报流表中各流表项中记录的对象操作请求转发次数,或者控制器104周期性地从交换机1051获取流表中各流表项中记录的对象操作请求转发次数,或者对象存储设备1061、1062和1063会向控制器上报流量负载,以更新流表项的转发规则,这里的对象操作请求包括对象读取请求和对象写入请求。其中一种方式,控制器104根据为向对象存储设备1061、1062和1063转发对象操作请求的流表项的计数器记录的转发次数制定或更新流表项的转发规则,例如转发规则为向对象存储设备1061转发对象操作请求的流表项有50个,这50个流表项在上述一个周期,各流表项计数器记录的对象操作请求转发次数总和为5000次,转发规则为向对象存储设备1062转发对象操作请求的流表项有45个,这45个流表项在上述一个周期各流表项计数器记录的对象操作请求次数总和为5500次,有转发规则为向对象存储设备1063转发对象操作请求的流表项50个,这50个流表项在上述一个周期,各流表项计数器记录的对象操作请求次数总和为6000次,则在上述一个周期内,对象存储设备1061的流量负载最小,因此,在本发明实施例中,针对该对象读取请求所请求的对象,控制器104根据存储该对象的对象存储设备1061、1062和1063的流量负载,为对象读取请求制定的转发规则为向对象存储设备1061转发。当交换机1051未查询到匹配的流表项时,交换机1051通过图2所示的安全通道,使用Openflow协议向控制器104转发该对象读取请求,控制器104该对象读取请求携带的请求标识确定所请求的对象,根据存储所请求对象的对象存储设备的流量负载,为该对象读取请求制定流表项,并向交换机1051下发该流表项,以更新交换机1051中的流表,交换机1051根据控制器104下发的流表项转发该对象读取请求。

本发明实施例中,假设对象存储设备1061为流量负载最小的对象存储设备,则交换机根据匹配的流表项3中的转发规则,向对象存储设备1061与交换机1051通信的端口转发该对象操作请求。流表项3中的计数器会更新向对象存储设备1061转发对象读取操作请求的次数。

交换机1051将所述对象读取请求的目的IP地址修改为对象存储设备1062的IP地址,将该对象读取请求的目的MAC地址修改为对象存储设备1062的MAC地址,向对象存储设备1062转发修改后的对象读取请求。

对象存储设备1062收到该修改后的对象读取请求后,返回被请求的对象的内容给对象存储系统代理102。

对象存储系统代理102向客户端101返回该被请求的对象的内容。

本发明实施例中对于对象读取请求,另一种实施方式为,对于存在两份以上副本的对象,如本发明实施例中被请求的对象在对象存储设备中有3份副本,与对象读取请求匹配的流表项的转发规则可以为向两个对象存储设备转发该对象读取请求,如上述实施例中描述的,例如转发规则为向对象存储设备1061转发对象操作请求的流表项有50个,这50个流表项在上述一个周期,各流表项计数器记录的对象操作请求转发次数总和为5000次,转发规则为向对象存储设备1062转发对象操作请求的流表项有45个,这45个流表项在上述一个周期各流表项计数器记录的对象操作请求次数总和为5500次,转发规则为向对象存储设备1063转发对象操作请求的流表项有50个,这50个流表项在上述一个周期,各流表项计数器记录的对象操作请求次数总和为6000次,则在上述一个周期内,对象存储设备1061和1062为流量负载较小的目标对象存储设备,如果向两个目标设备转发对象读取请求,则控制器104为该对象读取请求制定的流表项的转发规则为向对象存储设备1061和1062转发对象读取请求,从而实现了对象读取的并发性,提高对象读取请求的效率。

本发明实施例中,对象读取请求携带的请求标识也可以只包含用户组信息或存储策略信息中的一种,本发明对此不作限定。

本发明实施例提供的对象存储系统中,在将携带请求标识的对象读取请求通过软件定义网络中的交换机转发至对应的对象存储设备的处理方法,控制器根据目标对象存储设备的流量负载下发对象读取请求转发规则的流表项,交换机根据流表项中的转发规则转发对象读取请求,实现了对象存储设备流量负载均衡,减少了对象存储设备之间的信息交互。

结合图2,具体地,在图7所示的对象操作请求处理方法中,当所述对象操作请求为对象写入请求时,所述匹配的流表项的转发规则是由所述控制器根据所述对象存储设备剩余存储空间制定的。所述交换机根据所述匹配的流表项的转发规则,向所述对象存储设备中的目标对象存储设备转发所述对象操作请求后还包括:所述交换机更新所述匹配的流表项中记录的向所述目标对象存储设备转发写入请求的次数。接下来将具体描述。

以客户端101向对象存储系统发送写入请求为例,客户端101发送写入请求。对象存储系统代理102接收到客户端101发送的写入请求,由于是向对象存储系统写入对象,因此,元数据服务器103中没有所写入对象的请求标识,所以对象存储系统代理102从所述写入请求中获取所写入的对象的请求标识。请求标识包括用户组信息和存储策略中的至少一种。其中,用户组信息可以为向对象存储系统写入该对象的客户端的IP地址信息,或者其他可以标识向对象存储系统写入该对象的客户端的信息;存储策略可以为被写入对象在对象存储设备中的副本数量。本发明实施例以请求标识包括用户组信息和存储策略为例,其中用户组信息为客户端IP地址信息,存储策略信息具体为用户请求的对象在对象存储设备1061、1062、1063至106L中的副本数量,该对象副本数量为3。

对象存储系统代理102封装请求标识,生成对象写入请求。对象写入请求的具体格式如图6所示,对象存储系统代理102将获取的请求标识封装到对象写入请求的特定标识位,本发明实施例中,将用户组信息封装到对象写入请求的VLAN ID位,将存储策略信息封装到对象写入请求的IPToS位。

对象存储系统代理102将对象写入请求发送到交换机1051。

交换机1051接收对象存储系统代理102发送的对象写入请求,解析出该对象写入请求的VLAN ID位和IP ToS位信息,分别获取用户组信息和存储策略信息。根据解析出的用户组信息和存储策略信息,查询流表的流表项。用从对象写入请求的VLAN ID位解析出的用户组信息和从对象写入请求的ToS位解析出的存储策略信息分别与流表项的包头域匹配,查找到匹配的流表项,则根据该流表项的转发规则进行转发。

具体地,对于对象写入请求,流表项的转发规则为由控制器104根据对象存储设备1061、1062、1063至106L剩余存储空间制定的,即根据对象存储设备的剩余存储空间,选择对象写入请求的目标对象存储设备。例如,如图4所示的流表中,流表项3为与所述对象写入请求匹配的流表项,流表项3的结构如图5所示,则包头域中的VLAN ID的信息与所述对象写入请求VLAN ID中的信息匹配,包头域中的IP ToS位中的信息与所述对象写入请求IP ToS位中的信息匹配。流表项3的操作规则由控制器104根据对象存储设备1061、1062、1063至106L的剩余存储空间决定的,即根据对象存储设备1061、1062、1063至106L的剩余存储空间的大小决定目标对象存储设备。一种实现方式为交换机1051会周期性地向控制器104上报流表中各流表项中记录的对象写入请求转发次数,或者控制器104周期性地从交换机1051获取流表中各流表项中记录的对象写入请求转发次数,或者对象存储设备1061、1062、1063至106L向控制器104上报剩余存储空间。根据交换机1051流表中的各流表项统计的向各对象存储设备转发的对象定改请求次数及写入对象大小计算出各对象存储设备的剩余存储空间。具体的,一种实现方案为,以对象存储设备1061为例,控制器104根据各流表项记录的向对象存储设备1061转发的对象写入请求的次数及根据每次对象写入请求写入的对象的大小,计算出写入对象存储设备1061存储的对象总的大小,根据对象存储设备1061的总的存储空间减去已经使用的对象存储空间,从而获得对象存储设备1061的剩余存储空间,同理,可以获得周期内对象存储设备1062至106L的剩余存储空间。当本发明实施例对象写入请求为首次对象写入请求时,交换机1051的流表中没有匹配的流表项时,交换机1051通过图3所示的安全通道,使用Openflow协议向控制器104转发该对象写入请求,控制器104根据当前对象存储设备1061、1062、1063至106L剩余的存储空间为该对象写入请求制定转发规则,生成本发明实施例的流表项3,并将该流表项3下发到交换机1051,交换机1051根据该流表项3更新流表,根据该流表项3的转发规则转发该对象写入请求。例如,根据交换机1051从对象写入请求中解析出的存储策略信息被写入对象的副本数量为3,则控制器104从对象存储设备1061、1062、1063至106L中选择剩余存储空间最大的3个对象存储设备作为目标对象存储设备。例如对象存储设备1064、1067和1068为剩余存储空间最大的3个对象存储设备,剩余存储空间均为1000G,其他对象存储设备的剩余存储空间均小于1000G,或者对象存储设备1064、1067和1068为剩余存储空间最大的3个对象存储设备,剩余存储空间依次为1000G、950G和900G,其他对象存储设备的剩余存储空间均小于900G。因此控制器104为该对象写入请求制定的操作规则为向对象存储设备1064、1067和1068转发该对象写入请求。根据流表项3转发规则向交换机1051的目的端口转发该对象写入请求,其中交换机1051的目的端口为交换机1051分别与对象存储设备1064、1067和1068通信的端口。控制器104根据该对象写入请求携带的请求标识,记录存储该对象的对象存储设备信息,利用记录的存储该对象的对象存储设备信息,可以获取存储该对象的对象存储设备的流量负载,根据存储该对象的对象存储设备的流量负载,为读取该对象的对象读取请求制定转发规则,生成与读取该对象的对象读取请求匹配的流表项,流表项中携带该对象的请求标识,对象读取请求中携带的请求标识与流表项中携带的请求标识进行匹配,以确定匹配的流表项,具体过程可参考实施例对象读取请求部分描述,在此不再赘述。

交换机1051将所述对象写入请求的目的IP地址修改为对象存储设备1062的IP地址,将该所述对象写入请求的目的MAC地址修改为对象存储设备1062的MAC地址,在本发明实施例中,匹配的流表项的转发规则,分别向对象存储设备1064、1067和1068转发对象写入请求,对应地,将该对象写入请求的目的IP地址修改为对象存储设备1064的IP地址,将该所述对象写入请求的目的MAC地址修改为对象存储设备1064的MAC地址,向对象存储设备1064转发修改后的对象写入请求,同理,修改向对象存储设备1067和1068转发的该对象写入请求,并且分别向对象存储设备1067和1068转发修改后的对象写入请求。

流表项3中的计数器会分别更新向对象存储设备1064、1067和1068转发对象写入请求的次数。

对象存储设备1064、1067和1068存储写入的对象。并向元数据服务器103注册该写入对象的请求标识,其中,所述元数据服务器103可以不存储该对象的具体存储位置信息,只需要包括该对象的请求标识。

本发明实施例中,对象写入请求携带的请求标识也可以只包含用户组信息或存储策略信息中的一种,本发明对此不作限定,优选地,请求标识至少包含用户组信息。

本发明实施例提供的对象存储系统中,在将携带请求标识的对象写入请求通过软件定义网络中的交换机发送至对应的对象存储设备的处理方法,控制器根据对象存储设备的剩余存储空间下发对象写入请求的转发规则以生成交换机的流表项,交换机根据匹配的流表项的转发规则转发对象写入请求,实现了对象存储设备存储空间的负载均衡,减少了对象存储设备之间的信息交互。同时,对于写入对象存储系统的对象,元数据服务器可只记录该对象的请求标识,从而减轻了元数据服务器的工作负载。

本发明实施例提供的对象存储系统中,当有对象存储设备加入时,如对象存储设备1061(L+1)加入时,对象存储设备1061(L+1)向控制器104注册,向控制器104注册的信息包括对象存储设备1061(L+1)的MAC地址、与交换机1051通信的端口号以及存储空间。控制器104接收对象存储设备1061(L+1)的注册信息后,记录对象存储设备1061(L+1)的注册信息,并且制定转发规则,生成新的流表项,并向交换机1051下发该流表项。

本发明实施例提供的对象存储系统中,当对象存储系统中的对象存储设备由于故障或者其他原因退出时,如以对象存储设备1061L退出为例,控制器104收到对象存储设备1061L状态变化消息,消息中携带对象存储设备1061L的MAC地址、与交换机1051通信的端口号以及存储空间信息,控制器104根据该状态变化消息,则控制器104删除转发规则为向对象存储设备1061L转发的流表项。对转发规则为向对象存储设备1061L转发对象读取请求的流表项,控制器104生成转发规则为向对象存储设备1061L的冗余对象存储设备转发的流表项。其中,冗余对象存储设备为存储对象存储设备1061L中的对象的对象存储设备。

因此,在对象存储系统中使用软件定义网络,实现了对象存储系统的对象存储设备的增加或减少,增强了对象存储系统的灵活性。

根据存储系统中操作请求处理方法实施例描述,控制器104提供了生成流表项转发规则的方法,如图8所示,包括:

步骤801:控制器获取与交换机通信的存储设备剩余存储空间信息;

步骤802:所述控制器根据所述存储设备剩余存储空间信息,生成与写入请求匹配的转发规则,所述写入请求用于向与所述交换机通信的存储设备写入数据。

其中一种实施方式,所述控制器获取与所述交换机通信的存储设备剩余存储空间信息,具体包括:所述控制器接收所述存储设备上报的剩余存储空间信息。

其中一种实施方式,所述控制器获取与所述交换机通信的存储设备剩余存储空间信息,具体包括:所述控制器获取所述交换机流表中流表项记录的向所述存储设备转发写入请求次数及写入数据大小;所述控制器根据所述存储设备的存储空间、所述写入请求次数及写入数据大小,计算所述存储设备的剩余存储空间。

具体地,在对象存储系统中,本发明实施例控制器104提供了生成流表项转发规则的方法中,存储设备具体为对象存储设备,写入请求具体为对象写入请求,则根据对象写入请求写入到对象存储设备的数据为对象。

本发明实施例提供的存储系统中,基于软件定义网络中的控制器根据存储设备剩余存储空间信息,生成与写入请求匹配的流表项的转发规则,从而使交换机根据控制器生成的转发规则处理写入请求,实现了存储设备负载均衡,减少了存储设备之间的信息交互。本发明实施例适用的存储系统可以为文件级存储系统、数据块级存储系统或对象存储系统。也可以包含文件级存储系统、数据块级存储系统和对象存储系统中至少两种的存储系统。对于对象存储系统的适用,具体可以参见上述对象操作系统中处理对象操作请求的实施例,在此不再赘述。

根据存储系统中操作请求处理方法实施例描述,控制器104提供了生成流表项转发规则的方法,如图9所示,包括:

901:控制器获取存储所请求数据的存储设备的流量负载信息;

902:所述控制器根据所述存储所请求数据的存储设备的流量负载信息,生成与读取请求匹配的转发规则。

其中一种实施方式,所述控制器获取所述存储所请求数据的存储设备的流量负载信息,具体包括:所述控制器接收所述存储所请求数据的存储设备上报的流量负载信息。

其中一种实施方式,所述控制器获取所述存储所请求数据的存储设备的流量负载信息,具体包括:所述控制器获取所述交换机流表中流表项记录的向所述存储所请求数据的存储设备转发操作请求的次数;其中,所述操作请求包括写入请求和读取请求。

具体地,在对象存储系统中,本发明实施例控制器104提供了生成流表项转发规则的方法中,存储设备具体为对象存储设备,读取请求具体为对象读取请求,则根据对象读取请求所请求的存储在对象存储设备的数据为对象。

本发明实施例提供的存储系统中,基于软件定义网络中的控制器根据存储所请求数据的存储设备的流量负载,生成与读取请求匹配的流表项的转发规则,从而使交换机根据控制器生成的转发规则处理读取请求,实现了存储设备负载均衡,减少了存储设备之间的信息交互。本发明实施例适用的存储系统可以为文件级存储系统、数据块级存储系统或对象存储系统。也可以包含文件级存储系统、数据块级存储系统和对象存储系统中至少两种的混合存储系统。对于对象存储系统的适用,具体可以参见上述对象操作系统中处理对象操作请求的实施例,在此不再赘述。

本发明上述各实施例,在存储系统中使用软件定义网络,在软件定义网络中,控制器具体实现可以为一台通用服务器,运行控制器软件,从而实现对处于数据转发平面的交换机的控制。通用服务器的结构通常包括中央处理器、内存等,中央处理器与内存之间通过总线连接,并且控制器与交换机进行上述实施例所描述的通信。对于处理数据转发平面的交换机,可以为通用交换机或为Openflow交换机,包括中央处理器、内存等,中央处理器与内存之间通过总线连接,并且与控制器进行上述实施例所描述的通信,同时实现对象操作请求的转发。本发明实施例中的控制器和交换机只是一种示例性描述,其他可以实现软件定义网络的交换机和控制器也可以用于实现本发明。

根据上述发明方法实施例的描述,本发明实施例提供了一种交换机,如图10所示,包括接收单元1001、查询单元1002和转发单元1003;其中,接收单元1001,用于接收操作请求,所述操作请求携带请求标识;其中,所述请求标识包括用户组信息和存储策略信息中的至少一种;查询单元1002,用于根据所述请求标识查询交换机的流表,获得与所述操作请求匹配的流表项;转发单元1003,用于根据所述匹配的流表项的转发规则,向存储设备中的目标存储设备转发所述操作请求。

如图10所示的交换机,其中,当所述操作请求为读取请求时,所述匹配的流表项的转发规则是由所述控制器根据存储所请求数据的存储设备流量负载制定的。当所述操作请求为写入请求时,所述的匹配流表项的转发规则是由所述控制器根据所述存储设备剩余存储空间制定的。

具体地,在对象存储系统中,接收单元1001,用于接收对象操作请求,所述对象操作请求携带请求标识;其中,所述请求标识包括用户组信息和存储策略信息中的至少一种;查询单元1002,用于根据所述请求标识查询交换机的流表,获得与所述对象操作请求匹配的流表项;转发单元1003,用于根据所述匹配的流表项的转发规则,向对象存储设备中的目标对象存储设备转发所述对象操作请求。其中,当所述对象操作请求为对象读取请求时,所述匹配的流表项的转发规则是由所述控制器根据存储所请求对象的对象存储设备流量负载制定的。当所述对象操作请求为对象写入请求时,所述匹配的流表项的转发转发规则是由所述控制器根据所述对象存储设备剩余存储空间制定的。

本发明实施例提供的存储系统中,在将携带请求标识的操作请求通过软件定义网络中的交换机转发至对应的存储设备的处理方法,控制器制定交换机流表项中的转发规则,交换机根据流表项中的转发规则转发操作请求,实现了存储设备负载均衡,减少了存储设备之间的信息交互。

根据上述发明方法实施例的描述,本发明实施例提供了一种控制器,如图11所示,包括获取单元1101和生成单元1102;其中,获取单元1101,用于获取与交换机通信的存储设备剩余存储空间信息;生成单元1102,用于根据所述存储设备剩余存储空间信息,生成与写入请求匹配的转发规则,所述写入请求用于向与所述交换机通信的存储设备写入数据。一种实施方式,所述获取单元1101,具体用于:接收所述存储设备上报的剩余存储空间信息;一种实施方式,所述获取单元1101,具体用于:获取所述交换机流表中流表项记录的向所述存储设备转发写入请求次数及写入数据大小;根据所述存储设备的存储空间、所述写入请求次数及写入数据大小,计算所述存储设备的剩余存储空间。

具体地,在对象存储系统中,获取单元1101,用于获取与交换机通信的对象存储设备剩余存储空间信息;生成单元1102,用于根据所述对象存储设备剩余存储空间信息,生成与对象写入请求匹配的转发规则,所述对象写入请求用于向与所述交换机通信的对象存储设备写入对象。一种实施方式,所述获取单元1101,具体用于:接收所述对象存储设备上报的剩余存储空间信息;一种实施方式,所述获取单元1101,具体用于:获取所述交换机流表中流表项记录的向所述对象存储设备转发对象写入请求次数及写入对象大小;根据所述对象存储设备的存储空间、所述对象写入请求次数及写入对象大小,计算所述对象存储设备的剩余存储空间。

本发明实施例提供的控制器,利用软件定义网络,控制器根据存储系统各存储设备剩余存储空间制定交换机流表项与写入请求匹配的转发规则,从而实现各存储设备的负载均衡,减少存储设备之间的信息交互。

根据上述发明方法实施例的描述,本发明实施例提供了一种控制器,如图11所示,所述控制器包括获取单元1101和生成单元1102;本发明实施例中,获取单元1101,用于获取存储所请求数据的存储设备的流量负载信息;生成单元1102,用于根据所述存储所请求数据的存储设备的流量负载信息,生成与读取请求匹配的转发规则。一种实施方式,所述获取单元1101,具体用于:接收所述存储所请求数据的存储设备上报的流量负载信息;一种实施方式,所述获取单元1101,具体用于:获取所述交换机流表中流表项记录的向所述存储所请求数据的存储设备转发操作请求的次数;其中,所述操作请求包括写入请求和读取请求。

具体地,在对象存储系统中,获取单元1101,用于获取存储所请求对象的对象存储设备的流量负载信息;生成单元1102,用于根据所述存储所请求对象的对象存储设备的流量负载信息,生成与对象读取请求匹配的转发规则。其中一种实施方式,所述获取单元1101,具体用于:接收所述存储所请求对象的对象存储设备上报的流量负载信息。其中一种实施方式,所述获取单元1101,具体用于:获取所述交换机流表中流表项记录的向所述存储所请求对象的对象存储设备转发对象操作请求的次数;其中,所述对象操作请求包括对象写入请求和对象读取请求。

本发明实施例提供的控制器,利用软件定义网络,控制器根据存储系统存储被请求数据的存储设备的流量负载制定交换机流表项与读取请求匹配的转发规则,从而实现各存储设备的负载均衡,减少存储设备之间的信息交互。

本发明上述装置实施例描述的交换机、控制器具体功能描述还可以参照方法实施例,同时所使用的场景可以参照图2所示的架构图及描述,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所公开的系统、方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取非易失性存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个非易失性存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的非易失性存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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