一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

提高存储系统中选定卷的高速缓存命中率的制作方法

2021-12-18 03:48:00 来源:中国专利 TAG:


1.本发明涉及用于提高存储系统内的选定卷的高速缓存命中率的系统和方法。


背景技术:

2.当应用执行i/o请求时,可能要执行若干过程才能完成请求。这些过程影响i/o等待时间,i/o等待时间可能是应用响应时间的重要部分。zhyperlink是被设计为通过在主机系统和存储系统之间提供快速、可靠和直接的通信路径来减少i/o等待时间的技术。这是通过在z/os主机系统和存储系统上安装zhyperlink适配器并且使用zhyperlink电缆将部件连接在一起而实现的。此配置在主机系统与存储系统之间产生点对点连接,与zhigh

performance(zhpf)相比,其将i/o响应时间减少多达10倍。通过使用同步i/o请求来实现这样的低响应时间,同步i/o请求减少了某些功能(诸如i/o中断和z/os调度操作)所需的时间量。
3.使用诸如zhpf的技术可用的标准i/o处理需要i/o操作以执行一系列耗时任务,诸如z/os分派、中断处理、cpu排队和l1/l2处理器高速缓存重新加载。这些任务和i/o处理所需的其他任务可使得i/o响应时间与在虚拟存储器内传送数据相比相对较长,其中响应时间为130 微秒加上中断处理和cpu分派时间。
4.通常,使用zhyperlink或同步i/o,当执行同步i/o操作时,主机系统上的cpu等待或“旋转”,直到i/o完成或达到超时值。zhyperlink可以显著减少完成i/o所需的时间,因为不再需要分派、中断处理、cpu队列时间和cpu高速缓存重新加载活动。这节省了与正常i/o操作中涉及的两个上下文交换相关联的处理器时间,使线程休眠并然后重新调度它,以及执行i/o中断。
5.为了实现与同步i/o(例如,zhyperlink)相关联的改进的i/o响应时间,用于处理i/o的代码路径需要被高度优化。延迟同步i/o操作(例如,高速缓存未命中)的任何条件可导致向主机系统返回通知,且使用较慢通信路径(例如,zhpf)来重试所述操作。同步i/o仅在微代码能在非常短的时间量(诸如10

30微秒)内完成同步i/o操作时才成功。如果同步i/o操作在该时间量内不能完成,则同步i/o操作可能失败并且主机系统可能需要在诸如ficon的非最优路径上重试操作。
6.鉴于上述内容,所需要的是当使用诸如zhyperlink之类的同步i/o技术时提高选定卷的高速缓存命中率的系统和方法。这样的系统和方法将理想地减少或防止可能阻碍执行同步i/o操作的延迟。


技术实现要素:

7.响应于现有技术水平,具体地,响应于当前可用的系统和方法尚未完全解决的本领域中的问题和需要,开发了本发明。相应地,开发用以在使用同步i/o过程时提高选定卷的高速缓存命中率的系统和方法。本发明的特征和优点将从以下描述和所附权利要求书中变得更加清楚,或者可以通过如下文所述的本发明的实践来学习。
8.与前述一致,公开了一种用于在使用同步i/o时提高选定卷的高速缓存命中率的方法。在一个实施例中,这样的方法包括在高速缓存中建立来自非优选存储区域的非优选存储元素的第一集合。所述方法进一步在所述高速缓存中建立来自优选存储区域的优选存储元素的第二集合。该方法计算非优选存储元素在逐出之前驻留在高速缓存中的预期寿命。该方法还执行高速缓存的逐出策略,其中,优选存储元素被保持在高速缓存中的时间达非优选存储元素的预期寿命的至少某个倍数。在某些实施例中,该方法通过从第一集合中的最近最常使用的非优选存储元素的时间戳中减去第一集合中的最近最少使用的非优选存储元素的时间戳来计算预期寿命。所公开的方法减少或防止在访问优选存储区域时可能损害同步i/o(例如,zhyperlink)过程的操作的延迟。
9.本文还公开了并要求保护相应的系统和计算机程序产品。
附图说明
10.为了容易理解本发明的优点,上面简要描述的本发明的更具体描述将通过参考附图中示出的具体实施例来呈现。应理解,这些附图仅描绘了本发明的典型实施例,并且因此不被认为是限制本发明的范围,将通过使用附图用附加特征和细节来描述和解释本发明的实施例,在附图中:
11.图1是示出其中可以实现根据本发明的系统和方法的网络环境的一个实例的高级框图;
12.图2是示出用于图1的网络环境中的存储系统的一个示例的高级框图;
13.图3是示出主机系统与存储系统之间的不同通信路径的高级框图;
14.图4是示出用于在使用同步i/o时提高选定卷的高速缓存命中率的系统的高级框图;
15.图5是示出根据本发明的优化模块内的各种示例性子模块的高级框图;
16.图6是示出用于从高速缓存逐出存储元素以便在提供对优选存储元素的优先的同时释放高速缓存中的空间的方法的一个实施例的流程图;
17.图7是示出主机系统向存储系统发送命令和/或列表以指定哪些卷应被视为优选和非优选的高级框图;
18.图8是示出用于从高速缓存逐出存储元素以便释放高速缓存中的空间同时提供对优选存储元素的优先的替代方法的流程图;
19.图9是示出主机系统向存储系统发送驻留期乘数以指示应用于优选卷的高速缓存优先有多强的高级框图;
20.图10是示出用于调节优选卷的高速缓存优先的优先调节模块的高级框图;
21.图11是示出了优选卷和相关联的驻留期乘数的列表的第一示例的高级框图;
22.图12是示出了优选卷和相关联的驻留期乘数的列表的第二示例的高级框图;
23.图13是示出了用于具有相同驻留期乘数的每组优选卷的lru列表,以及用于非优选卷的lru列表的高级框图;以及
24.图14是示出用于使用诸如图13中所示的lru列表之类的lru列表从高速缓存逐出存储元素的方法的流程图。
具体实施方式
25.将容易理解的是,如在本文的附图中大体描述和图示的,本发明的部件可以以各种不同的配置布置和设计。因此,如附图中表示的本发明的实施方式的以下更详细的描述并不旨在限制所要求保护的本发明的范围,而是仅代表根据本发明的目前预期的实施方式的某些实例。通过参考附图,将最好地理解当前描述的实施例,其中,相同的部件始终由相同的数字表示。
26.本发明可以体现为系统、方法和/或计算机程序产品。计算机程序产品可包括其上具有用于使处理器执行本发明的各方面的计算机可读程序指令的计算机可读存储介质(或多个介质)。
27.计算机可读存储介质可以为可保留和存储供指令执行设备使用的指令的有形装置。计算机可读存储介质可以是,例如但不限于,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备、或者上述的任意合适的组合。计算机可读存储介质的更具体示例的非穷尽列表包括以下各项:便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式紧凑盘只读存储器(cd

rom)、数字通用盘(dvd)、记忆棒、软盘、诸如穿孔卡之类的机械编码设备或具有记录在其上的指令的槽中的凸出结构、以及上述各项的任何合适的组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤电缆的光脉冲)或通过电线发射的电信号。
28.本文中所描述的计算机可读程序指令可以经由网络(例如,互联网、局域网、广域网和/或无线网络)从计算机可读存储介质下载到相应的计算/处理设备,或者下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输纤维、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口接收来自网络的计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
29.用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或以一种或多种程序设计语言的任何组合编写的源代码或目标代码,这些程序设计语言包括面向对象的程序设计语言(诸如smalltalk、c 等)和常规的过程式程序设计语言(诸如“c”程序设计语言或类似程序设计语言)。
30.计算机可读程序指令可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(lan)或广域网(wan))连接到用户的计算机,或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来使电子电路个性化来执行计算机可读程序指令,以便执行本发明的各方面。
31.下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各
方框的组合,都可以由计算机可读程序指令实现。
32.这些计算机可读程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的或多个框中指定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置、和/或其他设备以特定方式工作,从而,其中存储有指令的计算机可读存储介质包括包含实现流程图和/或框图中的或多个方框中规定的功能/动作的方面的指令的制造品。
33.也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程装置、或其他设备上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程装置、或其他设备上执行的指令实现流程图和/或框图中的或多个方框中规定的功能/动作。
34.参见图1,示出了网络环境100的一个示例。呈现网络环境100以示出可以实现根据本发明的系统和方法的环境的一个实例。作为示例而非限制来呈现网络环境100。实际上,除了示出的网络环境100之外,本文公开的系统和方法可适用于各种不同的网络环境。
35.如图所示,网络环境100包括通过网络104互连的一个或多个计算机102、106。网络104可包括例如局域网(lan)104、广域网(wan)104、互联网104、内联网104等。在某些实施例中,计算机102、106可以包括客户端计算机102和服务器计算机106(在此也称为“主机系统”106)两者。通常,客户端计算机102发起通信会话,而服务器计算机106等待来自客户端计算机102的请求。在某些实施例中,计算机102和/或服务器106可以连接到一个或多个内部或外部直接附接存储系统110a(例如,硬盘驱动器、固态驱动器、磁带驱动器等的阵列)。这些计算机102、106和直接连接的存储系统110a可以使用诸如ata、sata、scsi、sas、光纤通道等的协议进行通信。
36.在某些实施例中,网络环境100可以包括在服务器106后面的存储网络108,诸如存储区域网络(san)108或lan 108(例如,当使用网络附接存储时)。这个网络108可以将服务器106连接到一个或多个存储系统,例如硬盘驱动器或固态驱动器的阵列110b、磁带库110c、单独的硬盘驱动器110d或固态驱动器110d、磁带驱动器110e、cd

