存储控制器中的转出任务的动态管理的制作方法

文档序号:6359441阅读:182来源:国知局
专利名称:存储控制器中的转出任务的动态管理的制作方法
技术领域
本发明涉及一种计算机系统,并且更具体地涉及存储控制器中的转出(destage)任务的管理。
背景技术
诸如国际商业机械公司(IBM(H))的企业存储服务器的高端存储控制器管理从联网主机向存储设备池的输入/输出(I/o)请求,其中,存储设备诸如为直接存取存储器(DASD)、独立磁盘冗余阵列(RAID阵列)、以及简单磁盘捆绑(JB0D)。存储控制器包括一个或多个主机总线适配器(HBA)卡,以通过网络和设备适配器(DA)与一个或多个主机通信,从而与存储设备通信。存储控制器也包括高速缓存(cache)存储器和非易失性存储器(NVS ),其可以包括电池供电的随机存储存储器。高速缓存(caching)是隐藏I/O等待时间的基本技术,并且被在存储控制器、文件 系统和操作系统中广泛使用。存储网络行业协会(SINA)定义高速缓存(cache)为“用于减少从较低速存储器或设备读取数据或写入数据到较低速存储器或设备所需的有效时间的高速存储器或存储设备”。以下,将在存储控制器的上下文中讨论高速缓存技术,其中,快速但相对昂贵的随机存取存储器被用作对慢速但相对便宜的盘或存储设备的高速缓存。高速缓存存储器被用于快速访问从外部存储器入页(inpaged)(转入(staged))的数据,从而提供从存储器的读取数据访问请求,并且提供修改数据的缓沖。写入请求被写入到高速缓存并且被镜像在NVS中,继而被写入(转出)到外部存储设备。读取高速缓存管理是被充分研究的学科。在此背景中存在大量的高速缓存替代技术,例如,LRU、CL0CK、FBR、LRU-2、2Q、LRFU、LIRS、MQ、ARC 以及 CAR。写入高速缓存管理时发展中的学科。引入NVS,以便能够快速写入。通常,在没有NVS的情况下,必须同步地将每个数据写入直接写入(转出)到存储设备,以确保一致性、正确性、持久性和持续性。否则,服务器的故障可能会丢失高速缓存并导致数据的丢失。通常,主机写入速率超过存储设备的速度,因此在没有NVS的情况下数据转移将是瓶颈。NVS使得能够快速写入高速缓存,其中写入被镜像并安全地存储在NVS中,直到转移到外部存储设备。以后以异步方式从高速缓存转出(并且从NVS丢弃)数据,从而隐藏了存储设备的写入等待时间。高速缓存和NVS典型地存储用于多个存储设备的更新。为了保证写入的持续低等待时间,典型地,NVS中的数据必须被排出(drain),以便确保总是存在一些空的空间用于到来的写入;否则,后续写入将会变得实际上同步,这可能对主机写入的响应时间产生不利影响。另ー方面,如果过于激进地排出写入,也通常不能完全利用写入缓存的好处,因为NVS高速缓存的平均使用量将通常较低。高速缓存比NVS更便宜且更大,因此NVS是写入数据的转出的瓶颈。某些转出技术使用线性阈值方案,其限制用于特定存储设备的NVS的占用率,以避免单一存储设备的故障影响所有设备。其它技术基于NVS的整体占用率和与每个存储设备相关联的占用率,动态地改变向存储设备的转出速率。不顾新写入的速率而全速地写入,通常对于性能是不理想的,并且降低能够从存储控制器获得的最大写入呑吐量。期望的行为是简单地跟上到来的写入负载(即,写入请求),同时在NVS不被充满时保持NVS被大大地占用。NVS占用率越高,写入高速缓存越有效,因为其可以吸收向同一个逻辑地址的更多写入,从而,向存储设备的数据吞吐量更高效。

