首页> 中国专利> 对主机IO负载模式分类并将分类传送到存储系统

对主机IO负载模式分类并将分类传送到存储系统

摘要

一个实施例中的设备包括主机装置,该主机装置被配置为通过网络与包括多个存储装置的存储系统进行通信。该主机装置包括一组输入‑输出队列和多路径输入‑输出驱动器,该多路径输入‑输出驱动器被配置为从该组输入‑输出队列选择输入‑输出操作以输送到存储系统。该多路径输入‑输出驱动器被配置为分析在预定时间段内主机装置的输入‑输出负载模式,并至少部分地基于该分析将该输入‑输出负载模式分类为多个预定负载模式类别中的一者。该多路径输入‑输出驱动器被配置为将指定输入‑输出负载模式的分类的信息传输到存储系统。该存储系统被配置为至少部分地基于该输入‑输出负载模式的分类来调整其对输入‑输出操作的处理。

著录项

  • 公开/公告号CN112969992A

    专利类型发明专利

  • 公开/公告日2021-06-15

    原文格式PDF

  • 申请/专利权人 伊姆西IP控股有限责任公司;

    申请/专利号CN201980073347.X

  • 发明设计人 R·帕特尔;A·塔赫;

    申请日2019-09-27

  • 分类号G06F3/06(20060101);G06F13/10(20060101);

  • 代理机构11283 北京润平知识产权代理有限公司;

  • 代理人肖冰滨;王晓晓

  • 地址 美国马萨诸塞州

  • 入库时间 2023-06-19 11:26:00

说明书

技术领域

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

背景技术

存储阵列和其他类型的存储系统通常由多个主机装置通过网络共享。然而,当来自各种主机装置的输入-输出(IO)负载模式随时间变化或波动时,在此类布置中可能会出现问题,这可能导致存储系统性能劣化。在一些情况下,性能劣化可能与存储系统未针对主机装置表现的特定负载模式进行优化或校准有关。例如,从低负载水平跳到高负载水平的主机装置可能最初可能无法从存储系统获得最佳性能,因为存储系统可能需要一段时间才能针对该较高负载进行提升或重新校准。常规技术无法充分检测和缓解这些性能劣化。

发明内容

说明性实施例将一个或多个主机装置的多路径层配置为包括用于对主机IO负载模式进行分类和预测的功能性。指示分类和预测的信息可以被传输到存储系统以供存储系统使用。该多路径层说明性地包括被配置为处理至少一个主机装置的IO操作的至少一个多路径输入-输出(MPIO)驱动器。此类布置中的多路径层可以被配置为分析在预定时间段内主机装置的IO负载模式,并至少部分地基于该分析将该IO负载模式分类为多个预定负载模式类别中的一者。此类布置中的多路径层还可以被配置为将指定IO负载模式的分类的信息传输到存储系统。该存储系统被配置为至少部分地基于该IO负载模式的分类来调整其对IO操作的处理。

此类实施例有利地允许MPIO驱动器通过向存储系统提供可以由存储系统使用以促进存储系统优化的指定负载模式的分类的信息来最大程度地减少或避免由于主机装置的IO负载模式的波动而导致的性能劣化。结果,实现了改善IO操作处理中的性能。

在一些实施例中,分析该负载模式包括确定在该预定时间段内该主机装置的每秒输入-输出操作(IOPS)值。IO负载模式到预定负载模式类别的分类是至少部分地基于所确定的IOPS值。

在示例性实施例中,IO负载模式到预定负载模式类别中的一者的分类可以包括:将所确定的IOPS值与和预定负载模式类别相关联的IOPS阈值进行比较;以及至少部分地基于所确定的IOPS值与IOPS阈值的比较来将IO负载模式分类为预定负载模式类别中的一者。

在实施例中,预定负载模式类别可以是多个预定负载模式类别中的一者。该多个预定负载模式类别中的每一者可以对应于与多个IOPS阈值相关联的值范围,该多个IOPS阈值包括该IOPS阈值。

在一些实施例中,该多个预定负载模式类别中的第一预定负载模式类别可以对应于小于该多个IOPS阈值中的第一IOPS阈值的IOPS值,该多个预定负载模式类别中的第二预定负载模式类别可以对应于大于或等于该第一IOPS阈值并且小于该多个IOPS阈值中的第二IOPS阈值的IOPS值,该多个预定负载模式类别中的第三预定负载模式类别可以对应于大于或等于该第二IOPS阈值并且小于该多个IOPS阈值中的第三IOPS阈值的IOPS值,并且该多个预定负载模式类别中的第四预定负载模式类别可以对应于大于或等于该第三IOPS阈值的IOPS值。将该IO负载模式分类为该预定负载模式类别中的一者可以包括至少部分地基于所确定的IOPS值与该第一、第二、第三和第四IOPS阈值中的至少一者的比较来将该IO负载模式分类为该第一、第二、第三和第四预定负载模式类别中的一者。

在一些示范性实施例中,该多路径IO驱动器还可以被配置为确定该IO负载模式到该预定负载模式类别中的一者的分类相对于该主机装置的前一IO负载模式到该预定负载模式类别中的另一者的分类是否分类变化,其中响应于该多路径IO驱动器确定该IO负载模式到该预定负载模式类别中的一者的分类相对于该主机装置的前一IO负载模式到该预定负载模式类别中的另一者的分类是分类变化而执行将指定该IO负载模式的分类的信息传输到该存储系统。

在一些示例性实施例中,该预定负载模式类别中的一者对应于该主机装置的IOPS值的第一范围,并且该预定负载模式类别中的另一者对应于该主机装置的IOPS值的第二范围。IOPS值的第一范围可以大于IOPS值的第二范围。

在实施例中,该MPIO驱动器被配置为将指定IO负载模式的分类的信息定期地传输到存储。

在示范性实施例中,该MPIO驱动器被配置为从该存储系统获得指定该预定时间段的信息。

在又一实施例中,该MPIO驱动器还可以被配置为记录该IO负载模式的负载模式类别的相应变化的实例,并至少部分地基于该记录的实例来标识该IO负载模式的负载模式类别随时间的变化模式。该MPIO驱动器可以至少部分地基于该标识的变化模式将预测通知传输到该存储系统,该预测通知标识该IO负载模式的负载模式类别的即将来临变化。

在一些示例性实施例中,该MPIO驱动器还可以被配置为确定是否发生在该预测通知中标识的即将来临变化,并响应于确定该即将来临变化未按预测发生而清除该相应变化的记录实例。

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

附图说明

图1是说明性实施例中的信息处理系统的框图,该信息处理系统被配置有用于利用主机装置的多路径层对主机IO负载模式进行分类和预测的功能性。

图2是示出说明性实施例中的利用主机装置的多路径层对主机IO负载模式的分类的一个可能示例的流程图。

具体实施方式

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

图1示出了根据说明性实施例配置的信息处理系统100。信息处理系统100包括多个主机装置102-1、102-2、...、102-N。主机装置102通过存储区域网络(SAN)104与至少一个存储阵列105进行通信。存储阵列105包括多个存储装置106-1、...、106-M,该多个存储装置各自存储在主机装置102中的一者或多者上运行的一个或多个应用所利用的数据。存储装置106说明性地布置在一个或多个存储池中。存储阵列105及其相关联的存储装置106是在本文中更一般地被称为“存储系统”的示例。本实施例中的这种存储系统由主机装置102共享,并且因此在本文中也称为“共享存储系统”。

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

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

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

主机装置102中的每一者说明性地具有通向存储阵列105的多个路径,其中存储阵列105的存储装置106中的至少一者对于路径中的给定路径上的该主机装置是可见的。给定的主机装置可以在多个路径上访问存储装置106中的给定存储装置。

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

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

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

SAN 104可以使用多个不同类型的网络来实现以互连存储系统部件。例如,SAN104可以包括诸如互联网之类的全球计算机网络的一部分,但是其他类型的网络可以是SAN104的一部分,包括广域网(WAN)、局域网(LAN)、卫星网络、电话或电缆网络、蜂窝网络、无线网络(诸如WiFi或WiMAX网络)、或这些和其他类型网络的各个部分或组合。因此,在一些实施例中,SAN 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对主机IO负载模式进行分类和预测以及将分类和预测传输到存储系统以供存储系统使用的功能性。

MPIO驱动器通常将从主机到逻辑单元号(LUN)的所有路径分组到单个逻辑装置中,该单个逻辑装置被称为多路径逻辑装置。表示每个路径的单个块装置被称为本机装置。应用将多路径逻辑装置用于IO操作,使得IO操作可以被分布在所有可用路径上。当路径失效时,MPIO驱动器通常会将IO操作重定向到多路径逻辑装置中的其他活动路径。

本文描述的MPIO驱动器可以包括例如其他常规的MPIO驱动器,诸如Dell EMC生产的PowerPath驱动器,该驱动器以本文公开的方式适当地修改以实现用于对主机IO负载模式进行分类和预测的功能性。可以适当地修改来自其他驱动器供应商的其他类型的MPIO驱动器,以并入有用于对如本文所公开的主机IO负载模式进行分类和预测的功能性。

包括MPIO驱动器的多路径层支持主机装置102中的每一者与存储阵列105之间的多个路径。这些路径说明性地与相应的发起者-目标对相关联,其中每个发起者包括主机总线适配器(HBA)或诸如主机装置102-1之类的给定主机装置的其他发起实体,并且每个目标包括端口或与存储阵列105的存储装置106中的一者或多者相对应的其他目标实体。如上所述,存储装置106说明性地包括LUN或其他类型的逻辑存储装置。

可以在系统100中的主机装置102与存储阵列105之间添加或删除路径。例如,从主机装置102-1到存储阵列105的一个或多个新路径的添加或从主机装置102-1到存储阵列105的一个或多个现有路径的删除可能是由于存储阵列105的存储装置106的至少一部分的相应添加或删除造成的。

由于分区和掩蔽更改或由存储管理员或其他用户执行的其他类型的存储系统重新配置,也可能发生路径的添加或删除。

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

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

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

在这些和其他情况下,多路径层的MPIO驱动器可以根据需要执行路径发现扫描以便发现新路径的添加或现有路径的删除。

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

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

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

MPIO驱动器利用上述多个路径将IO操作从主机装置102发送到存储阵列105。

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

MPIO驱动器112共同地包括主机装置102的多路径层。MPIO驱动器112提供用于例如使用在MPIO驱动器112内实现的相应负载模式分类逻辑114-1、114-2、...、114-N对主机IO负载模式进行分类和预测的功能性。

现有的主机IO堆栈软件(如MPIO驱动器)通常执行IO负载平衡,但不与存储装置106(诸如例如存储阵列或后端存储系统)关于IO负载模式进行通信。

在一些实施例中,可以将主机IO负载模式分类为基于阈值的类别,诸如例如低、中等、高、极高(突发)或其他类似类别,并且指示这些类别的信息可以被传送回存储装置106以供存储装置106在处理IO操作中使用。例如,存储装置106对IO操作的处理可以被优化或配置为处置传入IO负载模式。

在一些实施例中,可以执行对主机IO负载模式的预测分析以确定例如在特定的时间间隔上是否有任何主机IO负载模式均是重复的。也可以将关于预测分析的信息提供给存储装置106以供存储装置106在处理IO操作中使用。例如,存储装置106对IO操作的处理可以被优化或配置为处置所预测的传入IO负载模式。作为示例,随着每日数据库备份的发起,主机装置102可能每天在11:30PM表现出极高(突发)的IO负载模式。当准备处理来自主机装置或来自其他主机装置的传入IO操作时,有关该主机IO负载模式的重复发生本质的知识可能对存储装置106有用。例如,在一些实施例中,主机IO负载模式的分类可以连同实际的和预测的负载模式一起被传送到存储装置106。在一些实施例中,该信息可以帮助存储装置106至少部分地基于该信息来准备处理传入IO负载或校准存储装置106以获得最佳性能。

在一些实施例中,可以将实际的和预测的IO负载模式以基于阈值的类别分类。例如,在多路径层处,在通向存储装置106的任意数量的合格路径上对接收到的IO操作进行负载平衡。多路径层知道包括以下各项的信息:IO操作是读取还是写入操作;接收到的IO操作的b_count(读/写传递计数);以及IO操作或IO操作的缓冲区是否链接在一起。在一些实施例中,例如,IO请求可以包括超过一个缓冲区,其中每个缓冲区例如使用链表被链接在一起。为了确定IOPS,可以将链中的每个缓冲区视为单独的IO请求。

在一些实施例中,可以在初始主机阵列握手期间设置或确定用于对IO负载模式进行分类的阈值。例如,在一些实施例中,存储阵列可以将每个类别的阈值提供给多路径层。在一些实施例中,可以例如基于默认参数来预定用于对IO负载模式进行分类的阈值。在一些实施例中,用于分类的阈值可以由系统的用户或管理员输入。

作为示例,IOPS阈值可以包括第一IOPS阈值L1、第二IOPS阈值L2和第三IOPS阈值L3。IO负载模式分类可以基于阈值L1、L2和L3,其中例如,低IO负载模式可以是IOPS

在一些实施例中,指示IO负载模式的分类的信息可以由主机装置102定期地提供给SAN 104。在一些实施例中,SAN 104或其某个部分可以定期地主动检查主机装置102的变量或其他参数以获得指示IO负载模式的分类的信息。例如,在一些实施例中,指示IO负载模式的分类的信息可以由主机装置102每五秒钟提供给SAN 104。可以使用任何其他时间段。在一些实施例中,该时间段可以是预定的。在一些实施例中,该时间段可以由系统的用户或管理员输入。

在一些实施例中,指示IO负载模式的分类的信息可以在IO负载模式的分类发生变化之后从主机102提供给SAN 104。

例如,在一些实施例中,指示IO负载模式的分类的信息可以响应于IO负载模式的分类的任何变化而从主机装置102传输或以其他方式提供给SAN 104。

在一些实施例中,指示IO负载模式的分类的信息可以响应于IO负载模式的分类的预定类型的变化而从主机装置102传输或以其他方式提供给SAN 104。

例如,在一些实施例中,指示IO负载模式的分类的信息可以响应于IO负载模式的分类改变为极高(突发)的IO负载模式、响应于IO负载模式的分类改变为高IO负载模式、响应于IO负载模式的分类改变为中等IO负载模式、响应于IO负载模式的分类改变为低IO负载模式或响应于IO负载模式的分类表现出任何其他预定类型的变化而从主机装置102传输或以其他方式提供给SAN 104。

在一些实施例中,例如,指示IO负载模式的分类的信息可以响应于IO负载模式的分类增加(例如,从较低IO负载模式类别改变为较高IO负载模式类别,诸如例如从低到中等、从低到高、从低到极高(突发)、从中等到高、从中等到极高(突发)、从高到极高(突发)或其他类似类型的分类变化)而从主机装置102传输或以其他方式提供给SAN 104。

在一些实施例中,例如,指示IO负载模式的分类的信息可以响应于IO负载模式的分类降低(例如,从较高IO负载模式类别改变为较低IO负载模式类别,诸如例如从极高(突发)到高、从极高(突发)到中等、从极高(突发)到低、从高到中等、从高到低、从中等到低或其他类似类型的分类变化)而从主机装置102传输或以其他方式提供给SAN 104。

在一些实施例中,可以从主机装置102或SAN 104的用户或管理员获得用于传输指示IO负载模式的分类的信息的标准。

在一些实施例中,例如可以通过确定例如在IOPS中用于分类的平均负载来确定在预定时间段或时间间隔上的IO负载模式。作为示例,预定时间段可以是以秒计、以毫秒计、以纳秒计或任何其他时间段,例如3秒。在一些实施例中,预定时间段可以从主机装置102或SAN 104的用户或管理员获得。在一些实施例中,预定时间段可以具有在主机装置102或SAN104启动时获得的默认值。

在一些实施例中,多路径层可以在守护进程背景中(例如,与IO操作的实际IO路径分开)执行IO负载模式分类。多路径层可以在预定时间段或时间间隔内执行IO负载模式分析,并且可以针对通过多路径层在主机装置102上平衡的IO操作的读取、写入和总计(组合的读取和写入)中的一者或多者计算该样本持续时间内的平均IO负载。在一些实施例中,例如,如果读取是针对SAN 104的最相关IO,则与预定时间段内的读取相关联的IOPS值可以用于确定将被提供给SAN 104的IO负载模式的类别。同样地,如果写入是针对SAN 104的最相关IO,则与预定时间段内的写入相关联的IOPS值可以用于确定将被提供给SAN 104的IO负载模式的类别。如果读取和写入两者的总计是针对SAN 104的最相关IO,则与预定时间段内的总计相关联的IOPS值可以用于确定将被提供给SAN 104的IO负载模式的类别。

指示IO负载模式的分类的信息可以使用存储系统特有的任何命令(包括例如供应商特定SCSI命令或由主机装置102或SAN 104的供应商提供或实现的任何替代方案)从主机装置102传输或以其他方式提供给SAN 104。

负载模式分类逻辑114可以在诸如例如一小时、一天、一周、一个月或其他时间段之类的时间段内执行预测分析。在一些实施例中,可以由负载模式分类逻辑114执行预测分析,以检测主机装置102的IO负载模式的类别变化中的模式。例如,如果主机装置102的IO负载模式的类别以可预测间隔(诸如例如每天10:00PM)改变为特定类别,则负载模式分类逻辑114可以将该模式提供给SAN 104以供优化,其中可以优化SAN 104以期望下一天那个时间的类别变化。

在一些实施例中,例如,负载模式分类逻辑114可以记录主机装置102的IO负载模式的类别已经改变时的时间实例,并且可以记录该信息以供后续使用。作为另一个示例,负载模式分类逻辑114可以记录在诸如例如一天之类的特定时间段内主机装置102的IO负载模式的类别已经改变为特定类别(例如,极高(突发))时的时间实例。在标识并记录了类别变化之后,负载模式分类逻辑114可以对接下来N个时间段(例如,接下来两天)进行采样,以确定该变化是否以可预测模式例如在下一天的同一时间、在每隔一天的同一时间等再次发生。如果负载模式分类逻辑114确认该变化以可预测模式再次发生,则负载模式分类逻辑114可以在预测变化之前(例如,1小时或另一时间量)将预测通知传输或以其他方式提供给SAN 104。预测通知可以向SAN 104指示针对目标时间预测了主机102的IO负载模式中的类别变化。然后可以优化SAN 104以处置与预测的类别变化相关联的IO操作。如果在目标时间或在目标时间附近没有按预期发生预测的类别变化,则可以清除由负载模式分类逻辑114收集的与预测的类别变化相关联的日志和样本,并且负载模式分类逻辑114可以继续收集日志和样本以便使用后续的预测分析来预测进一步的类别变化。

通过这种方式,可以对与主机装置102相关联的IO负载模式进行分类和预测,并且可以使SAN 104知道用于IO操作的优化的分类和预测。

现在将参考图2更详细地描述负载模式分类逻辑114的技术和功能性的说明性实施例。

如图2所示的过程包括步骤200至208,并且适用于系统100,但是更一般地适用于包括多个主机装置和共享存储系统的其他类型的系统。假设该实施例中的共享存储系统包括具有多个存储装置的至少一个存储阵列。存储装置可以包括逻辑存储装置诸如LUN或其他逻辑存储卷。

在200处,MPIO驱动器112的负载模式分类逻辑114分析在预定时间段内主机装置102的IO负载模式。

在202处,负载模式分类逻辑114至少部分地基于该分析例如以上述方式将IO负载模式分类为多个预定负载模式类别中的一者。例如,负载模式分类逻辑114可以基于在预定时间段内IO负载模式的IOPS与阈值(例如,L1、L2、L3等)的比较来将IO负载模式分类为诸如例如低、中等、高、极高(突发)或IO负载模式的任何其他分类之类的类别。

在204处,负载模式分类逻辑114确定是否发生了相对于前一分类的任何分类变化。例如,如果主机102的IO负载模式的前一分类为低并且主机102的IO负载模式的新分类为高,则主机102的IO负载模式的分类发生了变化。

在206处,如果已经发生改变,则负载模式分类逻辑114向SAN104传输或以其他方式提供指示主机102的IO负载模式的分类的信息。例如,可以使用SCSI命令来传输指示分类的信息。

在208处,如果尚未发生改变,则负载模式分类逻辑114确定是否已经经过了预定时间量。如果尚未经过预定时间量,则该方法返回到步骤204以确定是否已经发生改变。如果已经经过了预定时间量,则该方法进行到步骤206并且向SAN 104传输或以其他方式提供指示主机102的IO负载模式的分类的信息。例如,如果IO负载模式为中等,新的IO负载模式为中等,并且已经经过了预定时间量,则可以在206处将指示IO负载模式为中等的信息传输或以其他方式提供给SAN 104。

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

这些和其他特征的许多替代布置可以用于实现图2的过程和其他说明性实施例。

相对于常规布置,本文公开的说明性实施例可以提供大量显著优点。例如,一些实施例将一个或多个主机装置的多路径层配置为包括可以被提供给相关联的存储阵列或其他类型的存储系统的用于负载模式分类和预测的功能性。

与用于负载模式分类和预测的功能性相关联的上述功能至少部分地在负载模式分类逻辑114的控制下执行。例如,负载模式分类逻辑114说明性地被配置为控制将在上文结合图2描述的流程图中所示的过程的各部分的执行。

假设以与上面和本文其他各处针对第一MPIO驱动器112-1描述的方式类似的方式来配置其他MPIO驱动器112中的每一者。因此,系统100的其他主机装置102还被配置为通过SAN 104与存储阵列105进行通信,并且此类其他主机装置的MPIO驱动器112各自类似地被配置为从该组IO队列110中的对应一者选择IO操作用于通过SAN 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(Dell EMC SC Series Storage:Microsoft Multipath I/O)”(通过引用并入本文)中描述的功能性。在本文公开的说明性实施例中,适当地修改此常规MPIO功能性以支持负载模式分类和预测。

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

如先前所指示的,由于没有使用如本文所公开的用于IO负载模式分类和预测的功能性,因此许多存储系统可能没有针对传入IO操作的IO负载模式进行优化。这导致存储系统以及共享该存储系统的主机装置的效率低下。

如本文所描述的,通过利用负载模式分类逻辑114来实现用于IO负载模式分类和预测的功能性,在本文的说明性实施例中有利地克服了此类缺点。

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

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

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

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

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

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

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

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

因此,应明白的是,如本文所使用的术语“存储阵列”意图广泛地解释,并且可涵盖可商购获得的存储阵列的多个不同的实例,该存储阵列被适当地重新配置以支持对如本文所公开的IO负载模式的分类和预测。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号