CN111782138A - 路径切换方法及装置 - Google Patents
路径切换方法及装置 Download PDFInfo
- Publication number
- CN111782138A CN111782138A CN202010555940.2A CN202010555940A CN111782138A CN 111782138 A CN111782138 A CN 111782138A CN 202010555940 A CN202010555940 A CN 202010555940A CN 111782138 A CN111782138 A CN 111782138A
- Authority
- CN
- China
- Prior art keywords
- path
- target
- target lun
- lun
- 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.)
- Granted
Links
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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- 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]
-
- 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/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种路径切换方法及装置,应用于服务器。服务器监测目标LUN对应各下发路径的运行状态,根据目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径;在确定需要切换路径时,根据目标LUN所属存储节点上各控制器的运行状态以及对应端口的运行状态,确定是否存在空闲的路径;在存在空闲路径时,控制目标LUN从下发路径切换至空闲路径,以提升存储系统的IO处理性能。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种路径切换方法及装置。
背景技术
存储节点指提供存储功能的设备,通常包括多个控制器以及多个用于存储数据的磁盘。该多个磁盘组成磁盘阵列。存储节点在磁盘阵列上创建可供服务器使用的逻辑单元号(英文:Logical Unit Number,缩写:LUN)。
服务器可通过多条路径访问同一LUN。比如,针对单一存储节点,服务器可通过该存储节点上的多个控制器(对应多条路径)访问同一LUN;针对双活集群,服务器可通过该集群中的多个存储节点(对应多条路径)访问同一LUN。
服务器利用本设备上运行的多路径软件,从LUN对应的多条路径中,为LUN选择下发IO的路径。比如,针对非对称逻辑单元访问(英文:Asymmetric Logical Unit Access,缩写:ALUA)类型的LUN,多路径软件优先选择LUN所属控制器对应路径下发IO;针对双活集群中的LUN,多路径软件优先选择LUN所属主存储节点对应路径下发IO。
当将单一存储节点或双活集群中的多个LUN分配给不同服务器使用时,可能会因为配置不合理或者LUN的业务压力不均衡等原因,导致存储节点中各控制器或者双活集群中各存储节点,有的繁忙、有的空闲,无法充分发挥存储系统(单一存储节点或双活集群)的处理性能。
发明内容
有鉴于此,本申请提出一种路径切换方法及装置,用以提升存储系统的处理性能。
为实现上述申请目的,本申请提供了如下技术方案:
第一方面,本申请提供一种路径切换方法,应用于服务器,该方法包括:
针对目标LUN对应的每一条下发路径,确定下发路径的运行状态;
根据所述目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径;
当确定需要切换路径时,获取所述目标LUN所属存储节点上各控制器的运行状态以及控制器对应端口的运行状态;
当确定存在控制器运行状态空闲且对应端口运行状态空闲的目标路径时,控制所述目标LUN从所述下发路径切换至所述目标路径。
可选的,所述确定下发路径的运行状态,包括:
统计所述目标LUN在下发路径上的IO延时;
当统计的IO延时大于预设的延时阈值时,确定该下发路径的运行状态繁忙。
可选的,所述IO延时包括平均IO延时和/或最大IO延时;所述当统计的IO延时大于预设的延时阈值时,确定该下发路径的运行状态繁忙,包括:
当所述目标LUN在下发路径上的平均IO延时大于预设的平均延时阈值,和/或,最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙。
可选的,所述当所述目标LUN在下发路径上的平均IO延时大于预设的平均延时阈值,和/或,最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙,包括:
当所述目标LUN在下发路径上连续N个统计周期的平均IO延时均大于预设的平均延时阈值,和/或,连续N个统计周期的最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙。
可选的,所述根据所述目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径,包括:
如果所述目标LUN所属类型为ALUA或双活LUN,且所述目标LUN对应的所有下发路径的运行状态均繁忙时,确定需要切换路径;否则,确定不需要切换路径。
可选的,所述方法还包括:
当确定不需要切换路径,且所述目标LUN对应下发路径中存在部分下发路径运行状态繁忙时,暂停或减少通过运行状态繁忙的下发路径下发所述目标LUN的IO。
可选的,所述获取所述目标LUN所属存储节点上各控制器的运行状态以及控制器对应端口的运行状态,包括:
针对所述存储节点上每一个控制器,通过该控制器对应端口向控制器下发用于读取控制器状态的指令;
接收该控制器基于所述指令返回的状态数据,所述状态数据包括该控制器的运行状态以及接收所述指令的端口的运行状态。
可选的,所述指令基于SCSI规范自定义。
可选的,所述控制所述目标LUN从所述下发路径切换至所述目标路径,包括:
如果所述目标LUN所属类型为ALUA,通知所述目标LUN所属存储节点更新所述目标LUN所属控制器为所述目标路径上的控制器;
通过所述目标路径下发所述目标LUN的IO。
可选的,所述控制所述目标LUN从所述下发路径切换至所述目标路径,包括:
如果所述目标LUN所属类型为双活LUN,且所述目标LUN所属主存储节点上存在所述目标路径,通知所述目标LUN所属主存储节点更新所述目标LUN所属控制器为本存储节点上所述目标路径对应的控制器;并通过所述主存储节点上目标路径下发所述目标LUN的IO;
如果所述目标LUN所属类型为双活LUN,且所述目标LUN所属主存储节点上不存在所述目标路径,且所述目标LUN所属备存储节点上存在所述目标路径,通知双活集群将所述目标LUN所属主存储节点更新为备存储节点,将原备存储节点更新为主存储节点;并通知所述目标LUN所属新的主存储节点更新所述目标LUN所属控制器为所述新的主存储节点上目标路径对应的控制器;通过所述目标LUN所属新的主存储节点上的目标路径下发所述目标LUN的IO。
第二方面,本申请提供一种路径切换装置,应用于服务器,该装置包括:
监测单元,用于针对目标LUN对应的每一条下发路径,确定下发路径的运行状态;
确定单元,用于根据所述目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径;
获取单元,用于当确定需要切换路径时,获取所述目标LUN所属存储节点上各控制器的运行状态以及控制器对应端口的运行状态;
切换单元,用于当确定存在控制器运行状态空闲且对应端口运行状态空闲的目标路径时,控制所述目标LUN从所述下发路径切换至所述目标路径。
可选的,所述监测单元确定下发路径的运行状态,包括:
统计所述目标LUN在下发路径上的IO延时;
当统计的IO延时大于预设的延时阈值时,确定该下发路径的运行状态繁忙。
可选的,所述IO延时包括平均IO延时和/或最大IO延时;所述监测单元在统计的IO延时大于预设的延时阈值时,确定该下发路径的运行状态繁忙,包括:
当所述目标LUN在下发路径上的平均IO延时大于预设的平均延时阈值,和/或,最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙。
可选的,所述监测单元在所述目标LUN在下发路径上的平均IO延时大于预设的平均延时阈值,和/或,最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙,包括:
当所述目标LUN在下发路径上连续N个统计周期的平均IO延时均大于预设的平均延时阈值,和/或,连续N个统计周期的最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙。
可选的,所述确定单元根据所述目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径,包括:
如果所述目标LUN所属类型为ALUA或双活LUN,且所述目标LUN对应的所有下发路径的运行状态均繁忙时,确定需要切换路径;否则,确定不需要切换路径。
可选的,所述装置还包括:
调整单元,用于当确定不需要切换路径,且所述目标LUN对应下发路径中存在部分下发路径运行状态繁忙时,暂停或减少通过运行状态繁忙的下发路径下发所述目标LUN的IO。
可选的,所述获取单元获取所述目标LUN所属存储节点上各控制器的运行状态以及控制器对应端口的运行状态,包括:
针对所述存储节点上每一个控制器,通过该控制器对应端口向控制器下发用于读取控制器状态的指令;
接收该控制器基于所述指令返回的状态数据,所述状态数据包括该控制器的运行状态以及接收所述指令的端口的运行状态。
可选的,所述指令基于SCSI规范自定义。
可选的,所述切换单元控制所述目标LUN从所述下发路径切换至所述目标路径,包括:
如果所述目标LUN所属类型为ALUA,通知所述目标LUN所属存储节点更新所述目标LUN所属控制器为所述目标路径上的控制器;
通过所述目标路径下发所述目标LUN的IO。
可选的,所述切换单元控制所述目标LUN从所述下发路径切换至所述目标路径,包括:
如果所述目标LUN所属类型为双活LUN,且所述目标LUN所属主存储节点上存在所述目标路径,通知所述目标LUN所属主存储节点更新所述目标LUN所属控制器为本存储节点上所述目标路径对应的控制器;并通过所述主存储节点上目标路径下发所述目标LUN的IO;
如果所述目标LUN所属类型为双活LUN,且所述目标LUN所属主存储节点上不存在所述目标路径,且所述目标LUN所属备存储节点上存在所述目标路径,通知双活集群将所述目标LUN所属主存储节点更新为备存储节点,将原备存储节点更新为主存储节点;并通知所述目标LUN所属新的主存储节点更新所述目标LUN所属控制器为所述新的主存储节点上目标路径对应的控制器;通过所述目标LUN所属新的主存储节点上的目标路径下发所述目标LUN的IO。
由以上描述可以看出,本申请中,服务器通过监测目标LUN对应各下发路径的运行状态,根据目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径,并在确定需要切换路径时,根据目标LUN所属存储节点上各控制器的运行状态以及对应端口的运行状态,确定是否存在空闲的路径,在存在空闲路径时,控制目标LUN从下发路径切换至空闲路径,以提升存储系统的IO处理性能。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A是多台服务器与单个存储节点的组网示意图;
图1B是多台服务器与双活集群的组网示意图;
图2是本申请实施例示出的一种路径切换方法的流程图;
图3是本申请实施例示出的一种步骤201的实现流程;
图4是本申请实施例示出的一种步骤203的实现流程;
图5A是本申请实施例示出的服务器发送的用于读取控制器状态的指令的结构示意图;
图5B是本申请实施例示出的存储节点上控制器向服务器返回的状态数据的结构示意图;
图6是本申请实施例示出的一种路径切换装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请实施例。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请实施例范围的情况下,协商信息也可以被称为第二信息,类似地,第二信息也可以被称为协商信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
参见图1A,为多台服务器与单个存储节点的组网示意图。该组网包括3台服务器(服务器1~服务器3)和1个存储节点。该存储节点包括2个控制器(控制器1、控制器2)和3个LUN(LUNA、LUNB、LUNC)。
以LUNA、LUNB、LUNC为ALUA类型的LUN为例,其中,LUNA属于控制器1,LUNB属于控制器2,LUNC属于控制器1。
在存储节点上,将LUNA分配给服务器1,LUNB分配给服务器2,LUNC分配给服务器3。
各服务器在LUN所属控制器对应路径上下发业务IO。若访问LUNA和LUNC的业务量较大,访问LUNB的业务量较小,则LUNA和LUNC所属控制器1繁忙,LUNB所属控制器2空闲,无法充分发挥存储节点的处理性能。
参见图1B,为多台服务器与双活集群的组网示意图。该多台服务器包括服务器1、服务器2以及服务器3。该双活集群包括存储节点1和存储节点2。其中,LUNA所属主存储节点为存储节点1,LUNB所属主存储节点为存储节点2,LUNC所属主存储节点为存储节点1。
各服务器在LUN所属主存储节点对应路径上下发业务IO。若访问LUNA和LUNC的业务量较大,访问LUNB的业务量较小,则LUNA和LUNC所属主存储节点(存储节点1)繁忙,LUNB所属主存储节点(存储节点2)空闲,无法充分发挥双活集群的处理性能。
针对上述问题,本申请提出一种路径切换方法。该方法中,服务器监测目标LUN对应各下发路径的运行状态,根据目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径,并在确定需要切换路径时,根据目标LUN所属存储节点上各控制器的运行状态以及对应端口的运行状态,确定是否存在空闲的路径,在存在空闲的路径时,控制目标LUN从下发路径切换至空闲路径,以提升存储系统的IO处理性能。
为了使本申请实施例的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本申请实施例执行详细描述:
参见图2,为本申请实施例示出的一种路径切换方法的流程图。该流程应用于服务器。
步骤201,服务器针对目标LUN对应的每一条下发路径,确定下发路径的运行状态。
这里,目标LUN为服务器使用的任一LUN。服务器可针对自身使用的每一个LUN执行图2所示流程。
下发路径指服务器为目标LUN选择的下发IO的路径。下发路径的运行状态用于表征下发路径繁忙还是空闲。
服务器确定下发路径运行状态的过程,在下文中介绍,这里暂不赘述。
步骤202,根据目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径。
目前,LUN的类型主要包括ALUA、对称逻辑单元访问(英文:Symmetric LogicalUnit Access,缩写:SLUA)以及双活LUN。
如果目标LUN所属类型为SLUA,由于SLUA类型的LUN同时属于多个控制器,因此,不涉及路径切换问题。换言之,针对SLUA型的LUN,无论其对应下发路径的运行状态如何,都不涉及路径切换,因此,可直接根据目标LUN所属类型SLUA,确定该目标LUN不需要切换路径。
如果目标LUN所属类型为ALUA,则获取通过步骤201确定的该目标LUN对应各下发路径的运行状态。如果该目标LUN对应的所有下发路径(目标LUN所属控制器对应的路径,亦称为优化路径)的运行状态均繁忙,则确定该目标LUN需要切换路径;否则,确定该目标LUN不需要切换路径。
如果目标LUN所属类型为双活LUN,则同样获取通过步骤201确定的该目标LUN对应各下发路径的运行状态。如果该目标LUN对应的所有下发路径的运行状态均繁忙,则确定该目标LUN需要切换路径;否则,确定该目标LUN不需要切换路径。
步骤203,当确定需要切换路径时,获取目标LUN所属存储节点上各控制器的运行状态以及控制器对应端口的运行状态。
这里,需要说明的是,存储节点可自行统计本节点上控制器的运行状态以及对应端口的运行状态。
其中,控制器的运行状态可基于控制器的CPU占有率来确定。具体地,当控制器的CPU占用率在连续N个统计周期内超过预设的占用率阈值时,确定该控制器的运行状态繁忙,否则,确定该控制器的运行状态空闲。
每个控制器都对应有与服务器连接的端口,端口的运行状态可基于端口的IO延时确定。具体地,当连续N个统计周期内端口的平均IO延时均大于平均延时阈值,和/或,连续N个统计周期内的最大IO延时均大于最大延时阈值时,确定该端口的运行状态繁忙,否则,确定该端口的运行状态空闲。
当服务器通过步骤202确定需要切换目标LUN的路径时,确定该目标LUN所属存储节点,并从目标LUN所属存储节点获取存储节点统计的各控制器的运行状态以及对应端口的运行状态。
服务器从目标LUN所属存储节点获取控制器的运行状态以及对应端口的运行状态的过程,在下文中介绍,这里暂不赘述。
步骤204,当确定存在控制器空闲且对应端口空闲的目标路径时,控制目标LUN从下发路径切换至目标路径。
这里,需要说明的是,当某条路径上的控制器空闲、端口也空闲时,说明该路径空闲。本申请将控制器空闲且端口空闲的路径称为目标路径。
当服务器通过步骤203确定目标LUN所属存储节点上存在空闲路径(目标路径)时,控制目标LUN从下发路径切换至目标路径,即,控制目标LUN从繁忙路径切换至空闲路径,以提升存储系统的IO处理性能。
服务器控制目标LUN从下发路径切换至目标路径的过程,在下文中介绍,这里暂不赘述。
至此,完成图2所示流程。
通过图2所示流程可以看出,本申请中,服务器通过监测目标LUN对应各下发路径的运行状态,确定是否需要切换路径,并在确定需要切换路径时,根据目标LUN所属存储节点上各控制器的运行状态以及对应端口的运行状态,确定是否存在空闲路径,进而在存在空闲路径时,控制目标LUN从下发路径切换至空闲路径,以提升存储系统的IO处理性能。
此外,需要补充说明的是,当通过步骤203确定目标LUN所属存储节点中不存在空闲路径(目标路径)时,说明该目标LUN所属存储节点中不存在处理性能较优的路径,则禁止切换路径。
下面对步骤204中服务器控制目标LUN从下发路径切换至目标路径的过程进行描述。
具体为,当目标LUN所属类型为ALUA,且目标LUN所属存储节点上存在目标路径(空闲路径)时,说明该目标LUN所属存储节点中存在处理性能较优的路径,因此,服务器通知该目标LUN所属存储节点更新目标LUN所属控制器为该目标路径上的控制器。服务器通过该目标路径下发目标LUN的IO。
当目标LUN所属类型为双活LUN,且目标LUN所属主存储节点上存在目标路径(空闲路径)时,说明该目标LUN所属主存储节点中存在处理性能较优的路径,因此,服务器通知目标LUN所属主存储节点更新该目标LUN所属控制器为本存储节点上目标路径对应的控制器;并通过该主存储节点上目标路径下发目标LUN的IO。
当目标LUN所属类型为双活LUN,且目标LUN所属主存储节点上不存在目标路径(空闲路径),但该目标LUN所属备存储节点上存在目标路径(空闲路径)时,说明该目标LUN所属主存储节点中不存在处理性能较优的路径,但是所属备存储节点中存在处理性能较优的路径,因此,服务器通知双活集群进行主备倒换,即,将目标LUN所属主存储节点更新为备存储节点,将原备存储节点更新为主存储节点,并通知目标LUN所属新的主存储节点更新该目标LUN所属控制器为本存储节点上目标路径对应的控制器。服务器通过该目标LUN所属新的主存储节点上的目标路径下发目标LUN的IO。
至此,完成目标LUN的路径切换。
此外,需要补充说明的是,当通过步骤202确定不需要切换目标LUN的路径,且目标LUN对应下发路径中存在部分下发路径运行状态繁忙时,即,同时存在运行状态繁忙的下发路径和运行状态空闲的下发路径时,可暂停或减少通过运行状态繁忙的下发路径下发目标LUN的IO,保留运行状态空闲的下发路径下发目标LUN的IO,同样可以得到提升IO处理性能的目的。
此时,目标LUN不受所属类型限制。即,该目标LUN可以为ALUA LUN、SLUA LUN或者双活LUN,在确定部分下发路径运行状态繁忙时,均可执行上述处理。
下面对步骤201中服务器确定下发路径的运行状态的过程进行描述。参见图3,为本申请实施例示出的步骤201的实现流程。
如图3所示,该流程可包括以下步骤:
步骤301,服务器统计目标LUN在下发路径上的IO延时。
这里,IO延时可以包括平均IO延时和最大IO延时。其中,平均IO延时指一个统计周期内所有IO延时的平均值;最大IO延时指一个统计周期内所有IO延时中的最大值。
步骤302,当统计的IO延时大于预设的延时阈值时,确定该下发路径的运行状态繁忙。
本申请中,针对平均IO延时和最大IO延时均设置对应的延时阈值。这里,将针对平均IO延时设置的延时阈值称为平均延时阈值;将针对最大IO延时设置的延时阈值称为最大延时阈值。延时阈值的大小可根据实际业务需要设置。
服务器判断目标LUN在下发路径上的平均IO延时是否大于平均延时阈值,和/或,最大IO延时是否大于最大延时阈值。
当目标LUN在下发路径上的平均IO延时大于平均延时阈值,和/或,最大IO延时大于最大延时阈值时,说明目标LUN在该下发路径上的IO处理性能较差,该下发路径的处理压力可能较大,因此,确定该下发路径的运行状态繁忙;否则,确定该下发路径的运行状态空闲。
可以看出,本申请可根据单一延时指标(平均IO延时或最大IO延时)确定下发路径是否繁忙,也可以综合考虑上述两个延时指标确定下发路径是否繁忙。
进一步的,为了避免IO延时抖动导致频繁切换路径,本申请中,服务器可连续判断多个统计周期内,目标LUN在下发路径上的IO延时是否大于延时阈值。当连续N个统计周期内目标LUN在下发路径上的平均IO延时均大于平均延时阈值,和/或,连续N个统计周期内的最大IO延时均大于最大延时阈值时,确定该下发路径的运行状态繁忙;否则,确定该下发路径的运行状态空闲。
这里,N为大于1的整数,具体可根据实际业务需求设置,比如,N=3。
至此,完成图3所示流程。
通过图3所示流程,服务器可确定目标LUN对应的每一条下发路径的运行状态。
下面对步骤203中服务器从目标LUN所属存储节点获取控制器的运行状态以及对应端口的运行状态的过程进行描述。参见图4,为本申请实施例示出的步骤203的实现流程。
如图4所示,该流程可包括以下步骤:
步骤401,服务器针对存储节点上每一个控制器,通过该控制器对应端口向控制器下发用于读取控制器状态的指令。
作为一个实施例,服务器可基于小型计算机系统接口(英文:Small ComputerSystem Interface,缩写:SCSI)规范定义用于读取控制器状态的指令。
参见图5A,为服务器发送的用于读取控制器状态的指令的结构示意图。该指令基于SCSI规范中的inquiry命令实现。当然,也可以基于其它命令实现,比如,MODE SELECT命令,本申请对此不作限定。
其中,0x12表示inquiry命令;Vendor表示厂商;0xd4表示自定义命令;Sub_page=0表示用于读取控制器状态的命令;Allocation length表示基于inquiry命令回应的报文的长度。
步骤402,接收控制器基于所述指令返回的状态数据。
控制器接收到服务器下发的读取控制器状态的指令后,向服务器返回状态数据,该状态数据包括控制器自身的运行状态以及接收指令的端口的运行状态。
参见图5B,为存储节点上控制器向服务器返回的状态数据的结构示意图。其中,Peripheral Qualifier=0x00表示已与服务器建立连接;Peripheral Device Type=0x00表示直接存取设备;0xd4表示自定义命令;SP_INFO表示控制器的运行状态,比如,SP_INFO=0表示控制器繁忙,SP_INFO=1表示控制器空闲;PORT表示接收到服务器指令的端口的运行状态,比如,PORT=0表示端口繁忙,PORT=1表示端口空闲;REVE为预留字段。
至此,完成图4所示流程。
通过图4所示流程,服务器可获取到目标LUN所属存储节点上各控制器的运行状态以及对应端口的运行状态。
当然,服务器与存储节点之间还可通过管理网络获取上述状态信息,比如,TCP报文或Webservice接口等方式。
以上对本申请实施例提供的方法进行了描述,下面对本申请实施例提供的装置进行描述:
参见图6,为本申请实施例提供的装置的结构示意图。该装置应用于服务器,该装置包括:监测单元601、确定单元602、获取单元603以及切换单元604,其中:
监测单元601,用于针对目标LUN对应的每一条下发路径,确定下发路径的运行状态;
确定单元602,用于根据所述目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径;
获取单元603,用于当确定需要切换路径时,获取所述目标LUN所属存储节点上各控制器的运行状态以及控制器对应端口的运行状态;
切换单元604,用于当确定存在控制器运行状态空闲且对应端口运行状态空闲的目标路径时,控制所述目标LUN从所述下发路径切换至所述目标路径。
作为一个实施例,所述监测单元601确定下发路径的运行状态,包括:
统计所述目标LUN在下发路径上的IO延时;
当统计的IO延时大于预设的延时阈值时,确定该下发路径的运行状态繁忙。
作为一个实施例,所述IO延时包括平均IO延时和/或最大IO延时;所述监测单元601在统计的IO延时大于预设的延时阈值时,确定该下发路径的运行状态繁忙,包括:
当所述目标LUN在下发路径上的平均IO延时大于预设的平均延时阈值,和/或,最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙。
作为一个实施例,所述监测单元601在所述目标LUN在下发路径上的平均IO延时大于预设的平均延时阈值,和/或,最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙,包括:
当所述目标LUN在下发路径上连续N个统计周期的平均IO延时均大于预设的平均延时阈值,和/或,连续N个统计周期的最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙。
作为一个实施例,所述确定单元602根据所述目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径,包括:
如果所述目标LUN所属类型为ALUA或双活LUN,且所述目标LUN对应的所有下发路径的运行状态均繁忙时,确定需要切换路径;否则,确定不需要切换路径。
作为一个实施例,所述装置还包括:
调整单元,用于当确定不需要切换路径,且所述目标LUN对应下发路径中存在部分下发路径运行状态繁忙时,暂停或减少通过运行状态繁忙的下发路径下发所述目标LUN的IO。
作为一个实施例,所述获取单元603获取所述目标LUN所属存储节点上各控制器的运行状态以及控制器对应端口的运行状态,包括:
针对所述存储节点上每一个控制器,通过该控制器对应端口向控制器下发用于读取控制器状态的指令;
接收该控制器基于所述指令返回的状态数据,所述状态数据包括该控制器的运行状态以及接收所述指令的端口的运行状态。
作为一个实施例,所述指令基于SCSI规范自定义。
作为一个实施例,所述切换单元604控制所述目标LUN从所述下发路径切换至所述目标路径,包括:
如果所述目标LUN所属类型为ALUA,通知所述目标LUN所属存储节点更新所述目标LUN所属控制器为所述目标路径上的控制器;
通过所述目标路径下发所述目标LUN的IO。
作为一个实施例,所述切换单元604控制所述目标LUN从所述下发路径切换至所述目标路径,包括:
如果所述目标LUN所属类型为双活LUN,且所述目标LUN所属主存储节点上存在所述目标路径,通知所述目标LUN所属主存储节点更新所述目标LUN所属控制器为本存储节点上所述目标路径对应的控制器;并通过所述主存储节点上目标路径下发所述目标LUN的IO;
如果所述目标LUN所属类型为双活LUN,且所述目标LUN所属主存储节点上不存在所述目标路径,且所述目标LUN所属备存储节点上存在所述目标路径,通知双活集群将所述目标LUN所属主存储节点更新为备存储节点,将原备存储节点更新为主存储节点;并通知所述目标LUN所属新的主存储节点更新所述目标LUN所属控制器为所述新的主存储节点上目标路径对应的控制器;通过所述目标LUN所属新的主存储节点上的目标路径下发所述目标LUN的IO。
至此,完成图6所示装置。
由以上描述可以看出,本申请中,服务器通过监测目标LUN对应各下发路径的运行状态,根据目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径,并在确定需要切换路径时,根据目标LUN所属存储节点上各控制器的运行状态以及对应端口的运行状态,确定是否存在空闲的路径,在存在空闲路径时,控制目标LUN从下发路径切换至空闲路径,以提升存储系统的IO处理性能。
以上所述仅为本申请实施例的较佳实施例而已,并不用以限制本申请,凡在本申请实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (20)
1.一种路径切换方法,其特征在于,应用于服务器,所述方法包括:
针对目标LUN对应的每一条下发路径,确定下发路径的运行状态;
根据所述目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径;
当确定需要切换路径时,获取所述目标LUN所属存储节点上各控制器的运行状态以及控制器对应端口的运行状态;
当确定存在控制器运行状态空闲且对应端口运行状态空闲的目标路径时,控制所述目标LUN从所述下发路径切换至所述目标路径。
2.如权利要求1所述的方法,其特征在于,所述确定下发路径的运行状态,包括:
统计所述目标LUN在下发路径上的IO延时;
当统计的IO延时大于预设的延时阈值时,确定该下发路径的运行状态繁忙。
3.如权利要求2所述的方法,其特征在于,所述IO延时包括平均IO延时和/或最大IO延时;所述当统计的IO延时大于预设的延时阈值时,确定该下发路径的运行状态繁忙,包括:
当所述目标LUN在下发路径上的平均IO延时大于预设的平均延时阈值,和/或,最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙。
4.如权利要求3所述的方法,其特征在于,所述当所述目标LUN在下发路径上的平均IO延时大于预设的平均延时阈值,和/或,最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙,包括:
当所述目标LUN在下发路径上连续N个统计周期的平均IO延时均大于预设的平均延时阈值,和/或,连续N个统计周期的最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙。
5.如权利要求1所述的方法,其特征在于,所述根据所述目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径,包括:
如果所述目标LUN所属类型为ALUA或双活LUN,且所述目标LUN对应的所有下发路径的运行状态均繁忙时,确定需要切换路径;否则,确定不需要切换路径。
6.如权利要求1或5所述的方法,其特征在于,所述方法还包括:
当确定不需要切换路径,且所述目标LUN对应下发路径中存在部分下发路径运行状态繁忙时,暂停或减少通过运行状态繁忙的下发路径下发所述目标LUN的IO。
7.如权利要求1所述的方法,其特征在于,所述获取所述目标LUN所属存储节点上各控制器的运行状态以及控制器对应端口的运行状态,包括:
针对所述存储节点上每一个控制器,通过该控制器对应端口向控制器下发用于读取控制器状态的指令;
接收该控制器基于所述指令返回的状态数据,所述状态数据包括该控制器的运行状态以及接收所述指令的端口的运行状态。
8.如权利要求7所述的方法,其特征在于,所述指令基于SCSI规范自定义。
9.如权利要求1所述的方法,其特征在于,所述控制所述目标LUN从所述下发路径切换至所述目标路径,包括:
如果所述目标LUN所属类型为ALUA,通知所述目标LUN所属存储节点更新所述目标LUN所属控制器为所述目标路径上的控制器;
通过所述目标路径下发所述目标LUN的IO。
10.如权利要求1所述的方法,其特征在于,所述控制所述目标LUN从所述下发路径切换至所述目标路径,包括:
如果所述目标LUN所属类型为双活LUN,且所述目标LUN所属主存储节点上存在所述目标路径,通知所述目标LUN所属主存储节点更新所述目标LUN所属控制器为本存储节点上所述目标路径对应的控制器;并通过所述主存储节点上目标路径下发所述目标LUN的IO;
如果所述目标LUN所属类型为双活LUN,且所述目标LUN所属主存储节点上不存在所述目标路径,且所述目标LUN所属备存储节点上存在所述目标路径,通知双活集群将所述目标LUN所属主存储节点更新为备存储节点,将原备存储节点更新为主存储节点;并通知所述目标LUN所属新的主存储节点更新所述目标LUN所属控制器为所述新的主存储节点上目标路径对应的控制器;通过所述目标LUN所属新的主存储节点上的目标路径下发所述目标LUN的IO。
11.一种路径切换装置,其特征在于,应用于服务器,所述装置包括:
监测单元,用于针对目标LUN对应的每一条下发路径,确定下发路径的运行状态;
确定单元,用于根据所述目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径;
获取单元,用于当确定需要切换路径时,获取所述目标LUN所属存储节点上各控制器的运行状态以及控制器对应端口的运行状态;
切换单元,用于当确定存在控制器运行状态空闲且对应端口运行状态空闲的目标路径时,控制所述目标LUN从所述下发路径切换至所述目标路径。
12.如权利要求11所述的装置,其特征在于,所述监测单元确定下发路径的运行状态,包括:
统计所述目标LUN在下发路径上的IO延时;
当统计的IO延时大于预设的延时阈值时,确定该下发路径的运行状态繁忙。
13.如权利要求12所述的装置,其特征在于,所述IO延时包括平均IO延时和/或最大IO延时;所述监测单元在统计的IO延时大于预设的延时阈值时,确定该下发路径的运行状态繁忙,包括:
当所述目标LUN在下发路径上的平均IO延时大于预设的平均延时阈值,和/或,最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙。
14.如权利要求13所述的装置,其特征在于,所述监测单元在所述目标LUN在下发路径上的平均IO延时大于预设的平均延时阈值,和/或,最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙,包括:
当所述目标LUN在下发路径上连续N个统计周期的平均IO延时均大于预设的平均延时阈值,和/或,连续N个统计周期的最大IO延时大于预设的最大延时阈值时,确定该下发路径的运行状态繁忙。
15.如权利要求11所述的装置,其特征在于,所述确定单元根据所述目标LUN所属类型以及各下发路径的运行状态,确定是否需要切换路径,包括:
如果所述目标LUN所属类型为ALUA或双活LUN,且所述目标LUN对应的所有下发路径的运行状态均繁忙时,确定需要切换路径;否则,确定不需要切换路径。
16.如权利要求11或15所述的装置,其特征在于,所述装置还包括:
调整单元,用于当确定不需要切换路径,且所述目标LUN对应下发路径中存在部分下发路径运行状态繁忙时,暂停或减少通过运行状态繁忙的下发路径下发所述目标LUN的IO。
17.如权利要求11所述的装置,其特征在于,所述获取单元获取所述目标LUN所属存储节点上各控制器的运行状态以及控制器对应端口的运行状态,包括:
针对所述存储节点上每一个控制器,通过该控制器对应端口向控制器下发用于读取控制器状态的指令;
接收该控制器基于所述指令返回的状态数据,所述状态数据包括该控制器的运行状态以及接收所述指令的端口的运行状态。
18.如权利要求17所述的装置,其特征在于,所述指令基于SCSI规范自定义。
19.如权利要求11所述的装置,其特征在于,所述切换单元控制所述目标LUN从所述下发路径切换至所述目标路径,包括:
如果所述目标LUN所属类型为ALUA,通知所述目标LUN所属存储节点更新所述目标LUN所属控制器为所述目标路径上的控制器;
通过所述目标路径下发所述目标LUN的IO。
20.如权利要求11所述的装置,其特征在于,所述切换单元控制所述目标LUN从所述下发路径切换至所述目标路径,包括:
如果所述目标LUN所属类型为双活LUN,且所述目标LUN所属主存储节点上存在所述目标路径,通知所述目标LUN所属主存储节点更新所述目标LUN所属控制器为本存储节点上所述目标路径对应的控制器;并通过所述主存储节点上目标路径下发所述目标LUN的IO;
如果所述目标LUN所属类型为双活LUN,且所述目标LUN所属主存储节点上不存在所述目标路径,且所述目标LUN所属备存储节点上存在所述目标路径,通知双活集群将所述目标LUN所属主存储节点更新为备存储节点,将原备存储节点更新为主存储节点,并通知所述目标LUN所属新的主存储节点更新所述目标LUN所属控制器为所述新的主存储节点上目标路径对应的控制器;通过所述目标LUN所属新的主存储节点上的目标路径下发所述目标LUN的IO。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010555940.2A CN111782138B (zh) | 2020-06-17 | 2020-06-17 | 路径切换方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010555940.2A CN111782138B (zh) | 2020-06-17 | 2020-06-17 | 路径切换方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782138A true CN111782138A (zh) | 2020-10-16 |
CN111782138B CN111782138B (zh) | 2022-10-14 |
Family
ID=72756928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010555940.2A Active CN111782138B (zh) | 2020-06-17 | 2020-06-17 | 路径切换方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782138B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115617278A (zh) * | 2022-11-29 | 2023-01-17 | 苏州浪潮智能科技有限公司 | 路径设备的选择方法、装置、电子设备及可读存储介质 |
CN116048413A (zh) * | 2023-02-08 | 2023-05-02 | 苏州浪潮智能科技有限公司 | 多路径存储的io请求处理方法、装置、系统及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5189662A (en) * | 1989-01-26 | 1993-02-23 | Alcatel N.V. | Transmission network having electronically switchable nodes for switching signal paths and a method of controlling said network |
US20150200723A1 (en) * | 2014-01-16 | 2015-07-16 | Fujitsu Limited | Protection path providing method and transmission device |
CN105379201A (zh) * | 2014-05-09 | 2016-03-02 | 华为技术有限公司 | 路径切换的方法和设备 |
CN109981466A (zh) * | 2019-01-31 | 2019-07-05 | 北京英力恒达科技发展有限公司 | 一种SpaceWire网络时延的实时控制与优化方法和系统 |
CN110213065A (zh) * | 2018-02-28 | 2019-09-06 | 杭州宏杉科技股份有限公司 | 一种路径切换的方法及装置 |
-
2020
- 2020-06-17 CN CN202010555940.2A patent/CN111782138B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5189662A (en) * | 1989-01-26 | 1993-02-23 | Alcatel N.V. | Transmission network having electronically switchable nodes for switching signal paths and a method of controlling said network |
US20150200723A1 (en) * | 2014-01-16 | 2015-07-16 | Fujitsu Limited | Protection path providing method and transmission device |
CN105379201A (zh) * | 2014-05-09 | 2016-03-02 | 华为技术有限公司 | 路径切换的方法和设备 |
CN110213065A (zh) * | 2018-02-28 | 2019-09-06 | 杭州宏杉科技股份有限公司 | 一种路径切换的方法及装置 |
CN109981466A (zh) * | 2019-01-31 | 2019-07-05 | 北京英力恒达科技发展有限公司 | 一种SpaceWire网络时延的实时控制与优化方法和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115617278A (zh) * | 2022-11-29 | 2023-01-17 | 苏州浪潮智能科技有限公司 | 路径设备的选择方法、装置、电子设备及可读存储介质 |
CN115617278B (zh) * | 2022-11-29 | 2023-03-21 | 苏州浪潮智能科技有限公司 | 路径设备的选择方法、装置、电子设备及可读存储介质 |
CN116048413A (zh) * | 2023-02-08 | 2023-05-02 | 苏州浪潮智能科技有限公司 | 多路径存储的io请求处理方法、装置、系统及存储介质 |
CN116048413B (zh) * | 2023-02-08 | 2023-06-09 | 苏州浪潮智能科技有限公司 | 多路径存储的io请求处理方法、装置、系统及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111782138B (zh) | 2022-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2942665C (en) | Coordinated admission control for network-accessible block storage | |
CN101447939B (zh) | 一种业务分配方法和负载均衡器 | |
EP2466824B1 (en) | Service scheduling method and device | |
JP4901310B2 (ja) | 記憶制御装置及び記憶制御装置のコマンド実行数制御方法 | |
US7934069B2 (en) | Enabling and disabling cache in storage systems | |
US7711872B2 (en) | Storage apparatus, process controller, and storage system | |
CN111782138B (zh) | 路径切换方法及装置 | |
EP2306293A2 (en) | Methods and apparatus for managing virtual ports and logical units on storage systems | |
US8667494B1 (en) | Controlling resource allocation using thresholds and scheduling | |
WO2010119479A1 (en) | Storage system and control method thereof as well as program | |
CN104657316A (zh) | 服务器 | |
CN108027749B (zh) | 用于均衡融合网络中的存储数据流量的方法和系统 | |
JP2005078507A (ja) | 仮想化制御装置、アクセス経路制御方法及び計算機システム | |
US8407370B2 (en) | Storage apparatus for controlling running of commands and method therefor | |
JP2015069385A (ja) | ストレージ管理装置、制御方法及び制御プログラム | |
US10148483B1 (en) | Dynamic front end connectivity optimizations | |
JP4551947B2 (ja) | ストレージシステムを構成する電子機器を管理する装置 | |
WO2019171176A1 (en) | Power management for solid state drives in a network | |
US9734048B2 (en) | Storage management device, performance adjustment method, and computer-readable recording medium | |
KR20140051802A (ko) | 패킷 포워딩 룰 설정 방법 및 이를 이용한 제어 장치 | |
US10616050B2 (en) | Software defined storage (SDS) system with network tiering | |
CN116909953A (zh) | 一种多路径规划方法、装置及介质 | |
JP7253007B2 (ja) | ストレージシステム | |
WO2017036245A1 (zh) | 一种存储阵列操作方法和装置 | |
JP7255675B2 (ja) | 仮想マシン監視装置、仮想マシン監視方法およびプログラム |
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 |