1.本发明涉及数据访问技术领域,尤其涉及一种动态预判
最优路径设备的方法、装置、及介质。
背景技术:
2.多路径是指服务器与存储设备之间的多条传输层物理连接,为网络存储系统提供更高的可用性和性能优势。多路径软件是指安装在服务器端,可以将同一个卷的多个设备聚合成一个设备的软件。多路径软件的高可用性体现在:服务器与存储设备之间任意一条路径出现故障,io请求可以通过其它路径发送。避免因单点故障导致的服务器到存储设备之间的数据访问中断。多路径软件的高吞吐率性能优势体现在:服务器到存储设备的io请求可以同时通过多条路径并发发送,提高服务器数据访问的io吞吐率。
3.如图1和图2所示,当前多路径软件的路径选择策略大致如下:如果io的起始位置为20m,大小为512kb,那么根据segment的划分,此io属于l1,l1对应的镜像关系是domain1。domain1的主节点是node1,node1连接服务器(主机)的路径设备是sdb和sdc。在sdb和sdc使用路径选择算法得到最优路径设备,此io就通过该设备下发到存储。上述路径选择的过程是在io发生时进行的,具有一定的滞后性,未能提前计算每个io位置上的最优路径,导致路径选择的效率较低,因而继续改进。
技术实现要素:
4.有鉴于此,有必要针对以上技术问题,提供一种动态预判最优路径设备的方法、装置、及介质。
5.根据本发明的第一方面,提供了一种动态预判最优路径设备的方法,
所述方法包括:
6.实时对每个多路径设备进行信息统计分析,以生成与每个多路径设备对应的io信息和最优路径设备对应关系;
7.响应于主机端生成对某一多路径设备的待处理io任务,则获取所述待处理io任务的io信息;
8.将所述io信息与所述某一多路径设备对应的所述io信息和最优路径设备对应关系匹配以确定目标最优路径设备;
9.由主机端将所述待处理io任务通过所述目标最优路径设备下发到存储端。
10.在一些实施例中,所述实时对每个多路径设备进行信息统计分析,以生成与每个多路径设备对应的io信息和最优路径设备对应关系,包括:
11.对每个多路径设备执行以下操作:
12.获取多路径设备包括的所有节点、每个节点对应的位置范围以及每个节点包括的若干路径设备;
13.基于预设路径选择算法和路径信息对应关系为目标路径算法匹配对应的目标路
径信息,其中,所述预设路径选择算法和路径信息对应关系包括:round robin算法对应路径设备名称、路径设备排序,queue length算法对应路径设备名称、路径设备未处理io个数,service time算法对应路径设备名称、路径设备未处理io个数、路径设备吞吐量;
14.基于所述目标路径信息为每个节点生成io信息和最优路径设备对应关系,其中,所述最优路径设备为依据所述目标路径信息从节点包括的若干路径设备中选取的一个。
15.在一些实施例中,所述基于预设路径选择算法和路径信息对应关系为目标路径算法匹配对应的目标路径信息,包括:
16.响应于目标路径算法为round robin算法,则目标路径信息为路径设备名称、路径设备排序;
17.响应于目标路径算法为queue length算法,则目标路径信息为路径设备名称、路径设备未处理io个数;
18.响应于目标路径算法为service time算法,则目标路径信息为路径设备名称、路径设备未处理io个数、路径设备吞吐量。
19.在一些实施例中,所述基于所述目标路径信息为每个节点生成io信息和最优路径设备对应关系,包括:
20.响应于目标路径信息为路径设备名称、路径设备排序,则将每个节点所包括的所有路径设备中排序在最前端的一个选取为最优路径设备;
21.汇总每个节点对应的位置范围、以及为所选取的最优路径对应的路径设备名称生成io位置范围和最优路径设备对应关系。
22.在一些实施例中,所述基于所述目标路径信息为每个节点生成io信息和最优路径设备对应关系,还包括:
23.响应于目标路径信息为路径设备名称、路径设备未处理io个数,则将每个节点所包括的所有路径设备中未处理io个数最少的一个选取为最优路径设备;
24.汇总每个节点对应的位置范围、以及为所选取的最优路径对应的路径设备名称生成io位置范围和最优路径设备对应关系。
25.在一些实施例中,所述基于所述目标路径信息为每个节点生成io信息和最优路径设备对应关系,还包括:
26.响应于目标路径信息为路径设备名称、路径设备未处理io个数、路径设备吞吐量,则基于以下规则从每个节点所包括的所有路径设备中选取一个作为最优路径设备:
27.响应于各个路径设备的路径设备未处理io个数均相同,则选取路径设备吞吐量最大的一个作为最优路径设备;
28.响应于各个路径设备的路径设备吞吐量均相同,则选取路径设备未处理io个数最小的一个作为最优路径设备;
29.响应于各个路径设备的路径设备未处理io个数、路径设备吞吐量均不相同,则将路径设备未处理io个数和io大小之和与路径设备吞吐量比值中最小的一个作为最优路径设备,并计算最优路径设备对应的io大小范围;
30.汇总每个节点对应的位置范围、以及为所选取的最优路径对应的路径设备名称、io大小范围生成io位置范围、io大小范围和最优路径设备对应关系。
31.在一些实施例中,所述将所述io信息与所述某一多路径设备对应的所述io信息和
最优路径设备对应关系匹配以确定目标最优路径设备,包括:
32.响应于目标路径算法为round robin算法或queue length算法,则所述io信息为io位置,将与所述待处理io任务的io位置匹配的io范围对应的最优路径设备作为目标最优路径设备;
33.响应于目标路径算法为service time算法,则所述io信息为io位置和io大小,将与所述待处理io任务的io位置、io大小均匹配的io位置范围、io大小范围对应的最优路径设备作为目标最优路径设备。
34.根据本发明的第二方面,提供了一种动态预判最优路径设备的装置,所述装置包括:
35.统计分析模块,配置用于实时对每个多路径设备进行信息统计分析,以生成与每个多路径设备对应的io信息和最优路径设备对应关系;
36.获取模块,配置用于响应于主机端生成对某一多路径设备的待处理io任务,则获取所述待处理io任务的io信息;
37.匹配模块,配置用于将所述io信息与所述某一多路径设备对应的所述io信息和最优路径设备对应关系匹配以确定目标最优路径设备;
38.下发模块,配置用于由主机端将所述待处理io任务通过所述目标最优路径设备下发到存储端。
39.根据本发明的第三方面,还提供了一种计算机,该计算机包括:
40.至少一个处理器;以及
41.存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的动态预判最优路径设备的方法。
42.根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的动态预判最优路径设备的方法。
43.上述一种动态预判最优路径设备的方法,通过实时对每个多路径设备进行信息统计分析以生成与每个多路径设备对应的io信息和最优路径设备对应关系,当主机端产生io任务时,将io信息与io信息和最优路径设备对应关系匹配从而快速确定目标最优路径设备,节省路径选择的时间,降低io延时,显著提高io处理效率。
44.此外,本发明还提供了一种动态预判最优路径设备的装置、一种计算机和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
45.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
46.图1为现有服务器与存储集联网示意图;
47.图2为现有主机与存储形成的循环镜像对示意图;
48.图3为本发明的一个实施例提供的一种动态预判最优路径设备的方法的流程图;
49.图4a为发现存储上target的命令示代码意图;
50.图4b为登录target的命令代码示意图;
51.图4c为查看已建立的链路的命令代码示意图;
52.图5为本发明另一个实施例提供的一种动态预判最优路径设备的装置的结构示意图;
53.图6为本发明另一个实施例中计算机的内部结构图。
具体实施方式
54.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
55.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
56.为了便于理解本发明的方案,首先对现有的服务器与存储之间形成连接关系,对多路径软件、路径设备选择策略、循环镜像对、路径设备、多路径设备等技术名词进行解释说明。
57.dm-multipath:linux平台基于device mapper技术的多路径软件解决方案。
58.path selector:多路径软件的路径设备选择策略。
59.sdx:路径设备,卷映射到主机后,每条链路将卷映射成一个路径设备。
60.dm-x:多路径设备。dm-multipath将多个路径设备聚合一个多路径设备。
61.多路径软件的主要功能包括故障转移、故障恢复和负载均衡:
62.故障转移,可以处理包括hba故障、链路故障、存储控制器故障在内的多种路径故障。
63.故障恢复,对于支持热拔插的系统,服务器与存储之间的链路断开会导致scsi设备被删除,相应的在链路恢复后会触发重新创建scsi设备,对于这种场景可以立即感知到路径恢复;对于不支持热拔插的系统(低版本的linux),可以通过周期探测来感知路径恢复。
64.负载均衡,负载均衡是多路径软件除了故障转移外最重要的一个特性,通过负载均衡技术,多路径软件能够充分利用多条链路的带宽,提高系统整体的吞吐能力。负载均衡的路径范围为pathgroup。
65.路径设备选择策略:假如服务器与存储之间有4条链路,那么存储上的每个卷映射到服务器后,服务器上都可以看到4个设备,名称一般为sdx(例如/dev/sdb)。多路径软件会将这4个设备聚合成一个多路径设备,名称一般为dm-x(例如/dev/dm-0)。多路径软件的路径设备选择策略,是指服务器上应用程序对多路径设备dm-x进行io操作时,多路径软件按照一定的方法从多个设备sdx中选择一个设备,然后下发io。windows和linux平台的多路径软件选择策略大致相同,最主要的选择策略有三种,分别是round-robin、queue-length和service-time。round robin:优先在最优路径组内所有有效路径设备上轮询发送io。如果最优路径组内无可用路径设备,则在非最优路径组内有效路径设备上轮询发送io。least queue depth:优先将io发送到最优路径组上当前未完成的io请求最少的路径设备上。
service-tim:将io发送到服务时间最短的路径上。
66.循环镜像对:参照图2所示,存储上的每个卷是以segment粒度(32m)划分为4个l:l1:{[0,32m),[128m,160m),
…
},l2:{[32m,64m),[160m,192m),
…
},l3:{[64m,96m),[192m,224m),
…
},l4:{[96m,128m),[224m,256m),
…
}。1个io group中的4个控制器划分为4组镜像关系:domain1:(node1,node2);domain2:(node2,node3);domain3:(node3,node4);domain4:(node4,node1)。当io发生时,根据io的位置筛选出一组路径组,再在这组路径中使用路径选择策略得到最优路径。举例如下:如果io的起始位置为20m,大小为512kb,那么根据segment的划分,此io属于l1,l1对应的镜像关系是domain1。
[0067]
在一个实施例中,请参照图3所示,本发明提供了一种动态预判最优路径设备的方法100,具体来说,所述方法包括以下步骤:
[0068]
步骤101,实时对每个多路径设备进行信息统计分析,以生成与每个多路径设备对应的io信息和最优路径设备对应关系;
[0069]
步骤102,响应于主机端生成对某一多路径设备的待处理io任务,则获取所述待处理io任务的io信息;
[0070]
步骤103,将所述io信息与所述某一多路径设备对应的所述io信息和最优路径设备对应关系匹配以确定目标最优路径设备;
[0071]
步骤104,由主机端将所述待处理io任务通过所述目标最优路径设备下发到存储端。
[0072]
上述一种动态预判最优路径设备的方法,通过实时对每个多路径设备进行信息统计分析以生成与每个多路径设备对应的io信息和最优路径设备对应关系,当主机端产生io任务时,将io信息与io信息和最优路径设备对应关系匹配从而快速确定目标最优路径设备,节省路径选择的时间,降低io延时,显著提高io处理效率。
[0073]
在一些实施例中,前述步骤101,实时对每个多路径设备进行信息统计分析,以生成与每个多路径设备对应的io信息和最优路径设备对应关系,包括:
[0074]
对每个多路径设备执行以下操作:
[0075]
获取多路径设备包括的所有节点、每个节点对应的位置范围以及每个节点包括的若干路径设备;
[0076]
基于预设路径选择算法和路径信息对应关系为目标路径算法匹配对应的目标路径信息,其中,所述预设路径选择算法和路径信息对应关系包括:round robin算法对应路径设备名称、路径设备排序,queue length算法对应路径设备名称、路径设备未处理io个数,service time算法对应路径设备名称、路径设备未处理io个数、路径设备吞吐量;
[0077]
基于所述目标路径信息为每个节点生成io信息和最优路径设备对应关系,其中,所述最优路径设备为依据所述目标路径信息从节点包括的若干路径设备中选取的一个。
[0078]
在一些实施例中,所述基于预设路径选择算法和路径信息对应关系为目标路径算法匹配对应的目标路径信息,包括:
[0079]
响应于目标路径算法为round robin算法,则目标路径信息为路径设备名称、路径设备排序;
[0080]
响应于目标路径算法为queue length算法,则目标路径信息为路径设备名称、路径设备未处理io个数;
[0081]
响应于目标路径算法为service time算法,则目标路径信息为路径设备名称、路径设备未处理io个数、路径设备吞吐量。
[0082]
在一些实施例中,所述基于所述目标路径信息为每个节点生成io信息和最优路径设备对应关系,包括:
[0083]
响应于目标路径信息为路径设备名称、路径设备排序,则将每个节点所包括的所有路径设备中排序在最前端的一个选取为最优路径设备;
[0084]
汇总每个节点对应的位置范围、以及为所选取的最优路径对应的路径设备名称生成io位置范围和最优路径设备对应关系。
[0085]
在一些实施例中,所述基于所述目标路径信息为每个节点生成io信息和最优路径设备对应关系,还包括:
[0086]
响应于目标路径信息为路径设备名称、路径设备未处理io个数,则将每个节点所包括的所有路径设备中未处理io个数最少的一个选取为最优路径设备;
[0087]
汇总每个节点对应的位置范围、以及为所选取的最优路径对应的路径设备名称生成io位置范围和最优路径设备对应关系。
[0088]
在一些实施例中,所述基于所述目标路径信息为每个节点生成io信息和最优路径设备对应关系,还包括:
[0089]
响应于目标路径信息为路径设备名称、路径设备未处理io个数、路径设备吞吐量,则基于以下规则从每个节点所包括的所有路径设备中选取一个作为最优路径设备:
[0090]
响应于各个路径设备的路径设备未处理io个数均相同,则选取路径设备吞吐量最大的一个作为最优路径设备;
[0091]
响应于各个路径设备的路径设备吞吐量均相同,则选取路径设备未处理io个数最小的一个作为最优路径设备;
[0092]
响应于各个路径设备的路径设备未处理io个数、路径设备吞吐量均不相同,则将路径设备未处理io个数和io大小之和与路径设备吞吐量比值中最小的一个作为最优路径设备,并计算最优路径设备对应的io大小范围;
[0093]
汇总每个节点对应的位置范围、以及为所选取的最优路径对应的路径设备名称、io大小范围生成io位置范围、io大小范围和最优路径设备对应关系。
[0094]
在一些实施例中,前述步骤103,,将所述io信息与所述某一多路径设备对应的所述io信息和最优路径设备对应关系匹配以确定目标最优路径设备,包括:
[0095]
响应于目标路径算法为round robin算法或queue length算法,则所述io信息为io位置,将与所述待处理io任务的io位置匹配的io范围对应的最优路径设备作为目标最优路径设备;
[0096]
响应于目标路径算法为service time算法,则所述io信息为io位置和io大小,将与所述待处理io任务的io位置、io大小均匹配的io位置范围、io大小范围对应的最优路径设备作为目标最优路径设备。
[0097]
在又一个实施例中,为了便于理解本发明的方案,本方案的原理是针对每一种路径选择算法,实时动态计算当发生不同位置和大小的io时该路径选择算法下的最优路径,以便当io到达时直接给出最优路径,而不用经过大量判断得到最优路径。本实施例提供了又一种动态预判最优路径设备的方法,具体包括:首先,实时统计每个node上的有效路径,
即可用路径。其次,针对不同路径选择算法,预测出不同结果。对于round robin算法,最优路径是轮休的,预测结果为{io位置:sdx}。对于queue length算法,最优路径与未完成的io个数先关,预测结果也为{io位置:sdx}。对于service time算法,最优路径与吞吐量和待处理的io大小有关,预测结果不但与io位置有关,还与io的大小有关。最后,当io发生时,根据上一步的预测结果直接给出最优路径,并再次统计最优路径,以达到实时统计的目的。
[0098]
下面以图2所示的循环镜像对为例详细说明说明本发明的方案,本发明技术实施前的准备工作可以参考如下步骤执行:
[0099]
步骤一,映射卷和建立链路。
[0100]
登录存储系统通过命令或可视化界面创建主机和卷。注意,这里的主机是存储系统上的概念,与真实的服务器一一对应。对于iscsi链路,创建主机时需填写服务器的iqn信息。对于fc链路,需填写服务器的wwpn信息。这里假设链路类型为iscsi协议。请参照图4a所示,登录服务器通过iscsadm命令建立与存储系统的链路,链路一般是多条。请参照图4b所示,通过iscsiadm-m node-t${target_iqn}-p${target_ip}
‑‑
login登录target。请参照图4c所示,通过iscsiadm-m session可以查看已建立的链路。
[0101]
步骤二,发现设备和聚合多路径。
[0102]
登录服务器,通过扫描命令,可在目录/dev/disk/by-path/发现路径设备,假如链路存在四条,那么每个卷对应四个路径设备,例如:/dev/sdb、/dev/sdc、/dev/sdd和/dev/sde。其中,扫描命令的代码参考如下:
[0103]
echo'
‑‑‑
'》/sys/class/scsi_host/${hostname}/device/scsi_host/${hostname}/scan
[0104]
登录服务器,通过命令systemctl start multipathd启动多路径软件,multipathd自动会将具有相同的wwid的设备聚合成一个多路径设备,例如:/dev/dm-0。汇总信息得到路径设备和多路径设备信息如表1所示。
[0105]
表1多路径设备和路径设备
[0106][0107][0108]
该动态预判最优路径设备的方法实施可以参考如下步骤执行:
[0109]
步骤一,实时统计每条路径设备上的信息,每种路径选择算法,需要统计的路径设备信息各有不同。
[0110]
请参照表2所示,对于round robin算法需要统计的信息包括,每个node的路径设备、每个node的路径设备的排序。路径设备是通过双向链表进行排列的,排在前面路径设备将会在下次路径选择被选中,一旦选中,将会排到队尾。
[0111]
表2round robin算法统计信息
[0112]
节点命令路径设备排序node1sdb《-》sdcnode2sdd《-》sdenode3sdf《-》sdgnode4sdh《-》sdi
[0113]
请参照表3所示,对于service time算法需要统计的信息包括,每个node的路径设备、每条路径设备的吞吐量、每条路径设备上尚未完成的io大小。下次io路径的选择将会根据吞吐量、尚未完成的io大小以及本次io的大小进行计算,最终决定最优路径。
[0114]
表3queue length算法统计信息
[0115][0116][0117]
请参照表4所示,对于service time算法需要统计的信息包括,每个node的路径设备、每条路径设备的吞吐量、每条路径设备上尚未完成的io大小。下次io路径的选择将会根据吞吐量、尚未完成的io大小以及本次io的大小进行计算,最终决定最优路径。
[0118]
表4service time算法统计信息
[0119][0120]
步骤二,根据统计信息预测round robin的最优路径。
[0121]
对于round robin算法,根据表2进行预测。node1的两条路径设备,sdb在前,所以下次io如果需要node1处理,则选择sdb。同理,如果需要node2处理的io则选择sdd,如果需要node3处理的io则选择sdf,如果需要node4处理的io则选择sdh。假如一个新的io发生,io位置为124m(因为124=3*32+28),那么io属于l4,l4对应domain4,domain4的主node为node4,所以该io选择路径设备sdh下发到存储。
[0122]
步骤三,根据统计信息预测queue length的最优路径。
[0123]
对于queue length算法,根据表3进行预测。node1的两条路径设备,sdb上尚未完成io少于sdc,所以下次io如果需要node1处理,则选择sdb。同理,如果需要node2处理的io则选择sdd(因为1《2),如果需要node3处理的io则选择sdg(因为6《7),如果需要node4处理的io则选择sdi(因为2《3)。假如一个新的io发生,io位置为200m(因为200=6*32+8),那么io属于l3,l3对应domain3,domain3的主node为node3,所以该io选择路径设备sdg下发到存储。
[0124]
步骤四,根据统计信息预测service time的最优路径。
[0125]
对于service time算法,根据表4进行预测。本算法相比较于其他两种算法,预测较为复杂。
[0126]
考虑node1下面两个路径设备sdb和sdc,吞吐量为1和2,尚未完成io大小为2048kb和2048kb。假如一个新的io大小为x,由此可见,前者恒大于后者,所以该io选择路径设备sdc。
[0127]
考虑node2下面两个路径设备sdd和sde,吞吐量为2和1,尚未完成io大小为512kb和128kb。假如一个新的io大小为x,时,x=256,由此可见,x∈[0,256)时,后者小于前者,该io选择路径设备sde。x∈[256,+∞)时,前者小于后者,该io选择路径设备sdd。
[0128]
考虑node3下面两个路径设备sdf和sdh,吞吐量为1和1,尚未完成io大小为256kb
和512kb。假如一个新的io大小为x,由此可见,前者恒大于后者,所以该io选择路径设备sdf。
[0129]
考虑node4下面两个路径设备sdh和sdi,吞吐量为5和4,尚未完成io大小为4096kb和2048kb。假如一个新的io大小为x,时,x=256。由此可见,x∈[0,6144)时,后者小于前者,该io选择路径设备sdi。x∈[6144,+∞)时,前者小于后者,该io选择路径设备sdh。假如一个新的io发生,io位置为200m(因为250=7*32+26),大小为5120kb,那么io属于l4,l4对应domain4,domain4的主node为node4,又因为5120∈[0,6144),所以该io选择路径设备sdi下发到存储。
[0130]
上述一种动态预判最优路径设备的方法至少具备以下有益技术效果:通过对最优路径设备的实时预测,节省路径选择的时间,提高io效率,降低io延时。
[0131]
在另一个实施例中,请参照图5所示,本发明还提供了一种动态预判最优路径设备的装置200,所述装置包括:
[0132]
统计分析模块201,配置用于实时对每个多路径设备进行信息统计分析,以生成与每个多路径设备对应的io信息和最优路径设备对应关系;
[0133]
获取模块202,配置用于响应于主机端生成对某一多路径设备的待处理io任务,则获取所述待处理io任务的io信息;
[0134]
匹配模块203,配置用于将所述io信息与所述某一多路径设备对应的所述io信息和最优路径设备对应关系匹配以确定目标最优路径设备;
[0135]
下发模块204,配置用于由主机端将所述待处理io任务通过所述目标最优路径设备下发到存储端。
[0136]
上述一种动态预判最优路径设备的装置,通过实时对每个多路径设备进行信息统计分析以生成与每个多路径设备对应的io信息和最优路径设备对应关系,当主机端产生io任务时,将io信息与io信息和最优路径设备对应关系匹配从而快速确定目标最优路径设备,节省路径选择的时间,降低io延时,显著提高io处理效率。
[0137]
在一些实施例中,所述统计分析模块201进一步配置用于:
[0138]
对每个多路径设备执行以下操作:
[0139]
获取多路径设备包括的所有节点、每个节点对应的位置范围以及每个节点包括的若干路径设备;
[0140]
基于预设路径选择算法和路径信息对应关系为目标路径算法匹配对应的目标路径信息,其中,所述预设路径选择算法和路径信息对应关系包括:round robin算法对应路径设备名称、路径设备排序,queue length算法对应路径设备名称、路径设备未处理io个数,service time算法对应路径设备名称、路径设备未处理io个数、路径设备吞吐量;
[0141]
基于所述目标路径信息为每个节点生成io信息和最优路径设备对应关系,其中,所述最优路径设备为依据所述目标路径信息从节点包括的若干路径设备中选取的一个。
[0142]
在一些实施例中,所述统计分析模块201进一步配置用于:
[0143]
响应于目标路径算法为round robin算法,则目标路径信息为路径设备名称、路径设备排序;
[0144]
响应于目标路径算法为queue length算法,则目标路径信息为路径设备名称、路径设备未处理io个数;
[0145]
响应于目标路径算法为service time算法,则目标路径信息为路径设备名称、路径设备未处理io个数、路径设备吞吐量。
[0146]
在一些实施例中,所述统计分析模块201进一步配置用于:
[0147]
响应于目标路径信息为路径设备名称、路径设备排序,则将每个节点所包括的所有路径设备中排序在最前端的一个选取为最优路径设备;
[0148]
汇总每个节点对应的位置范围、以及为所选取的最优路径对应的路径设备名称生成io位置范围和最优路径设备对应关系。
[0149]
在一些实施例中,所述统计分析模块201进一步配置用于:
[0150]
响应于目标路径信息为路径设备名称、路径设备未处理io个数,则将每个节点所包括的所有路径设备中未处理io个数最少的一个选取为最优路径设备;
[0151]
汇总每个节点对应的位置范围、以及为所选取的最优路径对应的路径设备名称生成io位置范围和最优路径设备对应关系。
[0152]
在一些实施例中,所述统计分析模块201进一步配置用于:
[0153]
响应于目标路径信息为路径设备名称、路径设备未处理io个数、路径设备吞吐量,则基于以下规则从每个节点所包括的所有路径设备中选取一个作为最优路径设备:
[0154]
响应于各个路径设备的路径设备未处理io个数均相同,则选取路径设备吞吐量最大的一个作为最优路径设备;
[0155]
响应于各个路径设备的路径设备吞吐量均相同,则选取路径设备未处理io个数最小的一个作为最优路径设备;
[0156]
响应于各个路径设备的路径设备未处理io个数、路径设备吞吐量均不相同,则将路径设备未处理io个数和io大小之和与路径设备吞吐量比值中最小的一个作为最优路径设备,并计算最优路径设备对应的io大小范围;
[0157]
汇总每个节点对应的位置范围、以及为所选取的最优路径对应的路径设备名称、io大小范围生成io位置范围、io大小范围和最优路径设备对应关系。
[0158]
在一些实施例中,所述匹配模块203进一步配置用于:
[0159]
响应于目标路径算法为round robin算法或queue length算法,则所述io信息为io位置,将与所述待处理io任务的io位置匹配的io范围对应的最优路径设备作为目标最优路径设备;
[0160]
响应于目标路径算法为service time算法,则所述io信息为io位置和io大小,将与所述待处理io任务的io位置、io大小均匹配的io位置范围、io大小范围对应的最优路径设备作为目标最优路径设备。
[0161]
需要说明的是,关于动态预判最优路径设备的装置的具体限定可以参见上文中对动态预判最优路径设备的方法的限定,在此不再赘述。上述动态预判最优路径设备的装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机中的处理器中,也可以以软件形式存储于计算机中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0162]
根据本发明的另一方面,提供了一种计算机,该计算机可以是服务器,其内部结构
图请参照图6所示。该计算机包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机的处理器用于提供计算和控制能力。该计算机的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机的数据库用于存储数据。该计算机的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的动态预判最优路径设备的方法,具体来说,所述方法包括以下步骤:
[0163]
实时对每个多路径设备进行信息统计分析,以生成与每个多路径设备对应的io信息和最优路径设备对应关系;
[0164]
响应于主机端生成对某一多路径设备的待处理io任务,则获取所述待处理io任务的io信息;
[0165]
将所述io信息与所述某一多路径设备对应的所述io信息和最优路径设备对应关系匹配以确定目标最优路径设备;
[0166]
由主机端将所述待处理io任务通过所述目标最优路径设备下发到存储端。
[0167]
根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的动态预判最优路径设备的方法,具体来说,包括执行以下步骤:
[0168]
实时对每个多路径设备进行信息统计分析,以生成与每个多路径设备对应的io信息和最优路径设备对应关系;
[0169]
响应于主机端生成对某一多路径设备的待处理io任务,则获取所述待处理io任务的io信息;
[0170]
将所述io信息与所述某一多路径设备对应的所述io信息和最优路径设备对应关系匹配以确定目标最优路径设备;
[0171]
由主机端将所述待处理io任务通过所述目标最优路径设备下发到存储端。
[0172]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0173]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0174]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来
说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
技术特征:
1.一种动态预判最优路径设备的方法,其特征在于,所述方法包括:实时对每个多路径设备进行信息统计分析,以生成与每个多路径设备对应的io信息和最优路径设备对应关系;响应于主机端生成对某一多路径设备的待处理io任务,则获取所述待处理io任务的io信息;将所述io信息与所述某一多路径设备对应的所述io信息和最优路径设备对应关系匹配以确定目标最优路径设备;由主机端将所述待处理io任务通过所述目标最优路径设备下发到存储端。2.根据权利要求1所述的动态预判最优路径设备的方法,其特征在于,所述实时对每个多路径设备进行信息统计分析,以生成与每个多路径设备对应的io信息和最优路径设备对应关系,包括:对每个多路径设备执行以下操作:获取多路径设备包括的所有节点、每个节点对应的位置范围以及每个节点包括的若干路径设备;基于预设路径选择算法和路径信息对应关系为目标路径算法匹配对应的目标路径信息,其中,所述预设路径选择算法和路径信息对应关系包括:round robin算法对应路径设备名称、路径设备排序,queue length算法对应路径设备名称、路径设备未处理io个数,service time算法对应路径设备名称、路径设备未处理io个数、路径设备吞吐量;基于所述目标路径信息为每个节点生成io信息和最优路径设备对应关系,其中,所述最优路径设备为依据所述目标路径信息从节点包括的若干路径设备中选取的一个。3.根据权利要求2所述的动态预判最优路径设备的方法,其特征在于,所述基于预设路径选择算法和路径信息对应关系为目标路径算法匹配对应的目标路径信息,包括:响应于目标路径算法为round robin算法,则目标路径信息为路径设备名称、路径设备排序;响应于目标路径算法为queue length算法,则目标路径信息为路径设备名称、路径设备未处理io个数;响应于目标路径算法为service time算法,则目标路径信息为路径设备名称、路径设备未处理io个数、路径设备吞吐量。4.根据权利要求2所述的动态预判最优路径设备的方法,其特征在于,所述基于所述目标路径信息为每个节点生成io信息和最优路径设备对应关系,包括:响应于目标路径信息为路径设备名称、路径设备排序,则将每个节点所包括的所有路径设备中排序在最前端的一个选取为最优路径设备;汇总每个节点对应的位置范围、以及为所选取的最优路径对应的路径设备名称生成io位置范围和最优路径设备对应关系。5.根据权利要求2所述的动态预判最优路径设备的方法,其特征在于,所述基于所述目标路径信息为每个节点生成io信息和最优路径设备对应关系,还包括:响应于目标路径信息为路径设备名称、路径设备未处理io个数,则将每个节点所包括的所有路径设备中未处理io个数最少的一个选取为最优路径设备;汇总每个节点对应的位置范围、以及为所选取的最优路径对应的路径设备名称生成io
位置范围和最优路径设备对应关系。6.根据权利要求2所述的动态预判最优路径设备的方法,其特征在于,所述基于所述目标路径信息为每个节点生成io信息和最优路径设备对应关系,还包括:响应于目标路径信息为路径设备名称、路径设备未处理io个数、路径设备吞吐量,则基于以下规则从每个节点所包括的所有路径设备中选取一个作为最优路径设备:响应于各个路径设备的路径设备未处理io个数均相同,则选取路径设备吞吐量最大的一个作为最优路径设备;响应于各个路径设备的路径设备吞吐量均相同,则选取路径设备未处理io个数最小的一个作为最优路径设备;响应于各个路径设备的路径设备未处理io个数、路径设备吞吐量均不相同,则将路径设备未处理io个数和io大小之和与路径设备吞吐量比值中最小的一个作为最优路径设备,并计算最优路径设备对应的io大小范围;汇总每个节点对应的位置范围、以及为所选取的最优路径对应的路径设备名称、io大小范围生成io位置范围、io大小范围和最优路径设备对应关系。7.根据权利要求6所述的动态预判最优路径设备的方法,其特征在于,所述将所述io信息与所述某一多路径设备对应的所述io信息和最优路径设备对应关系匹配以确定目标最优路径设备,包括:响应于目标路径算法为round robin算法或queue length算法,则所述io信息为io位置,将与所述待处理io任务的io位置匹配的io范围对应的最优路径设备作为目标最优路径设备;响应于目标路径算法为service time算法,则所述io信息为io位置和io大小,将与所述待处理io任务的io位置、io大小均匹配的io位置范围、io大小范围对应的最优路径设备作为目标最优路径设备。8.一种动态预判最优路径设备的装置,其特征在于,所述装置包括:统计分析模块,配置用于实时对每个多路径设备进行信息统计分析,以生成与每个多路径设备对应的io信息和最优路径设备对应关系;获取模块,配置用于响应于主机端生成对某一多路径设备的待处理io任务,则获取所述待处理io任务的io信息;匹配模块,配置用于将所述io信息与所述某一多路径设备对应的所述io信息和最优路径设备对应关系匹配以确定目标最优路径设备;下发模块,配置用于由主机端将所述待处理io任务通过所述目标最优路径设备下发到存储端。9.一种计算机,其特征在于,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器中运行的计算机程序,所述处理器执行所述程序时执行权利要求1-7任意一项所述的方法。10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行权利要求1-7任意一项所述的方法。
技术总结
本发明涉及数据访问技术领域,尤其涉及一种动态预判最优路径设备的方法、装置、及介质。所述方法包括:实时对每个多路径设备进行信息统计分析,以生成与每个多路径设备对应的IO信息和最优路径设备对应关系;响应于主机端生成对某一多路径设备的待处理IO任务,则获取待处理IO任务的IO信息;将IO信息与某一多路径设备对应的IO信息和最优路径设备对应关系匹配以确定目标最优路径设备;由主机端将待处理IO任务通过目标最优路径设备下发到存储端。本发明的方案通过对多路径设备的实时统计分析生成IO信息和最优路径设备对应关系,只需利用IO信息即可匹配到目标最优路径设备,节省路径选择的时间,降低IO延时、提高IO处理效率。提高IO处理效率。提高IO处理效率。
技术研发人员:
张振广
受保护的技术使用者:
苏州浪潮智能科技有限公司
技术研发日:
2022.08.19
技术公布日:
2022/11/22