发明内容
考虑到上述情况,提供了用于通过处理器促进从写入高速缓存和NVS经由设备适配器向存储设备池进行数据转移的各种方法、系统和计算机程序产品实施例。所述处理器基干与特定存储设备有关的NVS的当前占用率和与该存储设备有关的转入活动性,自适应地改变转出速率。所述转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽以及所述存储设备的读取/写入速度中的ー个或多个。这些因素通常与高速缓存未命中(miss)事件中的读取响应时间相关联,并且通常不与转出速率的动态管理相关联。这个组合在改善读取和写入响应时间的同时保持NVS的期望整体占用率。此方法跨不同类型的存储设备以及跨不同的设备速度,在不同类型地工作负载(读取、写入、顺序、随机)上改善了整体读取和写入性能。 根据本发明的一个实施例,对于每个存储设备,处理器根据与特定存储设备有关的NVS的当前存储占用率,自适应地改变从高速缓存的数据的转出速率。处理器根据与存储设备有关的当前转入活动性,自适应地调整转出速率。当前转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽以及存储设备的读取/写入速度中的ー个或多个。如果转入活动性低,则所述调整的转出速率相对较高,并且如果转入活动性高,则所述调整的转出速率相对较低。处理器以调整的转出速率从高速缓存向存储设备转出数据,并从NVS丢弃数据。处理器可以基于与特定存储设备有关的NVS的当前占用率以及与该存储设备有关的转入活动性,自适应地改变转出速率,以在改善读取和写入响应时间的同时保持NVS的期望整体占用率以及向存储设备的吞吐量。从主机到高速缓存/存储器测量吞吐量,其依赖于从高速缓存到存储器的呑吐量。从主机的角度测量读取/写入时间。如果所述NVS的整体占用率超过高阈值(最大总占用率),则处理器可以将所述转出速率设置为最大,并且如果所述存储设备的占用率小于低阈值(最小设备占用率),则处理器可以将所述转出速率设置为最小。这些阈值可以是固定的或随工作负载变化。处理器可以配置为将针对任何单个存储设备的NVS的占用率限制为最大设备占用率。处理器可以提供转出速率的索引表。处理器可以基于用于存储设备的NVS的当前设备占用率计算初始索引,并根据有关存储设备的当前转入活动性递增或递减初始索引。处理器从索引表读出调整的转出速率。根据本发明的另ー个实施例,对于每个存储设备,处理器自适应地改变从高速缓存转出数据的转出速率,以保持NVS的期望的总占用率,并增加向多个存储设备的写入吞吐量。处理器被配置为限制针对每个存储设备的NVS的设备占用率不大于最大设备占用率。NVS中的可用空间向所有存储设备的总最大分配超过NVS中的可用空间的百分之百。处理器通过当NVS的总占用率超过最大总占用率时将转出速率设置为最大、当NVS的设备占用率小于最小设备占用率时将转出速率设置为最小、并且在其它情况下基于当前设备占用率与最大设备占用率的比率而设置转出速率,来自适应地改变转出速率。处理器根据与存储设备有关的至少包括存储设备转入活动性和设备适配器使用的带宽(可能也包括设备适配器转入活动性和存储设备的读取/写入速度)的当前转入活动性,自适应地调整转出速率,以减小读取和写入响应时间。如果转入活动性低,则调整的转出速率相对较高,并且如果转入活动性高,则调整的转出速率相对较低。处理器以调整的转出速率从高速缓存向存储设备转出数据,并从NVS丢弃数据。处理器可以被提供有转出速率的索引表,其中转出速率从对于最小索引的最小速率増加到对于最大索引的最大速率。处理器通过基于针对存储设备的NVS的当前设备占用率计算初始索引而自适应地改变转出速率;如果NVS的总占用率超过最大总占用率,则将初始索引设置为最大索引,如果NVS的设备占用率小于最小设备占用率,则将初始索引设置为最小索引,在其它情况下基于当前设备占用率与最大设备占用率的比率而设置初始索弓I。处理器通过根据与存储设备有关的当前转入活动性递增或递减初始索引来自适应地调整转出速率;如果存储设备转入活动性和设备适配器使用的带宽相对较高,则递减索引,或者,如果存储设备转入活动性和设备适配器使用的带宽相对较低,则递增索引。处理器根据 调整的索引从表重读出调整的转出速率。也公开了相关的系统和计算机程序产品实施例,并提供附加优点。


现在将參考附图,仅通过示例的方式描述本发明的实施例,在附图中图I是示出可以实施根据本发明的装置和方法的存储系统的ー个示例的高级框图;图2是示出用于转出数据的方法的一个实施例的高级流程图;图3是示出针对多个存储设备的NVS的占用率的图;图4是示出与特定存储设备有关的转入活动性的存储系统的部分的图;图5a和5b是示出基于NVS的当前占用率和关于存储设备的当前转入活动性二者而动态管理转出速率的图;图6是示出用于转出数据的方法的一个实施例的流程图;图7是示出用于转出数据的方法的一个实施例的流程图;以及图8a和8b是在存在根据存储设备的转入活动性的转出速率的动态管理和不存在转出速率的动态管理的情况下的响应时间性能对比图。
具体实施例方式鉴于上述情况,提供用于通过单个处理器或多个处理器促进从写入高速缓存和NVS经由设备适配器向存储设备池的数据转移的各种方法、系统和计算机程序产品实施例。处理器基于关于特定存储设备的NVS的当前占用率以及关于该存储设备的转入活动性,自适应地改变转出速率。所述转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽和存储设备的读取/写入速度中的ー个或多个。这些因素(factor)通常与高速缓存未命中(miss)事件中的读取响应时间相关联,并且通常不与转出速率的动态管理相关联。该组合在改善读取和写入响应时间的同时保持NVS的期望整体占用率以及向存储设备的吞吐量。从主机到高速缓存/存储器测量吞吐量,其取决于从高速缓存到存储器的呑吐量。从主机的角度测量读取/写入时间。这种方法跨不同类型的存储设备以及跨不同的存储设备速度,在不同类型的工作负载(读取、写入、顺序、随机)上改善了整体读取和写入性能。计算机网络架构可以包括通过网络互联的ー个或多个计算机。网络可以包括例如局域网(LAN)、广域网(WAN)、因特网、内联网等等。在某些实施例中,计算机可以包括客户计算机和服务器计算机二者。一般而言,客户计算机可以发起通信会话,而服务器计算机可以等待来自客户计算机的请求。在某些实施例中,计算机和/或服务器可以连接到ー个或多个内部或外部直接附接的存储系统(例如,硬盘驱动器、固态硬盘驱动器、磁带驱动器等)。这些计算机和直接附接的存储设备可以使用诸如ATA、SATA、SCSI、SAS、光纤通道等协议通信。计算机的任何ー个或全部都可以包括高速缓存,用以存储从存储设备获取的数据。在某些实施例中,计算机网络架构可以包括服务器背后的存储网络,诸如存储区域网络(SAN)或LAN (例如,当使用网络附接的存储器吋)。该网络可以将服务器连接到一个或多个存储系统,诸如単独硬盘驱动器或固态硬盘驱动器、硬盘驱动器或固态硬盘驱动 器的阵列、磁带驱动器、磁带库、CD-ROM库等。在网络是SAN的情况下,服务器和存储系统可以使用诸如光纤通道(FC)的网络标准。图I示出连接到SAN 102的存储系统100的一个实施例。存储系统100包含硬盘驱动器(HDD)和/或固态硬盘驱动器(SDD)的阵列,诸如RAID阵列。存储系统100的内部组件被示出,因为在某些实施例中转出技术可以在这样的存储系统100中实施,尽管它们也可以适用于其它存储系统100。如所示,存储系统100包括存储控制器104、ー个或多个交換机106、以及诸如硬盘驱动器108或固态硬盘驱动器108的ー个或多个存储设备108。存储控制器104可以使ー个或多个主机(例如,开放系统和/或大型机服务器)能够访问一个或多个存储设备106中的数据。在选择的实施例中,存储控制器104包括一个或多个服务器110。存储控制器104也可以包括主机适配器112和设备适配器113,以分别连接到主机设备和存储设备108。多个服务器IlOaUlOb可以提供冗余以确保对于连接的主机数据总是可得。因此,当ー个服务器IlOa失效时,另一服务器IlOb可以保持功能,以确保I/O能够在主机和存储设备108之间继续。这个过程可以被称为“故障转移(failover)”。具有与图I中所示类似的架构的存储控制器104的ー个示例是IBMDS8000 企业存储系统。DS8000 是提供盘存储的高性能、高容量存储控制器,其被设计为支持连续操作。DS8000 系列型号可以使用IBM的P0WER5 服务器110a、110b,其可以与IBM的虚拟化弓I擎技术整合。尽管如此,这里公开的缓存装置和方法并不限定于IBM DS8000 企业存储系统100,而是可以在相当或类似的存储系统中实施,而不论制造商、产品名称、或者与系统相关联的组件或组件名称。此外,可以从本发明的一个或多个实施例中获益的任何系统都被视为落入本发明的范围。因此,仅通过示例的方法呈现了 IBM DS8000 ,并且其不意图限制本发明。在选择的实施例中,每个服务器110可以包括一个或多个处理器114 (例如,n路对称多处理器)和存储器116。存储器116可以包括易失性存储器(例如,RAM)以及非易失性存储器(例如,ROM、EPROM、EEPR0M、硬盘、闪存等)。在某些实施例中,易失性存储器和非易失性存储器可以存储在处理器114上运行并且用于访问存储设备108中的数据的软件模块。服务器110可以保持这些软件模块的至少ー个实例。这些软件模块可以管理对存储设备108中的逻辑卷的所有读取和存储请求。存储器116包括易失性高速缓存118。每当主机(例如,开放系统或大型机服务器)执行读取操作时,服务器110可以从存储设备108获取数据,并在再次需求该数据的事件中将数据保持在高速缓存119中。如果主机再次请求该数据,则服务器110可以从高速缓存118获取该数据,而不是从存储设备108获取它,从而节省时间和资源。这被称作高速缓存命中(Cache hit)。对于作为高速缓存未命中的主机读取(该追踪(track)当前不存在于高速缓存中),断开主机读取,从存储设备将数据转入到高速缓存,并且接着重连主机读取,并将数据从高速缓存读取到主机。从存储设备到高速缓存转入数据所花的时间量可以很大程度上取决于包括构成存储设备(HDD、SDD)的驱动器的读取/写入速度、对每个设备适配器配置的存储设备的数目、对每个设备适配器配置的存储设备的类型的混杂、设备适配器的整体使用的带宽(转入和转出任务)、以及对存储设备和设备适配器驱动的转入和转出任务的当前 数目的多个因素。在一个实施例中,每个存储设备是RAID,其可以被称为“行列(rank)”。RAID具有多个类型(例如1、5、6、10)和不同的盘RPM速度,例如7k、10k、15k和SDD0读取响应时间部分由高速缓存未命中(cache miss)的可能性、以及在高速缓存未命中的事件中从存储设备向高速缓存转入数据所花的时间量所确定。存储器116也包括非易失性存储器120。当主机执行写入操作时,在认为主机写入完成时,服务器110将数据写入高速缓存118和NVS 120 二者。在以后的时间点上,服务器从高速缓存118将数据转出到存储设备并且从NVS 120丢弃数据(因为不再需要数据的电池供电备份)。通常以足够跟上到来的写入负载(即,写入请求)的速率转出数据,同时在不充满NVS的情况下保持很大地占用NVS。如果NVS过满,则高速缓存写入未命中的可能性増加。NVS占用率越高,写入高速缓存越有效,因为其可以吸收向相同逻辑地址的更多写入,因此向存储设备的数据的吞吐量更高效。处理器114被配置为运行软件模块,以动态管理存储控制器中的转出任务,并且更具体地,根据用于存储设备的NVS的当前占用率和关于该存储设备的转入活动性二者,适配针对该存储设备的转出速率。转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽以及存储设备的读取/写入速度中的ー个或多个。以存储设备的转入活动性为因素在保持呑吐量水平的同时改善了读取/写入响应时间。更具体地,可以通过在条件允许时激进地(aggressively)排空NVS而改善主机写入响应时间,并且可以通过在条件要求时保守地排空NVS而改善读取响应时间。现在參考图2,用于转出任务的动态管理的方法包括针对每个存储设备,处理器根据用于特定存储设备的NVS的当前存储占用率自适应地改变200从高速缓存转出数据的转出速率。处理器根据关于存储设备的当前转入活动性自适应地调整202转出速率。当前转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽和存储设备的读取/写入速度中的ー个或多个。如果转入活动性是低的,则调整的转出速率相对较高,并且如果转入活动性是高的,则调整的转出速率相对较低。处理器以调整的转出速率将数据从高速缓存转出204到存储设备,并从NVS丢弃该数据。
适当地选择作为当前存储占用率和转入活动性的函数的转出速率,以针对给定计算环境优化整体读取/写入性能。更具体地,选择转出速率,以在減少平均读取和写入响应时间的同时保持高呑吐量。作为存储占用率的函数的初始转出速率可以被设置为高、低或标称(nominal)转出速率,并且作为当前转入活动性的函数而向上、向下、或上下调整。转出速率可以被提供为等式或表的形式。如在实施例中详细描述的,存储占用率和转入活动性可以被用于计算并调整转出速率表的索引(index)。图3描绘了 NVS 120的实施例,其分别在NVS 302a、302b、302c、302d和302e的部分中存储针对存储设备108a、108b、108c、108d和108e的池的主机写入的数据300。每个存储设备在NVS 120中具有关联的当前存储占用率。通常,当前存储占用率越大,为该存储设备排出NVS的转出速率越高。任何一个存储设备的当前存储占用率都可以不受限制(允许占用NVS的100%)或者可以限制为不超过最大设备占用率(例如,25%)。随后的技术确保了可以将NVS的部分分配给每个存储设备,以避免一个存储设备的失效或处理延迟阻止对其它存储设备的更新高速缓存在NVS中的情況。最大设备占用率在几个存储设备之中可以是均匀或不均匀的,并 且可以是固定或不固定的。例如,最大设备占用率可以被计算为存储设备的存储容量的加权平均,或者存储设备上的后台操作的加权平均。可以建立最大设备占用率,使得NVS中的可用空间到所有存储设备的总最大分配超过NVS中的可用空间的百分之百。例如,如果为每五个存储设备中的每个分配最大设备占用率,则总最大分配将为125%。这是基于在任何给定时间都将有某些存储设备不正在使用它们的最大设备占用率的统计学假设。在指定最大设备占用率的情况下,基于当前设备占用率相对于其最大设备占用率的关系,适当地改变转出速率。处理器可以考虑其它占用率參数以自适应地改变转出速率。如果NVS的总占用率超过最大总占用率,则处理器可以将转出速率设置为最大值。这个测试是通常要避免的、NVS过满并且可能导致写入高速缓存未命中的指示。因此,处理器为所有存储设备将转出速率设置为其最大值,以排出NVS,使其回到期望的占用率。例如,如果期望的总占用率为90%,则如果实际总占用率超过95%,则处理器可以以最大速率转出。如果NVS的设备占用率小于最小设备占用率,则处理器可以将该存储设备的转出速率设置为最小值(例如零)。这个测试是NVS对于特定存储设备过空的指示,其会降低向存储设备的吞吐量效率。例如,如果对于特定存储设备的占用率低于10%,则处理器可以暂停数据向该存储设备的转出。最大总占用率可以是固定或不固定的。例如,最大总占用率可以随着工作负载而变化。最小设备占用率可以是固定或不固定的,并且可以跨存储设备统ー或不统一。图4描绘了包括设备适配器113、交换机106和存储设备108a、108b和108c的存储系统100的部分,以示出与存储设备相关的各种转入活动性因素。第一转入活动性因素是存储设备转入活动性400。这个因素是从存储设备的当前转入(读取)的度量。第二转入活动性因素是设备适配器转入活动性402。这个因素是通过设备适配器从所有存储设备的当前转入(读取)活动性的度量。第三转入活动性因素是设备适配器使用的带宽404。这个因素是通过设备适配器从所有存储设备和向所有存储设备的当前转入(读取)和转出(写入)活动性的度量。第四转入活动性因素是存储设备406的读取/写入速度。这个因素是存储设备可以多快地读取/写入数据的度量。
如前所述,这些因素通常与读取高速缓存未命中事件中的读取响应时间相关联。这些因素通常不与转出数据相关联,并且特别地不用于自适应地调整转出速率。以存储设备的转入活动性中为因素在保持呑吐量水平的同时改善了读取/写入响应时间。更特别地,可以通过在条件允许时激进地排空NVS而改善主机写入响应时间,并且可以通过在条件要求时保守地排空NVS而改善读取响应时间。这种技术在减少写入或读取高速缓存未命中的数目上特别有效。甚至小的減少也会显著影响整体响应时间。图5a和5b是将当前设备占用率和转入活动性关联到转出速率的实施例的图示。在存储器中存储转出速率的索引表500。转出速率从在最小索引(例如零)的最小速率(例如零)开始增加,并且增加到最大索引(例如13)的最大速率(例如60)。针对给定的计算环境,根据从方程或数值分析适当地生成该表。如图所示,转出速率与索引呈非线性。尽管通常不这样要求。处理器基于当前设备占用率计算初始索引。处理器基于如通过ー个或多个转入活动性因素提供的当前转入活动性调整初始索引。处理器使用调整的初始索引,从表500中读出调整的转出速率。在这个特定实施例中,基于用于存储设备的NVS的当前占用率将初始索引设置为标称值502。处理器基于转入活动性递增或递减该标称值;如果转入活动性高,则减小转出 速率,以为转入活动性提供更多资源,并且如果转入活动性低,则提高转出速率,以更迅速地排出NVS。可替代地,处理器可以基于当前占用率将初始索引设置为高(低)值,并且仅基于转入活动性递减(递增)。效果是相同的。如果NVS的总占用率超过最大总占用率阈值,则处理器可以将索引设置为最大值504。类似地,如果设备占用率小于最小设备占用率,则处理器可以将索引设置为最小值506。在任ー这样的极端情况下,可以不考虑转入活动性。图6是基于NVS的占用率和关于存储设备的转入活动性二者,对每个存储设备动态管理转出速率的实施例的流程图。在这个实施例中,基于占用率将初始索引设置为标称值,并且基于每个转入活动性因素将其递增或递減。如果总占用率超过阈值THl (最大总占用率),则处理器将索引设置为最大索引600并退出。如果设备占用率小于阈值TH2 (最小设备占用率),则处理器将索引设置为最小索引602并退出。在其他情况下,处理器可以将初始索引设置为等于当前设备占用率与最大设备占用率的比率与索引数目的乘积604。在这个实施例中,初始索弓I与相对于最大设备占用率归ー化(normalize)的当前设备占用率成线性比例。也可以使用从设备占用率到索引的其它映射。处理器检查ー个或多个转入活动性因素的每ー个,并相应地递增或递减索引。处理器检查对存储设备的当前转入请求606。如果转入请求的数目小于低阈值TH3,则处理器递增初始索引608。如果转入请求的数目大于高阈值TH4,则处理器递减初始索引610。处理器检查设备适配器的当前使用的带宽612。如果使用的带宽小于低阈值TH5,则处理器递增初始索引614。如果使用的带宽大于高阈值TH6,则处理器递减初始索引616。处理器检查对设备适配器的当前转入请求618。如果转入请求的数目小于低阈值TH7,则处理器递增初始索引620。如果转入请求的数目大于高阈值TH8,则处理器递减初始索引622。处理器检查存储设备的速度624。如果设备速度高,则处理器递增索引626。如果设备速度低,则处理器递减索引628。针对每个转入活动性因素递增或递减索引的量取决于计算环境,并且可以通过环境的计算或数值分析设置。如果调整的索引超过最大索引,则处理器设置调整的索引等于最大索引,并且如果调整的索引小于最小索引,则处理器设置调整的索引等于最小索引630。一旦(通过600和602的阈值处理,或者依照当前设备占用率和转入活动性604到630)设置了索引,处理器使用索引从表中提取调整的转出速率632。处理器以调整的转出速率从高速缓存向存储设备转出数据634。该技术被用于为池中的每个存储设备确定转出速率。重复该技木,以在条件变化时更新用于每个存储设备的转出速率。图7是基于NVS的占用率和关于存储设备的转入活动性二者、在特定的计算中为每个存储设备动态地管理转出速率的实施例的流程图。在这个实施例中,基于占用率将初始索引设置为低值,并且基于转入活动性因素的测试组合而将其递增。如果总占用率超过90%,则处理器将索引设置为最大索引700并退出。如果设备占用率小于10%,则处理器将索引设置为702并退出。在其他情况下,处理器将初始索引设置为等于当前设备占用率对最大设备占用率的比率与索引的数目的乘积704。如果设备适配器上的使用的带宽小于70%,则处理器在存储设备是HDD时将索引递增为加ニ,在存储设备是SDD时将索引递增为加四706。如果存储设备上的转入活动性小于10并且设备适配器上的转入活动性小于40,则处 理器将索引递增为加ニ 708。阈值百分比和索引递增的量仅为代表。可以取决于计算环境而使用其它阈值和递增以及转入活动性因素的不同組合。如果索引大于最大索引,则处理器将索引设置为等于最大索引710。处理器使用索引从表中提取调整的转出速率712。处理器以调整的转出速率714从高速缓存向存储设备转出数据。图8a和Sb是将具有和不具有部分基于转入活动性的高速缓存技术的动态管理的高速缓存技术的性能进行比较的图。基线(baseline)方法仅基于NVS占用率管理转出速率,而本发明的实施例将NVS占用率与转入活动性相结合。图8a绘出具有转入活动性(实线)800和不具有转入活动性(虚线)802情况下平均响应时间(读取/写入)相对于每分钟DB事务数的关系。当用户数和每分钟的事务数增加时,组合NVS占用率和转入活动性的高速缓存管理提供更好的响应时间。环境超载的“拐点(knee)”向右移动。图Sb是有转入活动性804和没有转入活动性806的情况下、288,000个用户大约每分钟35,000个DB事务时的读取计数桶(bucket)分配。短读取的百分比在两种技术中大致相等。以转入活动性为因素降低了长读取百分比,尽管量较小。然而,长读取中甚至小的改进都会对这些长读取的服务时间产生大的改进。在这个示例中,被消除的大于300毫秒的读取的0. 11%将来自这些读取的服务时间的百分比降低了大约4个百分点。通过通常仅与读取高速缓存未命中事件中的读取响应时间相关联的转入活动性因素与NVS占用率相结合,动态高速缓存管理技术跨不同类型的存储设备以及跨不同得设备速度,在不同类型的工作负载(读取、写入、顺序、随机)上改善了整体读取/写入性能。更具体地,通过在转入活动性允许时增加向存储设备的转出速率而改善写入响应时间,并且通过在转入活动性需要时减小转出速率来改善读取响应时间而不牺牲吞吐量。本领域普通技术人员将认识到,本发明的方面可以作为系统、方法或计算机程序产品实施。因此,本发明的方面可以采取完全硬件实施例、完全软件实施例(包括固件、常驻软件、微代码等等)、或组合软件及硬件方面的实施例的形式,它们本文中可统ー称为“电路”、“模块”或“系統”。此外,本发明的方面可以采取在一个或多个计算机可读介质中实施的计算机程序产品的形式,在该计算机可读介质中具有计算机可读程序代码。可以使用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是(但不限干)电子、磁性、光学、电磁、红外线或半导体系统、装置或器件,或前述的任何合适的组合。计算机可读存储介质的更具体的示例(非详尽清単)可包括以下各种具有一或多个导线的电连接件、便携型计算机盘片、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPR0M或闪存)、光纤、便携型光盘只读存储器(CD-ROM)、光学存储器件或磁性存储器件,或前述的任何合适的组合。在此文件的上下文中,计算机可读存储介质可以是任何有形介质,其可以包含或存储用干与指令执行系统、装置或设备一起使用的程序。可以使用任何合适的介质传送实施在计算机可读介质上的程序代码,包括但不限于无线、有线、光纤缆线、射频(RF)等,或者前述的任意合适的组合。可以用ー个或多个编程语言的任意组合编写用于执行本发明的方面的操作的计算机程序代码,所述编程语言包括面向对象的编程语言(诸如Java、Smalltalk、C++等)以及传统的过程编程语言(诸如“C”编程语言或类似的编程语言)。程序代码可以全部在用户的计算机上执行,部分在用户的计算机上执行,作为独立软件包执行,部分在用户的计算机上部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一情形中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例 如,使用互联网服务供应商通过互联网)。參照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图说明本发明的方面。将理解到,可以通过计算机程序指令实施流程图和/或框图的每个块以及流程图和/或框图中的块的组合。这些计算机程序指令可以被提供给通用计算机、专用计算机、或者其它可编程数据处理装置的处理器,以产生机器,从而经由计算机或其它可编程数据处理装置的处理器执行的指令创建用于实施流程图和/或框图的块中指定的功能/动作的装置。这些计算机程序指令也可以存储在计算机可读介质中,其指引计算机、其它可编程数据处理装置、或其它设备以特定的方式工作,使得存储在计算机可读介质中的指令产生制品,其包括实施流程图和/或框图的块中指定的功能/动作的指令。计算机程序指令也可以被加载到计算机、其它可编程数据处理装置、或其它设备中,以使得在计算机、其它可编程装置、或其它设备中执行一系列操作步骤,以产生计算机执行的进程,使得在计算机或其它可编程装置上执行的指令提供用于实施流程图和/或框图的块中指定的功能/动作的进程。附图中所示的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实施方式的结构、功能和操作。在这点上,流程图或框图中的每个方框可以代表模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含ー个或多个用于实现特定逻辑功能的可执行指令。也应当注意,在某些作为替换的实施方式中,块中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连示出的块实际上可以基本同时执行,它们有时也可以按相反的顺序执行,这取决于所涉及的功能。也要注意的是,框图和/或流程图中的每个块、以及框图和/或流程图中的块的组合,可以用执行特定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。这里所使用的措词仅是为了描述具体实施例的目的,而不意欲限制本发明。如这里所使用的,単数形式也意在包括复数形式,除非上下文清晰地表明不是如此。还将理解,术语“包括”和/或“包含”在本说明书中使用时表示所述的特征、数字、步骤、操作、元素和/或组件的存在,但不排除ー个或多个其它特征、数字、步骤、元素和/或组件、和/或它们的组合的存在或增加。权利要求中的所有装置或步骤以及功能元素的对应结构、材料、动作和等同物意在包括用干与其它要求权利的元素组合地执行功能的任何结构、材料或动作,正如具体要求权利的。已经为了示例和说明的目的呈现了本发明的描述,但该描述不意在是穷尽的,也不意在将本发明限制到所公开的形式。在不偏离本发明的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和改变都是显而易见的。为了最好地说明本发明的原理和实际应用,以及为了使本领域的其它技术人员能够理解本发明的带有适合于所构思的 特定应用的各种修改的各种实施例,而选择和描述了实施例。
权利要求
1.一种经由设备适配器从高速缓存和非易失性存储器(NVS)向多个存储设备中的每一个转出数据的方法,包括 根据与每个所述存储设备有关的NVS的当前存储占用率,自适应地改变从高速缓存转出数据的转出速率; 根据与所述存储设备有关的当前转入活动性,自适应地调整所述转出速率,如果转入活动性低,则所述调整的转出速率相对较高,并且如果转入活动性高,则所述调整的转出速率相对较低;以及 以所述调整的转出速率从高速缓存向所述存储设备转出数据,并且从所述NVS丢弃所转出的数据。
2.如权利要求I所述的方法,其中自适应地改变所述转出速率,以保持所述NVS的期望总占用率,所述NVS的期望总占用率受到如下限制与每个所述存储设备有关的NVS的设备占用率不大于所述NVS的最大设备占用率,其中所述NVS中的可用空间向所有所述存储设备的总最大分配超过所述NVS中的可用空间的百分之百。
3.如权利要求2所述的方法,其中通过以下自适应地改变转出速率 如果所述NVS的总占用率超过最大总占用率,则将所述转出速率设置为最大速率, 如果所述NVS的设备占用率小于最小设备占用率,则将所述转出速率设置为最小速率,以及 在其他情况下,基于当前设备占用率与用于所述存储设备的最大设备占用率的比率而设置所述转出速率。
4.如前述任一项权利要求所述的方法,其中根据当前转入活动性而自适应地调整所述转出速率,所述当前转入活动性包括存储设备转入活动性、设备适配器转入活动性和设备适配器使用的带宽中的至少一个。
5.根据权利要求4所述的方法,其中根据所述存储设备的读取/写入速度而自适应地调整所述转出速率。
6.根据权利要求I所述的方法,其中根据当前转入活动性而自适应地调整所述转出速率,所述当前转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽和所述设备的读取/写入速度中的每个。
7.根据权利要求I所述的方法,其中自适应地改变所述转出速率,使得所述NVS的总占用率平均上保持接近于期望的占用率,以增加向所述多个存储设备的数据吞吐量,并且自适应地调整所述转出速率,以减小主机读取和写入响应时间。
8.根据权利要求I至4中任一项所述的方法,还包括 提供转出速率的索引表, 其中自适应地改变所述转出速率包括基于与所述存储设备有关的NVS的当前设备占用率计算初始索引; 其中自适应地调整所述转出速率包括根据与所述存储设备有关的当前转入活动性而递增或递减所述初始索引;以及 根据所调整的索引,从所述表中读出所调整的转出速率。
9.根据权利要求8所述的方法,还包括 根据所述索引表中的当前转入活动性和转出速率选择所述初始索引的递增或递减,使得所述NVS的总占用率平均上保持接近于期望的总占用率,以增加向所述多个存储设备的吞吐量以及减小读取和写入响应时间。
10.一种用于经由设备适配器从高速缓存和非易失性存储器(NVS)向多个存储设备转出数据的系统,包括 与所述高速缓存和NVS以及所述多个存储设备通信的至少一个处理器,其中所述处理器适配于执行根据权利要求I至9中任一项所述的方法。
11.一种用于促进经由设备适配器从高速缓存和非易失性存储器(NVS)向多个存储设备转出数据的计算机程序产品,所述计算机程序产品包括其中存储了计算机可读程序代码部分的计算机可读存储介质,当由计算机执行时,所述计算机可读程序代码部分使得所述计算机执行权利要求I至9中任一项所述的步骤。
全文摘要
本发明提供了通过处理器促进经由设备适配器从写入高速缓存和NVS向存储设备池进行数据转移的方法、系统和计算机程序产品实施例。处理器基于用于特定存储设备的NVS的当前占用率和与该存储设备有关的转入活动性,自适应地改变转出速率。转入活动性包括存储设备转入活动性、设备适配器转入活动性、设备适配器使用的带宽和存储设备的读取/写入速度中的一个或多个。这些因素通常与在高速缓存未命中事件中的读取响应时间相关联,并且通常不与转出速率的动态管理相关联。该组合在改善响应时间性能的同时保持NVS的期望整体占用率。
文档编号G06F12/08GK102770848SQ201180008003
公开日2012年11月7日 申请日期2011年1月5日 优先权日2010年2月1日
发明者K.J.阿什, L.M.古普塔 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1