基于数据的输入-输出存取类型来管理高速缓存替换的制作方法

文档序号:33460896发布日期:2023-03-15 03:45阅读:38来源:国知局
基于数据的输入-输出存取类型来管理高速缓存替换的制作方法

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


背景技术:

2.信息处理系统可以提供各种存储系统的存储资源以供不同用户使用。例如,不同用户可以具有相关联的存储池,每个存储池包括从一个或多个存储系统提供的存储资源。因此,每个存储系统可能运行多个不同的工作量。不同的工作量可能与相同的用户或不同的用户相关联。所述工作量中的每一个可能具有其自己独特的需求或存储配置文件,并且在给定存储系统上运行的各种工作量共享给定存储系统的各种资源。


技术实现要素:

3.本公开的说明性实施方式提供用于基于存储在存储高速缓存中的数据的输入-输出存取类型来管理存储高速缓存中的高速缓存替换的技术。
4.在一个实施方式中,一种设备包括至少一个处理装置,所述至少一个处理装置包括联接到存储器的处理器。至少一个处理装置被配置为执行以下步骤:监视存储多个高速缓存页面的存储高速缓存以确定存储高速缓存是否达到一个或多个指定状况;以及确定多个高速缓存页面的至少一个子集的高速缓存替换得分,所述高速缓存替换得分至少部分地基于存储在多个高速缓存页面中的数据的输入-输出存取类型来确定。至少一个处理装置还被配置为响应于确定存储高速缓存已经达到一个或多个指定状况中的至少一个,至少部分地基于所确定的高速缓存替换得分来选择多个高速缓存页面中的至少一个以从存储高速缓存移动到存储装置。至少一个处理装置还被配置为执行以下步骤:将多个高速缓存页面中的所选择的至少一个从存储高速缓存移动到存储装置。
5.这些和其他说明性实施方式包括但不限于方法、设备、网络、系统和处理器可读存储介质。
附图说明
6.图1是在说明性实施方式中被配置用于基于存储在存储高速缓存中的数据的输入-输出存取类型来管理存储高速缓存中的高速缓存替换的信息处理系统的框图。
7.图2是说明性实施方式中用于基于存储在存储高速缓存中的数据的输入-输出存取类型来管理存储高速缓存中的高速缓存替换的示例性过程的流程图。
8.图3示出了说明性实施方式中的顺序和随机存取写入操作的示例。
9.图4示出了说明性实施方式中的高速缓存页面列表和对应的存取频率和随机存取比率列表。
10.图5示出了说明性实施方式中考虑数据存取类型的高速缓存替换算法的过程流程。
11.图6示出了说明性实施方式中考虑数据存取类型的高速缓存替换算法中可以利用
的针对高速缓存页面集合计算的各种参数的表。
12.图7和图8示出了说明性实施方式中的可以用于实现信息处理系统的至少一部分的处理平台的示例。
具体实施方式
13.本文将参考示例性信息处理系统和相关联的计算机、服务器、存储装置和其他处理装置来描述说明性的实施方式。然而,应当理解,实施方式不限于与所示的特定说明性的系统和装置配置一起使用。因此,如本文所用的术语“信息处理系统”意图广泛地解释,以便涵盖例如包括云计算和存储系统的处理系统,以及包括物理和虚拟处理资源的各种组合的其他类型的处理系统。因此,信息处理系统可以包括例如至少一个数据中心或其他类型的基于云的系统,所述其他类型的基于云的系统包括托管存取云资源的租户的一个或多个云。
14.图1示出了根据说明性的实施方式配置以提供用于基于存储在存储高速缓存中的数据的输入-输出存取类型来管理存储高速缓存中的高速缓存替换的功能性的信息处理系统100。信息处理系统100包括一个或多个主机装置102-1、102-2、......102-h(统称为主机装置102),所述主机装置通过网络104与一个或多个存储阵列106-1、106-2、......106-s(统称为存储阵列106)进行通信。网络104可以包括存储区域网络(san)。
15.存储阵列106-1(如图1所示)包括多个存储装置108,每个存储装置各自存储由在主机装置102上运行的一个或多个应用程序利用的数据。存储装置108说明性地布置在一个或多个存储池中。存储阵列106-1还包括促进存储装置108的io处理的一个或多个存储控制器110。存储阵列106-1及其相关联的存储装置108是本文更一般地称为“存储系统”的示例。本实施方式中的这种存储系统由主机装置102共享,因此在本文也被称为“共享存储系统”。在其中只有单个主机装置102的实施方式中,主机装置102可以被配置为独占使用存储系统。
16.主机装置102说明性地包括能够经由网络104与存储阵列106通信的相应计算机、服务器或其他类型的处理装置。例如,主机装置102的至少一个子集可以被实现为计算服务平台或其他类型的处理平台的相应虚拟机。在此类布置中,主机装置102说明性地提供计算服务,诸如代表与主机装置102中的相应主机装置相关联的一个或多个用户中的每一个执行一个或多个应用程序。
17.本文中的术语“用户”旨在被广义地解释为涵盖人、硬件、软件或固件实体的多种布置,以及此类实体的组合。
18.可以根据平台即服务(paas)模型、基础设施即服务(iaas)模型和/或功能即服务(faas)模型为用户提供计算和/或存储服务,但是应了解可以使用众多其他云基础设施布置。此外,说明性实施方式可以在云基础设施情境之外实现,如在给定企业内实现的独立计算和存储系统的情况下。
19.存储阵列106-1的存储装置108可以实现被配置为与主机装置102相关联的用户存储对象的逻辑单元(lun)。这些对象可以包括文件、块或其他类型的对象。主机装置102利用读取和写入命令以及通过网络104传输的其他类型的命令与存储阵列106-1交互。在一些实施方式中,此类命令更特定地包括小型计算机系统接口(scsi)命令,但是在其他实施方式
中可以使用其他类型的命令。作为该术语在本文中广泛使用的给定io操作说明性地包括一个或多个此类命令。本文对诸如“输入-输出”和“io”的术语的引用应被理解为是指输入和/或输出。因此,io操作涉及输入和输出中的至少一者。
20.此外,如本文使用的术语“存储装置”旨在被广义地解释,以便涵盖例如诸如lun或其他逻辑存储卷的逻辑存储装置。逻辑存储装置可以在存储阵列106-1中被定义为包括一个或多个物理存储装置的不同部分。因此,存储装置108可以被视为包括相应的lun或其他逻辑存储卷。
21.存储阵列106-1还包括存储高速缓存112并实现基于io存取类型的高速缓存管理逻辑114。基于io存取类型的高速缓存管理逻辑114用于管理高速缓存112(例如,存储在其中的数据)。例如,基于io存取类型的高速缓存管理逻辑114可以实现高速缓存替换算法,所述高速缓存替换算法考虑了存储在高速缓存112的高速缓存页面中的数据的存取类型(例如,顺序存取对随机存取)。因此,当此类高速缓存页面比存储较少随机存取数据的其他高速缓存页面存储更多的随机存取数据时,基于io存取类型的高速缓存管理逻辑114可以将高速缓存页面在高速缓存112中保存更长时间。以这种方式,“随机存取”数据优先保存在高速缓存112中,而不是被移出到存储装置108。这可以改进存储装置108的io性能,并且还可以增加存储装置108的寿命(例如,因为随机存取写入操作可能导致存储装置108上的碎片化和附加擦除循环)。
22.基于io存取类型的高速缓存管理逻辑114的功能性的至少部分可以至少部分地以存储在存储器中并由处理器执行的软件的形式来实现。
23.虽然在图1的实施方式中被示为在存储阵列106-1内部实现,但应了解可以在存储阵列106-1的外部实现高速缓存112和/或基于io存取类型的高速缓存管理逻辑114。例如,高速缓存112和/或基于io存取类型的高速缓存管理逻辑114可以至少部分地在主机装置102中的一个或多个、存储阵列106-2至106-s中的一个或多个其他存储阵列内实现。高速缓存112和/或基于io存取类型的高速缓存管理逻辑114也可以或替代地至少部分地在存储阵列106-1的存储控制器110内实现。
24.图1中的主机装置102和存储阵列106被假设为使用至少一个处理平台来实现,其中每个处理平台包括一个或多个处理装置,每个处理装置具有联接到存储器的处理器。此类处理装置可以说明性地包括计算、存储和网络资源的特定布置。例如,在一些实施方式中,处理装置至少部分地利用诸如vm或linux容器(lxc)或两者的组合的虚拟资源来实现,如在其中docker容器或其他类型的lxc被配置为在vm上运行的布置中。
25.主机装置102和存储阵列106可以在相应的不同处理平台上实现,即便众多其他布置是可能的。例如,在一些实施方式中,主机装置102和存储阵列106中的一者或多者的至少部分在同一处理平台上实现。存储阵列106中的一个或多个或其部分(例如,诸如高速缓存112和基于io存取类型的高速缓存管理逻辑114)因此可以至少部分地在至少一个处理平台内实现,所述至少一个处理平台实现主机装置102的至少一个子集。
26.网络104可以使用多个不同类型的网络来实现以互连存储系统部件。例如,网络104可以包括作为诸如互联网的全球计算机网络的一部分的san,但是其他类型的网络可以是san的一部分,包括广域网(wan)、局域网(lan)、卫星网络、电话或电缆网络、蜂窝网络、无线网络(诸如wifi或wimax网络)、或这些和其他类型网络的各个部分或组合。因此,在一些
实施方式中,网络104包括多种不同类型的网络的组合,每种网络包括被配置为使用互联网协议(ip)或其他相关通信协议进行通信的处理装置。
27.作为更特定的示例,一些实施方式可以利用一个或多个高速本地网络,其中相关联的处理装置利用那些装置的外围部件快速互连(pcie)卡和诸如infiniband、千兆以太网或光纤通道的网络协议来彼此通信。如本领域技术人员将理解的,在给定实施方式中可以有众多替代网络布置。
28.尽管在一些实施方式中,由主机装置102使用来与存储阵列106通信的某些命令说明性地包括scsi命令,但是在其他实施方式中可以使用其他类型的命令和命令格式。例如,一些实施方式可以利用与nvm快速(nvme)相关联的命令特征和功能性来实现io操作,如2017年5月nvme规范修订版1.3中所述,该规范通过引用并入本文。可以在本文公开的说明性的实施方式中使用的这种类型的其他存储协议包括关于架构的nvme(也称为nvmeof),以及关于传输控制协议(tcp)的nvme(也称为nvme/tcp)。
29.假设本实施方式中的存储阵列106-1包括使用存储阵列106-1的快闪存储器或其他类型的非易失性存储器来实现的持久性存储器。高速缓存112可以表示此类持久性存储器的示例。更特定的示例包括基于nand的快闪存储器或其他类型的非易失性存储器,诸如电阻式ram、相变存储器、自旋扭矩转移磁阻ram(stt-mram)和基于3dxpoint
tm
存储器的intel optane
tm
装置。进一步假设持久性存储器与存储阵列106-1的存储装置108是分开的,但是在其他实施方式中,持久性存储器可以被实现为存储装置108中的一者或多者的一个或多个指定部分。例如,在一些实施方式中,存储装置108可以包括基于快闪存储器的存储装置,如在涉及全快闪存储器存储阵列的实施方式中,或者可以全部或部分地使用其他类型的非易失性存储器来实现。
30.如上所提及的,主机装置102与存储阵列106之间的通信可以利用pcie连接或通过一个或多个网络实现的其他类型的连接。例如,说明性实施方式可以使用诸如互联网scsi(iscsi)、串行附接scsi(sas)和串行ata(sata)的接口。在其他实施方式中可以使用许多其他接口和相关联的通信协议。
31.在一些实施方式中,存储阵列106以及系统100的其他部分(诸如主机装置102)可以被实施为基于云的系统的一部分。
32.存储阵列106-1的存储装置108可以使用固态驱动器(ssd)来实现。此类ssd是使用非易失性存储器(nvm)装置(诸如快闪存储器)来实现。可以用于实现存储装置108的至少一部分的其他类型的nvm装置包括非易失性随机存取存储器(nvram)、相变ram(pc-ram)和磁ram(mram)。也可以使用多种不同类型的nvm装置或其他存储装置的这些以及各种组合。例如,硬盘驱动器(hdd)可以与ssd或其他类型的nvm装置结合使用或代替它们使用。因此,在实现存储装置108的至少一个子集中可以使用许多其他类型的电子或磁介质。
33.存储阵列106可以另外或替代地被配置为实现多层存储系统的多个不同的存储层。举例来说,给定的多层存储系统可以包括使用快闪存储装置或其他类型的ssd实现的快速层或性能层,以及使用hdd实现的容量层,可能具有基于服务器的一个或多个此类层。对本领域技术人员显而易见的是,在其他实施方式中可以使用多种其他类型的存储装置和多层存储系统。在给定存储层中使用的特定存储装置可以根据给定实施方式的特定需求而变化,并且可以在单个存储层中使用多种不同的存储装置类型。如先前所指示,如本文中所使
用的术语“存储装置”意图被广泛地解释,并且因此可以涵盖例如ssd、hdd、快闪驱动器、混合驱动器或其他类型的存储产品和装置或其部分,并且说明性地包括逻辑存储装置(诸如lun)。
34.作为另一个示例,存储阵列106可以用于在包括由一个或多个网络互连的多个存储节点的集群存储系统中实现一个或多个存储节点。
35.因此,应了解,如本文所使用的术语“存储阵列”意图广泛地解释,并且可以涵盖可商购获得的存储阵列的多个不同实例。
36.在说明性的实施方式中可以用于实现给定存储系统的其他类型的存储产品包括软件定义的存储、云存储、基于对象的存储和横向扩展存储。在说明性的实施方式中,这些和其他存储类型中的多个的组合也可以用于实现给定的存储系统。
37.在一些实施方式中,存储系统包括以主动-主动配置布置的第一存储阵列和第二存储阵列。例如,此类布置可以用于确保利用同步复制过程将存储在一个存储阵列中的数据复制到另一个存储阵列。跨多个存储阵列的此类数据复制可以用于促进系统100中的故障恢复。因此,一个存储阵列可以相对于作为备份或恢复存储阵列操作的另一个存储阵列,作为生产存储阵列操作。
38.然而,应当理解,本文公开的实施方式不限于主动-主动配置或任何其他特定存储系统布置。因此,本文的说明性的实施方式可以使用多种其他布置来配置,例如,包括主动-被动布置、主动-主动非对称逻辑单元存取(alua)布置和其他类型的alua布置。
39.这些和其他存储系统可以是本文更一般地称为包括一个或多个处理装置的处理平台的部分,每个处理装置包括联接到存储器的处理器。给定的此类处理装置可以对应于一个或多个虚拟机或其他类型的虚拟化基础设施,诸如docker容器或其他类型的lxc。如上所示,系统100的此类元件之间的通信可以通过一个或多个网络发生。
40.如本文中使用的术语“处理平台”旨在被广义地解释为涵盖(作为说明但非限制)多个处理装置集合和一个或多个相关联的存储系统,所述存储系统被配置为通过一个或多个网络进行通信。例如,主机装置102的分布式实现方式是可能的,其中主机装置102中的某些主机装置驻留在处于第一地理位置的一个数据中心,而主机装置102中的其他主机装置驻留在处于可能远离第一地理位置的一个或多个其他地理位置的一个或多个其他数据中心。存储阵列106可以至少部分地在第一地理位置、第二地理位置和一个或多个其他地理位置中实现。因此,在系统100的一些实现方式中,主机装置102中的不同主机装置和存储阵列106可以驻留在不同的数据中心。主机装置102和存储阵列106的众多其他分布式实现方式是可能的。因此,主机装置102和存储阵列106也可以以分布式方式跨多个数据中心实现。
41.说明性的实施方式中的用于实现系统100的各部分的处理平台的附加示例将在下面结合图7和图8进行更详细描述。
42.应当理解,图1所示的用于基于存储在存储高速缓存中的数据的输入-输出存取类型来管理存储高速缓存中的高速缓存替换的特定要素集合仅通过说明性示例的方式呈现,并且在其他实施方式中可以使用附加或替代的要素。因此,另一个实施方式可以包括附加的或替代的系统、装置和其他网络实体以及模块和其他部件的不同布置。
43.应当理解,说明性的实施方式的这些和其他特征仅通过示例的方式呈现,并且不应被解释为以任何方式进行限制。
44.现在将参考图2的流程图更详细地描述基于存储在存储高速缓存中的数据的输入-输出存取类型来管理存储高速缓存中的高速缓存替换的示例性过程。应当理解,该特定过程仅是示例,并且可以在其他实施方式中使用用于基于存储在存储高速缓存中的数据的输入-输出存取类型来管理存储高速缓存中的高速缓存替换的附加或替代的过程。
45.在该实施方式中,所述过程包括步骤200至206。假设这些步骤由基于io存取类型的高速缓存管理逻辑114执行。过程开始于步骤200:监视存储多个高速缓存页面的存储高速缓存(例如,高速缓存112)以确定存储高速缓存是否达到一个或多个指定状况。一个或多个指定状况可以包括达到缓存已满状况、存储高速缓存中的存储空间下降到低于指定空间阈值等。
46.在步骤202中,为多个高速缓存页面的至少一个子集确定缓存替换得分。至少部分地基于存储在多个高速缓存页面中的数据的输入-输出存取类型来确定高速缓存替换得分。响应于确定存储高速缓存已经达到一个或多个指定状况中的至少一个,至少部分地基于步骤204中所确定的高速缓存替换得分来选择多个高速缓存页面中的至少一个以从存储高速缓存移动到存储装置(例如,存储装置108)。在步骤206中,将多个高速缓存页面中的所选择的至少一个从存储高速缓存移动到存储装置。
47.在步骤202中确定给定高速缓存页面的给定高速缓存替换得分可以包括确定存储在给定高速缓存页面中的随机存取数据的计数相对于存储在多个高速缓存页面中的总随机存取数据的比率。给定高速缓存页面的给定高速缓存替换得分包括至少部分地基于存储在给定高速缓存页面中的数据的输入-输出存取类型确定的第一要素得分与至少部分地基于一个或多个附加标准确定的一个或多个附加要素得分的加权组合。一个或多个附加标准可以包括给定高速缓存页面的存取频率、给定高速缓存页面的最近存取时间以及给定高速缓存页面首次存储在存储高速缓存中的时间中的至少一者。
48.可以相对于一个或多个附加标准的一个或多个附加权重来调整第一要素得分的第一权重,其中此类调整可以至少部分地基于监视存储装置的状态。监视存储装置的状态包括监视存储装置的预期剩余寿命。存储装置可以包括ssd,并且监视存储装置的预期剩余寿命可以包括监视在ssd上执行的多个擦除循环。相对于一个或多个附加标准的一个或多个附加权重调整第一要素得分的第一权重可以包括响应于确定存储装置的预期剩余寿命低于指定的寿命阈值而相对于一个或多个附加权重增加第一权重。
49.存储在多个高速缓存页面中的数据的输入-输出存取类型可以包括顺序输入-输出存取和随机输入-输出存取。在步骤204中至少部分地基于确定的高速缓存替换得分来选择多个高速缓存页面中的至少一个以从存储高速缓存移动到存储装置可以包括选择多个高速缓存页面中具有给定高速缓存替换得分的给定高速缓存页面,所述给定高速缓存替换得分指示相对于多个高速缓存页面中的一个或多个其他高速缓存页面,存储在给定高速缓存页面中的随机输入-输出存取数据的量更高。在步骤204中至少部分地基于所确定的高速缓存替换得分来选择多个高速缓存页面中的至少一个以从存储高速缓存移动到存储装置还可以或替代地包括从多个高速缓存页面中具有相同存取频率的至少两个高速缓存页面选择所述至少两个高速缓存页面中具有给定高速缓存替换得分的给定高速缓存页面,所述给定高速缓存替换得分指示相对于至少两个高速缓存页面中的一个或多个其他高速缓存页面,存储在给定高速缓存页面中的随机输入-输出存取数据的量更高。
50.对存储系统(诸如存储阵列106)的数据io存取可以被分类为不同类型,诸如顺序存取和随机存取。当写入操作的起始存储位置(例如,逻辑块地址(lba))紧跟在前一个写入操作之后时,写入操作是有顺序的。相反,当写入操作的起始lba与前一个写入操作的结束不相邻时,写入操作是随机的。图3示出了顺序写入存取300和随机写入存取310的示例。
51.nand快闪存储器是ssd的基本构建块。ssd的读写操作可以按页面粒度(例如,2kb、4kb等)进行,而擦除操作可以按块粒度(例如,64页、128页等)进行。在覆写该块中的任何页面之前,通常必须擦除整个块。某些类型的存储装置(诸如ssd)具有有限的擦除循环。例如,利用单级单元(slc)的ssd可以具有大约100,000个擦除循环,并且利用多级单元(mlc)的ssd可以具有大约10,000个擦除循环。随机写入导致ssd的内部碎片化,从而导致性能下降一定数量级。由碎片化导致的ssd性能下降可以在随机写入停止之后持续一段时间,因为随机写入可以导致nand快闪存储器块中的数据页面被复制到其他地方并被擦除。因此,随机写入可以显著缩短ssd和其他类型的存储装置的使用寿命。
52.随着nvme和ssd技术的发展,顺序存取非常快,并且可以达到微秒(μs)级别。但是,高速缓存存取可以达到纳秒(ns)级别。随机数据写入对ssd和其他类型的存储装置有不利影响。因此,从整个存储系统的角度来看,这有利于高速缓存页面保存更多“随机存取”数据并释放保存“顺序存取”数据的缓存页面。可以分析存储在高速缓存页面中的数据以确定其随机存取统计数据(例如,存储在每个高速缓存页面中作为随机存取io操作的一部分的数据的量或比率)。可以使用此类统计数据以便将具有高随机存取请求统计数据的高速缓存页面保存更长的时间,并释放保存具有高顺序存取请求统计的数据的高速缓存页面以提供成本节省。
53.常规的高速缓存页面替换算法(例如,先进先出(fifo)、最近最少使用(lru)、最不常用(lfu)等)没有考虑到随机写入到存储装置(诸如ssd)的副面影响(例如性能下降、内部碎片等)。相反,此类常规的高速缓存替换算法通常将顺序存取数据和随机存取数据两者视为相同。例如,lfu高速缓存替换算法的常规实现方式计算高速缓存页面被存取的频率,并且最不常用的高速缓存页面首先被丢弃。lfu高速缓存替换算法的常规实现方式不考虑随机数据存取情况。
54.说明性实施方式提供了考虑到数据存取类型的改进的高速缓存替换算法。至少部分地基于高速缓存页面是否包括随机存取数据或顺序存取数据而对高速缓存页面进行评分。以这种方式,具有高随机存取频率的数据有更高的机会暂存在缓存页面上,而顺序存取数据有更高的机会从高速缓存刷新到ssd或其他存储装置。这可以减少写入ssd或其他存储装置的频率和次数。通过减少对ssd或其他存储装置的随机存取写入的总数,性能和寿命两者都得到了改进。此外,这些技术是对磨损均衡方法的补充,因为本文描述的技术可以减轻ssd或其他存储装置的磨损程度,这是因为随机存取数据有更高的机会在高速缓存中暂存,这减少了内部碎片化。
55.在一些实施方式中,使用高速缓存替换算法,所述高速缓存替换算法考虑存取频率和数据存取类型两者以为不同缓存页面生成得分。根据需要替换具有最低得分的高速缓存页面。使用这些技术,可以替换具有低存取频率和高数据顺序存取模式的高速缓存页面。此外,可以对存取频率相同但数据存取类型不同的高速缓存页面进行不同的处理。例如,具有较高随机存取得分的具有给定存取频率的高速缓存页面可以比具有较低随机存取得分
的具有给定存取频率的那些高速缓存页面在高速缓存中保存更长的时间。这减少了对ssd介质或其他类型的存储装置不利的随机io,并且可以扩展或延长ssd或其他存储装置的寿命,从而通过使用快闪存储器、ssd或随机存取io可能造成性能下降和寿命缩短的其他类型存储装置的存储系统为最终用户提供好处。
56.可以修改各种常规的高速缓存替换算法以考虑到高速缓存页面的数据存取类型。在下面的描述中,对常规的lfu高速缓存替换算法进行修改,以便不仅考虑到高速缓存页面请求频率,而且考虑到对存储在高速缓存页面中的数据的存取类型,以生成高速缓存页面替换得分。选择具有最小高速缓存页面替换得分的高速缓存页面(例如,其中高速缓存页面替换得分考虑到高速缓存页面请求频率和数据存取类型两者)以从高速缓存移出到ssd或其他类型的存储装置。因此,说明性实施方式提供了改进的高速缓存替换算法,其提高诸如ssd的存储装置的效率和寿命。
57.在下面的描述中,n用于表示高速缓存页面的总数,并且pi表示高速缓存页面i,其中1≤i≤n。d
ri
表示高速缓存页面i的随机存取计数,并且表示所有高速缓存页面的随机存取总计数。高速缓存页面i上的随机存取比率被表示为其中sum(r
ri
)=1。ci表示页面i的存取计数,并且页面i的总存取计数被表示为所有高速缓存页面中高速缓存页面i的存取频率比率被表示为并且其中sum(r
ci
)=1。高速缓存页面i的随机数据的权重被表示为w
ri
,并且高速缓存页面i的io存取频率的权重被表示为w
ci
,其中w
ri
+w
ci
=1。高速缓存页面i的综合得分被计算为:
[0058][0059]
综合得分si将存取计数与io类型统计组合。当高速缓存为满时,具有最低综合得分si值的高速缓存页面被替换使得具有低存取和低随机存取的高速缓存页面是要从高速缓存中移出的最好候选页面。
[0060]
假设高速缓存页面总数为n,以及高速缓存页面列表为p=[p1,p2,p3...pn],其中用于记录每个高速缓存页面的存取计数的对应阵列列表为c=[c1,c2,c3...cn]并且随机存取数据比率为d=[d
r1
,d
r2
,d
r3
...d
rn
]。图4示出了此类高速缓存页面列表400和相关联的存取频率列表410以及随机存取数据比率列表420。为了测量高速缓存页面存取频率和随机存取程度,可以先对此类标准进行归一化,然后对其进行加权以得到每个高速缓存页面的综合得分。当高速缓存为满时,则可以确定并选择具有最小值的高速缓存页面进行替换。
[0061]
图5示出了考虑到数据存取类型的改进的高速缓存页面替换算法的过程流程。图5的处理流程开始于501,并且在步骤503中确定高速缓存页面集合是否为满(例如,高速缓存是否为满,使得存储在高速缓存中的一个或多个高速缓存页面需要被逐出和/或替换为其他高速缓存页面)。监视(例如,持续地、周期性地等)高速缓存的状态,直到步骤503的确定结果为是。当步骤503的确定结果为是时,图5的过程流程进行到步骤505和507。
[0062]
在步骤505中,针对高速缓存中的高速缓存页面中的两个或更多个(例如,针对高
速缓存中的每个缓存页面、针对高速缓存中的高速缓存页面的至少一个子集等)计算高速缓存页面i的高速缓存页面存取计数比率,其被表示为r
ci
。对于lfu高速缓存替换算法实现方式,高速缓存页面i计数器列表为c=[c1,c2,c3...cn]。根据以下等式(1)来计算高速缓存页面i的存取频率比率:
[0063][0064]
在步骤507中,针对高速缓存中的两个或更多个高速缓存页面计算高速缓存页面i的随机数据存取的比率,其被表示为r
ri
。高速存取页面i随机存取数据比率列表为d=[d
r1
,d
r2
,d
r3
...d
rn
]。根据以下等式(2)来计算高速缓存页面i的随机存取比率:
[0065][0066]
在步骤509中,计算高速缓存页面组中的两个或更多个高速缓存页面中的每一个的综合得分si。为此,可以根据以下等式(3)将值r
ci
和r
ri
组合:
[0067][0068]
高速缓存页面的得分可以被表示为s=[s1,s2,s3...sn]。w
ri
是页面i的随机存取权重,并且w
ci
是页面i的数据存取频率的权重,其中w
ri
+w
ci
=1。w
ri
和w
ci
的特定值可以针对特定实现方式根据需要进行调节,并且可以随时间进行调整。例如,当特定的ssd或其他存储装置达到其预期寿命时,w
ri
的值可能相对于w
ci
的值增加,使得随机存取比率较高的页面即使具有相对较低的存取频率计数,也在高速缓存中保存更长时间,以便增加ssd或其他存储装置的寿命。可以进行各种其他调整。例如,如果已知特定ssd或其他存储装置被安排进行替换(例如,在某个指定的阈值时间段内),则w
ri
的值可以相对于w
ci
的值减少,因为可能不需要延长该ssd或其他存储装置的寿命。然而,应注意,即使在这种情况下,出于性能原因,也可能希望在高速缓存中保存具有高随机存取比率的高速缓存页面。
[0069]
在步骤511中,具有最低综合得分si(例如,min[s1,s2,s3...sn])的高速缓存页面集合中的高速缓存页面被移出或以其他方式从高速缓存中逐出或移除。具有最低综合得分si的高速缓存页面具有存取频率和随机存取比率的最低加权组合,因此是要从高速缓存中移出的最好候选页面。虽然关于图5描述的修改后的lfu高速缓存替换算法比常规的lfu高速缓存替换算法更复杂,但是修改后的lfu高速缓存替换算法提供了各种优点。此类优点包括找到更好的高速缓存页面来替换(例如,以改善ssd或其他存储装置的性能和寿命),以及处置多个高速缓存页面可能具有相同存取频率计数的情况(例如,具有更多顺序存取数据的高速缓存页面被选择用于替换具有较少顺序存取数据的高速缓存页面)。随着时间的推移,这为ssd或其他存储装置提供好处,诸如减少碎片化以及最小化所需的擦除循环。再者,应注意,虽然图5是关于扩充常规lfu高速缓存替换算法以进一步考虑到数据存取类型(例如,顺序存取对随机存取)而描述的,但是可以类似地修改各种其他类型的高速缓存替换算法(例如,fifo、lru等)来考虑数据存取类型。此外,高速缓存替换算法可以考虑数据存取类型和多个其他参数或标准(例如,lfu的存取频率和lru的存取新近度)。
[0070]
图6示出了表600,其示出了总共有10个高速缓存页面(编号为0到9)的示例。表600
示出了高速缓存页面0到9中的每一个的存取计数或频率(c)、随机存取计数(d)、存取频率比率(r
ci
)、随机数据存取比率(r
ri
)和综合得分(s)。根据lfu高速缓存替换算法,高速缓存页面7和8是要被替换的候选页面,因为高速缓存页面7和8的存取计数在高速缓存页面0到9中最低(例如,2)。附加高速缓存替换算法(例如,fifo、lru等)可以用于选择哪个页面的数据(例如,高速缓存页面7或8)是要从高速缓存中移出的候选页面和/或用于在此类候选页面中进行选择。在说明性实施方式中,除了此类高速缓存替换算法之外,或代替此类高速缓存替换算法,使用存取类型来选择应从高速缓存中移出哪个高速缓存页面的数据(例如,高速缓存页面7或8)。在将每个高速缓存页面的随机存取频率与其相关联的存取频率组合以产生综合得分之后,确定高速缓存页面7(其随机存取少于高速缓存页面8)更适于从高速缓存移出并提供更多成本节省以刷新到后端磁盘。
[0071]
应当理解,上文和本文其他地方描述的特定优点与特定说明性实施方式相关联,并且不需要在其他实施方式中存在。而且,如在附图中示出并且如上所述的特定类型的信息处理系统特征和功能性仅是示例性的,并且在其他实施方式中可使用众多其他布置。
[0072]
现在将参考图7和图8更详细地描述用于实现用于基于存储在存储高速缓存中的数据的输入-输出存取类型来管理存储高速缓存中的高速缓存替换的功能性的处理平台的说明性实施方式。虽然这些平台在系统100的情境下进行了描述,但是这些平台也可以用于在其他实施方式中实现其他信息处理系统的至少一些部分。
[0073]
图7示出了包括云基础设施700的示例性处理平台。云基础设施700包括可以用于实现图1中的信息处理系统100的至少一部分的物理和虚拟处理资源的组合。云基础设施700包括使用虚拟化基础设施704实现的多个虚拟机(vm)和/或容器集合702-1、702-2、......702-l。虚拟化基础设施704在物理基础设施705上运行,并且说明性地包括一个或多个管理程序和/或操作系统级虚拟化基础设施。操作系统级虚拟化基础设施说明性地包括linux操作系统或其他类型的操作系统的内核控制组。
[0074]
云基础设施700还包括在虚拟化基础设施704的控制下在vm/容器集合702-1、702-2、......702-l中的相应vm/容器集合上运行的应用程序集合710-1、710-2、......710-l。vm/容器集合702可以包括相应的vm、一个或多个容器的相应集合,或在vm中运行的一个或多个容器的相应集合。
[0075]
在图7的一些实现方式中,vm/容器集合702包括使用包括至少一个管理程序的虚拟化基础设施704实现的相应vm。管理程序平台可以用于在虚拟化基础设施704内实现管理程序,其中所述管理程序平台具有相关联的虚拟基础设施管理系统。底层物理机可以包括一个或多个分布式处理平台,所述分布式处理平台包括一个或多个存储系统。
[0076]
在图7的实施方式的其他实现方式中,vm/容器集合702包括使用提供操作系统级虚拟化功能性(诸如对在裸机主机上运行的docker容器或在vm上运行的docker容器的支持)的虚拟化基础设施704实现的相应容器。容器是说明性地使用操作系统的相应内核控制组来实现。
[0077]
从上面显而易见的是,系统100的处理模块或其他部件中的一者或多者可以各自在计算机、服务器、存储装置或其他处理平台元件上运行。给定的此类元件可以被视为在本文中更一般地称为“处理装置”的示例。图7所示的云基础设施700可以表示一个处理平台的至少一部分。此类处理平台的另一个示例是图8所示的处理平台800。
[0078]
在这个实施方式中,处理平台800包括系统100的一部分,并且包括被表示为802-1、802-2、802-3、......802-k的多个处理装置,所述多个处理装置通过网络804彼此通信。
[0079]
网络804可以包括任何类型的网络,包括例如全球计算机网络(诸如互联网)、wan、lan、卫星网络、电话或有线网络、蜂窝网络、无线网络(诸如wifi或wimax网络),或这些和其他类型网络的各个部分或组合。
[0080]
处理平台800中的处理装置802-1包括联接到存储器812的处理器810。
[0081]
处理器810可以包括微处理器、微控制器、专用集成电路(asic)、现场可编程门阵列(fpga)、中央处理单元(cpu)、图形处理单元(gpu)、张量处理单元(tpu)、视频处理单元(vpu)或其他类型的处理电路,以及此类电路元件的部分或组合。
[0082]
存储器812可以以任何组合形式包括随机存取存储器(ram)、只读存储器(rom)、快闪存储器或其他类型的存储器。本文公开的存储器812和其他存储器应当被视为更一般地被称为存储一个或多个软件程序的可执行程序代码的“处理器可读存储介质”的事物的说明性示例。
[0083]
包括此类处理器可读存储介质的制品被认为是说明性实施方式。给定的此类制品可以包括例如存储阵列、存储磁盘或包含ram、rom、快闪存储器或其他电子存储器的集成电路,或各种其他类型的计算机程序产品中的任何一种。如本文所用的术语“制品”应被理解为排除瞬时的传播信号。可以使用包括处理器可读存储介质的许多其他类型的计算机程序产品。
[0084]
处理装置802-1中还包括网络接口电路814,所述网络接口电路用于将处理装置与网络804和其他系统部件对接,并且可以包括常规收发器。
[0085]
假设处理平台800的其他处理装置802以与针对图中的处理装置802-1所示的方式类似的方式进行配置。
[0086]
而且,仅通过示例呈现图中所示的特定处理平台800,并且系统100可以包括附加或替代的处理平台,以及呈任何组合的许多不同的处理平台,其中每个此类平台包括一个或多个计算机、服务器、存储装置或其他处理装置。
[0087]
例如,用于实现说明性实施方式的其他处理平台可以包括融合基础设施。
[0088]
因此应当理解,在其他实施方式中,可以使用附加或替代元件的不同布置。这些元件的至少一个子集可在公共处理平台上共同实现,或者每个此类元件可在单独的处理平台上实现。
[0089]
如前所述,如本文公开的信息处理系统的部件可以至少部分地以存储在存储器中并由处理装置的处理器执行的一个或多个软件程序的形式来实现。例如,如本文公开的用于基于存储在存储高速缓存中的数据的输入-输出存取类型来管理存储高速缓存中的高速缓存替换的功能性的至少一些部分以在一个或多个处理装置上运行的软件的形式来说明性地实现。
[0090]
应再次强调,上述实施方式仅出于说明的目的而呈现。可以使用许多变型和其他替代的实施方式。例如,所公开的技术可适用于多种其他类型的信息处理系统、存储系统、存储高速缓存等。而且,在附图中说明性地示出的系统和装置元件的特定配置以及相关联的处理操作在其他实施方式中可能改变。此外,以上在描述说明性实施方式的过程中做出的各种假定也应被视为示例性的,而不是对本公开的要求或限制。所附权利要求的范围内
的众多其他替代实施方式对于本领域技术人员将是显而易见的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1