信息存储系统和控制信息存储系统的方法

文档序号:6498531阅读:152来源:国知局
信息存储系统和控制信息存储系统的方法
【专利摘要】信息存储系统的示例包括用于向被分层为性能不同的层的池提供实际存储区域的物理存储驱动器、和控制器。该控制器监测对池中的第一层中的访问。该控制器基于对第一层的访问来确定第一层的负载状态。该控制器保存管理信息,该管理信息将第一层的负载和在池中的第二层与第一层之间的数据重定位中的移动数据的重定位速度和/或模式相关联。该控制器基于确定的第一层的负载状态和该管理信息,来确定在第二层与第一层之间的数据重定位中的移动数据的重定位速度和模式中的至少一项。
【专利说明】信息存储系统和控制信息存储系统的方法

【技术领域】
[0001]本发明涉及一种信息存储系统以及控制该信息存储系统的方法,并且尤其涉及信息存储系统中的层之间的数据重定位。

【背景技术】
[0002]对于用于为主机提供卷(volume)的存储系统而言,已知存在的实践是:从存储系统中性能能力有所不同的多个驱动器的存储区域形成在等级上分层的池,并且为主机供应在该池中被配置的虚拟卷(例如,参见PTLl,US2011/0167236A)。
[0003]存储系统从主机分析针对虚拟卷的输入/输出(I/O)负载,并且自动将具有高I/o负载的页面(page)重定位至由具有高性能能力的昂贵磁盘的资源所组成的高级层、并且将具有低I/O负载的页面重定位至由具有低性能能力的廉价磁盘的资源所组成的低级层(层之间的页面重定位)。这种技术有效地以较低的总体拥有成本(total cost ofownership, TC0)而满足了性能请求。US2011/0167236A还公开了一种用于控制从SSD分配的多个页面从而使得SSD将不会成为瓶颈的技术。
[0004]引用列表
[0005]专利文献
[0006]PTL I:US 2011/0167236 A


【发明内容】

[0007]技术问题
[0008]为了最大化主机的1/0性能(响应性能),重要的是更快的页面重定位以最小化完成页面重定位的时间。然而,提高页面重定位的速度导致了页面重定位期间存储系统中的负载增加;因此,诸如存储控制器中的CPU和存储驱动器之类的硬件资源可能成为瓶颈而导致存储系统的主机I/o性能的明显降级。因此,需要一种利用主机1/0性能的最小降级来更快地执行页面重定位的技术。
[0009]针对问题的解决方案
[0010]本发明的一个方面是一种信息存储系统,其包括用于向被分层为性能不同的多个层的池提供实际存储区域的多个物理存储驱动器,以及控制器。该控制器监测该池中的第一层中的访问。该控制器基于对第一层的访问而确定第一层的负载状态。该控制器保存管理信息,该管理信息将第一层的负载和在该池中的第二层与第一层之间的数据重定位中的移动数据的重定位速度和/或模式相关联。该控制器基于确定的第一层的负载状态和该管理信息,来确定在第二层与第一层之间的数据重定位中的移动数据的重定位速度和模式中的至少一项。
[0011]发明的有益效果
[0012]本发明的方面实现了分层的池中更快的数据重定位同时最小化主机1/0性能的降级。

【专利附图】

【附图说明】
[0013]图1是示意性图示实施例中的计算机系统的整体配置的框图。
[0014]图2示意性图示了实施例中存储系统为主机提供的虚拟卷以及供应该虚拟卷的池的逻辑配置。
[0015]图3是图示实施例中在共享存储器中所保存的数据的框图。
[0016]图4是图示实施例中在本地存储器中保存的示例性存储控制程序的框图。
[0017]图5图示了实施例中的虚拟至逻辑转换表的示例性配置。
[0018]图6图示了实施例中的逻辑至物理转换表的示例性配置。
[0019]图7图示了实施例中的粒度监测表的示例性配置。
[0020]图8图示了实施例中的奇偶校验组监测表的示例性配置。
[0021]图9图示了实施例中的重定位作业执行管理表的示例性配置。
[0022]图1OA图示了实施例中的重定位速度管理表的示例性配置。
[0023]图1OB示意性图示了依据实施例中的作业优先级的操作概况。
[0024]图11图示了实施例中的重定位速度确定表的示例性配置。
[0025]图12是图示实施例中的主机读程序的示例性处理(I)的流程图。
[0026]图13是图示实施例中的主机写程序的示例性处理(I)的流程图。
[0027]图14是图示实施例中的驱动器写程序的示例性处理(I)的流程图。
[0028]图15是图示实施例中的页面迁移的示意图。
[0029]图16是图示实施例中的重定位程序的示例性处理(I)的流程图。
[0030]图17是图示实施例中的由重定位速度确定程序所执行的以简单模式重定位速度确定的流程图。
[0031]图18图示了实施例中的针对一个分层的分层性能管理表的示例性配置以及创建该表的方法。
[0032]图19是图不实施例中的重定位速度确定程序的其它不例性处理的流程图。
[0033]图20示出了实施例中的分层的响应曲线。
[0034]图21是图示实施例中的示例性重定位成本计算的流程图。
[0035]图22是图示实施例中的由重定位模式确定程序所执行的示例性重定位模式确定的流程图。
[0036]图23是图示实施例中的在互换模式中的页面数据重定位的概况的示图。
[0037]图24是图示实施例中的在互换模式中的示例性重定位的流程图。
[0038]图25是图示实施例中的在复制模式中的重定位的概况的示图。
[0039]图26图示了实施例中的用于管理复制分段的复制分段管理表的示例性配置。
[0040]图27是图示实施例中的在复制模式中的示例性重定位的流程图。
[0041]图28是图示实施例中针对具有复制分段的虚拟页面的示例性主机读(2)的流程图。
[0042]图29是图示实施例中响应于针对具有复制分段的虚拟页面的写命令的示例性主机写⑵的流程图。
[0043]图30是图示实施例中响应于针对具有复制分段的虚拟页面的写命令的示例性驱动器写(2)的流程图。
[0044]图31是图示实施例中的复制分段的示例性脏写回的流程图。
[0045]图32图示了实施例中供用户(管理员)设置重定位模式的示例性⑶I。
[0046]图33示出了实施例中的重定位速度管理表的另一种示例性配置。
[0047]图34是图示实施例中依据页面的I/O计数的示例性重定位的流程图。

