CN116048413B - 多路径存储的io请求处理方法、装置、系统及存储介质 - Google Patents
多路径存储的io请求处理方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN116048413B CN116048413B CN202310084949.3A CN202310084949A CN116048413B CN 116048413 B CN116048413 B CN 116048413B CN 202310084949 A CN202310084949 A CN 202310084949A CN 116048413 B CN116048413 B CN 116048413B
- Authority
- CN
- China
- Prior art keywords
- path
- storage
- request
- target
- storage node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims description 20
- 238000013507 mapping Methods 0.000 claims abstract description 168
- 238000012545 processing Methods 0.000 claims abstract description 153
- 238000000034 method Methods 0.000 claims abstract description 86
- 230000011218 segmentation Effects 0.000 claims abstract description 6
- 238000001514 detection method Methods 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 34
- 238000004891 communication Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 238000013500 data storage Methods 0.000 abstract description 2
- 238000012546 transfer Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 8
- 230000000737 periodic effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 3
- 238000011897 real-time detection Methods 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本公开提供了一种多路径存储的IO请求处理方法、装置、系统以及存储介质,属于数据存储技术领域,旨在提高IO请求处理效率,所述方法应用到存储系统中时,包括:对目标卷进行划分,得到多个分段;确定多个分段与多个存储节点之间的映射关系;其中,映射关系用于标识分段在多个存储节点中映射的最优存储节点;对多个存储节点的状态进行检测;基于检测到的多个存储节点各自的状态参数,和/或主机发送的针对路径切换信息,对映射关系进行调整;将调整后的映射关系发送给主机,以使主机基于调整后的映射关系,将针对分段的IO请求发送给最优存储节点对应的路径设备。
Description
技术领域
本公开涉及数据存储技术领域,特别是涉及一种多路径存储的IO请求处理方法、装置、系统及存储介质。
背景技术
在由光纤组成的SAN(Storage Area Network,存储区域网络)环境,或者由iSCSI(Internet Small Computer System Interface,Internet小型计算机系统接口)组成的环境中,由于主机(可以是服务器)和存储通过了光纤交换机或者多块网卡及IP(即InternetProtocol,网际互连协议)来连接,构成了多对多的关系,相应的形成了主机到存储的多路径关系。
目前在多路径的应用中,会确定IO(Input Output,输入输出)请求的最优路径,相关技术中,一般是存储系统确定好一个卷的多个分段对应的最优存储节点,然后告知主机,主机则按照存储系统告知的分段对应的最优存储节点,基于存储节点与主机上的多路径设备中的多个路径设备之间的对应关系,将IO请求发送给对应的目标设备,通过目标设备处理IO请求。
但是此种方式,在实际操作过程中只能机械性地执行其中的一种方案,未充分利用存储系统的各个存储节点的资源以及适配主机上各个路径设备的性能,常常导致一个卷中的部分IO请求很快得到处理,而另一部分IO请求的处理时长较长,降低了对卷的IO请求处理效率。
发明内容
本公开提供一种多路径存储的IO请求处理方法,应用于存储系统,所述存储系统与主机通信连接,所述存储系统包括多个存储节点,所述方法包括:
对目标卷进行划分,得到多个分段;其中,所述目标卷在所述主机上映射有多个路径设备,多个所述路径设备与多个所述存储节点分别对应;
确定多个所述分段与多个所述存储节点之间的映射关系;其中,所述映射关系用于标识所述分段在多个所述存储节点中映射的最优存储节点;
对多个所述存储节点的状态进行检测;
基于检测到的多个所述存储节点各自的状态参数,和/或所述主机发送的针对路径切换信息,对所述映射关系进行调整;其中,所述路径切换信息用于表征对处理所述分段的IO请求的路径设备的切换;
将调整后的映射关系发送给所述主机,以使所述主机基于所述调整后的映射关系,将针对所述分段的IO请求发送给所述最优存储节点对应的路径设备。
本实施例的第二方面,提供一种多路径存储的IO请求处理方法,应用于主机,所述主机与存储系统连接,所述存储系统包括多个存储节点,所述方法包括:
确定与所述存储系统中的目标卷对应的多个路径设备,其中,所述目标卷被划分为多个分段存储于所述存储节点上,多个所述存储节点与多个所述路径设备分别对应;
对多个所述路径设备各自的请求处理效率进行检测;
基于所述检测的结果,生成路径切换信息,所述路径切换信息用于表征对处理所述分段的IO请求的路径设备的切换;
基于所述路径切换信息,将针对所述分段的IO请求发送给切换后的路径设备,和/或,基于所述存储系统发送的映射关系,将针对所述分段的IO请求发送给最优存储节点对应的路径设备;其中,所述最优存储节点为所述映射关系中所述分段对应的存储节点。
本公开的第三方面,提供一种处理系统,包括存储系统和主机;其中:
所述存储系统,用于执行第一方面所述的多路径存储的IO请求处理方法;
所述主机,用于执行第二方面所述的多路径存储的IO请求处理方法。
本公开的第四方面,提供一种多路径存储的IO请求处理装置,应用于存储系统,所述存储系统与主机通信连接,所述存储系统包括多个存储节点,所述装置包括:
划分模块,用于对目标卷进行划分,得到多个分段;其中,所述目标卷在所述主机上映射有多个路径设备,多个所述路径设备与多个所述存储节点分别对应;
关系确定模块,用于确定多个所述分段与多个所述存储节点之间的映射关系;其中,所述映射关系用于标识所述分段在多个所述存储节点中映射的最优存储节点;
第一检测模块,用于对多个所述存储节点的状态进行检测;
关系调整模块,用于基于检测到的多个所述存储节点各自的状态参数,和/或所述主机发送的针对路径设备的路径切换信息,对所述映射关系进行调整;其中,所述路径切换信息用于表征对处理所述分段的IO请求的路径设备的切换;
关系发送模块,用于将调整后的映射关系发送给所述主机,以使所述主机按照所述调整后的映射关系,将针对所述分段的IO请求发送给所述最优存储节点对应的路径设备。
本公开的第五方面,提供一种多路径存储的IO请求处理装置,应用于主机,所述主机与存储系统连接,所述存储系统包括多个存储节点,所述装置包括:
配置模块,用于确定与所述存储系统中的目标卷对应的多个路径设备;其中,所述目标卷被划分为多个分段存储于所述存储节点上,多个所述存储节点与多个所述路径设备分别对应;
第二检测模块,用于对多个所述路径设备各自的请求处理效率进行检测;
切换模块,用于基于所述检测的结果,生成路径切换信息,所述路径切换信息用于表征对处理所述分段的IO请求的路径设备的切换;
调度模块,用于基于所述路径切换信息,将针对所述分段的IO请求发送给切换后的路径设备,和/或基于所述存储系统发送的映射关系,将针对所述分段的IO请求发送给最优存储节点对应的路径设备;其中,所述最优存储节点为所述映射关系中所述分段对应的存储节点。
本公开还公开了一种计算机可读存储介质,其存储的计算机程序使得处理器执行如第一方面所述的多路径存储的IO请求处理方法,或执行如第二方面所述的多路径存储的IO请求处理方法。
采用本公开实施例的技术方案,可以确定对目标卷进行划分后得到的多个分段,与多个存储节点之间的映射关系;接着,对多个存储节点的状态进行检测;并基于检测到的多个存储节点各自的状态参数,和/或主机发送的针对目标分段的目标IO请求的路径切换信息,对映射关系进行调整;接着,将调整后的映射关系发送给主机,以使主机按照调整后的映射关系,将针对分段的IO请求发送给最优存储节点对应的路径设备。
一方面,由于可以依据对存储节点的状态对映射关系进行适应性调整,这样,使得分段对应的最优存储节点会被动态调整,从而充分利用了各个存储节点的资源以及与存储节点的状态相适配。
另一方面,由于主机侧也会依据多个路径设备的请求处理效率,确定对目标IO请求进行路径切换,存储系统也可以根据主机的路径切换信息,对映射关系进行调整,从而使得这一映射关系与主机上的各个路径设备的性能适配,从而提高了IO请求的处理效率。
采用本公开实施例的技术方案,可以从主机侧和存储系统侧对目标卷的多路径选择策略进行动态优化,使得对目标卷的读写操作过程可以充分适配存储系统中各个存储节点的状态以及主机上的各个路径设备的性能,从而提高对目标卷进行读写处理的处理效率。
上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
附图说明
为了更清楚地说明本公开实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。需要注意的是,附图中各图形的尺寸和形状不反映真实比例,目的只是示意说明本发明内容。附图中相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。
图1示意性地示出了本公开实施例三的处理系统的通信环境示意图;
图2示意性地示出了本公开实施例一的多路径存储的IO请求处理方法的步骤流程图;
图3示意性地示出了本公开实施例二的多路径存储的IO请求处理方法的步骤流程图;
图4示意性地示出了本公开实施例四的多路径存储的IO请求处理装置的结构示意图;
图5示意性地示出了本公开实施例五的多路径存储的IO请求处理装置的结构示意图;
附图标记说明:101-存储系统,102-主机。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
首先,对相关技术中的多路径存储进行介绍。
其中,多路径是指:主机(例如服务器)与存储系统之间的多条传输层物理连接,为存储系统提供更高的可用性和性能优势,一般通过多路径软件实现最优路径设备的选择,多路径软件安装在主机端,可以将多个设备聚合成一个设备的软件。
其中,多路径软件的高可用性体现在:主机与存储系统之间的控制器、端口和交换机等部件发生故障时会造成链路不通,此时IO请求可以通过其它链路发送,从而避免因单点故障导致的主机到存储系统之间的数据访问中断。
其中,多路径软件的高吞吐率性能优势体现在:主机到存储系统的IO请求可以同时通过多条链路并发发送,提高主机上数据的读写效率。
其中,路径设备位于主机上,其与存储系统上的一个卷对应,即假如主机与存储系统之间有4条链路,那么存储系统上的一个卷映射到主机后,主机可以为其配置4个路径设备,这些路径设备被集成为一个多路径设备,多路径设备与卷对应,名称可以为多路径设备-X(例如: 多路径设备-0),X标识一个卷,也就是说一个卷可以映射到主机上的4个路径设备,这4个路径设备可以构成卷的四条存储链路(一条路径设备对应一条存储链路)。
相关技术中,对一个卷而言,可以将该卷进行划分,得到多个分段,例如,将卷将按照32M大小分割成多段,其中,存储系统的每个卷可以通过循环镜像对的方式保存,即一个分段可以镜像存储在存储系统的多个存储节点中。示例地,存储系统包括4个存储节点,分别是节点1、节点2、节点3和节点4,它们被划分成4组镜像关系,如下:
镜像关系1:(节点1,节点2),
镜像关系2:(节点2,节点3),
镜像关系3:(节点3,节点4),
镜像关系4:(节点4,节点1)。
其中,划分得到的每个分段对应一组镜像关系,例如,将卷划分为四段,得到L1、L2、L3和L4等四个分段,其中,L1对应镜像关系1,即L1存储在节点1和节点2,L2对应镜像关系2 ,即L2存储在节点2和节点3,以此类推,L3存储在节点3和节点4,L4存储在节点1和节点4。
其中,由于存储节点和路径设备之间是一一对应的,则在进行卷的IO操作时,每个存储节点对应到主机上的一个路径设备。假设主机上针对卷同样有4个路径设备,则节点1出来的链路可以对应路径设备sdb,从节点2出来的链路对应路径设备sdc,从节点3出来的链路对应路径设备sdd,从节点4出来的链路对应路径设备sde。需要说明的是,本公开中的sdb、sdc、sdd、sde仅是方便标识不同的路径设备而设定的名称,在其他一些实施例中,也可以用其他英文字母标识路径设备,在此不代表有特殊的限制。
在对针对卷的IO请求进行处理时,可以确定每个分段的最优路径,该最优路径即是该分段的最优存储节点和对应的最优路径设备。这样,当针对某个分段的IO请求到来时,可以先将IO请求发送给该分段的最优路径设备,之后,由该最优路径设备对最优存储节点中存储的分段执行写入或读取操作,其中,写入操作可以是指,将数据写入到最优存储节点中存储的分段中,读取操作可以是指:将最优存储节点中存储的分段读取到最优路径设备中,以将目标卷写入到主机。
然而,相关技术中卷的最优路径信息是不变的,即L1的最优路径设备一直是sdb,L2的最优路径设备一直是sdc。而存储系统在不同状态下,卷的每个分段的最优存储节点和最优路径设备的性能是变化的,这样按照固定的最优路径信息便不能适应这一情况,导致对卷的I O请求处理效率的降低。
其次,根据最优路径信息将IO请求发送到最优路径设备后,主机的状态又是实时变化的,会存在某个设备上挤压很多IO任务,导致一个卷中的部分IO请求很快得到处理,而另一部分IO请求的处理时长较长,降低了对卷的IO请求处理效率,从而造成主机的处理能力下降。
有鉴于此,本公开提出了一种提高对卷的IO请求处理效率的技术方案,该技术方案的主要技术手段是:存储系统可以根据各个存储节点的状态参数,对映射关系进行调整,和/或,主机对多个路径设备的请求处理效率进行检测,以对某些目标IO请求对应的路径设备进行切换,从而指示存储系统对映射关系中与目标IO请求所针对的分段对应的存储节点进行切换。这样,存储系统也可以根据主机的路径切换信息,对映射关系进行调整,从而使得分段对应的最优存储节点会被动态调整,从而使得映射关系,即最优路径信息与各个存储节点的状态和主机的性能进行了动态适配,提高了对卷的IO处理效率。
需要说明的是,本公开中所描述的IO请求,可以包括读请求和写请求,读请求是数据读取的请求,写请求是写入数据的请求,对于一个IO请求而言,其可以是一个读请求,也可以是一个写请求,无论对于读请求还是写请求,都可以按照本公开所述的方法,对其进行处理。例如,对于读请求,可以确定读请求针对的分段,然后将其发送给分段对应的最优路径设备,最优路径设备在最优存储节点中读取数据;对于写请求,可以确定写请求针对的分段,然后将其发送给分段对应的最优路径设备,最优路径设备在最优存储节点中写入数据。
参照图1所示,示出了本公开的多路径存储的IO请求处理方法的一种通信环境图,如图1所示,包括:存储系统101、主机102和交换机;其中,存储系统上包括多个存储节点,主机上针对存储系统中的一个卷,会映射有多个路径设备,图1以存储系统包括四个存储节点为例,其中四个存储节点可以分别称为节点1、节点2、节点3、节点4,存储系统与主机建立路径链路后,各链路对应一个路径设备,每个卷的多个路径设备聚合后成为一个多路径设备,也就是说存储系统上的一个卷映射到主机上,对应四个路径设备,图1分别示出了路径设备sdb、sdc、sdd和sde;其中,一个路径设备对应存储系统中的一个存储节点,主机和存储系统之间通过交换机进行信息交互。
其中,存储系统可以是分布式存储系统,一个存储节点可以是分布式存储系统中的一个存储设备,例如,可以是个人计算机PC(Personal Computer,个人计算机)。
结合图1所示,对本公开的多路径存储的IO请求处理方法进行介绍。
实施例一
参照图2所示,示出了本实施例一的一种多路径存储的IO请求处理方法的步骤流程示意图,如图2所示,具体可以包括以下步骤:
步骤S201:对目标卷进行划分,得到多个分段;
其中,所述目标卷在所述主机上映射有多个路径设备,多个所述路径设备与多个所述存储节点分别对应。
本实施例中,目标卷为存储系统上的一个卷,实际中可以对卷进行划分,在划分时,可以按照一定大小将目标卷分割成多段,例如,可以按照32M大小、48M大小进行划分,其划分后得到的分段的数量可以大于或等于存储节点的数量。在得到多个分段后,可以确定多个分段与多个存储节点的对应关系,具体地,一个分段可以对应多个存储节点中,使得存储节点对该分段进行镜像存储,一个存储节点又可以对应有一个或多个分段,使得一个存储节点可以存储多个分段。
示例地,假设将卷按照32M大小进行划分,得到了10个分段,存储系统包括四个存储节点,则一个存储节点至少对应两个分段,而一个分段可以对应两个存储节点,以便镜像存储。
步骤S202:确定多个分段与多个存储节点之间的映射关系。
其中,映射关系用于标识所述分段在多个所述存储节点中映射的最优存储节点。
在确定多个分段与多个存储节点的对应关系后,需要确定每个分段的最优存储节点和最优路径设备,从而形成存储节点和分段之间的映射关系。其中,多个存储节点与多个路径设备可以是一对一的关系,即一个存储节点对应一个路径设备,一个路径设备也只对应一个存储节点,当确定好一个分段的最优存储节点确定好后,则确定好了最优路径设备。当然,在又一些情况中,存储节点和路径设备之间的一对一的关系可以是动态变化的,即一个存储节点所对应的路径设备可以在一些时间发生变化,例如,存储节点节点1对应的路径设备为sdb,则在一些时间其可以对应到sdc。具体地,存储节点和路径设备之间的一对一的关系,可以基于存储节点的性能,路径设备的性能进行变化,例如,将处理IO请求的效率相接近的存储节点和路径设备进行对应,可以使得二者处理IO请求的进度一致,从而提高IO请求的处理效率。
其中,在首次确定每个分段所映射的最优存储节点时,可以按照预先设定的映射规则进行对应,具体实施时,预先设定的规则可以是按照分段的标号和存储节点的标号进行映射,例如,目标卷被划分为10个分段,则分段的标号可以是L1到L10,存储节点分别为节点1、节点2、节点3和节点4,则可以将L1映射到为节点1、L2映射到节点2、L3映射到节点3、L4映射到节点4、L5映射到节点1,依次类推,得到10个分段各自对应的最优存储节点。
如上所述,映射关系用于标识针对分段的IO请求的处理路径,该处理路径即是该分段对应的最优处理路径,也可以理解为是IO请求从主机到路径设备到存储节点的最佳链路。示例地,L1映射到节点1,按照存储节点和路径设备之间的对应关系,针对L1的IO请求会在sdb与节点1之间的链路中进行处理。
可以理解的是,在映射关系中,一个分段对应一个最优存储节点,而一个存储节点实际可以是多个分段的最优存储节点。
其中,在确定好映射关系后,可以将映射关系发送给主机,以指示主机基于映射关系,按照多个IO请求所针对的分段,将多个IO请求发送给对应的路径设备,以使路径设备对对应的IO请求进行处理。
本实施例中,存储系统可以将映射关系发送给主机,主机可以基于该映射关系,对多个接收到的IO请求进行发送,发送时可以确定IO请求所针对的分段,以及映射关系中该分段对应的存储节点和路径设备,接着将IO请求发送给对应的路径设备,由路径设备对对应的存储节点执行读操作和写操作,例如,将分段从存储节点读取到路径设备(数据读请求,对应Output),或者将待写入的数据写入到路径设备和存储节点(数据写请求,对应input)。
步骤S203:对多个存储节点的状态进行检测。
本实施例中,存储系统在首次确定出分段和存储节点之间的映射关系后,会对存储节点的状态开始检测,其中,该检测可以是实时检测,或者周期性检测,实时检测可以实时检测存储节点的状态,而周期性检测可以每隔一段预设时间便对存储节点的状态进行检测一次。
由于后续存储系统会依据检测到的存储节点的状态,对映射关系进行调整,在一些示例中,存储系统可以是周期性地检测存储节点的状态,这样,可以避免频繁切换映射关系时,需要频繁对IO请求进行调度变更,所带来的主机负载较高,影响IO请求的效率的问题。
步骤S204:基于检测到的多个存储节点各自的状态参数,和/或主机发送的针对路径设备的路径切换信息,对映射关系进行调整;
其中,路径切换信息是基于多个路径设备的请求处理效率生成的,用于表征对处理所述分段的IO请求的路径设备的切换。
本实施例中,存储系统自身对多个存储节点的状态进行了检测,则可以得到每个存储节点的状态参数,该状态参数可以表征存储节点在当前的性能,实际中,状态参数可以包括存储节点的内存使用情况、处理器的繁忙程度等,若一个存储节点的内存使用较多、处理器较繁忙,则表征该存储节点的状态是繁忙状态,其对后续到来的IO请求的处理能力较弱,则需要及时将该存储节点对应的分段更换到对应另一最优存储节点。反之,若一个存储节点的内存使用较少、处理器不繁忙,则表征该存储节点的状态是空闲状态,其对后续到来的IO请求的处理能力较强,则可以不用更换最优存储节点。
实际中,在对侧主机上,主机也可以对路径设备处理IO请求的处理效率(请求处理效率)进行检测,根据检测结果,可以将请求处理效率低的路径设备中的IO请求转移到请求处理效率高的路径设备上,即对处理效率低的路径设备中的IO请求进行二次调度,对应的,主机会基于处理效率低的路径设备生成路径切换信息,该路径切换信息可以表征要移出IO请求的路径设备(以下实施例称为第一路径设备),和要接收转移的IO请求的路径设备(以下实施例称为第二路径设备)。
实际中,存储系统可以依据检测到的多个存储节点各自的状态参数,对映射关系进行调整,也可以依据主机发送的针对路径设备的路径切换信息,对映射关系进行调整,也可以既依据检测到的多个存储节点各自的状态参数,又依据路径切换信息,对映射关系进行调整。此种情况下,可以先基于多个存储节点各自的状态参数,对映射关系调整后,再基于接收到的路径切换信息,对映射关系进行再调整。
其中,在依据检测到的多个存储节点各自的状态参数,对映射关系进行调整时,可以确定状态性能较差的存储节点和状态性能较好的存储节点,接着,将状态性能较差的存储节点所被映射的分段,调整到将该分段与状态性能较好的存储节点相映射。如上述实施例所述,各个分段由于在多个存储节点中可以镜像存储,则在一些实施例中,状态性能较差的存储节点和状态性能较好的存储节点,可以均存储有同一个分段,如此可以达到对目标卷的各个分段的分布式处理。
当然,在又一些实施例中,为达到对存储节点的资源的合理和充分利用,一个分段可以在至少三个存储节点上存储,从而在进行映射关系调整时,一个分段的最优存储节点可以具有更多种选择。
其中,在依据主机发送的路径切换信息,对映射关系进行调整时,可以确定出第一路径设备所对应的存储节点以及第二路径设备对应的存储节点,接着,可以将第一路径设备所被映射的分段,调整为映射到第二路径设备。
实际中,由于一个存储节点实际可以是多个分段的最优存储节点,在依据路径切换信息对映射关系进行调整时,可以将第一路径设备所对应的存储节点中被滞后的IO请求所针对的分段,调整为映射到第二路径设备对应的存储节点,以使到第二路径设备和第二路径设备对应的存储节点作为该分段的最优存储节点和最优路径设备。
步骤S205:将调整后的映射关系发送给主机,以使主机基于调整后的映射关系,将针对分段的IO请求发送给最优存储节点对应的路径设备。
本实施例中,可以将调整后的映射关系发送给主机,主机可以按照调整后的映射关系,将多个IO请求发送给对应的路径设备。实际中,在主机上配置有多路径软件,存储系统将调整后的映射关系发送给主机时,主机上的多路径软件可以按照调整后的映射关系,对IO请求的多链路调度进行调度修正,以按照最新的映射关系,将针对各个分段的IO请求发送给对应的最优路径设备和最优存储节点。
采用本公开实施例的技术方案,对于存储系统而言,其可以结合存储系统的实时状态,对映射关系进行及时的调整,如此可以使得针对各个分段的IO请求能始终调度给性能较好的路径设备和存储节点,从而提高IO请求的处理效率。
本实施例中,存储系统可以基于检测到的多个存储节点各自的状态参数,对映射关系进行调整;也可以根据主机发送的路径切换信息,对映射关系进行调整;也可以既基于检测到的多个存储节点各自的状态参数,又基于主机发送的路径切换信息,对映射关系进行调整,此种情况下,可以先基于多个存储节点各自的状态参数,对映射关系调整后,再基于接收到的路径切换信息,对映射关系进行再调整。
下面,对上述情况进行分别说明。
<1>根据检测到的多个存储节点各自的状态参数,对映射关系进行调整的情况可以如下所述:
在一种可选示例中,可以基于各个存储节点的状态参数,确定出状态性能较差的存储节点,并将映射关系中该状态性能较差的存储节点所映射的分段,切换为与另一状态性能较好的存储节点相映射,也即是对分段的最优存储节点进行适时切换,以使分段始终映射到性能状态较优的一个存储节点作为最优存储节点。
具体实施时,可以基于多个存储节点各自的状态参数,确定第一存储节点和第二存储节点,并基于映射关系,确定所述第一存储节点被映射到的目标分段,并将第二存储节点调整为目标分段对应的最优存储节点。
其中,第二存储节点的处理IO请求的性能高于第一存储节点。
本实施例中,如上所述,状态参数可以表征存储节点在当前的性能,实际中,该状态参数可以表征存储节点的内存使用情况、处理器的繁忙程度等,因此,可以基于多个存储节点各自的状态参数,将状态性能较差的存储节点作为待切换的第一存储节点,将状态性能较好的存储节点作为被切换到的第二存储节点。其中,状态性能较好的存储节点其处理IO请求的性能较高,即处理IO请求的能力较强。实际中,可以将第一存储节点被映射到的目标分段,将目标分段切换为与第二存储节点映射。
其中,第一存储节点可能被映射有多个分段,也即其可以作为多个分段的最优存储节点,实际中,在进行第一存储节点的映射关系调整时,可以将第一存储节点中的部分或全部目标分段映射到第二存储节点。优选地,可以根据第一存储节点的状态参数,确定待调整的目标分段的数量,例如第一存储节点的状态参数表征第一存储节点可能宕机,则第一存储节点当前暂时无法处理该分段的IO请求,则可以将第一存储节点中的全部目标分段均映射到第二存储节点。例如,第一存储节点的状态参数表征第一存储节点较繁忙,处理能力下降但是不至于宕机,则第一存储节点当前可以处理IO请求,则可以将第一存储节点中的部分目标分段映射到第二存储节点,例如将一个目标分段映射到第二存储节点,如此,一方面可以减轻第一存储节点的处理压力,另一方面,可以避免映射到第二存储节点的目标分段过多,导致第二存储节点的繁忙程度陡增,处理效率反而下降的问题。
当然,在其他一些实施例中,若一个分段镜像存储在至少三个存储节点的情况下,第一存储节点被映射到的目标分段,可以调整到将其多个目标分段分别映射到多个第二存储节点中。即调整前,目标分段映射到第一存储节点,调整后,目标分段映射到第二存储节点。
示例地,目标卷被划分为10个分段,则分段的标号可以是L1到L10,存储节点分别为节点1、节点2、节点3和节点4,其中,L1和L5和L9对应节点1-节点3,L2和L6对应节点2-节点4,其中,L1和L5的最优存储节点都是节点1,依此类推,假设节点1被确定为第一存储节点,其余节点中的节点2和节点3可以作为第二存储节点,则可以将L1映射到节点2,即节点2作为L1的最优存储节点,将L5映射到节点3,即节点3作为L5的最优存储节点,而L9可以仍然将节点1作为最优存储节点。
在一种实施例中,在确定第一存储节点和第二存储节点时,可以按照各个存储节点各自的状态参数,对各个存储节点的状态性能进行排序,根据排序结果,确定第一存储节点和第二存储节点。其中,在排序时,可以按照状态性能从高到低的顺序排序,或者可以按照状态性能从低到高的顺序排序,进而可以选择状态性能较差的存储节点作为第一存储节点,选择状态性能较好的存储节点作为第二存储节点。
具体实施时,可以依据各个存储节点各自的状态参数,对各个存储节点的状态性能进行打分,按照得分对各个存储节点进行排序。
在一种可选示例中,可以基于多个存储节点各自的状态参数,确定多个存储节点各自对应的性能得分;基于预设得分阈值,以及多个存储节点各自对应的性能得分,确定第一存储节点和第二存储节点。
本实施例中,状态参数可以用数值表示,例如用百分数或者用自然数表示,若状态参数表征存储节点的繁忙程度,则状态性能较差的存储节点所对应的状态参数的数值越高,这样,性能得分会越低;若状态参数表征存储节点的剩余内存使用率,则状态性能较差的存储节点所对应的状态参数的数值越低,这样,性能得分会越低。
其中,预设得分阈值可以根据实际需求设定,一般而言,若一个存储节点的性能得分超过预设得分阈值,则表征该存储节点可以不用进行切换,反而可以作为被切换到的第二存储节点;若一个存储节点的性能得分低于预设得分阈值,则表征该存储节点可能需要进行切换。
本实施例中,可以将性能得分超过预设得分阈值的一个存储节点作为第二存储节点,将性能得分低于预设得分阈值的一个存储节点作为第一存储节点;其中,在一次检测中可以确定出一个或多个第一存储节点,若是一个第一存储节点,则该第一存储节点可以是性能得分低于预设得分阈值且得分最低的存储节点。若是多个第一存储节点,则多个第一存储节点可以是性能得分低于预设得分阈值且排列在后的存储节点。
在一些实施例中,在按照性能得分,确定第一存储节点和第二存储节点时,可以将性能得分小于预设得分阈值且性能得分为最小的存储节点,确定为第一存储节点;以及从性能得分大于或等于预设得分阈值的存储节点中,确定第二存储节点。
一种情况下,第二存储节点可以是性能得分最高的存储节点,也可以是性能得分高于预设得分阈值的任一存储节点。如上所述,第二存储节点还可以包括多个。
其中,基于性能得分和预设得分阈值,可以快速筛选出状态性能较好的第二存储节点和状态性能较差的第一存储节点,从而提高映射关系调整的效率,使得映射关系可以被及时调整。
在一些情况下,状态参数也可以包括处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少一者。
在一种可选示例中,状态参数包括处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少两者,在至少包括上述两者的情况下,可以基于每个存储节点对应的处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少两者,确定每个存储节点的初始性能得分;并基于多个存储节点各自对应的初始性能得分,确定多个存储节点各自对应的性能得分。
本实施例中,处理器繁忙参数值可以表征存储节点的处理器在单位时间内的繁忙程度;内存使用率可以表征存储节点的内存在单位时间内,其被使用的程度,网络繁忙参数值可以表征存储节点单位时间内所占据的网络带宽的程度。这些参数值都可以表征存储节点的当前性能状态,反映其处理IO请求的多寡,从而可以反应存储节点后续处理IO请求的能力。
其中,可以将处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少两者的平均得分,作为存储节点的初始性能得分,具体地,为了计算方便,处理器繁忙参数值、内存使用率和网络繁忙参数值都可以采用同一度量标准,如都用百分数表示。
其中,由于处理器繁忙参数值、内存使用率和网络繁忙参数值均是值越高,表征存储节点的状态性能越弱,则可以在得到初始性能得分后,将初始性能得分转换为性能得分,具体地,可以将初始性能得分的倒数作为性能得分,也可以将预设值减去初始性能得分的值作为性能得分。
实际中,可以依据处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少两者,计算性能得分,具体地,可以依据处理器繁忙参数值、内存使用率计算性能得分,因处理器繁忙参数值、内存使用率均反应了存储节点的自身硬件性能状态,因此可以作为计算性能得分的优选。
当然,在一些更加优选的示例中,可以依据处理器繁忙参数值、内存使用率和网络繁忙参数值计算性能得分,从而更加全面准确的评判出存储节点的状态性能。
在一些实施例中,进一步地,可以基于每个存储节点对应的处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少两者,以及每种参数值各自对应的权重,确定每个存储节点的初始性能得分。
本实施例中,可以为不同的参数值设置不同的权重,或者为不同的参数值设置相同的权重,在依据处理器繁忙参数值、内存使用率和网络繁忙参数值计算性能得分时,可以将处理器繁忙参数值和网络繁忙参数值设置相同的权重,而内存使用率设置为另外的权重。
在计算初始性能得分时,可以按照各个参数值(处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少两者)的权重,对各个参数值进行加权求和,从而得到初始性能得分。
下面,通过一个示例对上述第一存储节点和第二存储节点的确定过程进行说明。
示例1
以状态参数包括处理器繁忙参数值、内存使用率和网络繁忙参数值为例,结合图1所示的通信环境,对如何得到存储节点的性能得分进行说明,假设目标卷被划分为4份,存储系统包括4个存储节点,在对存储节点的状态进行一次检测的结果如表1所示:
表1-存储节点的状态参数表
存储节点 | 处理器繁忙参数值 | 内存使用率 | 网路繁忙参数值 |
节点1 | 70% | 60% | 75% |
节点2 | 20% | 30% | 25% |
节点3 | 50% | 50% | 50% |
节点4 | 60% | 40% | 50% |
假设,每种参数值对应的权重均相同,则根据处理器繁忙参数值、内存使用率和网络繁忙参数值计算每个存储节点的平均得分,公式如下:yi=(100×xi,1+100×xi,2+100×xi,3)/3;其中,yi表示存储节点i的初始性能得分,xi,1、xi,2和xi,3分别表示存储节点i的三个状态参数(处理器繁忙参数值、内存使用率和网络处理器繁忙参数值);
这样,可以计算得到上述表1中每个存储节点的性能得分,具体地:节点1的性能得分是35,节点2的性能得分是75,节点3的性能得分是50,节4的性能得分是50。
接着,以60为预设得分阈值,大于等于60分的节点仍然是最优存储节点,小于60分的节点考虑替换为其他大于等于60分的节点。
如上结果,得分大于等于60的节点只有节点2,那么L2的最优节点仍然是节点2,而得分小于60的节点有节点1、节点3和节点4,其中最低分是节点1的35分,那么L1的最优节点从节点1调整到得分最高的节点2,对应的最优路径设备也会在服务器侧调整为sdc。得分次低的是节点3,它可以仍然是L3的最优节点。
相应地,在对表1的映射关系调整后,将调整后的映射关系发送给服务器后,则多个分段各自对应的最优存储节点和最优路径设备如表2所示:
表2-多个分段各自对应的最优存储节点和最优路径设备
分段号 | 最优存储节点 | 最优路径设备 |
L1 | 节点2 | sdc |
L2 | 节点2 | sdc |
L3 | 节点3 | sdd |
L4 | 节点4 | sde |
可见,将L1对应的最优存储节点从节点1调整到了节点2,随即最优路径设备从sdb调整到sdc。
如上所述,状态参数也可以包括处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少一者,其中,多种状态参数可以用同一度量方式进行度量,以便计算,例如都使用百分比度量。则在对多个存储节点的状态进行检测时,可以检测存储节点的处理器繁忙状态、内存使用状态和网络繁忙状态中的至少一者。
具体地,检测存储节点的处理器繁忙状态时,可以检测单位时间内存储节点的处理器处于目标繁忙状态的时长,得到存储节点的处理器繁忙参数值。
其中,处理器可以是指存储节点的CPU(Central Processing Unit,中央处理器),繁忙程度参数值可以使用百分比表示,最低0%,最高100%,例如:45%表示单位时间内CPU在45%的时间处于繁忙状态。
检测存储节点的内存使用状态时,可以检测单位时间内所述存储节点上的内存被使用的平均容量,得到内存使用率。
其中,内存使用率也使用百分比表示,最低0%,最高100%,例如若内存有30%的容量被使用,即是30%,则表示单位时间内平均30%的内存被使用。
检测存储节点的网络繁忙状态时,可以检测单位时间内存储节点上的数据流量与所在的网络带宽之间的比值,得到网络繁忙参数值。
其中,网络繁忙参数值也使用百分比表示,最低0%,最高100%,例如:15%表示单位时间的数据流量与网络带宽的比值为15%。
其中,单位时间可以是存储节点进行周期性检测的间隔时长,或者,可以是其他时间,一般而言,在存储节点的一次周期性检测中,需要监控该周期内单位时间内存储节点的上述性能指标。
<2>根据主机发送的路径切换信息,对映射关系进行调整的情况可以如下所述:
在一种实施例中,在接收到主机发送的路径切换信息时,表示主机根据多个路径设备的请求处理效率,确定了某一路径设备上的IO请求需要切换到其他路径设备上,此时,主机一方面可以基于路径切换信息,对目标IO请求进行转移,将其转移到另一路径设备上,而存储系统则会基于这一转移,通过目标IO请求被转移到的路径设备所对应的存储节点,去处理该目标IO请求(因目标IO请求转移到另一路径设备,则需要调整相应的存储节点去响应目标IO请求),对于未包含在路径切换信息中的IO请求,可以仍然按照原有的映射关系进行处理。
具体实施时,可以基于所述路径切换信息,确定第一路径设备以及至少一个第二路径设备;并通过第一路径设备对应的存储节点处理完排列在前的IO请求时,通过第二路径设备所对应的目标存储节点,处理至少一个目标IO请求;
其中,第一路径设备中的至少一个目标IO请求待转移给第二路径设备。
本实施例中,目标IO请求是第一路径设备被转移到第二路径设备的IO请求,其中,由于一个存储节点可以作为多个分段的最优存储节点,则目标IO请求可以对应一个或多个分段。
其中,待切换的第一路径设备是请求处理效率较低的路径设备,而第二路径设备是请求处理效率较高的路径设备,其中,至少一个目标IO请求是第一路径设备中待处理的部分IO请求,如IO请求一般按照时间顺序排列,则排列在后的IO请求是时间在后的IO请求。其中,由于目标IO请求是第一路径设备中的部分IO请求,一般而言,一个路径设备对应一个存储节点,而一个存储节点可以是多个分段的最优存储节点,则第一路径设备中可能包含多个分段的IO请求,以及同一个分段的多个IO请求;则此种情况下,第一路径设备中存储同一个分段的部分IO请求需要继续留在第一路径设备中处理,而其余部分IO请求需要被转移到第二路径设备。
其中,为了保证每个IO请求都得到处理,主机将第一路径设备中的部分IO请求(目标IO请求)转移到第二路径设备后,在存储系统侧,存储系统中与第一路径设备对应的存储节点可以处理第一路径设备发送过来的IO请求后,再调整映射关系,进而再通过第二路径设备对应的存储节点处理目标IO请求。
其中,主机在将第一路径设备中的目标IO请求转移到第二路径设备后,可以生成路径切换信息,以告知存储系统更换了这些目标IO请求的处理路径,则存储系统会相应更换目标IO请求所针对的分段的最优存储节点。
其中,路径切换信息中可以包括第一路径设备的标识、第二路径设备的标识、目标IO请求所针对的分段的标识,以及目标IO请求的标识。
示例地,以图1为例,假设主机确定路径设备sdc中的目标IO请求需要转移到sdb,则路径切换信息中包括目标IO请求的标识,路径设备sdc对应的存储节点节点2的标识,以及路径设备sdb对应的存储节点节点1的标识,存储系统会根据路径切换信息,先通过存储节点节点2处理其他IO请求,处理完后,再通过存储节点节点1处理目标IO请求。
在一些实施例中,存储系统接收到路径切换信息时,可以即时对映射关系进行调整,或者当下可以不调整,优选地,在即时对映射关系进行调整的情况下,可以基于路径切换信息,将目标IO请求所针对的分段,由与第一路径设备对应的存储节点映射,调整到与第二路径设备对应的存储节点映射。
本实施例中,可以每接收到一个路径切换信息,便对映射关系进行即时调整,如此可以使得存储系统所决定的最优存储节点和最优路径设备,与主机上的路径设备的状态性能也能及时适配。
其中,在基于路径切换信息进行调整时,由于一个存储节点可以是多个分段的最优存储节点,而转移的目标IO请求一般针对具体的一个分段,因此,可以根据目标IO请求所针对的分段,将该分段的最优存储节点切换到第二路径设备对应的存储节点。
示例地,假设主机确定路径设备sdc中的目标IO请求需要转移到sdb,则存储系统可以将目标分段所映射的存储节点,从节点2切换到节点1。
当然,在又一些实施例中,存储系统可以在接收到一个路径切换信息时,保持映射关系不变,即先不调整映射关系,之后,若频繁接收到某个存储节点的路径切换信息,再对映射关系进行调整。
具体实施时,可以确定接收到的针对所述第一路径设备的路径切换信息的切换数量,以及每个路径切换信息所针对的第二路径设备;并基于切换数量,以及每个路径切换信息所针对的第二路径设备所对应的存储节点,对映射关系进行调整。
其中,在针对某个路径设备进行频繁切换时,表征主机上的该路径设备处理存储节点对应的IO请求的性能受到严重阻滞,需要对该存储节点进行调整,即将目标分段的最优存储节点切换为主机所确定的另一最优路径设备所对应的存储节点,则对于主机而言,后续针对该目标分段的所有IO请求都会映射到切换后的最优路径设备上,以通过最优路径设备在切换后的最优存储节点上对IO请求进行处理。
其中,目标分段是指目标IO请求所针对的分段。
在又一些示例中,由于一个存储节点可能是多个分段的最优存储节点,相应地,一个路径设备也可能是多个分段的最优路径设备,而在对路径设备切换时,转移出的目标IO请求可能针对不同的分段,每次路径切换时,转移的目标IO请求也是不同的。
则相应地,在基于切换数量和每个路径切换信息所针对的第二路径设备,对映射关系进行调整时,可以在切换数量超对预设数量,如三个时,进行调整。调整时,可以确定每次路径切换所针对的第二路径设备,以及每次转移出的目标IO请求所针对的分段,将接收转移的IO请求的次数最多的路径设备作为第二路径设备,以及将IO请求被转移最多的分段作为目标分段,从而将目标分段所映射的存储节点,调整为与第二路径设备对应的存储节点映射。
示例地,假设第一路径设备为sdc,针对sdc的路径切换信息有10个,超过预设数量9,其中,有7个路径切换信息显示切换到的第二路径设备为sdb,有3个路径切换信息显示切换到的第二路径设备为sdd,转移出的目标IO请求所针对的分段分别是L1、L5和L9,其中,L1被转出的目标IO请求数量最多,可以表示L1分段的IO请求被积压严重,则可以将L1的最优存储节点从节点2调整为节点1,之后到来的L1的IO请求则会被发送到第二路径设备sdb,由二路径设备sdb对存储节点节点1进行读写操作。
采用本实施例的技术方案,由于可以基于路径切换信息的数量和每个路径切换信息所针对的第二路径设备,以及被转移的目标IO请求,对映射关系进行适当调整,如此,一方面,可以避免频繁对映射关系进行调整所导致的IO请求调度变更频繁,可能导致的漏处理和效率低的问题,另一方面,可以对路径设备和存储节点的IO处理效率进行综合性的监测和考量后,再调整映射关系,从而提高映射关系调整的准确率,使得调整后的映射关系可以更加适配主机的路径设备的性能,也能适应存储节点的性能。
实施例二
基于相同的发明构思,本公开还提供了一种多路径存储的IO请求处理方法,该方法可以应用于主机,主机与存储系统连接,存储系统包括多个存储节点,结合图1所述的通信环境,对本实施例二进行介绍。
参照图3所示,示出了本实施例二的一种多路径存储的IO请求处理方法的步骤流程示意图,如图3所示,具体可以包括以下步骤:
步骤S301:确定与存储系统中的目标卷对应的多个路径设备;
其中,目标卷被划分为多个分段存储于多个存储节点上,多个存储节点与多个路径设备分别对应。
本实施例中,目标卷是存储系统中的卷,其中,目标卷会预先映射到主机上,从而得到目标卷对应的路径设备,路径设备的数量与存储系统的存储节点的数量可以对应,例如,存储系统有4个存储节点,则主机上的路径设备也有4个,一个路径设备可以对应一套IO请求处理的链路,则一个卷对应多个链路,从而主机可以通过多路径链路对同一个目标卷执行读写操作。
其中,存储系统中一般具有多个卷,则每个卷映射到主机上的相应多个路径设备,其中,不同卷所映射的多个路径设备会不同。对于主机而言,在得到目标卷所映射的多个路径设备后,可以将多个路径设备聚合为一个目标卷的多路径设备,以便对每个卷的IO请求进行单独的调度管理。
本实施例中,主机上可以配置有多路径软件,多路径软件包括用户态和内核态,用户态负责多路径的管理,内核态负责IO选路,即为IO请求选择对应的路径设备。
在一些实施例中,在多路径软件开始运行时,即存储系统开始工作时,主机可以接收存储系统针对目标卷发送的映射关系;其中,映射关系用于标识所述分段对应的最优存储节点。
其中,主机上的多路径软件可以获取接收到的映射关系,如上述实施例一所述,该映射关系包括每个分段对应的最优存储节点,进而可以在主机侧基于最优存储节点,确定出最优路径设备,从而得到每个分段的IO请求的处理路径。示例地,如果一个IO请求的起始位置为50M,大小为512KB,那么根据目标卷的划分,该IO请求针对L2,L2的最优设备是sdc,那么主机会将该IO请求分配到sdc,等待处理。
步骤S302:对多个路径设备各自的请求处理效率进行检测。
本实施例中,主机可以对目标卷的多个路径设备的请求处理效率进行周期性检测,或者实时检测。周期性检测可以是指每间隔一定时间就对路径设备的请求处理效率检测一次,实时检测可以是指实时对路径设备的请求处理效率进行持续性检测。一般而言,可以选择进行周期性检测。
其中,路径设备的请求处理效率可以表征路径设备处理IO请求的效率,该效率可以用路径设备单位时间内处理IO请求的数量来表示,或者处理每个IO请求的平均花费时长表示。
步骤S303:基于检测的结果,生成针对路径设备中的目标IO请求的路径切换信息;
其中,路径切换信息用于表征对处理分段的IO请求的路径设备的切换。
本实施例中,对多个路径设备各自的请求处理效率进行检测后,得到的检测的结果可以反映各个路径设备对IO请求进行处理的效率高低,从而可以得到处理效率低的路径设备(以下称第一路径设备),和处理效率高的路径设备(以下称第二路径设备),进而可以将第一路径设备中的目标IO请求转移到另一第二路径设备中。
其中,待转的目标IO请求可以是第一路径设备中排列在后的部分IO请求,实际中,主机可以根据第一路径设备的标识、第二路径设备的标识,生成路径切换信息,该路径切换信息可以发送给存储系统,以使存储系统基于路径切换信息,对映射关系进行调整。
其中,路径切换信息可以指示将目标IO请求从所在路径设备(第一路径设备)转移到另一路径设备(第二路径设备),其中,第一路径设备可以有多个,第二路径设备也可以有多个。
具体地,一个第一路径设备可以对应一个或多个第二路径设备,也就是说,一个第一路径设备中的目标IO请求可以转移到一个或多个第二路径设备中。
步骤S304:基于路径切换信息,将针对所述分段的IO请求发送给切换后的路径设备,和/或,基于存储系统发送的调整后的映射关系,将针对所述分段的IO请求发送给最优存储节点对应的路径设备;
其中,所述最优存储节点为所述映射关系中所述分段对应的存储节点。
其中,主机可以基于存储系统发送的映射关系,将多个IO请求发送给各自对应的路径设备,之后,可以检测各个路径设备的请求处理效率,并根据检测的结果,将其中一个路径设备上的至少一个目标IO请求转移到另一个或另外的多个路径设备中,以达到在主机侧,根据路径设备的请求处理效率对映射关系的微调。
其中,在将第一路径设备中的目标IO请求转移到一个或多个第二路径设备中时,这些目标IO请求可以排列在第二路径设备的待处理的IO请求之后,也就是说,第二路径设备先处理原本映射到该第二路径设备上的IO请求,接着再处理转移过来的目标IO请求。
一般而言,应尽量避免调整后的映射关系和路径切换信息同时发生。这样,主机在一次IO请求的调度中,要么依据存储系统告知的调整后的映射关系,要么依据路径切换信息。
具体实施时,主机在得到存储系统发送的调整后的映射关系时,可以依据调整后的映射关系,进行IO请求的调度,之后,若主机对路径设备的请求处理效率检测后,确定需要对第一路径设备中的IO请求进行转移,则会生成路径切换信息,主机再根据路径切换信息,将第一路径设备中的至少一个目标IO请求调度给第二路径设备,并将路径切换信息发送给存储系统,存储系统可以按照上述实施例一的相关描述,基于路径切换信息对映射关系进行调整。
采用本实施例二的技术方案,由于主机可以依据多个路径设备的请求处理效率,确定对目标IO请求进行路径切换,从而及时将请求处理效率低的路径设备中的IO请求调度给请求处理效率高的路径设备中,从而使得IO请求的调度与主机上的路径设备的请求处理效率动态适配,以提高IO请求的处理效率。
并且,由于在存储系统侧,也基于各个存储节点的状态性能,对映射关系进行了动态调整,从而对于主机,便会动态对IO请求的调度策略进行更新,使得IO请求的调度不但与存储节点的性能相匹配,也与主机上的路径设备的请求处理效率相匹配,这样,每一次的IO请求都能调度到最优的存储节点和最优的路径设备。
在一种实施例中,可以将路径切换信息发送给存储系统,以使存储系统基于路径切换信息,和/或每个周期检测到的多个存储节点各自的状态参数,对映射关系进行调整,其中,调整过程可以参照上述实施一的相应描述即可。
其中,主机与存储系统建立多路径存储链路的过程可以是:
通过命令行建立主机与存储系统的多路径iSCSI链路;
或者,通过FC卡建立主机与存储系统的多路径FC链路;其中,多路径链路为针对目标卷的链路,一条链路对应一个路径设备。
其中,具体创建一类型的链路,可以依据用户预先配置的配置信息确定。当预设的路径链路的类型为iSCSI链路时,创建的主机中必须包含当前服务器的IQN(即ISCSIQualified Name,Internet小型计算机系统接口限定名称)信息;当预设的路径链路类型为FC(Fiber Channel,光纤通道)链路时,创建的主机中必须包含当前服务器的WWPN(WorldWide Port Name,全球通用端口名称)信息。
在一种实施例中,生成路径切换信息时,可以基于第一路径设备、第二路径设备,以及对应的待转移的目标IO请求生成。
具体实施时,可以基于检测的结果,确定第一路径设备和至少一个第二路径设备;并基于第一路径设备和第二路径设备,以及目标IO请求对应的目标分段,生成路径切换信息,以指示将目标IO请求从第一路径设备转移到至少一个第二路径设备。
其中,第一路径设备中的至少一个目标IO请求待转移给第二路径设备。
本实施例中,可以将请求处理效率较低的路径设备确定为第一路径设备,将请求处理效率较高的路径设备确定为第二路径设备。实际中,可以将第一路径设备中排列在后的至少一个目标IO请求转移到至少一个第二路径设备中。
在一种示例中,可以按照请求处理效率对各个路径设备进行排序,具体地,可以按照请求处理效率从高到低的顺序排序,那么排列在前的路径设备可以作为第二路径设备,排列在后的路径设备可以作为第一路径设备。
在一些实施例中,对多个路径设备各自的IO请求处理效率进行检测时,可以检测路径设备在单位时间内处理的IO请求的数量,由此可以计算得到每个路径设备处理每个IO请求所花费的平均时长,由此,可以得到每个路径设备中每个待处理的IO请求的等待时长。
具体地,可以在每次检测时,检测每个路径设备在单位时间内处理完的IO请求数量,和当前待处理的IO请求数量。由此,可以根据单位时间内处理完的IO请求数量,得到路径设备处理每个IO请求所花费的平均时长;基于该平均时长,可以确定当前待处理的IO请求的最大等待时长,即排在最后的一个IO请求的等待时长。
相应地,在基于性能检测的结果,确定第一路径设备和至少一个第二路径设备时,可以基于每个路径设备在单位时间内处理完的IO请求数量,以及待处理的IO请求数量,确定该路径设备中待处理的各个IO请求各自对应的等待时长;并基于等待时长,确定第一路径设备和至少一个第二路径设备。
其中,对每个路径设备,可以将该路径设备中排列在最后的IO请求的等待时长作为最大等待时长,然后基于最大等待时长从高到低的顺序,对各个路径设备进行排序,排列在前的路径设备,其最大等待时长最短,表征若该路径设备有新的IO请求到来,会相比其他路径设备得到更快的处理。
由此,可以将等待时长较大的路径设备,如最大的路径设备确定为第一路径设备,将等待时长较小的路径设备,如最小的路径设备确定为第二路径设备。当然,这只是示例性说明,实际中,可以确定多个第二路径设备,一些情况下,也可以确定多个第一路径设备。
需要说明的是,在实施例一中,在一些情况下,分段镜像存储在多个存储节点中,在对映射关系调整时,可以在分段镜像存储的多个存储节点之间进行映射关系的切换。对于主机而言,路径设备与存储节点可以一对一对应,这样,在路径设备的切换时,可以不受此限制,因为主机是针对IO请求的二次调度。
在一些示例中,可以将等待时长最长的路径设备,确定为第一路径设备;
将等待时长最短的路径设备,确定为第二路径设备。
其中,等待时长最长的路径设备可以是最后一个待处理的IO请求对应的等待时长最长的设备,等待时长最短的路径设备可以是最后一个待处理的IO请求对应的等待时长最短的设备。
示例地,以图1为例,假设目标卷映射到主机上有四个路径设备,该四个路径设备的检测结果如下表3所示:
表3-四个路径设备的检测结果
设备 | 待处理的IO请求数量 | 单位时间内处理的IO请求数量 |
sdb | 25 | 6 |
sdc | 15 | 2 |
sdd | 25 | 3 |
sde | 7 | 4 |
每个路径设备各自对应的等待时长的确定可以如下所述:
设备sdb的最后一个IO需要的等待时长为(25-1)/6 =4秒,同理,设备sdc上的最后一个IO需要的等待时长为(15-1)/2=7秒,设备sdd上的最后一个IO需要的等待时长为(25-1)/3=8秒,设备sde上的最后一个IO需要的等待时长为(7-1)/4=1.5秒。可见,设备sdd的最后一个IO的等待时间最长,而设备sde的最后一个IO的等待时间最短。
则sde可以作为第二路径设备,而sdd可以作为第一路径设备,即需要将设备sdd中的至少一个目标IO请求转移到设备sde中。
当然,以上仅为示例性说明。
在一些实施例中,在基于路径切换信息,对多个IO请求进行发送的情况下,可以将第一路径设备中待处理的目标IO请求,转移到至少一个第二路径设备,以使第二路径设备处理目标IO请求。
其中,可以将第一路径设备中待处理的且排列在后的一个或多个目标IO请求,转移到一个或多个第二路径设备中。若是多个第二路径设备,则一个第二路径设备可以接收被转移的一个或多个目标IO请求。
示例地,如表3所示,若是将一个目标IO请求调度到一个第二路径设备,则可以考虑将设备sdd的最后一个IO请求二次调度到设备sde,如果将设备sdd的最后一个IO请求二次调度到设备sde,那么设备sdd的新的最后一个IO请求的等待时长为(24-1)/3=7.66秒,设备sde的新的最后一个IO请求的等待时长为(8-1)/4=1.75秒。可见,二次调度后设备sdd上的最后一个IO请求的等待时长仍然比设备sde长,所以可以调度,因此,可以确定第一路径设备为设备sdd,第二路径设备为设备sde。
路径切换后可以见下表4所示:
表4-切换路径设备后各个路径设备的IO请求分配数量
设备 | 待处理的IO请求数量 | 单位时间内处理的IO请求数量 |
sdb | 25 | 6 |
sdc | 15 | 2 |
sdd | 24 | 3 |
sde | 8 | 4 |
在又一些示例中,可以将第一路径设备中的多个目标IO请求映射到第二路径设备,由于需要转移多个目标IO请求,则可以先确定将这些多个目标IO请求转移到一个路径设备还是多个路径设备,具体地,可以先确定将多个目标IO请求全部转移到一个路径设备时,其等待时长是否超过其在第一路径设备中的等待时长,若超过,则可以再确定出一个或多个路径设备,从而将多个目标IO请求映射到多个第二路径设备,转移后,每个目标IO请求的等待时长都相应缩短。
具体实施时,在包括多个目标IO请求的情况下,可以先确定将第一路径设备中的多个目标IO请求全部映射到一个第二路径设备后,第二路径设备中待处理的IO请求对应的第一最大等待时长,以及第一路径设备中待处理的IO请求对应的第二最大等待时长。
其中,若第一最大等待时长不大于第二最大等待时长,则将多个目标IO请求全部映射到一个第二路径设备。
若第一最大等待时长大于第二最大等待时长,则从多个第三路径设备中,再确定出至少一个第二路径设备;其中,第三路径设备为等待时长小于第一路径设备的等待时长的设备。
本实施例中,将第一路径设备中的多个目标IO请求全部映射到一个第二路径设备后,第二路径设备便相应增加了IO请求,可以根据检测到的第二路径设备的请求处理效率,重新计算第二路径设备上最后一个目标IO请求的等待时长,若等待时长超出其在第一路径设备的等待时长,则可以再确定一个请求处理效率较高的路径设备为第二路径设备,即从请求处理效率较高的第三路径设备中选取出一个作为第二路径设备,以将多个目标IO请求二次调度到多个第二路径设备中。
示例地,参照表3所示,若将路径设备sdd中的4个目标IO请求转移到设备sdc中,则设备sdc中的最后一个目标IO请求的等待时长为9秒,其大于在sdd中的等待时长。则可以将sdb确定为另一第二路径设备,然后将4个目标IO请求分别映射到路径设备sdb和路径设备sdc中。
采用此种实施方式时,在将请求处理效率高于第一路径设备的任一路径设备作为第二路径设备时,即随机分配第二路径设备的方式,当确定第二路径设备可以全部接收被转移的目标IO请求,且目标IO请求的等待时长未被缩短的情况下,再确定一个请求处理效率较高的第二路径设备即可,由此,可以尽量将至少一个目标IO请求转移到同一个第二路径设备中,减小二次调度复杂度。
在一些实施例中,在包括多个第二路径设备以及多个目标IO请求的情况下,这些多个目标IO请求需要转移到多个第二路径设备,其中,可以将多个目标IO请求,分别转移到多个第二路径设备;其中,一个第二路径设备被转移有一个或多个目标IO请求。
具体实施时,可以基于多个第二路径设备各自对应的请求处理效率,确定每个第二路径设备被转移的目标IO请求的数量;接着,按照每个第二路径设备被转移的目标IO请求的数量,将多个目标IO请求分别转移到多个第二路径设备。
其中,请求处理效率可以是指单位时间内可以处理的IO请求的数量,数量越大,请求处理效率越高,则会被分配更多的IO请求,示例地,如表3所示,论请求处理效率,设备sdb最高,则可以为设备sdb分配更多的IO请求。需要说明的是,每个第二路径设备被分配的IO请求的数量,需要满足其等待时长不超过其在第一路径设备中的等待时长的条件。
其中,请求处理效率也可以是指路径设备中各个IO请求的等待时长,则可以依据等待时长确定转移给第二路径设备的目标IO请求的数量,具体地,等待时长越短的路径设备,可以被转移更多的目标IO请求。
本实施例中,若将请求效率高于第一路径设备的多个路径设备确定为第二路径设备,则第一路径设备中的目标IO请求需要转移到多个第二路径设备中,此种情况下,可以向等待时长较短的第二路径设备,转移更多的目标IO请求,向等待时长最长的第二路径设备,转移更少的目标IO请求。
具体在调度时,可以以转移到各个第二路径设备中的目标IO请求的等待时长的差值较小,确定转移到各个第二路径设备的目标IO请求的数量。
示例地,以表3为例,假设路径设备sdd的等待时长超过8秒,其中,将路径设备sdd中的9个目标IO请求转移到其他设备sdb和sde中,转移后,设备sdd的最长等待时长是5秒,其中,由于设备sdb的最长等待时长是4秒,则可以向其转移少量的目标IO请求,例如,可以转移3个到sdb,转移后,sdb的最长等待时长是4.5秒,剩余的6个到sde,转移后,sdb的最长等待时长是3秒。也就是说,转移后,sde、sdb和sdd的等待时间差异较小。
或者,为了更进一步缩小差异,可以转移1个到sdb,转移后,sdb的最长等待时长是4.1秒,剩余的8个到sde,转移后,sdb的最长等待时长是3.5秒。这样,sde、sdb和sdd的等待时间的差异更小。
如此,可以从整体上缩短各个IO请求的等待时长,使得各个路径设备处理IO请求的进度可以尽量保持一致,从而提高对目标卷中各个分段进行读写时的均衡性。
在一些实施例中,在基于检测结果,对路径设备进行切换以及对IO请求进行转移,即二次调度时,若确定第一路径设备中的一个目标IO请求需要被二次调度,则可以将第一路径设备中排列在最后的一个目标IO请求,转移到第二路径设备。例如,可以将第一路径设备中的最后一个目标IO请求转移到一个等待时长最短的第二路径设备中。
若确定第一路径设备中的多个目标IO请求需要被二次调度,则可以将第一路径设备中排列在后的多个目标IO请求,转移到至少一个第二路径设备中。
其中,将多个目标IO请求,转移到至少一个第二路径设备的过程,可以参照上述实施例的描述即可,即按照每个第二路径设备的最长等待时长,确定被转移到第二路径设备的目标IO请求的数量,按照数量将多个目标IO请求分别转移到多个第二路径设备。
在一些实施例中,需要确定出待切换的第一路径设备中待被转移的目标IO请求的数量,该目标IO请求可以是一个也可以是多个,具体地,可以根据检测结果,确定第一路径设备中最后一个IO请求对应的等待时长(即最长等待时长),与第二路径设备中最后一个IO请求对应的等待时长(即最长等待时长)之间的差异,根据该差异,可以确定出目标IO请求的数量,以保证将转移的每个目标IO请求的等待时长都得到缩短。
具体实施时,可以确定第一路径设备对应的最长等待时长,与第二路径设备对应的最长等待时长的平均等待时长;并基于平均等待时长,确定待转移的IO请求的目标数量;接着,将第一路径设备中排列在后的目标数量个IO请求,确定为待转移的目标IO请求。
本实施例中,若第二路径设备只有一个,例如是最长等待时长最小的路径设备,则需要确定将第一路径设备中的哪些IO请求二次调度到第二路径设备。其中,第一路径设备对应的最长等待时长,与第二路径设备对应的最长等待时长的平均等待时长,可以表征效率均衡情况下,两个路径设备处理完IO请求的预期最佳等待时长,即两个路径设备在差异较小的时间都处理完所有的IO请求。
示例地,设备sdd为第一路径设备,设备sde为第二路径设备,最长等待时长的平均等待时长是4.75秒,则第一路径设备和第二路径设备最好都在4.75秒内处理完全部的IO请求,基于这一约束,可以计算出第一路径设备转移到第二路径设备的IO请求的数量,具体的,第一路径设备4.75秒内处理的IO请求数量是14个,第二路径设备4.75秒内处理的IO请求数量是19个,则可以将第一路径设备中的12个或11个排列在后的IO请求转移到第二路径设备中,这样,转移后,两个路径设备都能在4.75秒左右的时间内处理完IO请求,从而实现了各个路径设备均在相差不大的时间内处理完IO请求,提高了IO请求的负载均衡性。
综上,本实施例二给出了如下几种路径切换方式:
方式一,可以将等待时长最长的路径设备确定为第一路径设备,将等待时长最短的路径设备确定为第二路径设备,此种情况下,可以将第一路径设备中排列在最后的一个目标IO请求转移给一个第二路径设备,或者,可以按照第一路径设备的最长等待时长和第二路径设备的最长等待时长的平均时长,将第一路径设备中的目标数量个IO请求转移给第二路径设备,以使二者达到均衡的等待时长。
方式二,可以将等待时长较长的多个路径设备确定为第一路径设备,将等待时长较短的多个路径设备确定为第二路径设备,此种情况下,可以将第一路径设备的多个IO请求分别转移给多个第二路径设备,每个第二路径设备被转移的数量,可以由第二路径设备的请求处理效率确定。或者,可以先计算多个目标IO请求全部转移到任意一个第二路径设备时的最长等待时长,基于该最长等待时长与第一路径设备原本的最长等待时长之间的大小关系,确定是否增加第二路径设备。
方式三,可以将等待时长最长和较长的路径设备确定为第一路径设备,第一路径设备便有多个,如此相应地,可以将等待时长最短和较短的路径设备确定为第二路径设备,其中,等待时长最长的第一路径设备的IO请求可以转移到等待时长最短的第二路径设备中,等待时长较长的第一路径设备的IO请求可以转移到等待时长较短的第二路径设备中。
下面,通过一个完整示例,结合图1所示,对本公开实施例的多路径存储的IO请求处理方法进行示例性说明,其中,以主机为服务器为例:
S1:进行目标卷的配置操作,以及存储系统和主机的多路径链路配置。
(1)创建和映射卷,登录存储系统,通过命令或可视化界面创建卷,并将其映射到服务器,得到多个路径设备。
(2)建立链路,登录服务器,建立服务器与存储系统之间的链路。一般来说,应当建立多条链路,使得映射到服务器的卷对应多个设备(每个卷通过一条链路就对应一个设备)。
对于iSCSI链路,通过命令行建立服务器与存储系统的链路。
对于FC链路,通过FC卡建立服务器与存储系统的链路。
(3)发现设备。
登录服务器,通过键入一个命令,可在主机上创建多个路径设备,假如4条链路,那么不同卷对应不同的4个设备,例如:卷1对应sdb、sdc、sdd和sde,卷2对应sdf、sdg、sdh和sdi。
(4)聚合多路径。
登录服务器,通过命令启动多路径软件,将具有相同的卷标识的设备聚合成一个多路径设备,例如:多路径设备-0,对应卷1。
S2:存储系统确定目标卷的多个分段与多个存储节点之间的映射关系;如上所述,映射关系用于标识所述分段在多个所述存储节点中映射的最优存储节点,也即标识针对分段的IO请求的处理路径,其中,多个存储节点与目标卷在主机上映射的多个路径设备分别对应;
S3:存储系统将映射关系发送给服务器;
S4:服务器基于映射关系,按照多个IO请求所针对的分段,将多个IO请求发送给对应的路径设备,以使路径设备对对应的IO请求进行处理;
S5:存储系统对多个存储节点的状态按照第一预设时间间隔进行检测,服务器对多个路径设备的请求处理效率按照第二预设时间间隔进行检测;其中,第一预设时间间隔小于第二预设间隔,则存储系统对映射关系的调整频繁度会高于服务器对路径设备的切换频繁度。
S6:存储系统在每一次检测后,基于检测到的多个存储节点各自的状态参数,对映射关系进行调整,将调整后的映射关系发送给服务器,以使服务器按照调整后的映射关系,将多个IO请求发送给分段的最优存储设备所对应的路径设备;
S6:服务器基于请求处理效率的检测结果,确定出待切换的第一路径设备、至少一个第二路径设备,以及第一路径设备中待转移的至少一个目标IO请求;
S7:服务器将第一路径设备中待转移的至少一个目标IO请求,转移到至少一个第二路径设备中,并生成路径切换信息发送给存储系统;例如,将第一路径设备中的最后一个IO请求转移到等待时长最短的第二路径设备中;
S8:存储系统接收到路径切换信息后,先通过第一路径设备对应的存储节点处理完排列在目标IO请求之前的IO请求后,再通过第二路径设备对应的存储节点处理目标IO请求;
S9:存储系统可以基于路径切换信息,对映射关系进行调整,具体地,可以针对第一路径设备所对应的存储节点,将该存储节点所映射的分段,调整为将该分段与第二路径设备所对应的存储节点进行映射,即选择第二路径设备所对应的存储节点作为该分段的最优存储节点。
总体上,采用本公开的多路径存储的IO请求处理方法,存储系统可以基于自身的多个存储节点的状态,对映射关系进行调整;主机可以一直按照存储系统所发送的映射关系将IO请求下发给路径设备,而主机在下发IO请求给路径设备的过程中,也可以对路径设备的请求处理效率继续检测,以适时调整一些IO请求所针对的最优路径设备,实现对其中一个路径设备上待处理的IO请求的二次调度,从而均衡路径设备的负载,提高处理效率。这样,从主机侧和存储系统侧,均作出了对IO请求处理效率的提升贡献。
实施例三
基于相同的发明构思,本公开还提供了一种处理系统,如图1所示,包括存储系统和主机;其中:
所述存储系统,用于执行上述实施例一所述的多路径存储的IO请求处理方法;
所述主机,用于执行执行上述实施例二所述的多路径存储的IO请求处理方法。
具体地,系统还包括交换机,存储系统和所述主机之间通过交换机进行通信,也就是说,存储系统在向主机发送映射关系时,可以通过交换机将映射关系发送给主机,主机在将路径切换信息发送给存储系统时,也可以通过交换机将路径切换信息发送给存储系统。
其中,路径设备的IO请求可以通过交换机发送给对应的存储节点,进而对存储节点执行数据读操作或数据写操作。
其中,由于存储系统可以对多个存储节点的状态进行检测,主机也可以对多个所述路径设备的请求处理效率进行检测,实际中,存储系统对多个存储节点的状态进行检测的间隔时长,不同于主机对多个路径设备进行检测的间隔时长。
实际中,如上所述,存储系统进行检测的间隔时长可以小于主机进行检测的间隔时长,也就是说主机会间隔较长的时间检测路径设备的请求处理效率,从而对部分IO请求的链路进行二次调度。
实施例四
基于相同的发明构思,本公开还提供了一种多路径存储的IO请求处理装置,参照图4所示,该装置应用于存储系统,存储系统与主机通信连接,所述存储系统包括多个存储节点,具体可以包括以下模块:
划分模块401,用于对目标卷进行划分,得到多个分段;其中,目标卷在主机上映射有多个路径设备,多个路径设备与多个存储节点分别对应;
关系确定模块402,用于确定对目标卷进行划分后得到的多个分段,与多个存储节点之间的映射关系;其中,映射关系用于标识所述分段在多个所述存储节点中映射的最优存储节点;
第一检测模块403,用于对多个存储节点的状态进行检测;
关系调整模块404,用于基于检测到的多个存储节点各自的状态参数,和/或主机发送的针对路径设备的路径切换信息,对映射关系进行调整;其中,路径切换信息用于表征对处理所述分段的IO请求的路径设备的切换;
关系发送模块405,用于将调整后的映射关系发送给所述主机,以使所述主机基于所述调整后的映射关系,将针对所述分段的IO请求发送给所述最优存储节点对应的路径设备。
可选地,装置还包括:
路径设备确定模块,用于基于所述路径切换信息,确定第一路径设备以及至少一个第二路径设备;其中,所述第一路径设备中的至少一个目标IO请求待转移给所述第二路径设备;
处理模块,用于通过第一路径设备对应的存储节点处理完排列在前的IO请求时,通过第二路径设备所对应的目标存储节点,处理至少一个目标IO请求。
可选地,在基于主机发送的针对目标IO请求的路径切换信息,对映射关系进行调整的情况下,基于路径切换信息,将目标IO请求所针对的分段,由与第一路径设备对应的存储节点映射,调整到与第二路径设备对应的存储节点映射。
可选地,在基于主机发送的针对路径设备的路径切换信息,对映射关系进行调整的情况下,确定接收到的针对第一路径设备的路径切换信息的切换数量,以及每个路径切换信息所针对的第二路径设备;
基于切换数量,以及每个路径切换信息所针对的第二路径设备所对应的存储节点,对映射关系进行调整。
可选地,在基于检测到的多个存储节点各自的状态参数,对映射关系进行调整的情况下,关系调整模块可以基于多个存储节点各自的状态参数,确定第一存储节点和第二存储节点;基于映射关系,确定第一存储节点被映射到的目标分段,并将第二存储节点调整为目标分段所映射的最优存储节点;
其中,第二存储节点的处理IO请求的性能高于第一存储节点。
可选地,基于多个存储节点各自的状态参数,确定第一存储节点和第二存储节点的步骤,包括:
基于多个存储节点各自的状态参数,确定多个存储节点各自对应的性能得分;
基于预设得分阈值,以及多个存储节点各自对应的性能得分,确定第一存储节点和第二存储节点。
可选地,状态参数包括处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少两者;基于多个存储节点各自的状态参数,确定多个存储节点各自对应的性能得分的步骤,包括:
基于每个存储节点对应的处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少两者,确定每个存储节点的初始性能得分;
基于多个存储节点各自对应的初始性能得分,确定多个存储节点各自对应的性能得分。
可选地,基于每个存储节点对应的处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少两者,确定每个存储节点的初始性能得分的步骤,包括:
基于每个存储节点对应的处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少两者,以及每种参数值各自对应的权重,确定每个存储节点的初始性能得分。
可选地,基于预设得分阈值,以及多个存储节点各自对应的性能得分,确定第一存储节点和第二存储节点的步骤,包括:
将性能得分小于预设得分阈值且性能得分为最小的存储节点,确定为第一存储节点;
从性能得分大于或等于预设得分阈值的存储节点中,确定第二存储节点。
可选地,对多个存储节点的状态进行检测,包括对每个存储节点执行以下至少一者检测,则第一检测模块用于执行以下至少一者:
检测单位时间内存储节点的处理器处于目标繁忙状态的时长,得到存储节点的处理器繁忙参数值;
检测单位时间内存储节点上的内存被使用的平均容量,得到内存使用率;
检测单位时间内存储节点上的数据流量与所在的网络带宽之间的比值,得到网络繁忙参数值。
其中,该实施例四与实施例一对应,相关之处参见实施例一的记载即可,在此不再赘述。
实施例五
基于相同的发明构思,本公开还提供了一种多路径存储的IO请求处理装置,参照图5所示,该装置应用于主机,主机与存储系统连接,存储系统包括多个存储节点,具体可以包括以下模块:
配置模块501,用于确定与所述存储系统中的目标卷对应的多个路径设备,其中,所述目标卷被划分为多个分段存储于多个所述存储节点上,多个所述存储节点与多个所述路径设备分别对应;
第二检测模块502,用于对多个路径设备各自的请求处理效率进行检测;
切换模块503,用于基于检测的结果,生成针对路径设备中的目标IO请求的路径切换信息,路径切换信息用于指示将目标IO请求从所在路径设备转移到另一路径设备;
调度模块504,用于基于路径切换信息,将针对所述分段的IO请求发送给切换后的路径设备,和/或,基于所述存储系统发送的映射关系,将针对所述分段的IO请求发送给最优存储节点对应的路径设备;
其中,所述最优存储节点为所述映射关系中所述分段对应的存储节点。
可选地,切换模块503,包括:
路径设备确定单元,用于基于检测的结果,确定第一路径设备和至少一个第二路径设备;其中,第一路径设备中的至少一个目标IO请求待转移给第二路径设备;
生成单元,用于基于第一路径设备和第二路径设备,以及目标IO请求所针对的目标分段,生成路径切换信息。
可选地,在基于路径切换信息,对多个IO请求进行发送的情况下,调度模块504用于将第一路径设备中待处理的目标IO请求,转移到至少一个第二路径设备,以使第二路径设备处理目标IO请求。
可选地,第二检测模块,包括:
数量检测模块,检测每个路径设备在单位时间内处理完的IO请求数量,和当前待处理的IO请求数量;
路径设备确定单元,具体用于:
基于每个路径设备在单位时间内处理完的IO请求数量,以及待处理的IO请求数量,确定该路径设备中待处理的各个IO请求各自对应的等待时长;
基于等待时长,确定第一路径设备和至少一个第二路径设备。
可选地,基于等待时长,确定第一路径设备和至少一个第二路径设备的步骤,包括:
将等待时长最长的路径设备,确定为第一路径设备;
将等待时长最短的路径设备,确定为第二路径设备。
可选地,包括多个目标IO请求,基于等待时长,确定第一路径设备和至少一个第二路径设备的步骤,包括:
确定将第一路径设备中的多个目标IO请求全部映射到一个第二路径设备后,第二路径设备中待处理的IO请求对应的第一最大等待时长,以及第一路径设备中待处理的IO请求对应的第二最大等待时长;
若第一最大等待时长不大于第二最大等待时长,则将多个目标IO请求全部映射到一个第二路径设备;
若第一最大等待时长大于第二最大等待时长,则从多个第三路径设备中,再确定出至少一个第二路径设备;
其中,第三路径设备为等待时长小于第一路径设备的等待时长的设备。
可选地,包括多个第二路径设备以及多个目标IO请求,将第一路径设备中待处理的至少一个目标IO请求,转移到至少一个第二路径设备的步骤,包括:
基于多个第二路径设备各自对应的请求处理效率,确定每个第二路径设备被转移的目标IO请求的数量;
按照每个第二路径设备被转移的目标IO请求的数量,将多个目标IO请求分别转移到多个第二路径设备;
其中,一个第二路径设备被转移有一个或多个目标IO请求。
可选地,将第一路径设备中待处理的目标IO请求,转移到至少一个第二路径设备的步骤,包括:
在包括一个目标IO请求的情况下,将第一路径设备中排列在最后的一个目标IO请求,转移到第二路径设备;
在包括多个目标IO请求的情况下,将第一路径设备中排列靠后的多个目标IO请求,分别转移到至少一个第二路径设备。
可选地,还包括目标IO请求确定模块,用于确定目标IO请求,包括:
平均等待时长确定单元,用于确定第一路径设备对应的最长等待时长,与第二路径设备对应的最长等待时长的平均等待时长;
数量确定单元,用于基于平均等待时长,确定待转移的IO请求的目标数量;
请求确定单元,用于将第一路径设备中排列在后的目标数量个IO请求,确定为待转移的目标IO请求。
可选地,装置还包括:
信息发送模块,用于将路径切换信息发送给存储系统,以使存储系统基于路径切换信息,和/或每个周期检测到的多个存储节点各自的状态参数,对映射关系进行调整。
其中,该实施例五与实施例二对应,相关之处参见实施例二的记载即可,在此不再赘述。
基于相同的发明构思,本公开还提供了一种计算机可读存储介质,其存储的计算机程序使得处理器执行实施例一或实施例二所述的多路径存储的IO请求处理方法。
基于相同的发明构思,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现实施例一或实施例二所述的多路径存储的IO请求处理方法。
最后,还需要说明的是,除非另外定义,在本文中使用的 “第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
以上对本公开所提供的一种多路径存储的IO请求处理方法、装置、系统及存储介质进行了详细介绍,本文中应用了具体个例对本公开的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本公开的方法及其核心思想;同时,对于本领域的一般技术人员,依据本公开的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本公开的限制。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
本文中所称的“一个实施例”、“实施例”或者“一个或者多个实施例”意味着,结合实施例描述的特定特征、结构或者特性包括在本公开的至少一个实施例中。此外,请注意,这里“在一个实施例中”的词语例子不一定全指同一个实施例。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本公开可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
最后应说明的是:以上实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的精神和范围。
Claims (25)
1.一种多路径存储的IO请求处理方法,应用于存储系统,所述存储系统与主机通信连接,所述存储系统包括多个存储节点,其特征在于,所述方法包括:
对目标卷进行划分,得到多个分段;其中,所述目标卷在所述主机上映射有多个路径设备,多个所述路径设备与多个所述存储节点分别对应;
确定多个所述分段与多个所述存储节点之间的映射关系;其中,所述映射关系用于标识所述分段在多个所述存储节点中映射的最优存储节点;
对多个所述存储节点的状态进行检测;
基于检测到的多个所述存储节点各自的状态参数,对所述映射关系进行调整,并将调整后的映射关系发送给所述主机,以使所述主机基于所述调整后的映射关系,将针对所述分段的IO请求发送给所述最优存储节点对应的路径设备;
在接收到所述主机发送的路径切换信息时,对所述调整后的映射关系进行再调整,以对所述路径设备中的IO请求进行二次调度;其中,所述路径切换信息用于表征对处理所述分段的IO请求的路径设备的切换。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述路径切换信息,确定第一路径设备以及至少一个第二路径设备;其中,所述第一路径设备中的至少一个目标IO请求待转移给所述第二路径设备;
通过所述第一路径设备对应的存储节点处理完排列在前的IO请求时,通过所述第二路径设备所对应的存储节点,处理至少一个所述目标IO请求。
3.根据权利要求2所述的方法,其特征在于,在基于所述主机发送的针对路径设备的路径切换信息,对所述映射关系进行调整的情况下,包括:
基于所述路径切换信息,将所述目标IO请求所针对的分段,调整到与所述第二路径设备对应的存储节点映射。
4.根据权利要求2所述的方法,其特征在于,在基于所述主机发送的针对路径设备的路径切换信息,对所述映射关系进行调整的情况下,包括:
确定接收到的针对所述第一路径设备的路径切换信息的切换数量,以及每个所述路径切换信息所针对的第二路径设备;
基于所述切换数量,以及每个所述路径切换信息所针对的第二路径设备所对应的存储节点,对所述映射关系进行调整。
5.根据权利要求1所述的方法,其特征在于,在基于检测到的多个所述存储节点各自的状态参数,对所述映射关系进行调整的情况下,包括:
基于多个所述存储节点各自的状态参数,确定第一存储节点和第二存储节点;其中,所述第二存储节点处理IO请求的性能高于所述第一存储节点;
基于所述映射关系,确定所述第一存储节点被映射到的目标分段;
将所述第二存储节点确定为与所述目标分段映射的最优存储节点。
6.根据权利要求5所述的方法,其特征在于,所述基于多个所述存储节点各自的状态参数,确定第一存储节点和第二存储节点,包括:
基于多个所述存储节点各自的状态参数,确定多个所述存储节点各自对应的性能得分;
基于预设得分阈值,以及多个所述存储节点各自对应的性能得分,确定所述第一存储节点和所述第二存储节点。
7.根据权利要求6所述的方法,其特征在于,所述状态参数包括处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少两者;所述基于多个所述存储节点各自的状态参数,确定多个所述存储节点各自对应的性能得分,包括:
基于每个所述存储节点对应的处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少两者,确定每个所述存储节点的初始性能得分;
基于多个所述存储节点各自对应的初始性能得分,确定多个所述存储节点各自对应的性能得分。
8.根据权利要求7所述的方法,其特征在于,所述基于每个所述存储节点对应的处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少两者,确定每个所述存储节点的初始性能得分,包括:
基于每个所述存储节点对应的处理器繁忙参数值、内存使用率和网络繁忙参数值中的至少两者,以及每种参数值各自对应的权重,确定每个所述存储节点的初始性能得分。
9.根据权利要求6所述的方法,其特征在于,所述基于预设得分阈值,以及多个所述存储节点各自对应的性能得分,确定所述第一存储节点和所述第二存储节点,包括:
将性能得分小于所述预设得分阈值且性能得分最小的存储节点,确定为所述第一存储节点;
从性能得分大于或等于所述预设得分阈值的存储节点中,确定所述第二存储节点。
10.根据权利要求1所述的方法,其特征在于,所述对多个存储节点的状态进行检测,包括:对每个所述存储节点执行以下至少一种检测:
检测单位时间内所述存储节点的处理器处于目标繁忙状态的时长,得到所述存储节点的处理器繁忙参数值;
检测单位时间内所述存储节点上的内存被使用的平均容量,得到内存使用率;
检测单位时间内所述存储节点上的数据流量与所在的网络带宽之间的比值,得到网络繁忙参数值。
11.一种多路径存储的IO请求处理方法,应用于主机,所述主机与存储系统连接,所述存储系统包括多个存储节点,其特征在于,所述方法包括:
确定与所述存储系统中的目标卷对应的多个路径设备,其中,所述目标卷被划分为多个分段存储于多个所述存储节点上,多个所述存储节点与多个所述路径设备分别对应;
基于所述存储系统发送的映射关系,将针对所述分段的IO请求发送给最优存储节点对应的路径设备;
对多个所述路径设备各自的请求处理效率进行检测;
基于所述检测的结果,生成针对路径设备中的路径切换信息,所述路径切换信息用于表征对处理所述分段的IO请求的路径设备的切换;
基于所述路径切换信息,将针对所述分段的IO请求发送给切换后的路径设备,以对所述路径设备中的IO请求进行二次调度;并将所述路径切换信息发送给所述存储系统,指示所述存储系统对所述映射关系进行再调整;
其中,所述最优存储节点为所述映射关系中所述分段对应的存储节点。
12.根据权利要求11所述的方法,其特征在于,所述基于所述检测的结果,生成针对路径设备中的目标IO请求的路径切换信息,包括:
基于所述检测的结果,确定第一路径设备和至少一个第二路径设备;其中,所述第一路径设备中的至少一个目标IO请求待转移给所述第二路径设备;
基于所述第一路径设备和所述第二路径设备,以及所述目标IO请求所针对的目标分段,生成所述路径切换信息。
13.根据权利要求12所述的方法,其特征在于,所述基于所述路径切换信息,将针对所述分段的IO请求发送给切换后的路径设备,包括:
将所述第一路径设备中待处理的所述目标IO请求,转移到至少一个所述第二路径设备,以使所述第二路径设备处理所述目标IO请求。
14.根据权利要求12所述的方法,其特征在于,所述对多个所述路径设备各自的请求处理效率进行检测,包括:
检测每个所述路径设备在单位时间内处理完的IO请求数量,和当前待处理的IO请求数量;
所述基于所述检测的结果,确定第一路径设备和至少一个第二路径设备,包括:
基于每个所述路径设备在单位时间内处理完的IO请求数量,以及待处理的IO请求数量,确定该路径设备中待处理的各个IO请求各自对应的等待时长;
基于所述等待时长,确定所述第一路径设备和至少一个所述第二路径设备。
15.根据权利要求14所述的方法,其特征在于,所述基于所述等待时长,确定所述第一路径设备和至少一个所述第二路径设备,包括:
将等待时长最长的路径设备,确定为所述第一路径设备;
将等待时长最短的路径设备,确定为所述第二路径设备。
16.根据权利要求14所述的方法,其特征在于,包括多个所述目标IO请求,基于所述等待时长,确定所述第一路径设备和至少一个所述第二路径设备,包括:
确定将所述第一路径设备中的多个所述目标IO请求全部映射到一个所述第二路径设备后,所述第二路径设备中待处理的IO请求对应的第一最大等待时长,以及所述第一路径设备中待处理的IO请求对应的第二最大等待时长;
若所述第一最大等待时长不大于所述第二最大等待时长,则将多个目标IO请求全部映射到一个所述第二路径设备;
若所述第一最大等待时长大于所述第二最大等待时长,则从多个第三路径设备中,再确定出至少一个所述第二路径设备;
其中,所述第三路径设备为等待时长小于所述第一路径设备的等待时长的设备。
17.根据权利要求13所述的方法,其特征在于,包括多个所述第二路径设备以及多个所述目标IO请求,所述将所述第一路径设备中待处理的至少一个目标IO请求,转移到至少一个所述第二路径设备,包括:
基于多个所述第二路径设备各自对应的请求处理效率,确定每个所述第二路径设备被转移来的目标IO请求的数量;
按照每个所述第二路径设备被转移来的目标IO请求的数量,将多个所述目标IO请求分别转移到多个所述第二路径设备;
其中,一个所述第二路径设备被转移有一个或多个所述目标IO请求。
18.根据权利要求13所述的方法,其特征在于,所述将所述第一路径设备中待处理的所述目标IO请求,转移到至少一个所述第二路径设备,包括:
在包括一个所述目标IO请求的情况下,将所述第一路径设备中排列在最后的一个目标IO请求,转移到所述第二路径设备;
在包括多个所述目标IO请求的情况下,将所述第一路径设备中排列靠后的多个所述目标IO请求,分别转移到至少一个所述第二路径设备。
19.根据权利要求14所述的方法,其特征在于,所述目标IO请求是通过以下步骤确定的:
确定所述第一路径设备对应的最长等待时长,与所述第二路径设备对应的最长等待时长的平均等待时长;
基于所述平均等待时长,确定待转移的IO请求的目标数量;
将所述第一路径设备中排列在后的所述目标数量个IO请求,确定为待转移的目标IO请求。
20.根据权利要求11所述的方法,其特征在于,所述方法还包括:
将所述路径切换信息发送给所述存储系统,以使所述存储系统基于所述路径切换信息,和/或每个周期检测到的多个所述存储节点各自的状态参数,对所述映射关系进行调整。
21.一种处理系统,其特征在于,包括存储系统和主机;其中:
所述存储系统,用于执行权利要求1-10任一所述的多路径存储的IO请求处理方法;
所述主机,用于执行权利要求11-20任一所述的多路径存储的IO请求处理方法。
22.根据权利要求21所述的处理系统,其特征在于,所述存储系统对多个存储节点的状态进行检测的间隔时长,不同于所述主机对多个路径设备的请求处理效率进行检测的间隔时长。
23.一种多路径存储的IO请求处理装置,应用于存储系统,所述存储系统与主机通信连接,所述存储系统包括多个存储节点,其特征在于,所述装置包括:
划分模块,用于对目标卷进行划分,得到多个分段;其中,所述目标卷在所述主机上映射有多个路径设备,多个所述路径设备与多个所述存储节点分别对应;
关系确定模块,用于确定多个所述分段与多个所述存储节点之间的映射关系;其中,所述映射关系用于标识所述分段在多个所述存储节点中映射的最优存储节点;
第一检测模块,用于对多个所述存储节点的状态进行检测;
关系调整模块,用于基于检测到的多个所述存储节点各自的状态参数,对所述映射关系进行调整;并在接收到所述主机发送的针对路径设备的路径切换信息时,对所述调整后的映射关系进行再调整,以对所述路径设备中的IO请求进行二次调度;其中,所述路径切换信息用于表征对处理所述分段的IO请求的路径设备的切换;
关系发送模块,用于将调整后的映射关系发送给所述主机,以使所述主机按照所述调整后的映射关系,将针对所述分段的IO请求发送给所述最优存储节点对应的路径设备。
24.一种多路径存储的IO请求处理装置,应用于主机,所述主机与存储系统连接,所述存储系统包括多个存储节点,其特征在于,所述装置包括:
配置模块,用于确定与所述存储系统中的目标卷对应的多个路径设备;其中,所述目标卷被划分为多个分段存储于多个所述存储节点上,多个所述存储节点与多个所述路径设备分别对应;
第二检测模块,用于对多个所述路径设备各自的请求处理效率进行检测;
切换模块,用于基于所述检测的结果,生成针对路径设备的路径切换信息,所述路径切换信息用于表征对处理所述分段的IO请求的路径设备的切换;
调度模块,用于基于所述存储系统发送的映射关系,将针对所述分段的IO请求发送给最优存储节点对应的路径设备;并基于所述路径切换信息,将针对所述分段的IO请求发送给切换后的路径设备,以对所述路径设备中的IO请求进行二次调度;并将所述路径切换信息发送给所述存储系统,指示所述存储系统对所述映射关系进行再调整;其中,所述最优存储节点为所述映射关系中所述分段对应的存储节点。
25.一种计算机可读存储介质,其特征在于,其存储的计算机程序使得处理器执行如权利要求1-10任一项所述的多路径存储的IO请求处理方法,或执行如权利要求11-20任一项所述的多路径存储的IO请求处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310084949.3A CN116048413B (zh) | 2023-02-08 | 2023-02-08 | 多路径存储的io请求处理方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310084949.3A CN116048413B (zh) | 2023-02-08 | 2023-02-08 | 多路径存储的io请求处理方法、装置、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116048413A CN116048413A (zh) | 2023-05-02 |
CN116048413B true CN116048413B (zh) | 2023-06-09 |
Family
ID=86116274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310084949.3A Active CN116048413B (zh) | 2023-02-08 | 2023-02-08 | 多路径存储的io请求处理方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116048413B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105430103A (zh) * | 2015-12-31 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种基于多控存储的动态负载均衡系统 |
CN106873907A (zh) * | 2017-01-09 | 2017-06-20 | 中国电子科技集团公司第五十二研究所 | 一种多控制器存储阵列读写负载均衡方法及装置 |
CN110007877A (zh) * | 2019-04-16 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 主机与双控存储设备间数据传输方法、装置、设备及介质 |
CN111782137A (zh) * | 2020-06-17 | 2020-10-16 | 杭州宏杉科技股份有限公司 | 路径故障处理方法及装置 |
CN111782138A (zh) * | 2020-06-17 | 2020-10-16 | 杭州宏杉科技股份有限公司 | 路径切换方法及装置 |
CN114595167A (zh) * | 2022-02-15 | 2022-06-07 | 阿里巴巴(中国)有限公司 | 分布式缓存系统、方法以及装置 |
CN115098028A (zh) * | 2022-06-29 | 2022-09-23 | 苏州浪潮智能科技有限公司 | 一种多路径存储的路径设备选择方法、装置、设备及介质 |
CN115373843A (zh) * | 2022-08-19 | 2022-11-22 | 苏州浪潮智能科技有限公司 | 一种动态预判最优路径设备的方法、装置、及介质 |
CN115617278A (zh) * | 2022-11-29 | 2023-01-17 | 苏州浪潮智能科技有限公司 | 路径设备的选择方法、装置、电子设备及可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220206871A1 (en) * | 2020-12-30 | 2022-06-30 | EMC IP Holding Company LLC | Techniques for workload balancing using dynamic path state modifications |
-
2023
- 2023-02-08 CN CN202310084949.3A patent/CN116048413B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105430103A (zh) * | 2015-12-31 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种基于多控存储的动态负载均衡系统 |
CN106873907A (zh) * | 2017-01-09 | 2017-06-20 | 中国电子科技集团公司第五十二研究所 | 一种多控制器存储阵列读写负载均衡方法及装置 |
CN110007877A (zh) * | 2019-04-16 | 2019-07-12 | 苏州浪潮智能科技有限公司 | 主机与双控存储设备间数据传输方法、装置、设备及介质 |
CN111782137A (zh) * | 2020-06-17 | 2020-10-16 | 杭州宏杉科技股份有限公司 | 路径故障处理方法及装置 |
CN111782138A (zh) * | 2020-06-17 | 2020-10-16 | 杭州宏杉科技股份有限公司 | 路径切换方法及装置 |
CN114595167A (zh) * | 2022-02-15 | 2022-06-07 | 阿里巴巴(中国)有限公司 | 分布式缓存系统、方法以及装置 |
CN115098028A (zh) * | 2022-06-29 | 2022-09-23 | 苏州浪潮智能科技有限公司 | 一种多路径存储的路径设备选择方法、装置、设备及介质 |
CN115373843A (zh) * | 2022-08-19 | 2022-11-22 | 苏州浪潮智能科技有限公司 | 一种动态预判最优路径设备的方法、装置、及介质 |
CN115617278A (zh) * | 2022-11-29 | 2023-01-17 | 苏州浪潮智能科技有限公司 | 路径设备的选择方法、装置、电子设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
基于ALUA的多路径存储系统;范长军;胡志成;杨佳东;;计算机系统应用(第10期);第13-21页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116048413A (zh) | 2023-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101258725B (zh) | 存储区域网络中的负载分布 | |
CN113364850B (zh) | 软件定义云边协同网络能耗优化方法和系统 | |
US7478154B2 (en) | Storage system with link selection control | |
US7712103B2 (en) | Method and system for managing load balancing in data processing system | |
US7957398B1 (en) | Methods and systems for dynamic division of path capacity | |
US20110119679A1 (en) | Method and system of an i/o stack for controlling flows of workload specific i/o requests | |
US7240135B2 (en) | Method of balancing work load with prioritized tasks across a multitude of communication ports | |
EP3163446B1 (en) | Data storage method and data storage management server | |
WO2015023191A1 (en) | Power balancing to increase workload density and improve energy efficiency | |
WO2015038651A1 (en) | Integrating software defined storage and software defined networking | |
US20160196073A1 (en) | Memory Module Access Method and Apparatus | |
CN102118434A (zh) | 数据包传输方法和设备 | |
CN102761479A (zh) | 链路选择方法和装置 | |
CN106406821A (zh) | 数据处理请求的排序方法及装置 | |
KR920009449B1 (ko) | 공통 버스제어방법 및 시스템 | |
US8914553B2 (en) | Multiple path load distribution for host communication with a tape storage device | |
CN104901882A (zh) | 一种设备切换方法、装置和服务器 | |
CN108985556B (zh) | 流量调度的方法、装置、设备和计算机存储介质 | |
CN116048413B (zh) | 多路径存储的io请求处理方法、装置、系统及存储介质 | |
CN116909953A (zh) | 一种多路径规划方法、装置及介质 | |
US11190973B2 (en) | Technologies for link-bandwidth-aware routing | |
JP4309321B2 (ja) | ネットワークシステムの運用管理方法及びストレージ装置 | |
CN110515564B (zh) | 一种输入/输出i/o路径的确定方法和装置 | |
US8683155B2 (en) | Virtualization control apparatus and storage system | |
CN115202580A (zh) | 一种多路径设备检测方法、装置、设备、存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |