掌桥专利:专业的专利平台
掌桥专利
首页

具有至少部分基于结构标识符实现路径选择的多路径层的主机装置

文献发布时间:2023-06-19 11:21:00


具有至少部分基于结构标识符实现路径选择的多路径层的主机装置

技术领域

本领域总体上涉及信息处理系统,并且更具体地涉及信息处理系统中的存储。

背景技术

存储阵列和其他类型的存储系统通常由多个主机装置通过网络共享。然而,当从主机装置中的一个或多个到存储系统的路径经历性能劣化时,在此类布置中可能会出现问题。在一些情况下,性能劣化可能与网络交换结构重新配置有关。例如,结构重新配置可能需要结构重新发现过程,其中可能在给定结构上生成并传输大量所需状态更改通知(RSCN)消息。常规技术无法充分检测和缓解这些和其他结构相关性能劣化。

发明内容

说明性实施例将一个或多个主机装置的多路径层配置为包括用于路径选择的功能性,该路径选择是至少部分地基于相应路径的结构标识符通过存储区域网络(SAN)或一个或多个主机装置在其上与存储阵列或其他类型的存储系统进行通信的其他类型的网络而进行的。多路径层说明性地包括被配置为处理至少一个主机装置的输入-输出(IO)操作的至少一个多路径输入-输出(MPIO)驱动器。此类布置中的多路径层可以被配置为确定相应路径的结构名称或其他类型的结构标识符并以考虑相应路径的结构标识符的方式来调整路径选择。

此类实施例有利地允许MPIO驱动器最大程度地减少或避免选择与由于正在进行的结构重新发现过程或其他结构相关问题而当前表现出性能劣化的结构相关联的路径。结果,实现了改善IO操作处理中的性能。

在一个实施例中,一种设备包括主机装置,该主机装置被配置为通过网络与包括多个存储装置的存储系统进行通信。主机装置包括一组IO队列和MPIO驱动器,该驱动器被配置为从该组IO队列选择IO操作以通过网络递送到存储系统。MPIO驱动器还被配置为确定从主机装置到存储系统的多个路径中的相应路径的结构标识符,并至少部分地基于结构标识符选择路径中的特定路径用于将IO操作递送到存储系统。

可以例如至少部分地基于对由MPIO驱动器通过路径发送的预定命令的响应来确定相应路径的结构标识符。预定命令说明性地包括特定类型的小型计算机系统接口(SCSI)命令,诸如日志感测命令、模式感测命令或供应商唯一(VU)命令。

该网络说明性地包括SAN,并且该结构说明性地包括通过SAN将主机装置与存储系统互连的一组多个交换结构中的相应的不同交换结构。

因此,从主机装置到存储系统的路径(确定了该路径的相应结构标识符)在一些实施例中包括相应SAN路径,但是在其他实施例中可以使用其他类型的网络路径。该路径说明性地与相应的发起者-目标对相关联,其中发起者在主机装置上实现并且目标在存储系统上实现。例如,发起者-目标对的发起者说明性地包括主机装置的相应主机总线适配器(HBA),并且发起者-目标对的目标说明性地包括存储系统的相应存储阵列端口。

在一些实施例中,在至少部分地基于结构标识符来选择路径中的特定路径用于将IO操作递送到存储系统时,MPIO驱动器还被配置为例如标识表现出延迟响应时间的第一路径并选择具有与第一路径的结构标识符不同的相应结构标识符的路径。

作为另一示例,在至少部分地基于结构标识符来选择路径中的特定路径用于将IO操作递送到存储系统时,MPIO驱动器还被配置为标识特定IO操作在其上失败的第一路径并使用具有与第一路径的结构标识符不同的结构标识符的另一路径来重试特定IO操作。

作为又一示例,在至少部分地基于结构标识符来选择路径中的特定路径用于将IO操作递送到存储系统时,MPIO驱动器还被配置为实现路径选择算法,该路径选择算法至少部分地根据路径的相应结构标识符来选择路径中的特定路径。在此布置中,路径选择算法可以被配置为可能使用循环选择或至少部分地基于结构标识符的其他类型的路径选择算法来平衡结构上的IO操作。

这些和其他说明性实施例包括但不限于设备、系统、方法和包括处理器可读存储介质的计算机程序产品。

附图说明

图1是说明性实施例中的信息处理系统的框图,该信息处理系统被配置有用于利用主机装置的多路径层进行基于结构的路径选择的功能性。

图2是说明性实施例中的用于利用主机装置的多路径层进行基于结构的路径选择的过程的流程图。

图3是示出说明性实施例中的分层系统架构的多个层的框图,该分层系统架构包括具有基于结构的路径选择功能性的多路径层。

具体实施方式

本文将参考示例性信息处理系统以及相关联的计算机、服务器、存储装置和其他处理装置来描述示例性实施例。然而,应当理解,本公开的实施例不限于与所示的特定说明性系统和装置配置一起使用。因此,如本文所用的术语“信息处理系统”意图广泛地解释,以便涵盖例如包括云计算和存储系统的处理系统,以及包括物理和虚拟处理资源的各种组合的其他类型的处理系统。因此,信息处理系统可以包括例如至少一个数据中心,该至少一个数据中心包括托管共享云资源的多个租户的一个或多个云。术语“信息处理系统”还涵盖了许多其他类型的企业和基于云的计算和存储系统,因为该术语在本文中被广泛使用。

图1示出了根据说明性实施例配置的信息处理系统100。信息处理系统100包括多个主机装置102-1、102-2、...、102-N。主机装置102通过网络104与至少一个存储阵列105进行通信。网络104包括多个交换结构。例如,网络104说明性地包括至少一个存储区域网络(SAN),并且该结构说明地包括通过一个或多个SAN将主机装置102中的一个或多个与存储阵列105互连的一组多个交换结构中的相应的不同交换结构。

存储阵列105包括多个存储装置106-1、...、106-M,该多个存储装置各自存储在主机装置102中的一个或多个上运行的一个或多个应用程序所利用的数据。存储装置106说明性地布置在一个或多个存储池中。存储阵列105及其相关联的存储装置106是在本文中通常被称为“存储系统”的示例。本实施例中的此存储系统由主机装置102共享,并且因此在本文中也称为“共享存储系统”。

主机装置102说明性地包括能够通过网络104与存储阵列105通信的相应的计算机、服务器或其他类型的处理装置。例如,主机装置102的至少一个子集可以被实现为计算服务平台或其他类型的处理平台的相应虚拟机。在此类布置中,主机装置102说明性地提供计算服务,诸如代表与主机装置102中的相应主机装置相关联的一个或多个用户中的每一个执行一个或多个应用程序。本文中的术语“用户”意图广泛地解释,以便涵盖人、硬件、软件或固件实体以及此类实体的组合的众多布置。可以根据平台即服务(PaaS)模型为用户提供计算服务,但是可以理解,可以使用许多其他云基础设施布置。

尽管在附图中说明性地示为与网络104分离,但是在一些实施例中,存储阵列105的至少各部分可以被认为是网络104的一部分。例如,在其中网络104包括至少一个SAN的实施例中,存储阵列105可以被视为SAN的一部分。

存储阵列105的存储装置106实现被配置为存储与主机装置102相关联的用户的对象的逻辑单元(LUN)。这些对象可以包括文件、块或其他类型的对象。主机装置102利用读取和写入命令以及通过网络104传输的其他类型的命令与存储阵列105交互。在一些实施例中,此类命令更具体地包括小型计算机系统接口(SCSI)命令,但是在其他实施例中可以使用其他类型的命令。如给定IO操作在本文中所广泛使用,所述术语说明性地包括一个或多个此类命令。本文中对诸如“输入-输出”和“IO”的术语的引用应当被理解为是指输入和/或输出。因此,IO操作涉及输入和输出中的至少一者。

而且,如本文所使用的术语“存储装置”意图广泛地解释,以便涵盖例如逻辑存储装置,诸如LUN或其他逻辑存储卷。逻辑存储装置可以在存储阵列105中被定义为包括一个或多个物理存储装置的不同部分。因此,存储装置106可以被视为包括相应LUN或其他逻辑存储卷。

主机装置102中的每一个说明性地具有到存储阵列105的多个路径,其中存储阵列105的存储装置106中的至少一者对于路径中的给定路径上的该主机装置是可见的。给定的主机装置可以在多个路径上访问存储装置106中的给定存储装置。如图所示,主机装置102中的每一个说明性地具有经由网络104到存储阵列105的n个路径,但是许多其他布置也是可能的。例如,主机装置102中的不同主机装置可以具有通向存储阵列105的不同数量和类型的路径。

存储阵列105的存储装置106中的不同存储装置说明性地在IO操作处理中表现出不同的等待时间。在一些情况下,同一存储装置可能对多个路径中的不同路径表现出不同的等待时间,可以通过所述路径从主机装置102中的给定主机装置访问该存储装置。

图1的实施例中的主机装置102、网络104和存储阵列105被假设为使用至少一个处理平台来实现,每个处理平台包括一个或多个处理装置,每个处理装置具有耦合到存储器的处理器。此类处理装置可以说明性地包括计算、存储和网络资源的特定布置。例如,在一些实施例中,处理装置至少部分地利用虚拟资源(诸如虚拟机(VM)或Linux容器(LXC)或两者的组合)来实现,如在其中Docker容器或其他类型的LXC被配置为在VM上运行的布置中。

尽管主机装置102和存储阵列105可以在相应的不同处理平台上实现,但是许多其他布置是可能的。例如,在一些实施例中,主机装置102和存储阵列105的至少各部分在同一处理平台上实现。存储阵列105因此可以至少部分地在实现主机装置102的至少一个子集的至少一个处理平台内实现。

网络104可以使用多个不同类型的网络来实现以互连存储系统部件。例如,网络104可以包括诸如互联网之类的全球计算机网络的一部分,但是其他类型的网络可以是网络104的一部分,包括广域网(WAN)、局域网(LAN)、卫星网络、电话或有线网络、蜂窝网络、无线网络(诸如WiFi或WiMAX网络),或这些和其他类型网络的各个部分或组合。因此,在一些实施例中,网络104包括多种不同类型的网络的组合,每种网络包括被配置为使用互联网协议(IP)或其他相关通信协议进行通信的处理装置。

作为一个更具体示例,一些实施例可以利用一个或多个高速局域网,其中相关联的处理装置利用那些装置的外围部件互连高速(PCIe)卡以及诸如InfiniBand、千兆以太网或光纤通道的联网协议而彼此通信。如本领域技术人员应当理解,在给定实施例中,众多替代联网布置是可能的。

主机装置102包括相应的多组IO队列110-1、110-2、...、110-N和相应的MPIO驱动器112-1、112-2、...、112-N。MPIO驱动器112共同地包括主机装置102的多路径层。多路径层使用在MPIO驱动器112内实现的路径选择逻辑114-1、114-2、...114-N的相应实例来提供基于结构的路径选择功能性。

MPIO驱动器112可以包括例如另外的常规MPIO驱动器,诸如来自Dell EMC的PowerPath驱动器,该驱动器以本文针对基于结构的路径选择公开的方式适当地修改。可以适当地修改来自其他驱动器供应商的其他类型的MPIO驱动器,以合并如本文所公开的基于结构的路径选择功能性。

MPIO驱动器112-1被配置为从其对应的一组IO队列110-1选择IO操作以通过网络104递送到存储阵列105。存储在该组IO队列110-1中的IO操作源说明性地包括在主机装置102-1上执行的一个或多个应用的相应过程。在系统100的给定实现方式中可能会存在其他类型的IO操作源。

MPIO驱动器112-1还被配置为确定通过网络104从主机装置102-1到存储阵列105的多个路径中的相应路径的结构标识符,并至少部分地基于结构标识符选择路径中的特定路径用于将IO操作递送到存储阵列105。

如前文所提及的,本实施例中的网络104说明性地包括至少一个SAN,并且网络104的多个结构说明性地包括通过SAN将主机装置102-1与存储阵列105互连的一组多个交换结构中的相应不同的交换结构。多个交换结构中的每一个具有不同的结构标识符,该结构标识符被假设在信息处理系统100内是全局唯一的。如本文中所使用的术语“结构标识符”意图被广义地解释为涵盖结构名称或适合标识对应的网络交换结构以用于进行基于结构的路径选择的其他类型的信息。主机装置102-1与存储阵列105之间的路径中的每一个被假设为在给定的时间点处与多个结构中的仅单个结构相关联,但是应当理解,路径与相应结构相关联可例如随着路径和/或结构被添加到系统100和/或从系统中移除而随时间改变。

在确定从主机装置102-1到存储阵列105的多个路径中的相应路径的结构标识符时,MPIO驱动器112-1说明性地在路径中的每一个上发送预定命令并至少部分地基于对预定命令的响应来确定相应路径的结构标识符。多个路径不必包括从主机装置102-1到存储阵列105的所有路径,而是可以仅包括其选择的子集。例如,可以在不同结构标识时间段中针对路径的不同子集执行对结构标识符的确定。替代地,可以在该时间段中的每一个中确定所有路径的结构标识符。

用于确定相应路径的结构标识符的预定命令说明性地包括特定类型的SCSI命令,诸如日志感测命令或模式感测命令。

在其他实施例中,可以使用其他类型的SCSI或非SCSI命令,该命令包括作为标准命令集的一部分的命令,或自定义命令,诸如并非标准命令集的一部分的“供应商唯一命令”或VU命令。因此,如本文中所使用的术语“预定命令”意图被广义地解释为涵盖例如包括多个单独命令的组合的预定复合命令。

在其上从主机装置102-1向存储阵列105发送预定命令的路径说明性地包括与相应的发起者-目标对相关联的路径,其中每个发起者包括主机总线适配器(HBA)或主机装置102-1的其他发起实体,并且每个目标包括存储阵列端口或与存储阵列105的存储装置106中的一个或多个相对应的其他目标实体。如上所述,存储装置106说明性地包括LUN或其他类型的逻辑存储装置。

例如,在至少部分地基于结构标识符来选择路径中的特定路径用于将IO操作递送到存储阵列105时,MPIO驱动器112-1的路径选择逻辑114-1说明性地标识表现出延迟响应时间的第一路径并选择具有与第一路径的结构标识符不同的相应结构标识符的路径。

作为另一示例,在至少部分地基于结构标识符来选择路径中的特定路径用于将IO操作递送到存储阵列105时,MPIO驱动器112-1的路径选择逻辑114-1说明性地标识特定IO操作在其上失败的第一路径并使用具有与第一路径的结构标识符不同的结构标识符的另一路径来重试特定IO操作。可以例如通过主机装置102-1在将IO操作发送到存储阵列105之后的指定超时时间内未能从存储阵列105接收到预期响应来指示特定IO操作的失败。

作为又一示例,在至少部分地基于结构标识符来选择路径中的特定路径用于将IO操作递送到存储阵列105时,MPIO驱动器112-1的路径选择逻辑114-1说明性地实现路径选择算法,该路径选择算法至少部分地根据路径的相应结构标识符来选择路径中的特定路径,其中路径选择算法被配置为平衡结构上的IO操作或实现其他基于结构的选择目标。

在一些实施例中,路径选择算法还考虑除了结构之外的其他路径信息,诸如主机装置HBA和存储阵列端口。例如,路径选择逻辑114-1可以将结构标识符的使用合并到基于主机装置HBA和存储阵列端口的路径选择算法中。根据此路径选择算法对失败的IO操作进行给定的重试可以为给定的重试选择与为原始失败的IO操作选择的路径具有不同的结构、主机装置HBA和存储阵列端口的路径。

在说明性实施例中,MPIO驱动器112-1不知道与特定路径相关联的交换结构细节,并且其内核空间部分不能轻易地与HBA进行通信来获得此类细节。然而,存储阵列105通常具有关于每个HBA所附接的交换结构的信息,并且MPIO驱动器112-1因此可以经由用于结构标识符确定的上述预定命令向存储阵列105查询该信息。

关于响应时间劣化,可以使用在MPIO驱动器112-1的控制下实现的多种技术来实现对与结构中的给定结构相关联的特定路径的延迟响应时间的确定。

例如,在确定是否有任何路径正在经历响应时间劣化时,MPIO驱动器112-1说明性地通过从主机装置102-1到存储阵列105的多个路径中的每一个向存储阵列105发送另一预定命令,监视路径中的每一个上的其他预定命令的响应时间,并至少部分地基于受监视响应时间来检测路径中的至少给定路径的性能问题。

用于检测响应时间劣化的预定命令可以在路径上定期发送,或在适合于有效监视响应时间的其他指定条件下发送。在一些实施例中,可以在多个不同时间段中的每一个中在路径中的每一个上发送预定命令。不同的时间段不必具有相同的持续时间,并且在其上发送预定命令的特定一组路径可以随时间段而变化。

用于检测响应时间劣化的预定命令说明性地不同于用于确定结构标识符的先前描述的预定命令。例如,用于检测响应时间劣化的预定命令说明性地包括特定类型的命令,该命令被选择为引起来自存储阵列105的基本立即响应,使得受监视响应时间主要由路径延迟而不是存储阵列延迟组成。此命令在本文也被称为“立即”命令,因为它引起来自存储阵列105的基本上立即响应,由此允许MPIO驱动器112-1将针对路径中的给定路径的受监视响应时间用于表征给定路径的延迟。

在一些实施例中,用于检测响应时间劣化的预定命令还包括特定类型的SCSI命令。例如,用于检测响应时间劣化的预定命令说明性地包括测试单元就绪(TUR)命令、查询命令和读取容量命令中的至少一者。这些全部都是SCSI“立即”命令的示例。而且,在其他实施例中,可以使用其他类型的SCSI或非SCSI命令,该命令包括作为标准命令集的一部分的命令,或自定义命令,诸如并非标准命令集的一部分的“供应商唯一命令”或VU命令。

尽管在上述实施例中使用不同的预定命令来确定结构标识符和检测响应时间,但是有可能可以使用单个预定命令(可能为多个不同子命令的组合的形式)来执行这两个功能。

如上所述,主机装置102与存储阵列105之间的路径可以随时间变化。例如,从主机装置102-1到存储阵列105的一个或多个新路径的添加或从主机装置102-1到存储阵列105的一个或多个现有路径的删除可能是由于存储阵列105的存储装置106的至少一部分的相应添加或删除造成的。由于分区和屏蔽更改或由存储管理员或其他用户执行的其他类型的存储系统重新配置,也可能发生路径的添加或删除。

在一些实施例中,结合新存储阵列的添加或从包括多个存储阵列的存储系统中删除现有存储阵列、可能结合用于迁移操作和复制操作中的至少一者的存储系统的配置来添加或删除路径。

例如,存储系统可以包括第一和第二存储阵列,其中在从存储系统移除第一存储阵列之前将数据从第一存储阵列迁移到第二存储阵列。

作为另一示例,存储系统可以包括生产存储阵列和恢复存储阵列,其中数据从生产存储阵列被复制到恢复存储阵列以便在涉及生产存储阵列的故障的情况下可用于数据恢复。

在这些和其他情况下,可以根据需要重复路径发现扫描以便发现新路径的添加或现有路径的删除。

可以利用常规的MPIO驱动器(诸如PowerPath驱动器)的已知功能性执行给定的路径发现扫描。

在一些实施例中,路径发现扫描可以进一步被配置为标识与在路径发现扫描中标识的一个或多个新路径相关联的一个或多个新LUN或其他逻辑存储卷。路径发现扫描可以包括例如一次或多次总线扫描,该总线扫描被配置为发现已被添加到存储阵列105的任何新LUN的出现以及发现已从存储阵列105中删除的任何现有LUN的消失。

在一些实施例中,MPIO驱动器112-1包括用户空间部分和内核空间部分。MPIO驱动器112-1的内核空间部分可以被配置为检测上文提及的类型的一个或多个路径改变,并指示MPIO驱动器112-1的用户空间部分响应于检测到的路径更改而运行路径发现扫描。MPIO驱动器112-1的用户空间部分与内核空间部分之间的其他功能性划分是可能的。

对于在路径发现扫描中标识的一个或多个新路径中的每一个,主机装置102-1可以被配置为对该路径执行主机注册操作。针对给定的新路径的主机注册操作说明性地向存储阵列105提供对主机装置102-1已发现新路径的通知。

在至少部分地基于路径中的给定路径的受监视响应时间来检测给定路径的性能问题时,MPIO驱动器112-1说明性地被配置为根据存储阵列105对用于检测响应时间劣化的预定命令的当前实例的响应来确定给定路径的当前响应时间,将当前响应时间与给定路径的先前响应时间进行比较,该先前响应时间是根据存储阵列105对用于检测响应时间劣化的预定命令的先前实例的响应而确定的,并且响应于当前响应时间比先前响应时间大超过阈值量,检测给定路径的性能问题。

可以使用至少部分基于对用于检测响应时间劣化的预定命令的一个或多个实例的受监视响应时间的替代检测技术。例如,如果给定路径在当前时间段中的受监视响应时间超过指定阈值,则可以检测到该给定路径的性能问题,而无需参考相对于任何先前时间段的响应时间差。

在一些实施例中,主机装置102-1被配置为响应于检测到给定路径的性能问题而生成通知以递送到主机管理员。另外或替代地,主机装置102-1可以被配置为响应于检测到给定路径的性能问题而生成通知以递送到存储阵列105。在其他实施例中可以利用其他类型的报告布置,其中一些涉及存储装置到进程的映射以及进程到应用程序的映射。

与MPIO驱动器112-1的基于结构的路径选择功能性相关联的上述功能说明性地至少部分地在其路径选择逻辑114-1的控制下执行。例如,路径选择逻辑114-1说明性地被配置为控制将在下文结合图2描述的流程图的步骤的执行。

假设以与上面和本文其他各处针对第一MPIO驱动器112-1描述的方式类似的方式来配置其他MPIO驱动器112中的每一个。因此,系统100的其他主机装置102还被配置为通过网络104与存储阵列105进行通信,并且此类其他主机装置的MPIO驱动器112各自类似地被配置为从该组IO队列110中的其对应的IO队列选择IO操作用于通过网络104递送到存储阵列105并执行所公开的基于结构的路径选择功能性。因此,假设上文在第一MPIO驱动器112-1的上下文中描述的基于结构的路径选择功能性由其他MPIO驱动器112-2至112-N中的每一个类似地执行。

还可以利用公知的MPIO功能性来以其他方式配置MPIO驱动器112,诸如在K.Piepho于2017年6月发表在Dell EMC Engineering上的“Dell EMC SC系列存储:微软多路径I/O”(通过引用并入本文)中描述的功能性。在本文公开的说明性实施例中,适当地修改此类常规MPIO功能性以支持基于结构的路径选择。

尽管在一些实施例中,由主机装置102用来与存储阵列105通信的某些命令说明性地包括SCSI命令,但是在其他实施例中可以使用其他类型的命令和命令格式。例如,一些实施例可以利用与如在2017年5月的NVMe规范修订版1.3中所描述的NVM高速(NVMe)相关联的命令特征和功能性来实现IO操作,该NVMe规范修订版1.3通过引用并入本文。可以在本文公开的说明性实施例中利用的这种类型的其他存储协议包括NVMe over Fabric,也被称为NVMeoF。

如先前指示,由于在如本文所公开的多路径层中不使用基于结构的路径选择技术,因此可能难以检测和缓解结构相关性能劣化,诸如由网络交换结构重新配置引起的那些性能劣化。例如,结构重新配置可能需要结构重新发现过程,其中可能在给定结构上生成并传输大量RSCN消息,在本文也被称为“RSCN storm”。在此RSCN storm期间,给定结构无法为IO操作提供服务,从而可能导致对系统内的性能产生显著的不利影响。如果结构足够大,则RSCN storm可能会持续数十秒并导致IO操作大量超时。在常规实践下,可能在当前正经历RSCN storm的同一结构上重新发送受到超时限制的IO操作。这可能导致此类重试失败,从而可能导致应用程序失败并进一步加剧该问题。系统内的其他类型的结构相关问题也可能导致类似问题。

在本文的说明性实施例中,通过利用包括MPIO驱动器112中的一个或多个的多路径层来至少部分地基于如上所述的结构标识符来选择路径,有利地检测并缓解与RSCNstorms和其他结构相关问题相关联的性能劣化。例如,说明性实施例确保在其中原始IO故障是由于结构相关问题引起的情况下,针对失败IO操作的重试的基于结构的路径选择将具有更大的成功机会。另外或替代地,基于结构的路径选择可以在给定的一组结构上并入循环或其他类型的路径选择,例如以通过特定方式在该组结构上分配IO处理负载。

可以利用各种不同的存储阵列或其他类型的存储系统、可能利用诸如SCSI命令之类的标准化命令或供应商唯一命令来实现此功能性。

假设在本实施例中的存储阵列105包括使用存储阵列105的快闪存储器或其他类型的非易失性存储器实现的持久性存储器。更具体示例包括基于NAND的快闪存储器或其他类型的非易失性存储器,诸如电阻RAM、相变存储器、自旋扭矩传递磁阻RAM(STT-MRAM)以及基于3D XPoint

本实施例中的存储阵列105还包括诸如响应时间控制模块120和IO操作优先级队列122之类的附加部件,该附加部件说明性地被配置为利用上述持久性存储器。例如,响应时间控制模块120可以用于至少部分地基于由存储阵列105存储在其持久性存储器中的服务水平目标(SLO)信息来实现针对特定IO操作的响应时间的基于存储阵列的调整。响应时间控制模块120与IO操作优先级队列122结合操作。

存储阵列105利用其IO操作优先级队列122来为IO操作提供不同水平的性能。例如,IO操作优先级队列122可以具有相应的不同优先级水平。存储阵列105可以被配置为通过将IO操作中的不同IO操作分配给IO操作优先级队列122中的不同IO操作优先级队列来为IO操作中的不同IO操作提供不同的优先级水平。IO操作优先级队列122说明性地与用于处理存储阵列105中的IO操作的相应SLO相关联。

如在2017年12月21日提交的题为“具有利用应用程序进程检测的输入-输出性能控制的存储系统”的美国专利申请序列号15/849,828中所公开的,进程标签可以用于将IO操作中的不同IO操作分配给IO操作优先级队列122中的不同IO操作优先级队列,该美国专利申请通过引用并入本文。

如上文所提及的,主机装置102与存储阵列105之间的通信可以利用在一种或多种网络上实现的PCIe连接或其他类型的连接。例如,说明性实施例可以使用诸如串行附接SCSI(SAS)和串行ATA(SATA)之类的接口。在其他实施例中,可以使用众多其他接口和相关联的通信协议。

在一些实施例中,存储阵列105可以以基于云的系统(诸如亚马逊网络服务(AWS)系统)的形式被实现为云基础设施的一部分。可以用于提供存储阵列105的至少各部分以及系统100的可能其他部分的基于云的系统的其他示例包括谷歌云平台(GCP)和微软Azure。

存储阵列105可以另外或替代地被配置为实现多层存储系统的多个不同的存储层。例如,给定多层存储系统可以包括使用快闪存储装置实现的快速层或性能层以及使用硬盘驱动装置实现的容量层。对本领域技术人员显而易见的是,在其他实施例中可以使用多种其他类型的基于服务器的快闪存储装置和多层存储系统。在给定存储层中使用的特定存储装置可以根据给定实施例的特定需求而变化,并且可以在单个存储层内使用多种不同的存储装置类型。如先前所指示,如本文中所使用的术语“存储装置”意图被广泛地解释,并且因此可以涵盖例如磁盘驱动器、快闪驱动器、固态驱动器、混合驱动器或其他类型的存储产品和装置或其部分,并且说明性地包括逻辑存储装置诸如LUN。

作为另一个示例,存储阵列105可以用于在包括由一个或多个网络互连的多个存储节点的集群存储系统中实现一个或多个存储节点。

因此,应显而易见的是,如本文所用的术语“存储阵列”意图广泛地解释,并且可涵盖可商购获得的存储阵列的多个不同的实例。

例如,存储阵列105可以包括一个或多个存储阵列,诸如可购自Dell EMC的

这些和其他存储系统可以是本文更一般地称为处理平台的一部分,所述处理平台包括一个或多个处理装置,每个处理装置包括耦合到存储器的处理器。给定的此类处理装置可以对应于一个或多个虚拟机或其他类型的虚拟化基础设施,诸如Docker容器或其他类型的LXC。如上文所指示的,系统100的此类元件之间的通信可以在一种或多种网络上进行。

如本文所使用的术语“处理平台”意图被广义地解释,以包括例如但不限于被配置为通过一种或多种网络进行通信的多组处理装置和相关联的存储系统。例如,主机装置102的分布式实现方式是可能的,其中主机装置102中的某些主机装置驻留在处于第一地理位置的一个数据中心中,而主机装置102中的其他主机装置驻留在处于可能远离第一地理位置的一个或多个其他地理位置的一个或多个其他数据中心中。因此,在系统100的一些实现方式中,主机装置102中的不同主机装置可能驻留在与存储阵列105不同的数据中心。

主机装置102和/或存储阵列105的众多其他分布式实现方式是可能的。因此,存储阵列105也可通过分布式方式跨多个数据中心实现。

应当理解,仅通过示例呈现说明性实施例的这些和其他特征,并且不应以任何方式将其解释为限制性的。因此,在其他实施例中,可以使用不同数量、类型和布置的系统部件,诸如主机装置102、网络104、存储阵列105、存储装置106、多组IO队列110、MPIO驱动器112以及路径选择逻辑114的实例。

还应当理解,在如图1所示的系统100中实现的特定组模块和其他部件仅以示例的方式呈现。在其他实施例中,可以使用仅这些部件的子集,或者附加的或替代的多组部件,并且此类部件可以表现出替代功能性和配置。

现在将参考图2的说明性实施例的流程图来更详细地描述信息处理系统100的操作。如图所示的过程包括步骤200至208并且适合在系统100中使用,但是更普遍地适于包括多个主机装置和共享的存储系统的其他类型的系统。假设该实施例中的共享存储系统包括具有多个存储装置的至少一个存储阵列。存储装置可以包括逻辑存储装置,诸如LUN或其他逻辑存储卷。

图2的过程的步骤说明性地主要由给定主机装置的MPIO驱动器或在给定主机装置的MPIO驱动器的控制下执行,但是系统部件的其他布置可以执行其他实施例中的步骤中的一个或多个的至少各部分。该实施例进一步假设由主机装置在生成诸如针对存储阵列的读取和写入操作之类的IO操作中利用的命令包括SCSI命令,但是也可以使用其他类型的命令。

在步骤200中,主机装置中的MPIO驱动器通过从主机装置到存储阵列的多个路径中的每一个定期地发送预定命令。该特定的预定命令是用于以前述方式确定相应路径的结构标识符的预定命令的类型。其他类型的预定命令可以用于其他目的,诸如确定是否有任何路径表现出响应时间劣化。

可以使用结合主机装置的引导执行的初始路径发现扫描来确定从主机装置到存储阵列的至少一些路径。对于该实施例的描述,假设主机装置已经发现通向存储阵列的多个路径,并且进一步假设存储阵列的至少一个存储装置在路径中的每一个上对于主机装置是可见的。此外,假设路径中的不同路径与包括多个交换结构的网络的相应的不同结构(诸如系统100的网络104)相关联。

可以响应于一个或多个检测到的路径变化或在其他指定条件下重复进行路径发现扫描。例如,存储管理员或其他用户可以对存储阵列执行分区和/或屏蔽更改,从而导致主机装置可使用至少一个新路径。因此,由主机装置在其上定期地将预定命令发送到存储阵列的该组多个路径可以随时间变化。

在步骤202中,MPIO驱动器处理对通过多个路径中的每一个发送的对预定命令的响应,以便确定路径中的相应路径的HBA所连接的相应结构的结构标识符。

在步骤204中,可能使用与用于确定结构标识符的命令不同的预定命令来确定是否有任何一个或多个路径表现出响应时间劣化。如果有一个或多个路径表现出响应时间劣化,则该过程移至步骤206,否则移至步骤208。

步骤204中的确定说明性地涉及MPIO驱动器监视用于预定命令的响应时间,该预定命令用于检测路径中的每一个上的响应时间劣化。例如,MPIO驱动器可以确定与用于检测给定路径上的响应时间劣化的预定命令的传输相关联的传输时间戳,确定与在给定路径上对预定命令的响应的接收相关联的接收时间戳,并将响应时间计算为接收时间戳与传输时间戳之间的差值。可以使用许多其他技术来监视用于预定命令的响应时间,该预定命令用于检测主机装置与存储阵列之间的路径中的相应路径上的响应时间劣化。

在一些实施例中,可以将所有检测到的响应时间劣化与指定阈值进行比较,其中仅超过阈值的那些响应时间劣化有助于步骤204中的可能肯定性确定。因此,步骤204中的确定可以利用一个或多个阈值以便将肯定性确定限制为大幅响应时间劣化的情况。

例如,在该实施例中,对给定路径的性能问题的检测说明性地包括:根据存储阵列对用于检测响应时间劣化的预定命令的当前实例的响应来确定给定路径的当前响应时间;将当前响应时间与给定路径的先前响应时间进行比较,该先前响应时间是根据存储阵列对预定命令的先前实例的响应而确定的;以及响应于当前响应时间比先前响应时间大超过阈值量,检测给定路径的性能问题。在该示例中,当前响应时间与先前响应时间之间的差值提供了上述响应时间差。在其他实施例中利用的其他性能问题检测技术可以基于单个时间段的响应时间,而不是基于时间段之间的响应时间差。

在步骤206中,MPIO驱动器调整路径选择算法以暂时最大程度地减少或以其他方式避免利用与在步骤204中检测到的一个或多个劣化路径相关联的结构。例如,可以调整路径选择算法使得在与所关注的结构相对应的路径上不发送IO操作或仅发送最少数量的IO操作。替代地,可以对与该结构相对应的路径分配比那些路径在路径选择算法中原本具有的更低的优先级。在特定时间段之后,诸如在给定所讨论的结构的大小和配置的情况下完成结构发现过程所需的预期时间量之后,可以自动颠倒在步骤206中进行的调整。因此,在该结构上的潜在RSCN storm的预期时间量过去之后,该路径选择算法可以返回到以正常方式选择与该结构相关联的路径。其它布置是可能的。例如,可以响应于检测到一个或多个路径的先前检测到的响应时间劣化的颠倒而颠倒步骤206中进行的调整。

在步骤208中,确定是否已经处理了对当前时间段的所有命令响应。如果尚未处理当前时间段的所有命令响应,则该过程返回到所指示的步骤202以处理一个或多个附加命令响应。否则,该过程返回到步骤200以发送预定命令的附加实例以用于确定下一时间段的结构标识符。

假设在共享存储阵列的相应的附加主机装置中执行图2的过程的多个附加实例。

结合图2的流程图描述的特定处理操作和其他系统功能性仅以说明性示例的方式呈现并且不应以任何方式解释为限制本公开的范围。替代实施例可以使用涉及主机装置、存储系统和基于结构的路径选择功能性的其他类型的处理操作。例如,在其他实施例中,可以改变过程步骤的顺序,或者可以至少部分地彼此并发而不是连续地执行某些步骤。而且,可以定期地重复过程步骤中的一个或多个,或者可以彼此并行地执行该过程的多个实例以便在给定的信息处理系统内实现多个不同的基于结构的路径选择布置。

诸如结合图2的流程图描述的功能性可以至少部分地以存储在存储器中并且由诸如计算机或服务器之类的处理装置的处理器执行的一个或多个软件程序的形式来实现。如以下将描述的,具有在其中体现的一个或多个软件程序的可执行程序代码的存储器或其他存储装置是在本文中通常被称为“处理器可读存储介质”的示例。

现在参考图3,示出了另一个说明性实施例。在该实施例中,并且根据包括MPIO层330、HBA层332、交换结构层334和存储阵列端口层336的分层系统架构来配置包括基于结构的路径选择逻辑314的至少一个实例的信息处理系统300。MPIO层330和HBA层332与一个或多个主机装置相关联,交换结构层334与一个或多个SAN或其他类型的网络相关联,并且存储阵列端口层336与一个或多个存储阵列(“SA”)相关联。MPIO层330是本文也被称为多路径层的示例,并且包括在相应的主机装置中实现的一个或多个MPIO驱动器。每个此类MPIO驱动器说明性地包括基本上如先前所描述地配置的路径选择逻辑314的实例。在其他实施例中可以使用附加或替代的层和路径选择逻辑布置。

在系统300中,路径选择逻辑314被配置为选择不同路径用于从给定主机装置向存储阵列发送IO操作。如图所示的这些路径包括从特定的HBA(标记为HBA1)通过特定的交换结构(标记为SF1)到特定的存储阵列端口(标记为PORT1)的第一路径,以及从另一特定的HBA(标记为HBA2)通过另一特定的交换结构(标记为SF2)到另一特定的存储阵列端口(标记为PORT2)的第二路径。仅通过说明性示例示出了这两个特定路径,并且在许多实际实现方式中,该一个或多个主机装置与该一个或多个存储阵列之间通常将存在极大量的路径,这取决于特定系统配置及其部署的HBA、交换结构和存储阵列端口的数量。例如,图3的实施例中的每个主机装置如同图1的实施例一样可以说明性地具有通向共享存储阵列的一组n个路径,或者替代地,主机装置中的不同主机装置可以具有通向存储阵列的不同数量和类型的路径。

在该实施例中,MPIO层330的路径选择逻辑314选择用于将IO操作递送到具有存储阵列端口层336的存储阵列端口的一个或多个存储阵列的路径。该路径选择是至少部分地基于针对从对应的主机装置到一个或多个存储阵列的多个路径中的相应路径确定的结构标识符。

例如,路径选择逻辑314说明性地将图中所示的两个路径中的每一个与其对应的结构标识符SF1或SF2相关联。给定路径的结构标识符说明性地通过在每个路径上发送预定命令并处理在每个路径上接收到的对应响应来确定。

路径选择逻辑314还说明性地具有指示可能表现出响应时间劣化的任何特定路径的信息。利用用于检测响应时间劣化的其他预定命令来确定此类信息,但是在一些实施例中有可能可以将相同的预定命令用于结构标识符确定和响应时间劣化的检测。

路径选择逻辑314然后利用结构标识符和指示在选择路径用于将IO操作发送到一个或多个存储阵列时的任何响应时间劣化的信息。

例如,如果与结构标识符SF1相关联的第一路径表现出延迟响应时间,则路径选择逻辑314说明性地优先考虑选择具有不同结构标识符的一个或多个其他路径,诸如与结构标识符SF2相关联的第二路径。这避免即使给定交换结构当前正经历RSCN storm或其他类型的结构相关性能劣化但仍重复选择与该结构相关联的路径的情况。

作为另一示例,如果与结构标识符SF1相关联的第一路径导致失败的IO操作,则路径选择逻辑314不通过与同一结构标识符SF1相关联的另一路径重试IO操作,而是选择具有不同的结构标识符的另一路径,诸如与结构标识符SF2相关联的第二路径。这避免在当前正经历RSCN storm或其他类型的结构相关性能劣化的同一结构上发送重试的情况。

可以在路径选择算法或路径选择逻辑314的其他路径选择机制中进行这些以及各种其他类型的调整,以在路径选择过程中考虑结构标识符。

如前文所提及的,可以由不同主机装置中的不同MPIO驱动器执行上述路径选择过程的不同实例。

上文描述的特定的基于结构的路径选择布置仅通过说明性示例来呈现。在其他实施例中,这些和其他特征的许多替代布置可以用于实现基于结构的路径选择。

相对于常规布置,本文公开的说明性实施例可以提供大量显著优点。例如,一些实施例将一个或多个主机装置的多路径层配置为包括用于SAN或一个或多个主机装置在其上与存储阵列或其他类型的存储系统进行通信的其他类型的网络中的基于结构的路径选择的功能性。此类布置中的多路径层可以被配置为确定相应路径的结构名称或其他类型的结构标识符并以考虑相应路径的结构标识符的方式来调整路径选择。

此类实施例有利地允许MPIO驱动器最大程度地减少或避免选择与由于正在进行的结构重新发现过程或其他结构相关问题而当前表现出性能劣化的结构相关联的路径。

因此,说明性实施例可以检测并缓解与由于结构重新发现与网络交换结构重新配置结合导致的RSCN storm相关联的性能劣化。结果,实现了改善IO操作处理中的性能。

说明性实施例可以用于通过利用结构路径信息来增强给定系统内的IO弹性。例如,在给定的失败IO操作的情况下,基于结构的路径选择过程可以确保为失败IO操作的重试而选择的路径与和在其上原始IO操作失败的路径不同的交换结构相关联。

可以使用多种不同的存储阵列和其他类型的存储系统来实现所公开的功能性。

这些和其他布置有利地被配置为即使在存在显著路径改变(诸如当由于分区和屏蔽改变或由存储管理员或其他用户执行的其他类型的存储系统重新配置而增加或删除路径时可能导致的那些改变)的情况下也提供有效的路径选择。

应当理解,上文描述的特定优点与特定说明性实施例相关联,并且不需要存在于其他实施例中。而且,如在图式中示出并且如上所述的特定类型的信息处理系统特征和功能性仅是示例性的,并且在其他实施例中可使用众多其他布置。

上面已经指出,可以使用一个或多个处理平台来实现如本文所公开的信息处理系统的各部分。现在将更详细地描述此类平台的说明性实施例。在其他实施例中,这些和其他处理平台可以用于实现其他信息处理系统的至少各部分。一种给定的此类处理平台包括至少一个处理装置,该至少一个处理装置包括耦合到存储器的处理器。

可以用于实现信息处理系统的至少一部分的处理平台的一个说明性实施例包括云基础设施,该云基础设施包括使用在物理基础设施上运行的管理程序实现的虚拟机。云基础设施还包括在管理程序的控制下在虚拟机中的相应虚拟机上运行的多组应用程序。也可以使用多个虚拟机管理程序,每个虚拟机管理程序使用至少一个基础物理机提供一组虚拟机。由一个或多个管理程序提供的不同组的虚拟机可以用于配置系统各个部件的多个实例。

这些和其他类型的云基础架构可以用于提供在本文中也被称为多租户环境的内容。说明性地实现一个或多个系统部件(诸如虚拟机或其各部分)以供此类多租户环境的租户使用。

如本文公开的云基础设施可以包括基于云的系统,诸如亚马逊网络服务、谷歌云平台和微软Azure。在说明性实施例中,此类系统中提供的虚拟机可以用于实现多层存储系统的快速层或其他前端层。可以使用一个或多个对象存储(诸如Amazon S3、谷歌云平台云存储和微软Azure Blob存储)来实现此类多层存储系统的容量层或其他后端层。

在一些实施例中,云基础设施另外或替代地包括使用一个或多个容器主机装置的相应操作系统内核控制组说明性地实现的多个容器。例如,云基础设施的给定容器说明性地包括Docker容器或使用内核控制组实现的其他类型的LXC。容器可以在多租户环境中的虚拟机上运行,但是其他布置也是可能的。容器可以用于在系统100内实现各种不同类型的功能性。例如,容器可以用于实现基于云的系统的相应计算节点或存储节点。而且,容器可以与其他虚拟化基础设施(诸如使用管理程序实现的虚拟机)结合使用。

可以用于实现信息处理系统的至少一部分的处理平台的另一说明性实施例包括通过至少一种网络彼此通信的多个处理装置。网络可以包括任何类型的网络,例如包括全球计算机网络(诸如互联网)、WAN、LAN、卫星网络、电话或有线网络、蜂窝网络、无线网络(诸如WiFi或WiMAX网络),或这些和其他类型网络的各种部分或组合。

处理平台的每个处理装置包括耦合到存储器的处理器。处理器可以包括微处理器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)或其他类型的处理电路,以及此类电路元件的部分或组合。存储器可以任何组合的形式包括随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器或其他类型的存储器。存储器和本文所公开的其他存储器应被视为更一般地称为存储一个或多个软件程序的可执行程序代码的“处理器可读存储介质”的事物的说明性示例。

包括此类处理器可读存储介质的制品被认为是说明性实施例。给定的此类制品可以包括例如存储阵列、存储磁盘或包含RAM、ROM、快闪存储器或其他电子存储器的集成电路,或多种其他类型的计算机程序产品中的任何一种。如本文所用的术语“制品”应被理解为排除瞬时的传播信号。

处理装置中还包括网络接口电路,其用于将处理装置与网络和其他系统部件介接,并且可以包括常规收发器。

作为另一示例,在一些实施例中的给定处理平台的各部分可以包括融合基础设施,诸如来自VCE(即,虚拟计算环境公司,现在是Dell EMC的融合平台和开发部)的VxRail

而且,仅通过示例呈现这些特定的处理平台,并且其他实施例可以包括附加的或替代的处理平台,以及呈任何组合形式的众多不同的处理平台,其中每个此类平台包括一个或多个计算机、服务器、存储装置或其他处理装置。

因此,应当理解,在其他实施例中,可以使用附加的或替代元件的不同布置。这些元素的至少一个子集可以在公共处理平台上共同实现,或者每个此类元素可以在单独的处理平台上实现。

而且,在如本文公开的信息处理系统中,计算机、服务器、存储装置或其他部件的许多其他布置也是可能的。此类部件可以通过任何类型的网络或其他通信介质与信息处理系统的其他元件进行通信。

如先前所指示,如本文所公开的信息处理系统的部件可以至少部分地以存储在存储器中并且由处理装置的处理器执行的一个或多个软件程序的形式来实现。例如,说明性地以在一个或多个处理装置上运行的软件的形式来实现主机装置102、网络104和存储阵列105的功能性的至少各部分。作为更具体示例,路径选择逻辑114的实例可以至少部分地在软件中实现,如本文先前所指示的。

应再次强调,上述实施例仅出于说明目的而呈现。可以使用许多变型和其他替代的实施例。例如,利用主机装置、网络、存储系统、存储阵列、存储装置、处理器、存储器、IO队列、MPIO驱动器、路径选择逻辑和附加的或替代的部件的其他布置,所公开的技术可适于多种其他类型的信息处理系统。而且,在其他实施例中,可以改变在附图中说明性地示出的系统和装置元件的特定配置以及相关联的处理操作。例如,在其他实施例中可以使用多种不同的MPIO驱动器配置和相关联的基于结构的路径选择布置。此外,以上在描述说明性实施例的过程中做出的各种假设也应被视为示例性的,而不是要求或限制。所附权利要求的范围内的众多其他替代实施例对于本领域技术人员将是显而易见的。

相关技术
  • 具有至少部分基于结构标识符实现路径选择的多路径层的主机装置
  • 用于至少部分地基于无线局域网物理层报头中的标识符来执行帧内操作的技术
技术分类

06120112893449