【具体实施方式】
[0048]此后,将参考附图来描述本发明的实施例。应当注意的是,实施例仅是用于实现本发明的示例而并非对本发明的技术范围加以限制。贯穿附图,共用于附图的要素由相同的附图标记表示。
[0049]在该实施例中,存储系统具有在等级上分层的池并且在层之间重定位数据。该实施例基于存储系统中的输入/输出(I/o)来确定层之间的数据重定位中的重定位速度和/或重定位模式,并且以确定的重定位速度和/或以确定的重定位模式来执行数据重定位。
[0050]根据该重定位速度,用来完成多个页面的重定位的时间有所变化。当重定位速度较高时,完成多个页面的重定位的时间较短。重定位模式定义了在重定位中移动数据的方法。重定位模式定义了移动被选择为待重定位的对象的页面的数据或者连同其它数据一起移动该页面的数据。适当的重定位速度和/或适当的重定位模式的选择导致了主机的I/o性能在重定位之后有所提升,同时最小化数据重定位所导致的主机I/o性能的降级。
[0051]将利用程序的主体(代理(agent))提供以下对本发明实施例中的处理的解释;然而,它们可以具有处理器的主体,因为处理器使用存储器和通信端口(通信控制装置)实施预定处理而执行程序。
[0052]利用程序的主体所公开的处理可以被视为由计算机或者诸如管理服务器或存储系统的信息处理装置所执行的处理。一个程序,针对其全部或部分而言,可以由专用硬件来实施或者可以被划分为模块。该程序可以通过程序分布服务器或非瞬时存储介质而被安装在计算机或信息处理装置中。
[0053]处理器依据程序操作,以作为用于实施预定功能的操作单元来工作。例如,处理器依据控制程序操作以作为控制单元,并且依据管理程序操作以作为管理单元。包括处理器的装置或系统是包括这些操作单元的装置或系统。
[0054]图1是示意性图示该实施例中的计算机系统的整体配置的框图。该计算机系统包括主机(主机计算机)100、管理服务器(管理计算机)120和存储系统140。计算机系统可以包括任意数量的一个或多个主机100、管理服务器120和存储系统140。
[0055]主机100、管理服务器120和存储系统140经由管理网络170连接以能够互相通信。例如,管理网络170是IP网络。管理网络170可以是IP网络以外的网络,只要其是用于管理数据通信的网络即可。
[0056]主机100利用数据网络160连接至存储系统140。主机100是访问存储系统140的资源来工作的计算机。数据网络160是用于数据通信的网络,例如存储域网络(SAN)。只要数据网络160是用于数据通信的网络,其就可以是SAN以外的网络。数据网络160和管理网络170可以是相同的网络。
[0057]管理服务器120包括网络接口(I/F) 125、处理器121、主存储设备的存储器122、次级存储设备123以及输入/输出设备124。管理服务器120执行管理程序126并且依据其来工作。管理服务器120中的设备利用总线来连接而能够互相通信。
[0058]输入/输出设备124包括诸如显不器、打印机和键盘的一个或多个设备。管理员能够利用输入/输出设备124来操作管理服务器120 ;备选地,管理员能够经由网络从客户端计算机访问管理服务器120。客户端计算机连同管理服务器120 —起被包括在管理系统中。
[0059]管理员利用输入设备(诸如鼠标和键盘)输入必要信息并且通过利用输出设备观看而检查必要信息。管理系统可以由一个或多个计算机组成或者可以包括多个计算机,每个计算机均具有管理服务器120的部分或全部功能。
[0060]处理器121执行存储器122中所保存的程序以实施管理服务器120的功能。存储器122存储要由处理器121执行的程序以及执行该程序所需的数据。该程序包括未示出的OS和管理程序126。
[0061]典型地,程序从次级存储设备123被加载到存储器122。次级存储设备123是包括用于存储实施管理服务器120的预定功能所需的程序和数据的非易失性非瞬时存储介质的存储设备。次级存储设备123可以是经由网络连接的外部存储装置。
[0062]存储系统140包括不同类型的物理存储驱动器组146和147以及用于控制主机100与物理存储驱动器组146和147之间的数据传送的存储控制器155。
[0063]存储控制器155包括处理器141、本地存储器148、共享存储器145、高速缓存存储器144、主机接口 142、管理接口 143、驱动器接口 149和端口 150。存储系统140经由端口150连接至外部物理存储驱动器组151。存储系统140可以包括用于提供多个集群的存储控制器。
[0064]处理器141执行存储控制程序(参考图4)以实施预定功能,包括控制与主机100的I/o以及对存储系统140中的池和卷的管理和控制。该实施例中所解释的存储控制器155的至少一部分功能可以由处理器141以外的逻辑电路来实施。
[0065]本地存储器148存储要由处理器141处理的数据和程序。保存在本地存储器148中的数据并不与其它存储系统共享。典型地,要被用来控制存储系统140的存储控制程序或数据从任意存储驱动器或闪存(未示出)加载。
[0066]管理接口 143是用于连接至管理服务器120的设备。管理接口 143具有将诸如IP协议之类的用于在管理服务器120和存储控制器155之间的通信的协议转换为诸如PCIe之类的在存储控制器155内使用的协议的功能。
[0067]主机接口 142是用于连接至主机100的设备。主机接口 142具有将诸如FC、以太网光纤信道(FCoE)或iSCSI之类的用于在主机100和存储控制器155之间通信的协议转换为诸如PCIe之类的在存储控制器155内使用的协议的功能。
[0068]驱动器接口 149是用于连接至物理存储驱动器组146和147的设备。驱动器接口149具有将诸如FC、串行连接SCSI (SAS)或串行高级技术附件(SATA)之类的用于在物理存储驱动器组146和147与存储控制器155之间通信的协议转换为诸如PCIe之类的在存储控制器155内使用的协议的功能。
[0069]高速缓存存储器144临时存储由存储主机100往来于物理存储驱动器组146、147或151读/写的数据(用户数据)(高速缓存用户数据)并且在它们之间中继该数据。共享存储器145由处理器141 (存储控制程序)用来存储与其它存储系统共享的数据。共享存储器145并非需要被提供。该系统中的共享存储器145中所保存的数据将在随后参考图3来描述。
[0070]在该示例性配置中,存储系统140包括具有不同访问能力的三层物理存储驱动器。该访问能力由响应时间和吞吐量的指标来表示。物理存储驱动组146是具有最高访问能力的物理存储驱动器的层(层I),而物理存储驱动器组147是具有下一个最高访问能力的物理存储驱动器的层(层2)。存储系统140进一步包括具有最低访问能力的物理存储驱动器的层(层3)的外部物理存储驱动器组151。
[0071]例如,物理存储驱动器组146(层I)由固态驱动器(SSD)组成,而物理存储驱动器组147(层2)由硬盘驱动器(HDD)组成。一个层中的物理存储驱动器具有比更高级的层中的那些更低的访问能力并且具有比更低级的层中的那些更高的访问能力。典型地,相同层中的物理存储驱动器具有相同的访问能力,但是只要差异很小也可以具有不同的访问能力。
[0072]物理存储驱动器的访问能力可以根据物理存储驱动器的接口而有所不同。例如,串行连接SCSI (SAS)HDD可以构成与串行SATA (SATA) HDD的层不同的层。
[0073]图2示意性图示了存储系统140提供至主机100的虚拟卷以及提供该虚拟卷的池的逻辑配置。存储系统140可以配置一个或多个池。以下描述基本上解释了一个池。如果存储系统140包括多个池,则存储系统140能够执行下文中针对每个池所描述的操作。
[0074]图2图示了在三个层(层1、层2和层3)中为主机100提供存储区域211、221和231的示例。该池可以被分层为多于三个或少于三个的层。例如,最高级的层(层I)由SSD的存储区域组成,下一级别的层(层2)由SAS HDD的存储区域组成,而最低级别的层(层3)由SATA HDD的存储区域组成。
[0075]在图2中,存储控制器155配置来自池201中的存储区域的虚拟卷271和275。池201以页面(具有预定容量的存储区域)为单位来管理。主机100每次向虚拟卷271或275写入都导致对数据存储区域的需求,存储系统140向虚拟卷271或275分配页面。它还释放不必要的页面。
[0076]这样的动态页面分配允许虚拟卷271和275的容量的虚拟化。换句话说,可以使得实际容量小于主机100所识别(分配给主机100)的容量。存储系统140可以为主机100提供由池中的页面所组成并且具有与主机100所识别相同的实际容量的卷。
[0077]如以上所描述的,池201被等级地分层。在该示例中,池201由三个层组成:层I (211)、层2 (221)和层3 (231)。每一层被分配一个或多个奇偶校验组(RAID组)的存储区域。所有或部分的奇偶校验组的存储区域被分配给一层。存储控制器155能够将不同层中的页面分配至虚拟卷271或275。
[0078]在图2的示例中,层1(211)被分配两个奇偶校验组的存储区域212A和212B ;层2(221)被分配一个奇偶校验组的存储区域222 ;并且层3 (231)被分配两个奇偶校验组的存储区域232A和232B。
[0079]层I中的奇偶校验组存储区域212A包括页面213A和213B;页面(实际页面)213A被分配至虚拟卷271中的页面(虚拟页面)272A。层I中的奇偶校验组存储区域212B包括页面214A和214B ;页面(实际页面)214A被分配至虚拟卷275中的页面(虚拟页面)276A。
[0080]层2中的奇偶校验组存储区域222包括页面223A至223D。页面(实际页面)223A被分配至虚拟卷271中的页面(虚拟页面)272B。页面(实际页面)223D被分配至虚拟卷275中的页面(虚拟页面)276B。
[0081]层3中的奇偶校验组存储区域232A包括页面233A和233B ;页面(实际页面)233A被分配至虚拟卷271中的页面(虚拟页面)272C。层3中的奇偶校验组存储区域232B包括页面234A和234B ;没有页面被分配至虚拟卷271或275。
[0082]在下文所解释的示例中,假设池201被分层为三个层:层1、层2和层3。层I是最高级别的层并且由具有最高性能能力的物理存储驱动器(例如,SSD)的存储区域组成。层2是下一级别的层并且由具有第二性能能力的物理存储驱动器(例如,SAS HDD)的存储区域组成。层3是最低级别的层并且由具有最低性能能力的物理存储驱动器(例如,SATAHDD)的存储区域组成。
[0083]图3是图示共享存储器145中所保存的数据的框图。共享存储器145保存虚拟至逻辑转换表301、逻辑至物理转换表302、粒度监测表303、奇偶校验组监测表304、重定位作业执行管理表305、重定位速度管理表306、重定位速度确定表307、复制分段管理表308和层性能管理表309。
[0084]存储控制程序参考这些表来控制和管理存储系统140的操作。每个表的细节将在随后描述。这些表可以被保存在本地存储器148中。应当注意的是,在本实施例中利用术语表、列表、DB和队列来解释信息;然而,在本发明中所利用的信息并不依赖于该数据结构,而是能够依据设计而以适当数据结构来表达。此外,诸如标识符、名称和ID之类的术语被用来解释信息的细节;然而,这些术语可以互相替代。
[0085]图4是图示保存在本地存储器148中的示例性存储控制程序的框图。存储控制程序包括主机读程序401、主机写程序402、驱动器写程序403、脏写回程序404、重定位程序405、重定位速度确定程序406、重定位成本计算程序407和重定位模式确定程序408。每个程序的细节将在随后描述。
[0086]图5图示了虚拟至逻辑转换表301的示例性配置。虚拟至逻辑转换表301是被参考以便将主机100所指定的虚拟卷的地址(虚拟地址)转换为存储控制器155所管理的奇偶校验组(池201)中的逻辑地址的表。逻辑地址在奇偶校验组中是唯一的。
[0087]虚拟至逻辑转换表301的条目存储一个页面上的地址信息。虚拟至逻辑转换表301包括页面编号501、虚拟卷编号502、虚拟地址503、池编号504、奇偶校验组编号505和逻辑地址506的列。虚拟地址指示数据在虚拟卷中的位置,而逻辑地址则指示数据在池中的奇偶校验组中的位置。
[0088]页面编号列501存储用于识别页面的数值。例如,页面编号在池201中是唯一的。虚拟卷编号卷502存储用于识别虚拟卷所分配的个体页面的数值。例如,虚拟卷编号在池201中是唯一的。虚拟地址列503存储分配给虚拟卷中的个体页面的虚拟地址的起始地址。假定了每个页面具有所指定的统一容量数值。
[0089]池编号列504存储用于识别包括页面的池的数值。奇偶校验组编号505存储用于识别包括页面的奇偶校验组的数值。例如,奇偶校验组编号在池201中是唯一的。逻辑地址列506存储奇偶校验组中的个体页面的逻辑地址的起始地址。
[0090]存储控制器155能够参考虚拟至逻辑转换表301,依据来自主机100的读命令或写命令所指定的虚拟卷中的虚拟地址,确定池中的奇偶校验组中的逻辑地址。
[0091]图6是图示逻辑至物理转换表302的示例性配置的示图。逻辑至物理转换表302是被参考以将池201中的逻辑地址转换为物理存储驱动器中的物理地址的表。逻辑至物理转换表302包括奇偶校验组编号601、RAID类型602和物理存储驱动器编号603的列。
[0092]RAID类型列602存储奇偶校验组的RAID类型(RAID级别)的标识符;物理存储驱动器编号列603存储构成个体奇偶校验组的所有物理存储驱动器的物理存储驱动器编号。
[0093]定义奇偶校验组以及构成奇偶校验组的物理存储驱动器的RAID类型引起在考虑奇偶校验数据的排列的情况下定义了奇偶校验组的逻辑地址空间。基于所定义的逻辑地址空间,控制器155能够根据奇偶校验组中的逻辑地址来定位物理存储驱动器编号和物理地址。
[0094]图7图示了粒度监测表303的示例性配置。粒度监测表303管理在预定义监测周期内向个体页面(虚拟页面)发出的1/0(包括主机的I/O和重定位产生的I/O两者)的数量。虚拟页面已经被分配实际页面(实际存储区域),或者如随后所描述的,被分配了实际页面和复制分段(实际存储区域);所要计数的虚拟页面的I/o的数量是实际页面和复制分段的I/o的数量。
[0095]在该示例中,存储控制器155针对I/O监测读访问和写访问。换句话说,I/O的数量是读访问的数量与写访问的数量之和。在另一个示例中,存储控制器155可以监测它们中的任一个,例如仅监测读访问。
[0096]存储控制器155在指定长度的监测周期内监测存储系统140中的操作以管理监测的结果。特别地,在该实施例中,存储控制器155监测主机的I/O数量和页面重定位(重定位所导致的I/O)的数量。主机控制器155在预定长度的监测周期内对这些数值来计数并且将该监测周期结束时的最新计数数值存储至图3所示的一个或多个管理表。
[0097]该监测周期以预定循环来重复。典型地,该监测周期在对任意数字数值来计数时是常见的,但是根据数值可以有所不同。由于监测周期的长度是预定的,所以能够从某个周期中的主机I/O的数量计算主机I/O频率(1PS)并且能够从页面重定位的数量计算页面重定位所产生的I/o频率(1PS)。
[0098]粒度监测表303包括页面编号701、虚拟卷编号702、虚拟地址703和I/O计数704的列。存储在页面编号701、虚拟卷编号702和虚拟地址703的列中的信息如参考以上示图所描述的。
[0099]I/O计数列704存储在已经结束的最新监测周期中的个体页面的I/O计数的数值。I/o计数是由来自主机的命令所产生的I/O的数量以及重定位所产生的I/O的数量之和。重定位所产生的I/o计数包括来自重定位源的物理磁盘的读所产生的访问的数量、以及对重定位目的地的物理磁盘的写所产生的访问的数量。如以上所描述的,存储控制器155对指定长度的监测周期中的个体页面的I/O来计数。被计数的I/O的数值被保存在不同表中(未示出)。
[0100]存储控制器155利用在监测周期结束之后的监测结果的数值来更新I/O计数列704中的数值。例如,依据管理表更新程序来工作的存储控制器155更新要在监测周期结束之后被更新到粒度监测表303和其它表中被更新的数值。通过将I/O计数列704中的数值除以监测周期的长度所获得的数值是页面的10PS。
[0101]图8图示了奇偶校验组监测表304的示例性配置。奇偶校验组监测表304管理所监测的每个奇偶校验组的I/o数量(主机的I/O的数量与重定位所产生的I/O的数量之和)、以及所监测的奇偶校验组之中的页面重定位的数量。奇偶校验组监测表304包括奇偶校验组编号801、层802、I/O计数803、重定位计数(源)804和重定位计数(目的地)805的列。
[0102]存储在奇偶校验组编号列801中的信息如以上参考之前的附图所描述的。层列802存储用于识别个体奇偶校验组所属的层(由个体奇偶校验组所提供的存储区域)的数值。
[0103]I/O计数列803存储在指定长度的监测周期内由主机向个体奇偶校验组所发出的I/o的数量与由于重定位而发出的I/O的数量之和。重定位对应于从重定位的源所发出的读命令以及对重定位的目的地所发出的写命令。在该示例中,对I/o计数的方法与之前对页面的I/O计数的方法相同,并且对于这些方法,监测周期是共用的。在该示例中,奇偶校验组中所包括的所有页面的I/o的数量之和是该奇偶校验组的I/O的数量。
[0104]重定位计数(源)列804存储从当前奇偶校验组到另一个奇偶校验组的重定位的数量。重定位计数(目的地)列805存储从不同的奇偶校验组到当前奇偶校验组的重定位的数量。
[0105]这些重定位计数的方法计数在监测周期内的重定位的数量,该监测周期监测周期与用于计数从主机向奇偶校验组发出的I/o的监测周期相同,并且这些重定位计数的方法在该监测周期结束之后更新重定位计数(源)列804和重定位计数(目的地)列805中的数值。所计数的I/O计数和重定位计数的数值被保存在不同的表中(未示出)。
[0106]图9图示了重定位作业执行管理表305的示例性配置。重定位作业执行管理表305管理层之间的重定位作业。重定位作业执行管理表305被提供给每个池。在该示例中,重定位作业执行管理表305包括层901、所执行的作业的数量902、重定位速度编号903和重定位模式904的列。
[0107]层列901存储涉及有关页面重定位的两个层的信息。由于该示例中的池被分层为三个层,所以在层I与层2之间、在层2与层3之间以及在层I与层3之间的重定位的条目被保存。
[0108]所执行的作业的数量列902存储在层之间实际被执行的重定位中的作业数量。重定位速度编号列902存储用于识别针对在层之间的重定位而被确定的重定位速度的数值。重定位速度将随后参考图1OA描述。
[0109]重定位模式列904存储针对在层之间的重定位而确定的重定位模式(移动数据的模式)的标识符。虽然重定位模式将在随后描述,但是该示例提供了迁移、复制和互换三种模式;它们中的一种被选择以供分配。存储控制器155参考重定位作业执行管理表305,依据确定的重定位速度和重定位模式来执行页面重定位。
[0110]图1OA图示了重定位速度管理表306的示例性配置。重定位速度管理表306定义可应用于页面重定位的重定位速度。在该示例中,用于定义重定位速度的参数是作业的数量、休眠时间和作业优先级。重定位速度管理表306包括重定位速度编号1001、最大作业数量1002、休眠时间1003和作业优先级1004的列。
[0111]重定位速度编号列1001中存储的信息如参考以上示图解释的。最大作业数量的列1002存储可用于针对个体重定位速度编号而定义的多个执行的最大作业数量的数值(可用于同时执行的最大作业数量)。随着作业数量的增加,重定位速度增大。
[0112]休眠时间列1003存储指示重定位中的休眠时间的数值。休眠时间是在一个页面的重定位结束之后到下一个页面的重定位开始为止的待命周期。在多个重定位作业的情况下,每个作业应当在一个页面的重定位之后以指定的休眠时间来等待下一个页面的重定位。越短的休眠时间导致越快的重定位速度。
[0113]作业优先级列1004存储重定位作业与其它作业(例如,主机I/O作业)相比的优先级。在该示例的作业优先级列1004中,越小的优先级数值意味着越高的优先级。存储控制器155首先执行具有最高优先级的作业。具有高优先级的重定位作业的重定位速度即使在存储系统140高负载的情况下也不会下降(重定位以较高速度执行)。在多个重定位作业的情况下,所有作业通常被分配以相同的优先级。
[0114]图1OB示意性图示了依据作业优先级的操作的概况。存储控制器155针对每个物理存储驱动器以个体优先级保存I/o请求队列。在该示例中,存储控制器155针对物理存储驱动器1055具有高优先级队列1051 (优先级I)和低优先级队列1052 (优先级2)。存储控制器155还针对物理存储驱动器1056具有高优先级队列1053 (优先级I)和低优先级队列1054(优先级2)。
[0115]存储控制器155以优先级的顺序从队列获取请求并且发出对物理驱动器读/写的请求。通常,针对主机I/O的请求被排序为优先级I (最高优先级)而针对重定位I/O的请求则被配需为优先级2或比此更低。例如,如果主机I/O过多而不允许任何重定位,则存储控制器155将重定位I/O的优先级重新设置为I。
[0116]图11图示了重定位速度确定表307的示例性配置。重定位速度确定表307是要确定页面重定位中的重定位速度。在该示例中,存储控制器155基于页面的I/O数量、重定位源的层的负载以及重定位目的地的层的负载来确定重定位速度。源和目的地的层中的任一个层是相对高级的层;另外一个是相对低级的层。
[0117]重定位速度确定表307包括高级层的负载1101、低级层的负载1102、页面I/O计数1103和重定位速度编号1104的列。存储在重定位速度编号列1104中的信息如参考以上示图所进行的描述。
[0118]高级层的负载1101的列将多个级别的负载存储至高级层;每个字段存储一个级另|J。层的负载例如由1PS表示。层的1PS仅由主机1PS表示、或者由主机1PS和重定位1PS之和来表示。存储控制器155能够从奇偶校验组监测表304获取这些数值。高于阈值的负载属于高负载(HIGH-LOADED)级别而处于或低于该阈值的负载则属于低负载(LOW-LOADED)级别。
[0119]低级层的负载1102的列将多个级别的负载存储至低级层;每个字段存储一个级另IJ。层的负载以与高级层的负载相同的方式来确定并且该级别由与高级层相同的方法来确定。在1PS的情况下,存储控制器155能够从奇偶校验组监测表304获取这些数值。高于阈值的负载属于高负载级别,而该阈值的负载或低于该阈值的负载则属于低负载级别。
[0120]页面I/O计数列1103存储多个级别的页面I/O计数;每个字段存储一个级别。在该示例中,页面I/o计数被划分为两个级别:高(HIGH)和低(LOW)。大于阈值的页面I/O计数属于高级别而等于或小于该阈值的页面I/O计数属于低级别。页面I/O计数的级别通过参考粒度监测表303来确定。
[0121]该示例下将同样的表应用于从低级层到高级层的重定位(升级)以及从高级层到低级层的重定位(降级)。另一个示例可以应用对于它们而言唯一的相应重定位速度确定表。该实施例中的重定位速度的确定可以仅针对升级来进行。该示例一般将重定位速度确定表应用于所有层的配对,但是另一个示例可以应用对于个体的层配对而言唯一的不同重定位速度确定表。
[0122]在该示例中,存储控制器155基于涉及重定位的两个层的负载以及待重定位的页面上的I/o技术来确定重定位速度;然而,存储控制器155可以基于这些数值的一部分来确定重定位速度,例如,仅基于涉及重定位的两个层的负载、或者任一个层的负载。存储控制器155可以参考诸如CPU的负载以及路径的负载之类的不同数值来确定重定位速度。
[0123]图12是图示主机读程序401的示例性处理(I)的流程图。当从主机100接收到指定虚拟地址的读命令时,主机读程序401依据该流程图来操作。
[0124]在该示例中,当从主机100接收到读命令时,主机读程序401参考高速缓存管理信息(未示出)来确定在该命令指定的地址处的数据是否被保存在高速缓存存储器144中(SlOl)。如果指定的数据被保存在高速缓存存储器144中(S101的是),则主机读程序401将高速缓存存储器144中的指定数据传送至主机100(S105)。
[0125]如果指定的数据未被保存在高速缓存存储器144中(S101的否),则主机读程序401参考虚拟至逻辑转换表301和逻辑至物理转换表302,将指定的虚拟地址转换为物理地址(S102)。物理地址指定物理存储驱动器以及该物理存储驱动器中的存储区域。
[0126]特别地,主机读程序401参考虚拟至逻辑转换表301来定位包括指定虚拟地址处的数据的奇偶校验组,并且进一步获得对应于该虚拟地址的逻辑地址。主机读程序401参考逻辑至物理转换表302来计算物理存储驱动器编号和由逻辑地址指示的驱动器中的地址。
[0127]主机读程序401从物理驱动器获取计算出的物理地址处的数据并且将该数据传送至高速缓存存储器144 (S103)。例如,主机读程序401指示驱动器接口 149在指定了物理地址的同时将读数据传送至高速缓存存储器144。
[0128]主机读程序401更新在获取的页面上被计数的I/O计数(主机I/O的数量)以及在获取的页面所属的奇偶校验组上被计数的I/o计数(主机I/O的数量)。如所描述的,该示例针对读访问和写访问二者来计数I/o。监测周期结束时的数值被存储到粒度监测表303和奇偶校验组监测表304。
[0129]主机读程序401将高速缓存存储器144中的数据传送至主机100 (S105)。主机读程序401使用主机接口 142将高速缓存存储器144中的数据传送至主机100。
[0130]图13是图示主机写程序402的示例性处理(I)的流程图。主机写程序402处理来自从主机100接收到的读命令和写数据的操作,到将写数据传送至高速缓存存储器144为止。主机写程序402从主机100接收指定虚拟地址的写命令连同用户数据(写数据)并且依据该流程图来操作。
[0131]主机写程序402参考接收到的写命令来获取指定的虚拟地址区域并且参考虚拟至逻辑转换表301来确定该虚拟地址区域是否已经被分配页面(实际页面)(S201)。如果虚拟至逻辑转换表301不包括指定地址的条目,则虚拟地址区域还未被分配页面。
[0132]如果指定的虚拟地址区域还未被分配页面(S201处的否),则主机写程序402将未使用的页面分配至该虚拟地址区域并且更新高速缓存管理表(未示出)和虚拟至逻辑转换表301 (S202)。例如,页面从层I被分配。
[0133]如果指定的虚拟地址区域已经被分配页面(S201处的是)或者在未使用的页面已经被分配至虚拟地址区域之后,主机写程序402将写数据传送至高速缓存存储器144(S203)。随后,主机写程序402向主机报告写入的完成(S204)。
[0134]图14是图示驱动器写程序403的示例性处理(I)的流程图。驱动器写程序403处理高速缓存存储器144中的写数据向物理存储驱动器的传送(对物理存储驱动器的写)。如图14所示,驱动器写程序403参考高速缓存管理表(未示出)来确定高速缓存存储器144是否包括还未被传送至物理存储驱动器的数据(S301)。
[0135]如果不存在还未被传送的数据(S301处的否),则驱动器写程序403退出该流程。如果存在还未被传送的数据(S301处的是),则驱动器写程序403参考虚拟至逻辑转换表301和逻辑至物理转换表302来将写命令指定的虚拟地址转换成该页面的物理地址(S302)。
[0136]随后,驱动器写程序403使用驱动器接口 149将高速缓存存储器144中的数据传送至物理存储驱动器(S303)。驱动器接口 149将高速缓存存储器144中的写数据连同对以上物理地址的写命令一起发送至物理存储驱动器。
[0137]在将写数据传送至物理存储驱动器之后,驱动器写程序403更新页面上被计数的I/o计数以及在该页面所属的奇偶校验组上被计数的I/O计数的数值。如之前所描述的,该示例对读访问和写访问求和,并且计数主机I/O的数量并且将监测周期结束时的求和数值存储在粒度监测表303和奇偶校验组监测表304中。
[0138]图15是图示页面迁移的示意图。迁移是针对重定位的移动数据的模式之一。针对升级的重定位将页面数据移动至更高级的层,并且针对降级的重定位将页面数据移动至更低级的层。图15并未示出针对降级的重定位。
[0139]迁移将当前层的页面中的数据移动至不同层的空闲页面。迁移在将相同数据写入到不同层的页面之后初始化源页面中的数据。在大多数情况下,页面数据的迁移由其它页面数据以相反方向的迁移来完成。该配对迁移在迁移目的地的层中保持所需大小的空闲空间。
[0140]迁移从重定位源的物理存储驱动器将待重定位的页面数据获取到高速缓存存储器144中,并且进一步将其存储至重定位目的地的物理存储驱动器。图15的示例将层2的物理存储驱动器1503中的页面1513中的数据获取到高速缓冲存储器144并且将其存储到层I的物理存储驱动器1501中的重定位目的地的页面1511。其还获取层2的物理存储驱动器1504中的页面1514中的数据并且将其存储至层I的物理存储驱动器1502中的重定位目的地的页面1512。
[0141]在页面数据的重定位之后,存储控制器155更新虚拟至逻辑转换表301中与相关页面有关的信息。特别地,存储控制器155将从保存页面数据的虚拟页面的地址(虚拟地址)转换的逻辑地址重写为虚拟至逻辑转换表301中的重定位目的地页面(实际页面)的逻辑地址。
[0142]图16是图示重定位程序405的示例性处理的流程图。该流程关于重定位作业。重定位程序405以依据随后描述的图17或19的流程而确定的重定位速度来执行页面重定位。在图1OA的重定位速度管理表306的示例中,重定位程序405通过所执行的作业的最大数量内的作业数量、利用休眠时间,以及以在所选择的重定位速度编号下定义的作业优先级来执行重定位。
[0143]重定位程序405能够参考重定位作业执行管理表305来确认要应用的重定位速度编号,并且参考重定位速度管理表306来确认该重定位速度编号下定义的细节(参数数值)。
[0144]重定位程序405将选择出的页面中的数据重定位至不同层的空闲页面。以下描述中的重定位模式是迁移,其已经参考图15来描述。如随后将要描述的,重定位程序405能够应用除迁移以外的重定位模式。重定位程序405响应于诸如指定时间的流逝之类的预定事件而执行图16的流程。
[0145]在图16的流程中,重定位程序405确定是否存在待重定位的页面(中的数据)(S401)。如果不存在待重定位的页面(S401的否),则重定位程序405退出该流程。如果存在任何待重定位的页面(S401的是),则重定位程序405选择页面以执行重定位(S402)。
[0146]重定位程序405能够使用已知技术来确定是否重定位页面数据;该实施例省略了其详细描述。例如,重定位程序405参考页面的1PS来确定是否对某些页面数据重定位。重定位程序405能够根据粒度监测表303来查明页面的1PS。
[0147]例如,每一层被分配1PS (主机10PS)的范围;重定位程序406将页面的1PS与每一层的1PS范围来比较,以确定页面应当属于的层。如果页面的1PS不处于当前层的范围之内,则重定位程序405确定将页面数据重定位至被分配以包括该1PS的范围的层。重定位程序405在该层的所使用空间小于指定大小的情况下无需执行降级。
[0148]在另一个示例中,重定位程序405根据1PS来确定页面的排序,以依据该排序来确定页面应当属于的层。在三层配置的情况下,预定数量的高等级页面的数据被存储在最高级的层中,预定数量的第二等级的页面的数据被存储在中级的层中,并且其余页面的数据被存储在低级的层中。
[0149]在步骤S402中,重定位程序405通过预定方法选择页面以执行重定位,例如以1PS的降序来选择。重定位程序405可以从待重定位的页面中选择具有最高1PS(主机10PS)的页面。该示例选择一个页面,但是也可以选择多个页面。
[0150]接下来,重定位程序405确定选择的页面数据的目的地层(S403)。确定目的地层的方法如以上描述的。接下来,重定位程序405预留目的地层中的空闲页面(S404)。重定位程序405参考虚拟至逻辑转换表301以奇偶校验组将分散的方式从目的地层的区域获取空闲页面。
[0151]重定位程序405参考逻辑至物理转换表302定位待重定位的页面的物理地址并且将来自该物理地址的区域的数据传送至高速缓存存储器144(S405)。从物理存储驱动器到高速缓存存储器144的传送的方法如在主机读(I)中描述的。
[0152]重定位程序405参考逻辑至物理转换表302,依据目的地页面的逻辑地址来计算目的地页面的物理地址,并且将高速缓存存储器144中的数据传送(写)至获得的物理地址(S406)。将高速缓存存储器144中的数据存储至物理存储驱动器如在驱动器写(I)中描述的。
[0153]重定位程序405更新虚拟至逻辑转换表301中有关重定位的页面数据的信息(S407)。特别地,重定位程序405将从重定位页面的条目中的虚拟地址所转换的逻辑地址从源页面的逻辑地址改变为目的地页面的逻辑地址。
[0154]此外,重定位程序405更新在页面上被计数的I/O的数值,针对源页面的奇偶校验组被计数的I/o和重定位(源)的数值(在当前监测周期中的重定位(源)的数量),以及针对目的地页面的奇偶校验组被计数的I/o和重定位(目的地)的数值(在当前监测周期中的重定位(目的地)的数量)(S408)。对于页面重定位而言,重定位程序405增加了页面的I/O计数,并且增加了源奇偶校验组和目的地奇偶校验组两者的I/O计数和重定位计数。
[0155]在执行重定位之后,重定位程序405在执行下一次重定位之前待命指定时间(休眠时间)(S409)。重定位程序405依据预定重定位速度来确定休眠时间(参考图17)。该休眠时间被定义在重定位速度管理表306中。在预定休眠时间之后,重定位程序405返回步骤S401。
[0156]此后,将描述重定位速度确定程序406对重定位速度的确定。提供了确定重定位速度的方法的不同示例;然而,重定位速度确定程序406可以通过仍不同于这些的方法来确定重定位速度。
[0157]图17是图示重定位速度确定程序406执行的以简单模式确定重定位速度的流程图。在该流程中,重定位速度确定程序406参考重定位速度确定表307来确定重定位速度。
[0158]在图17的流程中,重定位速度确定程序406确定在最后确定重定位速度、诸如针对在层之间的下一次重定位最后确定重定位速度之后是否过去了指定时间(S501)。如果还未过去指定时间(S501的否),则重定位速度确定程序406退出该流程。如果已经过去指定时间(S501的是),则重定位速度确定程序406行进至下一个步骤S502。在不同示例中,重定位速度确定程序406可以针对具体数量的页面(一个或多个页面)的每次重定位来确定重定位速度。
[0159]在步骤S502,重定位速度确定程序406针对下一次重定位而确定源层和目的地层的负载。重定位速度确定程序406参考奇偶校验组监测表304来计算源层的1PS和目的地层的10PS。1PS是通过将层中所有奇偶校验组的主机I/O与由重定位导致的I/O之和(I/O计数列803中的数值)除以监测周期而获得的数值。
[0160]此外,重定位速度确定程序406参考层性能管理表309,根据计算的1PS来确定每个层的负载状态。层性能管理表309针对每个层提供。
[0161]图18图示了一个层的层性能管理表309的示例性配置以及创建该表的方法。层性能管理表309原本在存储系统140中提供。在该示例中,层性能管理表309将10PS、响应时间(响应性能)和层的负载状态相关联。
[0162]在该示例中,层性能管理表309包括1PS 1801、响应时间1802和负载状态1803的列。如图18的图形中所指示的,层性能管理表309对应于响应曲线(10PS与响应时间)而创建。层性能管理表309保持从响应曲线提取的特征。
[0163]1PS/响应时间的性能阈值是预定的,并且负载状态参考该阈值来定义。1PS的数值和响应时间的数值具有一对一的关系。因此,如果被监测的1PS或响应时间超过该阈值,则层的负载状态是高负载;如果其等于或小于该阈值则是低负载。由于该示例监测层的!/O(1PS)的数量,所以重定位速度确定程序406依据1PS的数值确定层的负载状态。存储控制器155可以监测1PS和响应时间,从那些数值创建响应曲线,并且确定性能阈值。
[0164]重定位速度确定程序406从粒度监测表303获取下一次要重定位的页面(当前页面)的I/o计数,以确定I/O的数量与预定阈值相比更大还是更小。重定位速度确定程序406根据确定的页面的I/O计数的状况和层的负载状态而从重定位速度确定表307选择最优的重定位速度(S503)。
[0165]接下来,重定位速度确定程序406为在池中的源层与目的地层之间的重定位设置选择的重定位速度(S504)。特别地,重定位速度确定程序406更新重定位作业执行管理表305中相关条目中的重定位速度编号的数值。
[0166]重定位速度确定程序406确定指定的处于新确定的重定位速度的作业的最大数量是否与挂起作业的数量不同(S505)。重定位速度确定程序406能够参考重定位作业执行管理表305来确认具体层之间的重定位中的挂起作业的数量。
[0167]如果处于重定位速度的作业的指定最大数量与挂起作业的数量有所不同(S505的是),则重定位速度确定程序406调用或延缓作业以使得作业数量将满足指定的数量(S506)。
[0168]以上示例性处理确定当前被执行的在层之间的重定位的速度。在另一个示例中,重定位速度确定程序406可以针对层的所有组合确定重定位速度。例如,重定位速度确定程序406能够基于层的每种组合中的之前或下一次重定位中的页面的I/O计数来确定重定位速度。
[0169]图19是图示重定位速度确定程序406的其它示例性处理的流程图。与参考图17和18所描述的方法相比,这种确定重定位速度的方法更为复杂并且更适用于该情形。
[0170]图19的流程图与图17的流程图的不同之处在于步骤S602至S604。因此,这些步骤将在以下被描述。
[0171]重定位速度确定程序406依据预定公式来计算待重定位的页面上的重定位效果X(S602)。重定位效果X表示重定位产生的访问性能的改进程度。在重定位由升级和降级组成的情况下,重定位效果X可以通过以下公式进行计算:
[0172]X
[0173]= PR0M0TE-DEM0TE
[0174]= {(P_SRC_RESP-P_TGT_RESP)*P_10PS}*PAGE_NUM_{(D_SRC_RESP_D_TGT_RESP)*D_10PS}*PAGE_NUM
[0175]在重定位仅为升级或者降级的效果被忽略的设计中,重定位速度确定程序406依据以下公式来计算重定位效果X:
[0176]X
[0177]= PROMOTE
[0178]= (P_SRC_RESP-P_TGT_RESP)*P_1PS*PAGE_NUM
[0179]在以上两个公式中,PROMOTE表示升级产生的性能提升的效果;DEM0TE表示降级产生的性能下降的效果;SRC_RESP表示重定位的页面所属的层(源层)的响应时间;TGT_RESP表示目的地页面所属的层(目的地层)的响应时间;PAGE_10PS表示重定位的页面的1PSo P_表示升级;D_表示降级。PAGE_NUM表示每个单位时间能够被重定位的页面的数量。能够以选择的重定位速度来重定位的页面数量例如能够使用处于该重定位速度的最大作业数量和休眠时间来计算。如果重定位仅为降级,则PROMOTE在PROMOTE - DEMOTE的公式中应当为O。
[0180]重定位速度确定程序406从奇偶校验组监测表304获取有关源层和目的地层的1PS的信息。该1PS是通过将层中所有奇偶校验组的1/0计数列803中的数值之和除以监测周期而获得的数值。该I/o计数是主机1/0和重定位产生的1/0之和。
[0181]重定位速度确定程序406参考它们相应的层性能管理表309来获取与获取的目的地层和源层的1PS相关的响应时间。重定位速度确定程序406从粒度监测表301获取页面的1PS。
[0182]接下来,重定位速度确定程序406计算每个重定位速度下的重定位成本Y (S603)。重定位成本Y表示在层之间的重定位产生的响应性能的降级。计算每个重定位速度下的重定位成本Y将参考图20的图形以及图21的流程图来描述。
[0183]如图21的流程图所示,重定位速度确定程序406计算排除高级层的重定位负载以外的性能(S701),计算重定位期间的估计性能(S702),并且从那些数值计算重定位成本Y(S703)。重定位速度确定程序406可以计算低级层的重定位成本或两个层的重定位成本的平均值,以获得重定位成本Y。
[0184]图20的图形提供了高级层的响应曲线,其中X轴表示1PS且Y轴表示响应时间(主机I/o响应性能)。重定位速度确定程序406能够参考层性能管理表309从1PS获得该响应曲线的近似数值。
[0185]在图20的图形中,点2002表示该层的当前响应性能。当前性能的1PS是涉及来自主机的命令的主机1PS和涉及重定位的1PS(Yl)之和。
[0186]点2001表示排除重定位负载的性能。排除重定位负载的性能是通过从当前性能2002的1PS去除涉及重定位的1PS(Yl)而获得的1PS的响应性能。排除重定位负载的性能2001的1PS仅是主机10PS,指示在没有执行重定位的情况下的响应性能(响应时间)。
[0187]点2003表示重定位期间的估计性能,其指示在选择重定位速度之后并且以选择的重定位速度执行的重定位中的估计响应性能。该点处的1PS是以上主机1PS与估计的涉及新选择的重定位速度下的重定位的1PS(Y2)之和。通过将排除重定位负载的性能2001与重定位期间的性能2003之间的响应时间差乘以排除重定位负载的性能2001处的1PS来获得重定位成本Y。
[0188]重定位速度确定程序406根据奇偶校验组监测表304中的数值计算排除重定位负载的性能2001处的10PS。特别地,程序406能够从奇偶校验组监测表304中的1/0计数列803的数值来获取最新监测周期中由主机命令和层中的重定位所产生的1/0的数量。
[0189]此外,程序406能够从重定位计数(源)列804和重定位计数(目的地)列805获取重定位在该层中产生的I/o数量。通过从上述1/0的数量中减去重定位在层中产生的I/O数量而获得的数值是主机1/0的数量,而通过将主机1/0的数量除以监测周期而获得的数值是排除重定位负载的性能2001的10PS。
[0190]重定位速度确定程序406进一步参考层性能管理表309计算与1PS相关的响应时间。该数值是排除重定位负载的性能2001处的响应时间。
[0191]接下来,重定位速度确定程序406计算涉及选择的重定位速度下的重定位的估计附加1PS (Y2)并且将其添加至排除重定位负载的性能2001的10PS。重定位速度确定程序406参考层性能管理表309计算与总1PS相关的响应时间。获得的数值是重定位期间的估计性能2003处的响应时间,并且通过在从上述获得的数值中减去排除重定位负载的性能2001处的响应时间而获得的数值是重定位成本Y。
[0192]重定位速度确定程序406例如能够使用处于重定位速度的作业的最大数量和休眠时间来计算选择的重定位速度下的重定位的估计附加10PS(Y2)。重定位速度确定程序406针对每个层配对保存每个作业的10PS。这些数值是预定的。
[0193]所选择的重定位速度下的重定位中的1PS由以下表示:作业的最大数量*每个作业的10PS*(1/(1+休眠时间))。例如,假设每个作业的1PS是1010PS,最大作业数量是2,并且休眠时间是 100ms,则 1PS 应当为 2*1010PS* (ls/ (ls+100ms))。
[0194]最后,重定位速度确定程序406通过从步骤S602计算的重定位效果X减去步骤S603计算的重定位成本Y而获得数值(X-Y),并且选择该数值为最大的重定位速度(S604)。
[0195]重定位速度确定程序406能够通过不同于上述事例的方法来计算重定位成本Y。例如,重定位速度确定程序406能够依据以下算式I和算式2来计算重定位成本Y。这些公式是为了在两层的情况下使用排队模型来计算针对高级层TierM的效果。
[0196][算式I]
γ —_Frel(N)_
[0197]2 I /t Thost I TmrM χ
(ntrel / TmrM).amrM\l 一 -----)


dTierMmhost/TierM
[0198][算式2]
[0199]
M(N)
,Thost / Tierl 、j /,Fkmt I Herl 、
(N(I —.................................................................................................................jmrnl/Tlerl, βΓ?τ?(1..................................................................................................................JMmt/Tmrl、
Ttthost / TierldTierlTtlhost I TierldTierlI
_r/1Fhmt / Tier! χj ,,Fhost i Tier! 、,
iV (I —..........................................................................................)Mml I Tterlm— --Jfflrel / Tier2
Wlhmt / Tter\drier2IHhost I TierldTierI
[0200]在以上公式中,rhost/TierM表示高级层 TierM 的主机 I/O(1PS), mhost/TierM表示TierM中的每个物理驱动器的性能能力(1PS)(在仅执行重定位时),mrel/TierM示TierM中的每个物理驱动器的性能能力(1PS)(在仅发出主机1/0时),dTierM表示TierM中的物理驱动器的数量,并且N表示作业的数量。N(=作业的数量)应当被输入。函数minO是用于选择自变量中的最小值的函数;其返回该公式中的四个数值中的最小值。
[0201]接下来,将描述确定重定位模式(在重定位中移动数据的模式)。该方法由重定位模式确定程序408执行。在以下描述中,一种确定升级的重定位中的重定位模式的方法。相同的方法可应用于降级的重定位。重定位程序405以由重定位模式确定程序408确定的重定位模式来执行重定位。重定位模式确定程序408依据层的负载(1PS)从多种重定位模式中选择适当的重定位模式。
[0202]该示例提供了迁移模式、互换模式、复制模式并且从中选择适当的模式。在选择中的重定位模式的数量和类别取决于设计。例如,重定位模式可以从迁移模式和互换模式的组合或者迁移模式和复制模式的组合中选择一个。
[0203]图22是图示由重定位模式确定程序408执行的示例性重定位模式确定的流程图。重定位模式确定程序408依据涉及重定位的层的负载来选择重定位模式。适当的重定位模式实现对主机I/O性能较小的重定位影响。
[0204]在图22的流程图中,重定位模式确定程序408确定在最后的重定位模式确定之后是否已经过去了指定时间(S801)。例如,这是指在针对相同的层配对的最后一次重定位模式确定之后过去的时间。如果还未过去指定时间(S801处的否),则重定位模式确定程序408退出该流程。重定位模式确定程序408可以确定每个页面重定位的重定位模式。
[0205]如果已经过去了指定时间(S801处的是),则重定位模式确定程序408确定高级层是否是高负载(S802)。如参考图17的流程图所解释的,负载的确定参考奇偶校验组监测表304和层性能管理表309来进行。
[0206]如果高级层是高负载(S802处的是),则重定位模式确定程序408将该池的重定位作业执行管理表305中的相关条目的重定位模式列904的数值更新为互换(SWAP) (S803)。互换模式并不需要擦除待重定位页面中的数据;因此,其实现了针对物理存储驱动器的低负载。
[0207]如果高级层是低负载(S802处的否)并且低级层是高负载(S804处的是),则重定位模式确定程序408将该池的重定位作业执行管理表305中的相关条目的重定位模式列904的数值更新为复制(COPY) (S805)。复制模式也不要求擦除待重定位的数据;其实现了对物理存储驱动器的低负载。由于数据被保存在两个层中,所以复制模式需要比其它模式更大的容量。
[0208]如果高级层是低负载(S802处的否)并且低级层是低负载(S804处的否),则重定位模式确定程序408将该池的重定位作业执行管理表305中的相关条目的重定位模式列904的数值更新为迁移(MIGRAT1N) (S806)。该操作允许仅必要数据被重定位。
[0209]在迁移模式的典型重定位中,发生从低级层向高级层的数据移动以及从高级层向低级层的数据移动。互换模式不像迁移模式那样需要页面初始化(数据擦除);因此,其实现了针、对物理存储驱动器的低负载。
[0210]如随后将要描述的,复制模式能够使用高级层作为高速缓存区域。由于复制模式能够将数据从高级层移动至低级层而并不降低升级速度,所以其实现了针对低级层的物理存储驱动器的低负载。由于复制模式需要比互换模式更多的容量来存储,所以在容量方面另一个模式是优选的。
[0211]图23是图示互换模式中的页面数据的重定位概况的图示。该示例图示了在层I与层2之间的页面数据重定位。在该示例中,存储控制器155将层I中待重定位的页面2311中的数据获取至高速缓存存储器144。此外,其将层2中待重定位的页面2313中的数据获取至高速缓存存储器144。
[0212]接下来,存储控制器155将高速缓存存储器144中保存的层2的重定位目标页面的数据存储到层I的物理存储驱动器2301中的重定位目标页面2311的地址。此外,它将高速缓存存储器144中保存的层I的重定位目标页面的数据存储到层2的物理存储驱动器2303中的重定位目标页面2313的地址。对于页面2312和2314同样应用。
[0213]现在参考图24的流程图,将描述互换模式中的重定位的示例性流程。步骤S901至S903与图16的迁移的流程图中的步骤S401至S403相同。
[0214]在步骤S904,重定位程序405从待重定位的页面A的目的地层选择待重定位的页面B。例如,重定位程序405能够基于页面1PS来选择待重定位的页面;程序405选择具有最小1PS的页面来升级页面A。
[0215]接下来,重定位程序405将数据从页面A和B的物理地址传送至高速缓存存储器144 (S905)。重定位程序405将在高速缓存存储器144中保存的页面A的数据传送至页面B的物理地址(S906)并且将在高速缓存存储器144中保存的页面B的数据传送至页面A的物理地址(S907)。通过这些步骤,页面A和B中的数据被重定位至它们的相应配对页面的物理地址。
[0216]接下来,关于虚拟至逻辑转换表301,重定位程序405将从重定位页面A和B的数据的虚拟地址所转换的逻辑地址改变为目的地页面的逻辑地址(S908)。特别地,在重定位页面的每个条目中,重定位程序405将从虚拟地址向逻辑地址转换的逻辑地址从源的逻辑地址改变为目的地的逻辑地址。
[0217]重定位程序408针对页面A和B中的每一个更新以下数值:对页面计数的I/O的数量(包括读和写访问)、对源页面的奇偶校验组计数的I/o和重定位(源)的数值(在当前监测周期中的重定位(源)的数量)、以及对目的地页面的奇偶校验组计数的I/o和重定位(目的地)的数值(在当前监测周期中的重定位(目的地)的数量)(S909)。该步骤与图16中的步骤S408相同。
[0218]重定位程序405在完成本次重定位之后到执行下一次重定位为止,待命指定时间(休眠时间)(S910)。重定位程序405依据预定的重定位速度来确定休眠时间(参考图17)。休眠时间被定义在重定位速度管理表306中。在指定的休眠时间之后,重定位程序405返回至步骤S901。
[0219]图25是图示复制模式中的重定位概况的图示。在下文中,物理存储驱动器中要作为复制目的地的区域被称作复制分段。在该示例中,复制分段具有与页面相同的区域大小。因此,存储控制器155预留页面以便将其用作复制分段。
[0220]在图25的示例中,虚拟卷2511和2512已经从池201中的层211 (层I)和层221 (层2)被分配以实际页面。虚拟卷2512中的虚拟页面2521已经被分配层221 (层2)中的实际页面2501。层211(层I)中的复制分段(实际页面)2502是页面2501的复制目的地(重定位目的地)并且已经被分配至虚拟页面2521。
[0221]由于复制分段2502是页面2501的重定位目的地,所以存储控制器155响应于来自主机100的对虚拟页面2521的读命令或写命令而访问复制分段2502。存储控制器155执行操作以消除复制分段2502和页面2501之间的差别。
[0222]在该示例中,存储控制器155在新的复制分段被创建时或者在已经过去了预定周期时检测现有复制分段中的数据。在后者的示例中,当针对复制分段的无访问周期达到阈值时或者当监测周期结束时,存储控制器155初始化复制分段。以这种方式,存储控制器155使用高级层作为高速缓存以提高访问性能。
[0223]图26图示了用于管理复制分段的复制分段管理表308的示例性配置。复制分段管理表308包括页面编号3301、虚拟卷编号3302、虚拟地址3303、复制的存在3304、分段的状态3305、奇偶校验组编号3306和逻辑地址3307的列。
[0224]在每个条目中,虚拟卷编号列3302存储特定页面所属的虚拟卷编号,并且虚拟地址列3303存储在虚拟卷中的页面的起始地址(虚拟地址)。复制的存在3304的列存储指示是否该页面存在复制分段的数据。是(YES)指示针对页面存在复制分段;否(NO)指示不存在复制分段。
[0225]分段的状态列3305存储指示复制源页面(重定位源页面)中的数据是否与其复制分段(重定位目的地页面)中的数据相同的数据。干净(CLEAN)指示相同;脏(DIRTY)指示不同。奇偶校验组编号列3306存储复制分段所属的奇偶校验组的标识符,并且逻辑地址列3307存储复制分段的逻辑起始地址的数值。
[0226]现在参考图27的流程图,将描述复制模式中的示例性重定位。在以下描述中,将解释与图16的迁移的流程图的不同之处。步骤S1001至S1003与图16的迁移的流程图中的步骤S401至S403相同。
[0227]在步骤S1004,重定位程序405预留目的地层中的复制分段。在该示例中,由于复制分段和页面的大小相同,所以步骤S1004与步骤S404相同。
[0228]步骤S1005、S1006和S1007分别与步骤S405、S406和S408相同。在该流程中,重定位程序405不改变从虚拟地址转换的页面的逻辑地址,而是保持源页面的逻辑地址。
[0229]重定位程序405在完成页面数据的复制之后更新复制分段管理表308 (S1008)。重定位程序405更新复制分段管理表308中的相关页面的条目中的信息。
[0230]特别地,重定位程序405将是(YES)设置到复制的存在列3004,将干净(CLEAN)设置到分区的状态列3005,将复制目的地页面的奇偶校验组编号设置到奇偶校验组列3006,并且将复制目的地页面的逻辑起始地址设置到相关条目中的逻辑地址列3007。步骤S1009与步骤S409相同。
[0231]现在参考图28,将描述针对具有复制分区的虚拟页面的示例性主机读(2)。在以下描述中,将特别解释与参考图12解释的主机读(I)的不同之处。主要不同在于检查复制分段的存在,并且在存在复制分段的情况下,从该复制分段获取数据。
[0232]在图28的流程图中,步骤SllOl与图12中的步骤SlOl相同。在步骤S1102,主机读程序401参考复制分段管理表308确定是否存在被分配给待访问的虚拟页面的任何复制分段。
[0233]如果不存在被分配的复制分段(S1102处的否),则主机读程序401行进至步骤S1103。步骤S1103与步骤S102相同。如果存在被分配的复制分段(S1102处的是),则主机读程序401将虚拟地址转换为复制分段的物理地址(S1104)。
[0234]特别地,主机读程序401参考复制分段管理表308来定位与虚拟页面相对应的复制分段的逻辑地址(起始地址)。主机读程序401参考逻辑至物理转换表302将复制分段的逻辑地址转换为物理地址。后续的步骤S1105至S1107与图12中的步骤S103至S105相同。在步骤S1106,存储控制器155更新复制分段的I/O计数以及复制分段所属的奇偶校验组。
[0235]接下来,参考图29的流程图,将描述响应于针对具有复制分段的虚拟页面的写命令的示例性主机写(2)。在以下描述中,将特别解释与参考图13解释的主机写(I)的不同之处。主要不同在于在复制分段管理表308中将条目的分段状态更新为脏(DIRTY)。
[0236]在图29的流程图中,步骤S1201至S1203与图13的流程图中的步骤S201至S203相同。在步骤S1204,主机写程序402在复制分段管理表308中将相关页面条目中的分段状态列305中的数据更新为脏(DIRTY)。步骤S1205与图13的流程图中的步骤S304相同。
[0237]接下来,参考图30的流程图,将描述响应于针对具有复制分段的虚拟页面的写命令的示例性驱动器写(2)。在以下描述中,将特别解释与参考图14所解释的驱动器写(I)的不同之处。主要不同在于检查复制分段的存在,并且如果存在复制分段则将用户数据写入到该复制分段。
[0238]在图30的流程图中,步骤S1301与图14的流程图中的步骤301相同。如果高速缓存存储器144包括还未被传送的数据(S1301处的是),则驱动器写程序403参考复制分段管理表308确定针对虚拟页面是否存在复制分段(S1302)。
[0239]如果不存在复制分段(S1302处的否),则驱动器写程序403行进至步骤S1303。步骤S1303与图14的流程图中的步骤S302相同。如果存在复制分段(S1302处的是),则驱动器写程序403将虚拟地址转换为该复制分段的物理地址(S1304)。
[0240]特别地,驱动器写程序403参考复制分段管理表305针对虚拟页面定位复制分段的逻辑地址(起始地址)。驱动器写程序403参考逻辑至物理转换表302将复制分段的逻辑地址转换为物理地址。后续的步骤S1305和S1306与图14的流程图中的步骤S303和S304相同。在步骤S1306,存储控制器155更新复制分段的I/O计数以及复制分段所属的奇偶校验组。
[0241]接下来,参考图31,将描述复制分段的示例性脏写回。该操作使得复制源中的页面数据与复制分段中的数据相同。
[0242]脏写回程序404参考复制分段管理表308确定是否存在处于脏状态的分段
(51401)o如果存在处于脏状态的复制分段(S1401处的否),则脏写回程序404退出该流程。
[0243]如果存在处于脏状态的复制分段(S1401处的是),则脏写回程序404参考复制分段管理表308和逻辑至物理转换表302将页面的虚拟地址转换为复制分段的物理地址
(51402)。
[0244]脏写回程序404将之前物理地址所指示的物理存储驱动器的区域中的数据传送至高速缓存存储器144(S1403)。脏写回程序404将高速缓存存储器144中的数据传送至由复制源页面的物理地址所指示的物理存储驱动器(S1404)。脏写回程序404能够参考虚拟至逻辑转换表301和逻辑至物理转换表302而获取复制源页面的物理地址。
[0245]在完成复制分段中的数据到复制源页面的写回之后,脏写回程序404更新粒度监测表303和奇偶校验组监测表304。
[0246]特别地,脏写回程序404增加在粒度监测表303中的相关条目的I/O计数列704中的数值。脏写回程序404增加奇偶校验组监测表304中的复制分段和复制源页面的奇偶校验组的条目的I/O计数列803中的数值。该写回对应于从复制分段的读以及对复制源页面的写。
[0247]图32提供了供用户(管理员)设置该重定位方法的示例性GUI。用户能够使用输入/输出设备124来选择重定位方法。在该示例中,用户能够选择自动地或手动地设置重定位速度和重定位模式。图32的图像3201,已经针对重定位速度和重定位模式选择了手动设置并且复制模式已经被选择为重定位模式。并非需要针对重定位速度和重定位模式提供手动设置的选择。手动设置和自动设置之间的选择可以仅针对重定位速度或重定位模式提供。
[0248]此后,将对页面数据的其它示例性重定位进行描述。该示例将其上的I/O计数(1PS)已经达到针对更高级层的阈值的页面进行重定位(升级)。在以下所解释的示例中,重定位应用复制模式。
[0249]图33图示了重定位速度管理表306的另一种示例性配置。重定位速度管理表306包括重定位速度编号3301、升级阈值3302、降级中的最大作业数量3303和降级中的休眠时间3304的列。
[0250]降级中的最大作业数量3303的列定义了在脏写回中的同时执行的最大作业数量。降级中的休眠时间3304的列定义了脏写回中的休眠时间。
[0251]图34是该示例中的读的流程图。步骤S1501对应于图28的流程图。在下一个步骤S1502,主机读程序401确定选择的页面的I/O计数是否大于升级阈值。
[0252]特别地,主机读程序401从粒度监测表303获取选择的页面的I/O计数并且进一步从重定位作业执行管理表305获取从页面所属的层起升级的重定位速度编号。主机读程序401从重定位速度管理表306获取重定位速度编号的升级阈值并且将该数值与页面的I/O计数比较。
[0253]如果I/O计数大于升级阈值(S1502处的是),则重定位程序405执行该页面中的数据的升级(S1504)。该步骤对应于图27的流程图。如果I/O计数等于或小于升级阈值(S1502处的否),则该流程终止。
[0254]就写而言,存储控制器155还能够根据升级阈值与I/O计数之间的关系而确定是否升级。上述示例参考最后的监测周期中页面上的I/o计数,但是升级的确定能够参考在当前监测周期中被计数的页面I/o的数量来进行。存储控制器155在已经完成页面数据的升级之后将被计数的I/O的数量更新为初始数值。
[0255]如以上阐述的,已经解释了本发明的实施例,但是本发明不局限于以上实施例。本领域技术人员能够在本发明的范围内对上述实施例中的要素轻易地修改、添加或转换。
[0256]以上描述的配置、功能、处理器和用于处理的装置,对于它们中的全部或部分而言,可以通过硬件来实施,例如通过设计集成电路来实施。用于实施这些功能的程序、表和文件的信息可以被存储在诸如非易失性半导体存储器、硬盘驱动器或固态驱动器(SSD)的存储设备中,或者存储在诸如IC卡、SD卡或DVD之类的计算机可读的非瞬时数据存储介质中。
[0257]以上描述的示例性配置确定了重定位速度和重定位模式两者;然而,另一种配置可以仅确定它们中的任一个以依据确定的速度或模式来执行重定位。以上描述配置的存储系统的至少一部分处理可以由管理系统来执行。在该配置中,信息存储系统包括管理系统和存储系统;该管理系统被包括在信息存储系统中的控制器中。该信息存储系统包括多个存储系统。
【权利要求】
1.一种信息存储系统,包括: 性能不同的多个物理存储驱动器,用于向被分层为性能不同的多个层的池提供实际存储区域;以及控制器, 其中所述控制器监测对所述池中的第一层的访问; 其中所述控制器基于对所述第一层的所述访问来确定所述第一层的负载状态; 其中所述控制器保存管理信息,所述管理信息将所述第一层的负载和在所述池中的第二层与所述第一层之间的数据重定位中的移动数据的重定位速度和/或模式相关联;并且其中所述控制器基于确定的所述第一层的负载状态和所述管理信息,来确定在所述第二层与所述第一层之间的数据重定位中的移动数据的重定位速度和模式中的至少一项。
2.根据权利要求1所述的信息存储系统, 其中所述管理信息将所述第一层的负载和在所述第二层与所述第一层之间的数据重定位中的移动数据的重定位速度相关联; 其中所述控制器确定在所述第二层与所述第一层之间的数据重定位中的重定位速度;并且 其中用于所述重定位速度的参数是在数据重定位之后到下一次数据重定位为止的待命时间。
3.根据权利要求2所述的信息存储系统,其中用于所述重定位速度的参数包括在所述第二层与所述第一层之间的重定位中的作业多重性。
4.根据权利要求1所述的信息存储系统, 其中所述控制器监测对所述第二层的访问并且基于对所述第二层的所述访问来确定所述第二层的负载状态; 其中所述管理信息将所述第一层的负载状态、所述第二层的负载状态和重定位速度相关联;并且 其中所述控制器基于所述管理信息和确定的所述第一层的负载状态和所述第二层的负载状态,来确定在所述第二层与所述第一层之间的重定位中的重定位速度。
5.根据权利要求4所述的信息存储系统, 其中所述控制器监测所述池中的数据访问;并且 其中所述控制器基于对要在所述第一层和所述第二层之间重定位的数据的访问数量,来确定在所述第二层与所述第一层之间的所述重定位中的重定位速度。
6.根据权利要求1所述的信息存储系统, 其中所述控制器保存对所述第一层的访问的监测结果以及指示所述第一层中的访问频率与主机的响应性能值之间的关系的信息;并且 其中所述控制器参考所述监测结果和指示所述关系的所述信息来估计多个不同的重定位速度下的重定位导致的所述主机的响应性能的降级的影响,并且基于估计的所述影响从所述多个重定位速度中选择新的重定位速度。
7.根据权利要求1所述的信息存储系统,其中移动数据的所述模式包括互换、迁移和复制中的至少两种。
8.根据权利要求1所述的信息存储系统, 其中移动数据的所述模式包括互换和迁移; 其中所述第一层是比所述第二层更高级的层; 其中在所述第一层的负载高于阈值的情况下,所述控制器选择所述互换作为移动数据的所述模式。
9.根据权利要求1所述的信息存储系统, 其中移动数据的所述模式包括复制和迁移; 其中所述第一层是比所述第二层更低级的层; 其中在所述第一层的负载高于阈值的情况下,所述控制器选择所述复制作为移动数据的所述模式,并且在所述第一层的所述负载等于或低于所述阈值的情况下,选择所述迁移作为移动数据的所述模式。
10.根据权利要求7所述的信息存储系统, 其中移动数据的所述模式包括复制;并且 其中所述控制器响应于来自主机的访问命令而访问由所述复制重定位的数据的复制分段,并且监测对所述复制分段的访问。
11.根据权利要求10所述的信息存储系统,其中所述控制器使得在所述复制分段的复制源地址处的数据与所述复制分段中的所述数据相同。
12.根据权利要求1所述的信息存储系统, 其中所述控制器以页面为单位来管理所述池,每个页面构成存储区域; 其中所述控制器监测对页面的访问;并且 其中在指示所监测的对页面的访问的值高于预定阈值的情况下,所述控制器确定将所述页面重定位至更高级的层。
13.—种控制信息存储系统的方法,所述信息存储系统包括性能不同并且向池提供实际存储区域的多个物理驱动器,所述池被分层为性能不同的多个层,所述方法包括: 监测对所述池中的第一层中的访问; 基于对所述第一层的所述访问来确定所述第一层的负载状态; 保存管理信息,所述管理信息将所述第一层的负载和在所述池中的第二层与所述第一层之间的数据重定位中的移动数据的重定位速度和/或模式相关联;以及 基于确定的所述第一层的负载状态和所述管理信息,来确定在所述第二层与所述第一层之间的数据重定位中的移动数据的重定位速度和模式中的至少一项。
14.根据权利要求13所述的控制信息存储系统的方法, 其中所述信息存储系统保存所述第一层中的访问的监测结果以及指示所述第一层中的访问频率与主机的响应性能值之间的关系的信息;并且 其中参考所述监测结果以及指示所述关系的所述信息,来估计在多个不同的重定位速度下的重定位所导致的所述主机的响应性能的降级的影响,以从所述重定位速度中选择新的重定位速度。
15.根据权利要求13所述的控制信息存储系统的方法, 其中移动数据的所述模式包括复制和迁移; 其中所述第一层是比所述第二层更低级的层; 其中在所述第一层的负载高于阈值的情况下,选择所述复制作为移动数据的所述模式,并且在所述第一层的负载等于或低于所述阈值的情况下,选择所述迁移作为移动数据的所述模式。
【文档编号】G06F3/06GK104285206SQ201280072629
【公开日】2015年1月14日 申请日期:2012年4月26日 优先权日:2012年4月26日
【发明者】大平良德, 圷弘明 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1