rom库等。为了访问存储系统110,主机系统106可以通过从主机106上的一个或多个端口到存储系统110上的一个或多个端口的物理连接进行通信。连接可以通过交换机、结构、直接连接等。在某些实施例中,服务器106和存储系统110可以使用诸如光纤信道(fc)的联网标准进行通信。
37.参见图2,示出了包含硬盘驱动器204和/或固态驱动器204的阵列的存储系统110的一个实施例。如图所示,存储系统110包括存储控制器200、一个或多个交换机202以及一个或多个存储驱动器204,诸如硬盘驱动器204或固态驱动器204(诸如基于闪存的驱动器204)。存储控制器200可以使得一个或多个主机106(例如,运行诸如z/os、zvm等的操作系统的开放系统和/或大型机服务器106)能够访问一个或多个存储驱动器204中的数据。
38.在所选实施例中,存储控制器200包括一个或多个服务器206。存储控制器200还可以包括主机适配器208和设备适配器210以分别将存储控制器200连接到主机设备106和存储驱动器204。多个服务器206a、206b可以提供冗余以确保数据总是可用于连接的主机106。因此,当一个服务器206a发生故障时,另一服务器206b可以拾取发生故障的服务器206a的
i/o负载,以确保i/o能够在主机106与存储驱动器204之间继续。这个过程可以称为“故障转移”。
39.在所选实施例中,每个服务器206可以包括一个或多个处理器212和存储器214。存储器214可包括易失性存储器(例如,ram)以及非易失性存储器(例如,rom、eprom、eeprom、硬盘、闪存等)。在某些实施例中,易失性和非易失性存储器可以存储在(一个或多个)处理器212上运行并且用于访问存储驱动器204中的数据的软件模块。这些软件模块可管理对存储驱动器204中的逻辑卷的所有读取和写入请求。
40.在所选实施例中,存储器214包括高速缓存218,诸如dram高速缓存218。无论何时主机106(例如,开放系统或大型机服务器106)执行读取操作,执行读取的服务器206可以从存储驱动器204取回数据并且在再次需要的情况下将数据保存在其高速缓存218中。如果主机106再次请求数据,则服务器206可以从高速缓存218提取数据而不是从存储驱动器204提取数据,从而节省时间和资源。类似地,当主机106执行写入(write)时,接收写入请求的服务器106可以将写入存储在其高速缓存218中,并且稍后将写入转储到驱动器204。当写入存储在高速缓存218中时,写入也可以存储在对端服务器206的非易失性存储(nvs)220中,从而在第一服务器206故障的情况下,可以由对端服务器206恢复写入。在某些实施例中,nvs 220被实施为相对服务器206中的电池支持的存储器。
41.具有类似于图2所示的架构的架构的存储系统110的示例是ibm ds8000tm企业存储系统。ds8000tm是提供被设计成支持连续操作的盘存储的高性能、大容量存储控制器。然而,本文公开的系统和方法不限于与ibm ds8000tm企业存储系统110一起操作,而是可以与任何可比较或类似存储系统110一起操作,而不管制造商、产品名称或部件或与系统110相关联的部件名称如何。此外,可以受益于本发明的一个或多个实施例的任何存储系统被认为落入本发明的范围内。因此,ibm ds8000tm是以举例的方式呈现的并且不旨在是限制性的。
42.参见图3,当i/o请求由驻留在主机系统106上的应用执行时,可以执行若干过程来完成该请求。这些过程可影响i/o等待时间和应用响应时间。zhyperlink是被设计为通过在主机系统和存储系统110之间提供快速、可靠和直接的通信路径300来减少i/o等待时间的技术。这可以通过在主机系统106和存储系统110上安装zhyperlink适配器并且使用zhyperlink电缆连接组件来实现。该配置在主机系统106和存储系统控制器200之间创建点对点连接300。与使用例如z高性能(zhpf)通信路径302等常规通信路径302相比,此技术可将i/o响应时间减少多达十倍。这样的低响应时间可以通过使用同步i/o请求来实现,这减少了某些功能(诸如i/o中断和i/o调度操作)所需要的时间量。
43.使用诸如zhpf的技术可用的标准i/o处理需要i/o操作来执行一系列耗时的任务,诸如z/os分派、中断处理、cpu排队和l1/l2处理器高速缓存重新加载。这些任务和i/o处理所需的其他任务可使得i/o响应时间与在虚拟存储器内传送数据相比相对较长,其中响应时间为130 微秒加上中断处理和cpu分派时间。
44.使用zhyperlink,当在更高性能通信路径300上执行同步i/o时,主机系统106上的cpu可以等待或“旋转”,直到i/o完成,或达到超时值。zhyperlink可以显著减少完成i/o所需的时间,因为不再需要分派、中断处理、cpu队列时间和cpu高速缓存重新加载活动。这减少了在正常的i/o操作中执行两个上下文交换所需的处理器时间,使线程休眠并然后重新
调度它,以及执行i/o中断。
45.为了实现与同步i/o相关联的改进的i/o响应时间,用于处理i/o的代码路径需要被高度优化。延迟同步i/o操作(例如,高速缓存未命中)的任何条件可致使将通知返回到主机系统106且经由较慢通信路径302(例如,zhpf)重试所述操作。较高性能通信路径300上的同步i/o通常仅在微代码可以在非常短的时间量(诸如10

30微秒)内完成同步i/o操作时才成功。如果在该时间量内不能完成同步i/o操作,则同步i/o操作可能失败,并且主机系统106可能需要在非最优路径302(诸如ficon)上重试操作。
46.参见图4,同时总体上继续参见图3,为了对存储在存储系统110的卷304中的数据执行同步i/o,所请求的数据理想地包含在高速缓存218中。高速缓存未命中可导致同步i/o操作失败且经由较慢通信路径302(例如,zhpf)重试。为了提高使用同步i/o访问的数据的高速缓存命中率,在某些实施例中,存储系统110上的卷304可以被分成优选卷304a和非优选卷304b。优选卷304a可以是优选地使用同步i/o访问的那些卷304。这些卷可以是被视为更重要或关键的卷304,或者包含性能重要或关键的数据(例如,目录等)。相比之下,非优选卷304b可以是未被指定为优选卷304a的任何卷304。
47.如图4所示,卷304可以由诸如磁道的存储元素402构成。来自优选卷304a的存储元素402可被指定为优选存储元素402a,而来自非优选卷304b的存储元素402可被指定为非优选存储元素402b。在任何给定时间,存储系统110的高速缓存218可分别存储来自非优选卷304b和优选卷304a的非优选存储元素402b的第一集合404b和优选存储元素402a的第二集合404a。因为优选卷304a是优先使用同步i/o的那些卷304,所以优选存储元素402a可以比非优选存储元素402b优先在高速缓存218中。这将理想地提高优选存储元素402a的高速缓存命中率,从而优化同步i/o并提高成功完成的同步i/o操作的百分比。
48.为了提供对高速缓存218中的优选存储元素402a比非优选存储元素402b的优先处理,可以提供优化模块400。除其他事项之外,优化模块400可以提供指定哪些卷304是优选的和非优选的的功能,以及实施其中优选存储元素402a比非优选存储元素402b在高速缓存218中驻留更长时间的高速缓存逐出策略。优化模块400及其功能将结合图5更详细地讨论。
49.参见图5,例示了示出优化模块400和相关联的子模块的高级框图。优化模块400和相关联的子模块可以在硬件、软件、固件或其组合中实现。通过示例而非限制的方式呈现优化模块400和相关联的子模块。在不同的实施例中,可以提供更多或更少的子模块。例如,一些子模块的功能可组合成单个子模块或更少数量的子模块,或者单个子模块的功能可分布在几个子模块上。尽管优化模块400和相关联的子模块被示出在存储系统110内,但是所有功能不必在存储系统110内实现,也不限于在存储系统110内的实现。因此,通过示例而非限制的方式提供优化模块400和相关联的子模块的位置。
50.如图所示,优化模块400包括建立模块500、调整模块502、预期寿命确定模块504、驻留期确定模块506和高速缓存逐出模块508中的一个或多个。建立模块500可以被配置为指定优选卷304a和非优选卷304b,如之前所讨论的那样。在某些实施例中,主机系统106将这些指定传送到存储系统110。在某些实施例中,使用在线命令或配置列表来建立优选/非优选卷304。在其他实施例中,可以将功能构建到主机系统106中以确定优选/非优选哪些卷304。例如,主机系统106可观察i/o模式并可确定应当或优先用更快的同步i/o过程来访问某些卷304。主机系统106可将这些卷304添加到优选卷304a的集合。
51.调整模块502可调整哪些卷304是优选的/非优选的。例如,随着时间的流逝,在卷304上访问模式或数据重要性可能会改变。在某些实施例中,调整模块502可以随着这些访问模式或数据重要性的改变而调整哪些卷304被认为是优选的/非优选的。可替代地,调整模块502可以使用户能够手动地调整被认为是优选的或非优选的的卷304。在某些实施例中,如将结合图7更详细地解释的那样,主机系统102周期性地向存储系统110发送命令和/或列表,以改变或更新哪些卷304被认为是优选的或非优选的。
52.预期寿命确定模块504可以被配置用于确定高速缓存218中的存储元素(例如,磁道)的预期寿命(即,驻留时间)。例如,在某些实施例中,预期寿命确定模块504被配置用于确定非优选存储元素402b在被逐出之前将驻留高速缓存218的时间量。该预期寿命可以是在某个时间点的数字或在一段时间内的平均值。在某些实施例中,通过从高速缓存218中的最近最常使用的非优选存储元素402b的时间戳中减去高速缓存218中的最近最少使用的非优选存储元素402b的时间戳来计算预期寿命,其中时间戳指示何时非优选存储元素402b被最近访问。
53.相比之下,驻留期确定模块506可以确定特定存储元素已经在高速缓存218中驻留了多久。驻留时间可以例如通过从当前时间减去存储元素402的时间戳(其指示存储元素402最近被访问的时间)来计算。
54.通过使用由预期寿命确定模块504计算的预期寿命和由驻留期确定模块506计算的驻留时间,高速缓存逐出模块508可以执行高速缓存逐出策略,使得优选存储元素402被保持在高速缓存218中的时间比非优选存储元素402b的预期寿命更长。例如,高速缓存逐出策略可以要求将优选存储元素402a在高速缓存218中保持达非优选存储元素402b的预期寿命的两倍的时间。其他倍数(即,大于1的数、小数或分数)是可能的,并且在本发明的范围内。可以由高速缓存逐出模块508执行的方法600的示例结合图6进行描述。
55.图6示出了用于从高速缓存218逐出条目以便释放高速缓存218中的空间的方法600的一个实施例。方法600引用先前结合图4描述的非优选存储元素402b的第一集合404b和优选存储元素402a的第二集合404a。在某些实施例中,在第一lru(最近最少使用)列表(即,“非优选”lru列表)中记录非优选存储元素402b的第一集合404b,并且在第二lru列表(即,“优选”lru列表)中记录优选存储元素402a的第二集合404a。
56.如图所示,方法600最初确定602是否到了从高速缓存218逐出一个或多个存储元素402的时间。在某些实施例中,步骤602可以涉及确定高速缓存218是否在空闲空间上为低。如果到了从高速缓存218逐出条目的时间,则方法600确定604“优选”lru列表是否为空。如果是,则方法600从高速缓存218逐出606在“非优选”lru列表中列出的最老的非优选存储元素402b(即,具有最老时间戳的非优选存储元素402b)。如果“优选”lru列表不为空,则方法600确定608“非优选”lru列表是否为空。如果是,则方法600从高速缓存218逐出610在“受优选的”lru列表中列出的最老的优选存储元素402a。
57.如果“非优选”lru列表和“优选”lru列表都不为空,则方法600确定612“非优选”lru列表中的最老的非优选存储元素402b是否具有比“优选”“优选”lru列表中的最老的优选存储元素402a更老的时间戳。如果是,则方法600从高速缓存218逐出614“非优选”lru列表中的最老的非优选存储元素402b。否则,方法600进行至步骤616。在步骤616,方法600确定616高速缓存218中最老的优选存储元素402a的驻留时间(即,“优选”lru列表中的最老的
优选存储元素402a驻留于高速缓存218中的时间量)是否小于倍数n乘以高速缓存218中的非优选存储元素402b的预期寿命。如果是,则方法600从高速缓存218逐出618“非优选”lru列表中的最老的非优选存储元素402b。相反,如果“优选”lru列表中的最老的优选存储元素402a的驻留时间大于n*(高速缓存218中的非优选存储元素402b的预期寿命),则方法600从高速缓存218逐出(620)“优选”lru列表中的最老的优选存储元素402a。变量n是驻留期乘数,其细节将在下文中更详细地解释。
58.参见图7,如前所述,主机系统102可以周期性地向存储系统110发送命令和/或列表,以改变或更新哪些卷304被认为是优选的或非优选的,并且因此赋予哪些存储元素402以高速缓存优先。在某些实施例中,主机系统102向存储系统110周期性地发送具有应优选的卷304的列表700的命令。这个卷304的列表700可以在每次主机系统102向存储系统110发出命令时改变。如果某卷304先前在列表700中被指定为优选的,但在新列表700中不是如此指定的,则存储系统110可以将该卷304的状态改变为非优选的,并且停止向该卷304提供高速缓存优先。
59.在某些实施例中,主机系统102可以针对特定卷304设置指示符(例如,“强制优选缓存”(force favored cache)指示符),该指示符指示卷304将保持其优选状态,直到主机系统102肯定地将卷状态改变为非优选为止。主机系统102可以使用“移除优选缓存”(remove favored cache)命令来将卷304的状态从优选改变为非优选。在某些实施例中,“强制优选缓存”指示符可以具有与其附接的持续时间,该持续时间指示卷304在其返回至非优选状态之前应具有多长时间的优选状态。在持续时间到期并且卷304不再包含在列表700中之后,卷304的状态可以自动变为非优选的,使得其不接收高速缓存优先。
60.参见图8,因为卷304可以从优选状态动态地改变为非优选状态,反之亦然,所以可以对图6的方法600进行不同修改以考虑卷的状态可能已经改变的事实。该状态改变可以保证将存储元素402从“非优选”lru列表转移到“优选”lru列表或反之亦然。
61.图8示出了用于从高速缓存218逐出条目(即,存储元素402)以便释放高速缓存218中的空间的方法800的一个实施例。该方法800与图6中示出的方法600类似,唯一不同的是,方法800已被修改以考虑可能已经从优选状态改变为非优选状态的卷304,反之亦然。方法800与图6的方法600相同的步骤用相同的编号示出,而新步骤(即,步骤802、804和806)已经被分配了新编号。与图6的方法600相比,方法800的流程也被稍微改变以考虑新的步骤802、804和806。
62.如图8所示,在确定608“非优选”lru列表是否为空之后,方法800可以确定802“优选”lru列表的最老的条目是否不再是优选的。换言之,方法800可以确定802“优选”lru列表中的最老的条目(即,存储元素402)的状态是否从优选的变为非优选的。如果是,则方法800从高速缓存218逐出610“优选”lru列表中的最老条目。
63.类似地,在已经执行决定步骤616之后,方法800确定806“非优选”lru列表中的最老的条目现在是否是优选的。换言之,方法800确定806“非优选”lru列表中最老的条目(即,存储元素402)的状态是否从非优选的变为优选的。如果是,则方法800将该条目从“非优选”lru列表转移804到“优选”lru列表的最近最常使用端,然后方法800返回步骤612。如果不是,则方法800从高速缓存218逐出618“非优选”lru列表中的最老条目。
64.参见图9,如前所述,主机系统102可以周期性地向存储系统110发送命令,该命令
包括应该是优选的哪些卷304的列表700。在某些实施例中,主机系统102可以与列表700一起包括驻留期乘数902,该驻留期乘数指示将高速缓存优先应用于优选卷304a的强度。驻留期乘数902越高,高速缓存优先就越强,因此优选卷304a相对于非优选卷304b在高速缓存218中保留的时间越长。驻留期乘数902越低,高速缓存优先就越弱,因此优选卷304a相对于非优选卷304b在高速缓存218中保留的时间越短。在某些实施例中,为列表700中的所有优选卷304a提供单一的驻留期乘数902。在其他实施例中,为不同的优选卷304a提供不同的驻留期乘数902,如将结合图10和11更详细地解释的那样。
65.可以在主机系统102或另一系统上提供优先调节模块900以确定哪些卷304应当被视为优选卷304a,以及确定每个优选卷304a的驻留期乘数902。通常,优先调节模块900可以跟踪对存储系统110上的卷304的i/o,并且基于该跟踪信息确定哪些卷304应当被视为优选的。使用跟踪信息,优先调节模块900还可以单独地或整体地确定针对优选卷304a的高速缓存优先应该有多强。
66.参见图10,示出了显示优先调节模块900和相关联的子模块的高级框图。优先调节模块900和相关联的子模块可以在硬件、软件、固件或其组合中实现。优先调节模块900和相关联的子模块作为示例而非限制来呈现。在不同的实施例中,可以提供更多或更少的子模块。例如,一些子模块的功能可组合成单个或更少数量的子模块,或者单个子模块的功能可分布在几个子模块上。尽管优先调节模块900和相关联的子模块被示出在主机系统102内,但所有功能不必在主机系统102内实现,也不限于在主机系统102内的实现。由此,优先调节模块900和相关联的子模块的位置作为示例而非限制来提供。
67.如图所示,优先调节模块900包括i/o跟踪模块1000、卷排名模块1010、列表创建模块1012、驻留时间确定模块1014、乘数计算模块1016和传输模块1018中的一个或多个。
68.i/o跟踪模块1000可以被配置为跟踪从主机系统102发布到存储系统110的i/o。该i/o可以指示哪些卷304应当被优选并经由更快的同步i/o过程来访问。例如,对卷304的较高量的i/o可以指示某作业正针对卷304运行,并且使用同步i/o可以更快且更高效地执行该作业。在这种情况下,可以向卷304授予高速缓存优先,以便将其更多的数据在高速缓存218中保留更长的时间,由此确保在访问卷304时的较高高速缓存命中率。
69.当跟踪对卷304的i/o时,i/o跟踪模块1000可以区分不同类型的i/o。例如,i/o跟踪模块1000可以跟踪事务内部读取1002、事务内部写入1004、事务外部读取1006和事务外部写入1008。在某些实施例中,i/o跟踪模块1000可以利用计数器来跟踪这些不同类型的i/o中的每个针对卷304的量。
70.使用由i/o跟踪模块1000收集的信息,卷排名模块1010可以对存储系统110上的卷304进行排名。例如,卷排名模块1010可使用公式a*l b*m c*p d*q对每个卷304进行排名,其中a是事务内部读取对卷304的访问次数,b是事务内部写入对卷304的访问次数,c是事务外部读取对卷304的访问次数,d是事务外部写入对卷304的访问次数。l、m、p和q是权重系数(例如,l=4,m=3,p=2,q=1),其中,l>m>p>q。换言之,出于建立高速缓存优先的目的,事务内部对卷304的访问可以比事务外部对卷304的访问更重地加权。而且,为了建立高速缓存优先的目的,对卷304的读取可以比对卷304的写入更重地加权。
71.使用针对每个卷304的上述计算的输出,卷排名模块1010可以按照卷304的输出值的幅值对存储系统110上的卷304进行排名。一般而言,具有较大量的i/o的卷304可以具有
较大的输出值,并且因此在同一时间段内被排名为高于具有较少量的i/o的卷304。列表创建模块1012然后可以创建应当被优选并提供高速缓存优先的卷304的列表700。这可以是特定数量的最高排名卷304、输出值高于特定阈值的卷304等。
72.驻留时间确定模块1014可以确定高速缓存218内的非优选卷304b的存储元素402的驻留时间(即,预期寿命)。乘数计算模块1016然后可以确定用于优选卷304a的驻留期乘数902。例如,如果优选卷304a的存储元素402将驻留在高速缓存218中达非优选卷304b的存储元素402的两倍时间量,则可以将驻留期乘数902设置为二。在某些实施例中,驻留期乘数902是通过取来自优选卷304a的上述输出值并且将其除以来自非优选卷304b的输出值以产生比率来确定的。如果需要,可以为驻留期乘数902设置底限,使得其不下降到低于特定值(例如,二),而不管该比率如何。这将确保优选卷304a的存储元素402被保留在高速缓存218中达非优选卷304b的存储元素402的时间量的至少两倍。
73.一旦已经创建列表700并且已经确定驻留期乘数902,传输模块1018就可以将列表700和驻留期乘数902从主机系统102传输到存储系统110。如先前所解释的那样,在某些实施例中,可以为列表700中的所有优选卷304a计算单一的驻留期乘数902。在其他实施例中,可以为列表700中的每个优选卷304a计算不同的驻留期乘数902(n),如图11中所示的那样。如图11所示,列表700按排名顺序(即,按使用上述计算的它们的输出值的顺序)记录要优选的文档卷304。每个优选卷304a具有与其相关联的不同的驻留期乘数902。卷304的排名越高,驻留期乘数902越大。如前所述,驻留期倍数902可以乘以非优选卷304b的存储元素402的预期寿命,以确定优选卷304a的存储元素402应当被保留在高速缓存218中的时间量。
74.参见图12,在某些实施例中,列表700中的优选卷304a可以共享相同的驻留期乘数902,并且因此具有相同的优先高速缓存驻留时间。例如,可以给第一优选卷集合304a(即,卷a、b和c)分配第一驻留期乘数n1,可以给第二优选卷集合304a(即,卷d和e)分配第二驻留期乘数n2,并且可以给第三优选卷集合304a(即,卷f和g)分配第三驻留期乘数n3,其中n1>n2>n3。每个驻留期乘数902指示其相应组的优选卷304a的高速缓存优先(即,优先高速缓存驻留时间)应该有多强。在某些实施例中,在诸如ibm ds8000tm企业存储系统110的存储系统110中,每个卷304的驻留期乘数902被存储在全局状态区域(例如,在高速缓存218中被镜像到更持久的存储驱动器204的区域)中,使得驻留期乘数902不会在重启、掉电、故障等期间丢失。
75.参见图13,在某些实施例中,为每个驻留期乘数902和相关联的一组优选卷304a创建lru列表1300。还可以为所有非优选卷304b(即,没有驻留期乘数902或驻留期乘数902为1的卷304)创建lru列表1300d。当未修改的存储元素402(例如,未修改的磁道)被添加到高速缓存218时,可以检查与存储元素402相关联的卷304以确定它是否是优选卷304a,如果是,则确定卷304的驻留期乘数902是什么。基于卷304的驻留期乘数902(或者无驻留期乘数),可以将与未修改的存储元素402相关联的条目添加到适当的lru列表1300的最近最常使用(mru)端。如果与卷304相关联的驻留期乘数902的lru列表1300不存在,则可以为驻留期乘数902创建lru列表1300,并且可以将与未修改的存储元素402相关联的条目添加到新创建的lru列表1300中。
76.图14示出了用于使用诸如图13所示的lru列表1300从高速缓存218逐出存储元素的方法1400。如图所示,方法1400最初确定1402是否到了从高速缓存218逐出一个或多个存
储元素402的时间。在某些实施例中,该步骤1402可以涉及确定高速缓存218是否在空闲空间上为低。如果到了从高速缓存218逐出条目的时间(例如,高速缓存218在空闲空间上较低),则方法1400确定1404与优选卷304a相关联的lru列表1300(以下称为“优选”lru列表1300)是否全部为空。如果是,则方法1400从高速缓存218逐出1406与非优选卷304b的lru列表1300(以下称为“非优选”lru列表1300)中的最老的条目(即,lru列表的lru端上的条目)相关联的存储元素402。
77.另一方面,如果“优选”lru列表1300并非全部为空,则方法1400计算1410非空“优选”lru列表1300的“高于所需驻留时间的时间”。在某些实施例中,“高于所需驻留时间的时间”可以通过确定“优选”lru列表1300中最老的条目的驻留时间并从该值中减去乘以驻留期乘数902的“预期寿命”来计算。如先前所解释的,“预期寿命”可以等于非优选存储元素402b在被逐出之前将驻留高速缓存218的时间量。通常,步骤1410确定“优选”lru列表1300中的最老的条目已超过(或不到)其在高速缓存218中的优先驻留时间的量。
78.然后,方法1400挑选1412其中最老的条目的“高于所需驻留时间的时间”为最大的“优选”lru列表1300。方法1400然后确定1414此“高于所需驻留时间的时间”是否是负的(意味着与“优选”lru列表1300中的最老的条目相关联的存储元素已经在高速缓存218中驻留了小于其优先驻留时间的某个时间量)。如果“高于所需驻留时间的时间”为负,则方法1400确定1416“非优选”lru列表1300是否为空。如果其不为空,则方法1400从高速缓存218逐出1406与“非优选”lru列表1300中的最老的条目相关联的存储元素402。
79.如果在步骤1414处,“高于所需驻留时间的时间”不是负的(意味着“优选”lru列表1300中的最老的条目已经在高速缓存218中驻留了大于或等于其优先驻留时间的某个时间量),则方法1400从高速缓存218中逐出1408与“优选”lru列表1300中的具有最大“高于所需驻留时间的时间”的最旧的条目相关联的存储元素。类似地,如果在步骤1416处发现“非优选”lru列表1300为空,则方法1400还从高速缓存218逐出1408“优选”lru列表1300中具有最大“高于所需驻留时间的时间”的最老的条目。
80.附图中的流程图和框图示出了根据本发明的不同实施例的系统、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个框可表示代码的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。还应注意,在一些替代实施例中,框中所指出的功能可不按图中所指出的次序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。其他实现方式可能不需要所有公开的步骤来实现所期望的功能。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献