CN104471524B - 存储系统和存储控制方法 - Google Patents
存储系统和存储控制方法 Download PDFInfo
- Publication number
- CN104471524B CN104471524B CN201280074714.6A CN201280074714A CN104471524B CN 104471524 B CN104471524 B CN 104471524B CN 201280074714 A CN201280074714 A CN 201280074714A CN 104471524 B CN104471524 B CN 104471524B
- Authority
- CN
- China
- Prior art keywords
- virtual
- layer
- pond
- storage system
- page number
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
当在主计算机或者存储系统中操作的多个应用使用同一池时,被不断地分配给满足需要的响应性能的上层驱动的实际数据将继续增加。因此,当数据被按照页面单位的IOPS迁移时,诸如响应速度之类的访问性能可能未被满足。因此,根据本发明,在应用中使用的多个虚拟卷经受分组。对应于针对每个组需要性能的重定位条件被预先设置,并且根据重定位条件的层的再分配被执行。
Description
技术领域
本发明涉及存储系统和存储控制方法。
背景技术
为了应对最近的经济状况和快速增长的数据量,用户要求抑制IT设备的投资成本并且优化成本效率的需求正急剧增加。为了响应这种需求,存储系统中称为自动精简配置(thin provisioning)或者动态配置(dynamic provisioning,在下文中被称作DP功能)的容量虚拟化功能被提供。
DP功能当写请求被从主计算机(host computer)输出到存储系统时向主计算机使用的虚拟卷分配给定存储单位的存储区域(池页面)。
近来,在专利文献1中被教导的具有更高级容量虚拟化功能的被称为动态分层(dynamic tiering,在下文中被称作DT功能)的动态重定位功能已被提议。
根据DT功能,通过使具有不同成本效益和不同比特成本的多个存储驱动(SSD(固态驱动)、SAS(串行连接SCSI)、SATA(串行ATA)等等)相结合来组成池,并且虚拟卷由已被划分为层的池组成。
然后,访问频率(I/O计数)如描述地被每页面单位地测量,其中具有高访问频率的页面被迁移到诸如SSD之类的高速上层驱动并且具有低访问频率的页面被迁移到诸如SATA之类的慢速下层驱动,以便自动优化由相应驱动的各种访问频率造成的负载。
引用列表
专利文献
PTL 1:PCT国际公开号WO2011/117925
发明内容
技术问题
根据现有技术,存储需要高速响应但是具有低I/O频率的文件的实际数据的区段(页面)被迁移到具有低速响应的下层驱动,在该下层驱动中因为I/O计数小因此每单位时间的访问频率(IOPS)低。
结果,当应用实际使用该文件时,如果该文件的实际数据被存储在低速下层驱动中,则文件读取性能不满足所需的响应性能,并且应用的操作可能被延迟。
因此,有必要不断地将存储具有要求的响应性能的文件的实际数据的页面分配在满足所需响应性能的层驱动中。
如果在主计算机或者存储系统中操作的多个应用使用同一池,那么将被不断地分配给满足所需响应性能的层驱动(其例如可以是最上层)的实际数据被连续地增加。
因此,即使当在考虑按照页面单位的I/O访问频率(IOPS:每秒IO)的情况下按照页面单位执行迁移时,也存在无法满足诸如响应时间之类的访问性能的情况。
本发明的目的是提供能够减少应用中的响应性能劣化的影响的存储系统和存储控制方法。
问题的解决方案
在主计算机或者存储系统中操作的多个应用中所使用的虚拟卷经受分组。然后,预先设置根据每个组所需的响应性能的重定位条件,并且根据重定位条件来执行层的重定位。
发明的有利效果
通过对由应用使用的虚拟卷执行分组、设置根据每组所需的性能的重定位条件并且根据重定位条件来执行重定位,减少应用中的响应性能劣化的影响成为可能。
附图说明
[图1]图1是示出了本发明的概要的概念图。
[图2]图2是示出了根据现有技术的问题的视图。
[图3]图3是存储系统的总体配置图。
[图4]图4是示出了存储系统中的各种存储区域中的关系的视图。
[图5]图5是示出了分配表的配置示例的视图。
[图6]图6是示出了池卷管理表的配置示例的视图。
[图7]图7是示出了池页面管理表的配置示例的视图。
[图8]图8是示出了虚拟页面I/O计数管理表的配置示例的视图。
[图9]图9是示出了对来自主计算机的写I/O请求的处理的流程图。
[图10]图10是示出了接收到写I/O请求时的存储区域的映射过程的流程图。
[图11]图11是示出了从存储器到存储驱动的降级过程(destaging process)的流程图。
[图12]图12是示出了对来自主计算机的读I/O请求的处理的流程图。
[图13]图13是示出了接收到读I/O请求时的存储区域的映射过程的流程图。
[图14]图14是示出了用于确定最优层的过程的流程图。
[图15]图15是示出了虚拟卷I/O频率分布表的配置示例的视图。
[图16]图16是示出了池I/O频率分布表的配置示例的视图。
[图17]图17是示出了每池的频率分布的图像的视图。
[图18]图18是示出了根据实施例1的用于设置每TG的约束条件的页面重定位处理的流程图。
[图19]图19是示出了根据实施例1的TG设置过程的流程图。
[图20]图20是示出了根据实施例1的TG设置信息管理表的配置示例的视图。
[图21]图21是示出了根据实施例1的在创建虚拟卷时的TG设置屏幕的配置示例的视图。
[图22]图22是示出了根据实施例1的用于在创建虚拟卷之后改变TG设置的TG设置屏幕的配置示例的视图。
[图23]图23是示出了根据实施例1的用于确认TG设置的内容的TG设置确认屏幕的配置示例的视图。
[图24]图24是示出了根据实施例1的第0层的最小使用量的约束条件处理的流程图。
[图25]图25是示出了根据实施例1的第2层的最小使用量的约束条件处理的流程图。
[图26]图26是示出了根据实施例1的第0层的最大使用量的约束条件处理的流程图。
[图27]图27是示出了根据实施例2的通过按照TG进行加权的页面重定位处理的流程图。
[图27]图28是示出了根据实施例2的TG设置过程的流程图。
[图29]图29是示出了根据实施例2的TG设置信息管理表的配置示例的视图。
[图30]图30是示出了根据实施例2的在对TG设置信息管理表进行加权之前和之后的配置示例的视图。
[图31]图31是示出了根据实施例2的在创建虚拟卷时的TG设置屏幕的配置示例的视图。
[图32]图32是示出了根据实施例2的用于在创建虚拟卷之后执行TG设置的改变的TG设置屏幕的配置示例的视图。
[图33]图33是示出了根据实施例2的用于确认TG设置的内容的TG设置确认屏幕的配置示例的视图。
[图34]图34是示出了根据实施例3的通过设置目标平均响应时间来进行页面重定位/再重定位(re-relocation)处理的概念的视图。
[图35]图35是示出了根据实施例3的通过设置目标平均响应时间来进行页面重定位处理的流程图。
[图36]图36是示出了根据实施例3的TG设置过程的流程图。
[图37]图37是示出了根据实施例3的TG设置信息管理表的配置示例的视图。
[图38]图38是示出了根据实施例3的在创建虚拟卷时的TG设置屏幕的配置示例的视图。
[图39]图39是示出了根据实施例3的用于在创建虚拟卷之后改变TG设置的TG设置屏幕的配置示例的视图。
[图40]图40是示出了根据实施例3的用于确认TG设置的内容的TG设置确认屏幕的配置示例的视图。
[图41]图41是示出了根据实施例3的通过设置目标平均响应时间的页面重定位处理的流程图。
具体实施方式
现在,将参考附图来描述本发明的优选实施例。在以下描述中,各种信息被称作“管理表”等,但是各种信息也可以由除表格之外的数据结构来表达。另外,“管理表”也可以被称作“管理信息”以示出信息不依赖于数据结构。
过程有时候使用术语“程序”或者“工具”被描述为对象。程序由诸如MP(微处理器)或者CPU(中央处理单元)之类的用于执行确定的过程的处理器来执行。
处理器也可以是过程的对象,这是因为过程使用适当存储资源(诸如存储器)和通信接口设备(诸如通信端口)被执行。处理器还可以使用除CPU之外的专用硬件。计算机程序可以被从程序源安装到每个计算机。程序源例如可以经由程序分发服务器或者存储介质被提供。
诸如每个PD(物理设备)之类的每个元素可以经由编号来标识,但是诸如名称之类的其他类型的标识信息也可以被使用,只要它们是可标识信息即可。等价元素在本发明的附图和说明书中利用相同编号来表示,但是本发明不局限于当前实施例,并且符合本发明概念的其他修改示例被包括在本发明的技术范围中。除非另有限定,组件的数目可以是一个或者多于一个。
<发明概要>
图1是示出了本发明的概要的概念图。图2是示出了根据现有技术的问题的视图。
在本发明中,如早先提到的,在主计算机或者存储系统中操作的多个应用中所使用的虚拟卷经受分组。然后,通过预先设置与每个组所需的性能对应的重定位条件并且执行与重定位条件对应的层的重定位,本发明使得能够减少相应的应用中的响应性能劣化的影响。
首先,将参考图2描述根据现有技术的问题。
首先,如在图2(a)中所示,假定包括由60GB SSD组成的第0层20和由300GB SAS型HDD组成的第1层21在内的池卷被分配给由应用1所使用的虚拟卷和应由用2所使用的虚拟卷。
另外,在I/O访问频率的改变之前的应用1的I/O频率分布由参考10示出,并且应用2的I/O频率分布由参考11示出。假定每个应用分别使用30GB的第0层和150GB的第1层。
接下来,如在图2(b)中所示,对由应用2所使用的虚拟卷的I/O访问的数目显著增加,并且I/O访问频率也增加。然后,应用2的I/O频率分布从由参考号11所示的状态变为由参考号11a所示的状态,从而使得根据现有技术的DT(动态分层)功能,具有高I/O访问频率的存储区域(页面)被重定位到上层并且数据迁移被执行。结果,作为上层的第0层(60GB)20全部被应用2使用,从而使得其无法被应用1使用。
因此,即使应用1的I/O访问频率未被改变,已经被分配有第0层的具有30GB容量的存储区域(虚拟页面)也必须使用具有比第0层20更低速度的由SAS HDD组成的第1层21。因此,发生其中应用1的响应性能劣化的情形。
因此,根据本发明,在主计算机或者存储系统中操作的多个应用中所使用的虚拟卷经受分组。在分组之后,对与每个组所需的响应性能对应的页面重定位条件的以下设置被执行,其包括以下:
(1)对每个层的最大/最小使用量的设置;
(2)对I/O频率分布的加权的设置;以及
(3)对平均目标响应时间的设置。
然后,执行到对应于页面重定位条件的层的页面重定位,以便减少响应性能的劣化在相应的应用中的影响。
事实上,图1(1)中对每个层的容量的最大/最小使用量的设置按照应用单位、由应用使用的虚拟卷单位以及将组合的多个虚拟卷作为组的组单位来设置每个层的可使用容量的最大和最小值。因此,每个应用的偏移层使用或者由应用使用的每个虚拟卷的偏移层使用可以被防止。
根据图1中的示例,向存储系统设置约束条件,该约束条件声明应用1使用第0层的至少30GB(参考号12a)。通过设置这种约束条件,有可能防止应用2如在图2(b)中所示排他地使用第0层和减少应用1的响应性能的劣化。
另外,设置约束条件,该约束条件声明应用2必须使用第2层中的至少20GB(参考12b)。通过设置关于第2层的这种约束条件,有可能限制应用2对第0层或第1层的使用量,从而使得应用1的响应性能的劣化可以被减少。
图1(2)中对I/O频率分布的加权的设置是设置加权的范围以及针对应用1的I/O频率分布的权重。通过设置加权的范围及其权重,变得有可能将应用1的I/O频率分布10设置为表观I/O频率分布10a。因此,与图1(1)类似,变得有可能防止应用2对第0层的排他使用和减少应用1的响应性能的劣化。
图1(3)的目标平均响应时间(目标值)的设置通过计算每个应用的平均响应时间并且通过将计算出的值与预先设置的目标值相比较来执行访问性能的提高而被执行。
如果应用1的平均响应时间的计算出的值超过目标值,则按照从具有最少I/O计数的虚拟页面开始的次序从应用2的虚拟页面中搜索这样一个虚拟页面,即使分配给第0层的该虚拟页面被迁移到第1层该虚拟页面也不会使应用2的平均响应时间下降到目标平均响应时间以下。
搜索到的虚拟页面将被与应用1的属于第1层的虚拟页面的具有最高I/O计数的虚拟页面交换。
换言之,应用2的I/O频率分布中被分配给参考14a的第0层(SSD)的虚拟页面被与应用1的I/O频率分布中被分配给参考14b的第1层(SAS)的虚拟页面交换。
基于这一页面重定位处理,与图1(1)和图1(2)类似,标的有可能防止应用2对第0层的排他使用和减少应用1的响应性能的劣化。详细操作稍后将被详细描述。在以下描述中,频率分布根据本发明的内容而被分成应用频率分布、虚拟卷频率分布、池频率分布等等。
<系统配置>
图3是存储系统的总体配置图。存储系统39由存储系统30、管理终端33、主计算机34和外部存储系统35组成。
存储系统30已经经由诸如SAN(存储区域网络)36之类的网络并且通过CHA_I/F(通道适配器接口)31a耦合到一个或多个主机和/或一个或多个外部存储系统。主计算机34和外部存储系统35经由CHA_I/F 31a从存储系统30中读取数据或者向存储系统30写入数据。
管理终端33使用诸如CIFS(通用因特网文件系统)和NFS(网络文件系统)之类的网络协议经由NIC(网络接口卡)被耦合到存储系统30。
存储系统30可以被宽泛地划分为控制单元31和盘单元32。盘单元32由多个存储驱动组成。盘单元32可以由不同物理类型的存储驱动组成。
根据本实施例的盘单元32包括SAS接口型SSD 32a、SAS型HDD 32b和SATA型HDD32c作为存储驱动。存储驱动不局限于上面提到的那些,并且可以包括FC(光纤通道)型HDD或者磁带。盘单元32经由诸如光纤通道线缆之类的通信线路而被耦合到控制单元31,并且经由多个存储驱动构成RAID组。
控制单元31包括CHA_IF 31a、CPU 31b、存储器31c、NIC 31d、SAS_I/F控制器31e、SAS_I/F控制器31f和SAS_I/F控制器31g。
CHA_IF 31a接收从主计算机34到存储系统30的I/O命令(写命令或者读命令),并且将接收到的I/O命令传送到CPU 31b。另外,CHA_IF 31a还被用于在存储系统30与外部存储系统35之间传送数据。
CPU 31b是用于控制整个存储系统30的处理器。换言之,CPU处理来自主计算机34的I/O访问并且操作诸如用于执行稍后描述的本地复制处理的应用程序(在下文中被被称作应用)。
存储器31c是包括诸如DRAM(动态随机存取存储器)之类的易失性存储器和/或诸如闪存之类的非易失性存储器的存储器设备。存储器31c例如具有用于临时存储作为针对虚拟页面的I/O的目标的数据元素的存储区域(在下文中被称作高速缓冲存储器区域,其被缩写为CM)。另外,存储器31c具有用于存储各种控制信息、计算机程序和管理表的存储区域(在下文中被称作共享存储区域,其被缩写为SM)。
SAS_I/F控制器31e、SAS_I/F控制器31f和SAS_I/F控制器31g分别与盘单元32中的SSD 32a、SAS型HDD 32b和SATA型HDD 32c相耦合。
控制单元31根据从主计算机34接收到的命令来控制对/从盘单元的数据的写入和读取。控制单元31提供遵循DP功能(瘦配置或者动态配置)的虚拟卷。虚拟卷由多个虚拟页面组成。
主计算机34的硬件配置类似于通用计算机。就是说,主计算机34具有通信接口、易失性存储器、非易失性存储器和与之相耦合的CPU。
外部存储系统35具有与存储系统30类似的功能。通信I/F是用于经由CHA_I/F执行通信的光纤通道I/F。
管理终端33的硬件配置包括诸如显示器和打印机之类的输出设备33a、CPU 33b、由易失性存储器和/或非易失性存储器组成的存储器33c、NIC 33d以及诸如键盘和鼠标之类的输入设备33e。管理终端33经由NIC 33d从远程位置等控制存储系统30。
<存储层>
图4是示出了存储系统中的各种存储区域中的关系的视图。
存储系统30包括各自由多个盘卷组成的池141a、池241b至池n 41n。
构成池的每个盘卷43a、43b和43c被划分为两个或者多个池页面431a、431b和431c。每个池页面是具有预定数据尺寸的存储区域。页面编号被指派给池页面。每个页面保持该页面所属的盘卷的层编号,该层编号从层#042a、层#142b和层#242c被选择。
盘卷43a由作为存储驱动的昂贵高速SSD组成。类似地,盘卷43b由与SSD相比具有更低速度并且不昂贵的SAS型HDD组成。盘卷43c由与SSD相比具有更低速度但是不昂贵并且具有更高容量的SATA型HDD组成。
存储系统30包括与池相关联的虚拟卷40a和40b。多个虚拟卷与单个池相关联。例如,虚拟卷40a和40b与池141a相关联。
虚拟卷40a由作为具有给定数据尺寸的虚拟存储区域的多个虚拟页面401a、402a等组成。类似地,虚拟卷40b由作为具有给定数据尺寸的虚拟存储区域的多个虚拟页面401b等组成。
可以将分配给虚拟页面的池页面所属的层编号解释为虚拟页面所属的层编号。池页面最初在虚拟页面被首次使用时(诸如当数据被写入到其时)被分配。
存储系统30任意地改变将被分配给虚拟页面的池页面以便优化虚拟卷的性能。该这一变过程被称为“页面重定位处理”。
例如,属于高性能盘卷的池页面被分配给具有高访问负载的虚拟页面,并且属于相对低性能盘卷的池页面被分配给具有小访问负载的虚拟页面。
在页面重定位处理中,页面之中的数据迁移被执行。通过基于来自主计算机34的访问倾向来重新定位被分配给虚拟页面的池页面,存储系统30可以提供针对主计算机34的高性能虚拟卷。
根据确定每个池页面的最佳层编号的方法,池频率分布表被引用,并且在过去的给定时区中具有更高访问频率的虚拟页面被设置为属于具有更小编号(也就是说,具有更高性能)的层,并且具有更低访问频率的虚拟页面被设置为属于具有更高编号(也就是说,具有相对更低性能)的层。
在上面的描述中,其中虚拟化功能被提供给存储系统30的入站方法已被描述。还可以经由其中虚拟化机制(软件)被提供给服务器的基于服务器的入站系统或者经由其中虚拟化机制(硬件)由虚拟化交换机和管理功能组成的基于交换机的入站系统来实现虚拟化功能。另外,可以采用出站系统适应性来实现虚拟化功能,其中虚拟化软件被安装在主计算机中并且主计算机被直接耦合到存储系统30。
另外,位于足够远程位置的用于向外部存储系统35复制相同数据的远程复制软件作为在存储系统30中操作的软件(应用)而被提供。该远程复制软件具有同步远程复制功能和异步远程复制功能。
异步远程复制功能是如下功能,该功能在将数据存储在逻辑器件中之后将日志(改变历史)数据传送到远程站点,从而在不经过主计算机的情况下在远程站点处的不同存储系统(外部存储系统35)中创建副本卷,并且异步地维持该副本卷与主站点中的初级卷的一致性。
同步远程复制功能与主站点(存储系统30)的更新处理同步地执行对远程站点(外部存储系统35)的更新处理,据此主站点中的初级卷和远程站点中的次级卷的内容被不断地匹配。远程复制软件具有使存储系统30和外部存储系统35两者成为数据复制目的地(远程)和复制源(主)的功能。
存储系统30还具有用于在系统内创建复制数据的被称为本地复制软件的软件。本地复制软件具有两个功能,原样复制初级卷的全部数据的功能以及执行仅对经更新数据的备份的快照功能。
原样复制初级卷的全部数据的功能创建了作为逻辑卷(次级卷)的副本的实际卷,其中通过利用所创建的副本,有可能在不影响工作中的应用的情况下获取备份和实现批量操作的执行的并行处理等。
快照功能是用于在接收到请求时立即创建作为逻辑卷(次级卷)的副本的虚拟卷的功能,这使得能够在发生操作错误或者诸如故障之类的软件故障时在任意时间点立即从副本恢复数据。
另外,存在如下软件,该软件在文件数据被存储在同一池或者同一卷中时按照文件单位或者比文件单位更小的区段单位来比较该文件数据,并且消除重叠数据(在下文中被称为去重)。
数据库应用也是在主计算机34中操作的软件。根据数据库应用,对应于索引部分的虚拟卷要求高速响应,而另一方面,对应于存储实际数据的主体部分的虚拟卷不要求高速响应。
<分配表>
图5是示出了分配表的配置示例的视图。分配表50被存储在存储系统30的存储器31c中,并且被CPU 31b任意使用。
分配表50是显示哪个池页面被分配给哪个虚拟页面的表格。实际上,表50针对每个虚拟页面存储虚拟卷#50a、虚拟页面#50b、池卷#50c和池页面#50d。
以一个虚拟页面(以下在对图5的描述中被称作“目标虚拟页面”)为例,这些信息元素实际上是以下。
(1)“虚拟卷#”是具有目标虚拟页面的虚拟卷的编号。
(2)“虚拟页面#”是目标虚拟页面的编号。
(3)“池卷#”是分配给具有目标虚拟页面的虚拟卷的池卷的编号。
(4)“池页面#”是分配给目标虚拟页面的池页面的编号。
更详细地,其中虚拟卷#50a为“100”并且虚拟页面#50b为“0”的目标虚拟页面对应于虚拟卷#100 51的虚拟页面#0 51a,并且其中池卷#50c为“50”并且池页面#50d为“0”的池页面被分配给它。
类似地,其中虚拟卷#50a为“100”并且虚拟页面#50b为“2”的虚拟页面使其中池卷#50c为“51”并且池页面#50d为“1”的池页面被分配给它。
池页面未被分配给其中虚拟卷#50a为“100”并且虚拟页面#50b为“1”的目标虚拟页面(N/A:未指派的状态)。
<池卷管理表>
图6是示出了池卷管理表的配置示例的视图。池卷管理表60被存储在存储系统30的存储器31c中,并且被CPU 31b任意使用。
池卷管理表60用于管理构成池卷的信息,并且管理存储驱动、RAID级别、容量等。
换言之,池卷管理表60由池卷#60a、卷类型60b、驱动类型60c、RAID级别60d、PG#(池组编号)60e、卷容量(GB)60f、归属池#60g、层#60h和未使用页面数目60i组成。
以一个池卷(以下在对图6的描述中被称作“目标池卷”)为例,上面提到的信息元素实际上如下。
(1)“池卷#”是用于标识目标池卷的编号。
(2)“卷类型”是用于管理目标池卷的类型的信息,其从“物理”、“逻辑”或者“虚拟”被选择。
(3)“驱动类型”是指示构成目标池卷的存储驱动的类型的信息。
(4)“RAID级别”是目标池卷中的RAID级别编号。
(5)“PG#”是用于标识构成目标池卷的物理盘(存储驱动)的池组编号。
(6)“卷容量(GB)”指的是目标池卷的数据存储容量。
(7)“属于池#”指的是目标池卷所属的池编号。
(8)“层#”指的是显示目标池卷的层级别的层编号。
(9)“未使用页面数目”指的是显示目标池卷中未被分配给虚拟页面的页面(即未使用页面)的数目的信息。
更详细地,如在图的下半部分中所示,其中池卷#60a为“50”(参考号64)的池卷#50基于卷类型60b、驱动类型60c和PG#60e而可以被认为是由以“4”作为PG编号的SSD(参考号62)组成的物理卷(参考号61)。
另外,基于RAID级别60d和卷容量60f可以认识到,池卷50构成具有3D+1P配置的RAID 5并且其总存储容量是750GB(=250GB x(除对应于奇偶校验部分的1个设备之外的3个存储数据的设备))(参考号63)。
另外,基于归属池#60g、层#60h和未使用页面数目60i可以认识到,池卷50属于池1、层是#0(层级别0)并且存在399个未使用页面。顺便提及,使用页面或者未使用页面具有给定页面容量65(例如,42MG/页面)的存储容量。
类似地,其中池卷#60a为“60”的池卷#60构成由旋转频率为15Krpm(每分钟千转)的8个SAS型HDD组成的6D+2P的RAID级别6配置,其是以“5”作为池组编号的物理卷。可以认识到,该池卷60属于层#1(层级别1)的池1、总存储容量是1200GB并且具有150个未使用页面。
池卷管理表60的层#由从0到2的三个层组成,但是其也可以由两个层或者多于四个层组成。相应的层中使用的驱动类型可以是FC(光纤通道)型HDD、7.2Krpm的NL(NearLine,近线)-SAS的HDD或者磁带。
<池页管理表>
图7是示出了池页面管理表的配置示例的视图。池页面管理表70被存储在存储系统30的存储器31c中,并且被CPU 31b任意使用。
池页面管理表70是用于管理相应的池页面的状态的表格。对于每个池页面,池页面管理表70由池卷#70a、池页面#70b和页面使用状态70c组成。
一个池页面(以下在对图7的描述中被称作“目标池页面”)被用作示例来描述前面提到的信息元素。
(1)“池卷#”指的是用于标识具有目标池页面的池卷的编号。
(2)“页面#”是目标池页面的编号。
(3)“页面使用状态”是显示目标池页面的使用状态的信息。使用状态的信息例如包括“已使用”和“未使用”。
“已使用”状态意味着目标池页面已被分配给虚拟页面。“未使用”状态意味着目标池页面未被分配给任何虚拟页面,因而该页面处于可分配给任何虚拟页面的状态。
实际上,以“50”作为池卷#的池卷#50的页面#0处于已使用状态。相比之下,池卷#50的页面#2是未使用的,故其处于可分配给任何虚拟页面的状态。
<虚拟页面I/O计数管理表>
图8是示出了虚拟页面I/O计数管理表的配置示例的视图。虚拟页面I/O计数管理表80被存储在存储系统30的存储器31c中,并且被CPU 31b任意使用。
虚拟页面I/O计数管理表80是用于管理针对虚拟卷中的每个虚拟页面生成的I/O数目的表格,其被前面提到的DT功能所参考并被用来改变分配给虚拟页面的池页面的层级别。虚拟页面I/O计数管理表80由虚拟卷#80a、虚拟页面#80b和每个虚拟页面的I/O计数80c组成以用于管理针对每个虚拟页面生成的I/O数目。
一个虚拟页面(以下在对图8的描述中被称作“目标虚拟页面”)被用作示例来描述前面提到的信息元素。
(1)“虚拟卷#”是用于标识具有目标虚拟页面的虚拟卷的编号。
(2)“虚拟页面#”是目标虚拟页面的编号。
(3)“每虚拟页面的I/O计数”是针对目标虚拟页面生成的I/O的总数。
实际上,在其中虚拟卷#80a为“100”并且虚拟页面#80b为“0”的虚拟页面#0中生成的I/O如在每个虚拟页面的I/O计数80c中所示为“10”。
类似地,可见未曾生成对虚拟卷#100中的虚拟页面#1的I/O,如由每虚拟页面的I/O计数80c中的“0”所示。
另外,可以从虚拟页面I/O计数管理表80认识到,在虚拟卷#100中的虚拟页面#2中生成的I/O计数的值高达“512”并且在虚拟卷#104中的虚拟页面#0中生成的I/O计数高达“635”。
<写I/O处理>
图9是示出了对来自主计算机的写I/O请求的处理的流程图。图10是示出了接收到写I/O请求时的存储区域的映射过程的流程图。
为了方便描述,以下过程被描述以使得存储系统30中的CPU31b执行这些处理。这些过程也可以被描述以使得在CPU 31b上操作的程序(诸如具有前面提到的DP功能或DT功能的程序)执行这些处理。
图9和图10的过程由CPU 31b执行,通过从主计算机34到存储系统30的写I/O请求的生成而被触发。
在S901中,存储系统30中的CHA_IF 31a经由网络36接收来自主计算机34的写I/O请求。CHA_IF 31a将接收到的写I/O请求(写命令、写目的地和写数据)传送到CPU 31b。
在S902中,CPU 31b执行在图10中示出的映射控制(WR)的处理。
在图10中的S1001中,CPU 31b经由分配表50(图5)确认对写目的地虚拟页面的池页面分配状态。
在S1002中,CPU 31b判定池页面是否已被分配给写目的地虚拟页面。
当池页面已被分配给虚拟页面时(S1002:是),CPU 31b执行S1003。当页面未被分配时(S1002:否),CPU 31b执行S1004的处理。
在S1003中,CPU 31b从池卷管理表60和池页面管理表70中获取被分配给写目的地虚拟页面的池页面的地址信息(池卷编号、页面编号)。
当池页面新近被分配给写目的地虚拟页面时,CPU 31b使用所获取的池页面的地址信息(池卷编号、池页面编号)来更新分配表50。实际上,CPU 31b改变基于所获取的池卷编号和页面编号的虚拟卷编号和虚拟页面编号的行上的池卷#50c和池页面#50d的字段的内容。
在S1004中,CPU 31b确定满足写I/O请求的层。例如,其将层设置为第0层。
在S1005中,CPU 31b基于池卷管理表60来确定对应于在S1004中确定的层的池卷。接下来,CPU 31b经由池页面管理表70来确认所确定的池卷中的未使用池页面。
在S1006中,CPU 31b确定在池卷中是否存在未使用池页面。如果存在未使用池页面(S1006:是),则CPU 31b执行S1007。如果没有未使用池页面(S1006:否),则CPU 31b执行S1008。
在S1007中,CPU 31b从对应于所确定的层的池页面选择并且分配将被分配给虚拟页面的池页面。实际上,如果层被确定为第0层,则CPU 31b选择池卷管理表60中的池卷#50。CPU 31b经由池页面管理表70选择作为池卷#50中处于未使用状态的池页面的页面#2。CPU31b将池页面管理表70中对应于所选择的页面#2的页面使用状态70c从“未使用”更新为“已使用”。
在S1008中,CPU 31b选择不同的层,并且例如,如果池是同一第0层的,则池卷#70被从池卷管理表60选择。CPU 31b当在池页面管理表70中选择池卷#70的处于未使用状态的池页面之后执行S1007和S1003。
现在,图9的过程将被再次描述。
CPU 31b在完成S902中的映射控制(WR)处理之后执行S903。
在S903中,CPU 31b将写数据写入到存储器31c的对应于所获取的池页面的地址信息(池卷编号、池页面编号)的高速缓冲存储器区域中。
在S904中,CPU 31b向主计算机34发送写完成通知。
如所描述的,存储系统30能够处理来自主计算机34的包括对虚拟页面的池页面的分配的写I/O请求。
<降级过程>
图11是示出了从存储器到存储驱动的降级过程的流程图。
在S1101中,CPU 31b确认在存储器31c的高速缓冲存储器区域中是否存在仅在存储器中存在并且未被存储在存储驱动中的脏数据。
在S1102中,CPU 31b判定脏数据是否存在。如果在存储器31c的高速缓冲存储器区域中存在脏数据(S1102:是),那么CPU31b执行S1103。如果没有脏数据(S1102:否),则CPU31b结束降级处理。
在S1103中,CPU 31b将虚拟页面的地址信息(虚拟卷编号、虚拟页面编号)转换为分配表50中的池页面的地址信息(池卷编号、池页面编号)。
在S1104中,CPU 31b执行将脏数据写入到存储驱动的对应于转换后的池页面的预定区域中的降级操作。
在S1105中,CPU 31b对每虚拟页面的降级操作所需的I/O数目进行计数,并且更新虚拟页面I/O计数管理表80。
实际上,关于虚拟卷#100中的虚拟页面#0,从分配表50可见对应的池卷是#50并且池页面是#0。
另外,从池卷管理表60可见池卷#50由其中驱动类型为SSD的物理盘61组成。
因此,CPU 31b经由SAS_I/F 31e将脏数据写入到作为物理盘的SSD 61的预定区域中。
然后,CPU 31b将降级操作所需的I/O数目添加到虚拟页面I/O计数管理表80中的每虚拟页面的I/O计数80c的内容,其中虚拟卷#80a是“100”并且虚拟页面#80b是“0”。
降级操作所需的I/O数目经由SAS_I/F 31e被测量,并且测量结果被CPU 31b获取,虚拟页面I/O计数管理表80由此被更新。
另外,如果降级目的地是SAS型HDD 32b或者SATA型HDD32c,那么降级所需的I/O数目分别经由SAS_I/F 31f或者SAS_I/F 31g被测量。
例如,如果降级操作所需的I/O数目是“5”,那么CPU 31b通过数字“15”来更新每虚拟页面的I/O计数80c的内容,数字“15”是作为向作为每虚拟页面的I/O计数80c的内容的数字“10”添加“5”的结果而获得的。
<读I/O处理>
图12是示出了对来自主计算机的读I/O请求的处理的流程图。图13是示出了接收到读I/O请求时的存储区域的映射过程的流程图。
图12和图13的过程在发生从主计算机34到存储系统30的读I/O请求时由CPU 31b执行。
在S1201中,CPU 31b确认在存储器31c中的高速缓冲存储器区域中是否存在读数据。
在S1202中,CPU 31b判定在高速缓冲存储器区域中是否存在将被读取的数据。如果数据存在(S1202:是),则CPU 31b执行S1203。如果数据不存在(S1202:否),则CPU 31b执行S1204的过程。
在S1203中,CPU 31b读取将被从存储器31c中的高速缓冲存储器区域中读取的数据,将数据发送到主计算机34,并且完成读I/O请求处理。
如果在高速缓冲存储器区域中不存在将被读取的数据,则在S1204中,CPU 31b执行图13的映射控制(RD)过程。
在S1301中,CPU 31b经由分配表50确认是否存在分配给读访问区域的虚拟页面的池页面。
在S1302中,CPU 31b判定是否存在池页面。如果存在分配给读访问区域的虚拟页面的池页面(S1302:是),则CPU 31b执行S1303,并且如果没有池页面(S1302:否),则CPU31b执行S1304。
在S1303中,CPU 31b从池页面读取数据,并且完成映射控制(RD)的处理。
在S1304中,CPU 31b读入0数据,并且完成映射控制(RD)的处理。
现在,图12的处理将被再次描述。
在S1205中,如果已被读取的数据是除0数据之外的,则CPU31b将所读取的数据存储到存储器31c中的高速缓冲存储器区域中。
在S1206中,CPU 31b对升级(staging)所需的I/O数目进行计数,并且使用计数值来更新每虚拟页面的I/O计数80c的内容。该更新操作与在图11的S1105中描述的更新操作相同。
最后,在S1203中,CPU 31b将0数据或者从池页面读取的数据发送到主计算机34,并且存储系统30完成对来自主计算机34的读I/O请求的处理。
<最佳层的确定>
图14是示出了用于确定最佳层的过程的流程图。
在S1401中,CPU 31b基于虚拟页面I/O计数管理表80(图8)创建虚拟卷I/O频率分布表(图15)。
在S1402中,CPU 31b通过使属于同一池的每虚拟卷的I/O频率分布相加来创建池I/O频率分布表(图16)。然后,每页面的频率分布图a1(图17(a))被创建,其中横轴显示I/O计数并且竖轴显示池I/O频率分布表的内容的页数。然后,所创建的每页面的频率分布图a1被变换以创建每页面的频率分布图b1(图17(b)),其中横轴显示存储容量并且竖轴显示IOPS。
在S1403中,CPU 31b在上层中分配虚拟页面直到表达式1中示出的驱动性能或者层容量被满足。CPU 31b在驱动性能已被超过之后向下一层(同一层或者更低级别的层)分配虚拟页面。这是因为即使将虚拟页面分配给已经超过驱动性能的层中的池页面也无法提高性能。
驱动性能=驱动的每单位容量的性能(表达式2)x池卷容量x系数(60%)…表达式1
驱动的每单位容量的性能=驱动限制性能/驱动容量…表达式2
另外,表达式1中的系数(60%)用于防止驱动的总容量即使在驱动性能已经饱和之后还被连续地增加(添加的驱动的数目被增加)。
在上面描述的过程中,已经描述了其中在存储系统30中提供虚拟化功能的入站系统。还可以通过前面提到的基于服务器的入站系统、基于交换机的入站系统或者使用虚拟化功能的出站系统来执行前面提到的处理。
<虚拟卷I/O频率分布表>
图15是示出了虚拟卷I/O频率分布表的配置示例的视图。虚拟卷I/O频率分布表150被存储在存储系统30的存储器31c中并且被CPU 31b任意使用。
虚拟卷I/O频率分布表150用于管理每虚拟卷生成的I/O的数目。
虚拟卷I/O频率分布表150由虚拟卷#150a、I/O计数范围150b、页面计数150c和每I/O计数范围的累积I/O计数150d组成。
以一个虚拟卷(以下在对图15的描述中被称作“目标虚拟卷”)为例,前面提到的信息元素如下。
(1)“虚拟卷#”是用于标识目标虚拟卷的编号。
(2)“I/O计数范围”显示了在目标虚拟卷中生成的I/O计数的范围。符号“X-Y”显示所生成的I/O在X次到Y次的范围内。
例如,“15-31”显示所生成的I/O落入15到31次的范围。顺便提及,“0-0”显示I/O的数目为零,并且“1-1”显示I/O的数目为一。也可以不是由I/O数目的范围而是由单个I/O单元来管理I/O。
(3)“页面计数”指的是具有对应于目标虚拟卷中的I/O计数的范围的I/O的虚拟页面的数目。
例如,如果在虚拟卷#0的虚拟页面内存在其中所生成的I/O计数为“2”的60页的虚拟页面,并且如果存在其中所生成的I/O计数为“3”的81页的虚拟页面,则其中虚拟卷#0的I/O计数范围150b为“2-3”的页面数目150c将是两个值的总数,或者说141页。
(4)“每I/O计数范围的累积I/O计数”是通过计算针对目标虚拟卷中的每I/O计数范围生成的I/O的数目的总数而计算出的累积I/O计数。
<池I/O频率分布表>
图16是示出了池I/O频率分布表的配置示例的视图。图17是示出了每个池的频率分布的图像的视图。
池I/O频率分布表160用于管理针对每个池生成的I/O的数目,其被存储在存储系统30的存储器31c中并且被CPU 31b任意使用。
池I/O频率分布表160由池#160a、I/O计数范围160b、页面计数160c和每个I/O计数范围的累积I/O计数160d组成。
以单个池(以下在对图16的描述中被称作“目标池”)为例,前面提到的信息元素如下。
(1)“池#”是用于标识目标池的编号。
(2)“I/O计数范围”是在目标池中生成的I/O计数的范围。
(3)“页面计数”是与在目标池中生成的I/O计数的范围相匹配的池页面的总数。
(4)“每I/O计数范围的累积I/O计数”是通过计算针对目标池中的每I/O计数范围生成的I/O计数的总数而计算出的累积I/O计数。
上面提到的(2)至(4)中的符号系统和符号内容与图15相同。另外,可以使属于每个池的每个虚拟卷的I/O频率分布相加以创建池I/O频率分布表160。
<每池的频率分布图>
图17是示出了每池的频率分布的图像的视图。
将参考图17描述使用池I/O频率分布表160来创建每池的频率分布图的方法。为了描述,假定池的数目是一。
首先,使用池I/O频率分布表160创建显示每I/O计数范围的I/O计数和页面总数的柱状图。然后,在所创建的柱状图中,从左到右按照从具有小I/O数目的那些到具有大I/O数目的那些的次序来重新排列柱。
例如,图17(a)中的左端的柱状图已经聚集了其中I/O计数为“0”的页面,其中其页面数目是1000页。假定第二柱状图已经聚集了其中I/O计数为“1”的页面,其中其页面数目是800页。第三柱状图已经聚集了其中I/O计数为“2”的页面,其中页面数目是700。如所描述的,柱状图被从左到右按次序排列以使得具有更小I/O计数的柱状图被从左边开始排列并且具有更大I/O计数的柱状图被向右排列。
随着所生成的I/O的数目增大,该I/O所访问的页面的数目减少。因此,如页面计数和代表负载的I/O计数所示的池I/O频率分布(连接相应的柱状图顶部的曲线)如参考号170a所示。
另外,可以通过负载的数目和被分配给每个层的存储驱动(物理盘)的驱动容量来计算分配给每个页面的层级别。
例如,在图17(a)中,具有高负载的页面(即从右端侧的柱状图到第12个柱状图的柱状图中的页面)是将被分配给第0层的页面。类似地,从第13个柱状图到第21个柱状图的柱状图中的页面是将被安排给第1层的页面,并且从第22个柱状图到第24个柱状图(从左端柱状图到第四个柱状图)的柱状图中的页面是将被安排给第2层的页面。
接下来,所创建的每页面的频率分布图a1(参考号170a)被变换以创建每页面的频率分布图b1(图17(b)),其中横轴显示存储容量并且纵轴显示IOPS。
上面描述的操作使得能够创建前面提到的池频率分布图(容量-IOPS)。
《实施例1》
《概要》
根据实施例1的存储系统30具有以下功能(1)和(2)。
(1)执行对属于同一池的多个虚拟卷的分组的功能
被形成为组的虚拟卷的组被称为TG(分层组)。
(2)按照每个TG的层来建立使用量的约束条件的功能。
约束条件的设置项是确保第0层的最小使用量的第0层最小容量、确定第0层的最大使用量的第0层最大容量以及确定第2层的最小使用量的第2层最小容量。
根据本实施例,设置上面提到的三个使用量的约束条件的情况将被描述。然而,本发明不局限于这种示例,并且本发明还可以设置第2层的最大使用量、第1层的最小使用量和第1层的最大使用量,执行稍后描述的页面重定位处理,并且减少对响应性能的影响。
另外,本实施例中的层的数目是三(三个层),但是层的数目可以是两个或者多于四个层。
首先,用户或者系统管理者针对所创建的多个虚拟卷执行TG设置。在TG设置中,将经受分组的虚拟卷的组被按照TG注册,并且每个TG的约束条件被建立。
按照虚拟卷的使用目的来执行分组。例如,如果属于一个池的虚拟卷在主计算机34中操作的数据库应用中被使用,那么用于索引部分的虚拟卷组和用于存储实际数据的主体部分的虚拟卷组被各自形成为TG。
根据数据库应用,实现高速响应要求构成索引部分的虚拟卷,而实现高速响应不要求构成存储实际数据的主体部分的虚拟卷。
因此,如果索引部分的虚拟卷和存储实际数据的主体部分的虚拟卷在同一TG中,那么访问性能将会劣化。因此,相应的虚拟卷被注册为不同的TG并且层的详细分配被执行,存储系统的响应性能据此可以被提高。
将被分组的虚拟卷组和作为第0层最小容量、第0层最大容量和第2层最小容量的约束条件被用户或者系统管理者经由管理终端33建立。
接下来,根据虚拟页面I/O计数管理表来创建每虚拟卷的频率分布。通过基于该表使属于相同TG的虚拟卷的频率分布相加,按照TG的频率分布被创建。
基于所创建的每个TG的每TG的频率分布和预先建立的第0层最小容量来确定将被迁移到第0层的虚拟页面。
类似地,基于每个TG的每TG的频率分布和第2层最小容量来确定将被迁移到第2层的虚拟页面。
接下来,通过使属于同一池的多个TG的按照TG的频率分布相加来创建按照池的频率分布,并且将除已经迁移的页面之外的页面从具有更高I/O计数的虚拟页面顺序地迁移到上层直到驱动性能或者层容量被满足。另外,当驱动性能或者层容量被超过时下一层被选择,并且迁移被类似地执行。
当所有虚拟页面的迁移完成时,每个TG的第0层的使用量是否已经超过预先设置的第0层最大容量被检查,并且如果超过,则虚拟页面被与属于除本TG之外的TG的分配给第1层的虚拟页面交换。
这里,将被交换的虚拟页面是分配给本TG的第0层的虚拟页面中的具有最少I/O计数的虚拟页面以及分配给除本TG之外的第1层的虚拟页面中具有最多I/O计数的虚拟页面。
当所有TG都满足第0层的最大使用量的约束条件时,页面的重定位完成。
如所描述的,通过针对每个TG设置层的使用量的约束条件,每个TG能够使用高级别第0层而不考虑I/O计数,从而使得其他TG的负载变化的影响可以被减少。另外,通过按照用于每个应用的虚拟卷来执行TG,变得有可能减少响应性能在应用中的影响。
《页面重定位处理》
图18是示出了根据实施例1的用于按照TG设置约束条件的页面重定位处理的流程图。图19是示出了根据实施例1的TG设置过程的流程图。图20是示出了根据实施例1的TG设置信息管理表的配置示例的视图。
在S1801中,CPU 31b执行在图19中示出的TG设置过程。
<TG设置/TG设置信息管理表1>
在图19中的S1901到S1904的过程中,针对在图20中示出的TG设置项目设置预定信息。
TG设置信息管理表200由POOL(池)#200a、TG#200b、属于每个TG的虚拟卷#200c和约束条件(使用容量(GB))200d组成。
以单个TG为例(以下在对图20的描述中被称作“目标TG”),前面提到的信息元素如下。
(1)“POOL#”指的是用于标识目标TG所属的池的编号。一个或多个TG属于每个池。
(2)“TG#”是用于标识目标TG的组编号。
(3)“属于每个TG的虚拟卷#”是用于标识属于目标TG的虚拟卷的信息。一个或多个虚拟卷属于单个TG。
(4)“约束条件”通过设置目标TG的第0层最大容量、第0层最小容量和第2层最小容量被设置。针对每个设置字段设置容量(GB)值,但是“未设置”指代尚未设置值的状态,并且“-”指的是容量无法被设置的状态。
例如,可见其中POOL#200a为“0”并且TG#200d为“0”的POOL#0中的TG#0具有属于它的编号为0、1和2的三个虚拟卷,如在属于每个TG的虚拟卷#200c中所示。另外,基于约束条件200d可见第0层最大容量被设置为30GB,并且第0层最大容量和第2层最小容量未被设置。
首先,在S1901中(图19),管理终端33的CPU 33b获取由用户或者系统管理者经由诸如键盘之类的输入设备33e在诸如显示器之类的输出设备33a上显示的设置屏幕上输入的正由于每种使用目的而被分组为TG的虚拟卷的信息。
在S1902中,类似于关于根据使用目的而被分组的虚拟卷的信息,CPU 33b获取由用户或者系统管理者设置的每个TG的第0层最大容量的约束条件。
在S1903中,类似于关于根据使用目的而被分组的虚拟卷的信息,CPU 33b获取由用户或者系统管理者设置的每个TG的第0层最小容量的约束条件。
在S1904中,类似于关于根据使用目的而被分组的虚拟卷的信息,CPU 33b获取由用户或者系统管理者设置的每个TG的第2层最小容量的约束条件。
在获取第2层最小容量的约束条件之后,CPU 33b将所获取的各种信息聚集为TG设置信息管理表200。然后,CPU 33b将聚集的TG设置信息管理表200经由NIC 33d发送给存储系统30。
存储系统30的CPU 31b经由NIC 31d获取从管理终端33发送的TG设置信息管理表200,并且将其存储在存储器31c上的共享存储器区域中。
<TG的新设置>
图21是示出了根据实施例1的在创建虚拟卷时的TG设置屏幕的配置示例的视图。
TG设置屏幕210示出了在管理终端33的输出设备33a上显示的屏幕,其包括TG设置项目的输入区域211和输入信息的显示区域212。
TG设置项目的输入区域211包括四个输入区域,这四个输入区域是用于输入TG编号的“TG Number(TG编号)”、用于输入第0层中的最大使用量的“Tier0 Max Capacity(第0层最大容量)”、用于输入第0层中的最小使用量的“Tier0 Min Capacity(第0层最小容量)”以及用于输入第2层中的最小使用量的“Tier2 Min Capacity(第2层最小容量)”。
另外,输入信息的显示区域212显示有上面描述的输入信息,并且用户或者系统管理者可以确认输入信息。例如,基于显示区域212可见在TG#3中第0层最小容量被设置为25GB并且第0层最大容量和第2层最小容量未被设置。
如所描述的,管理终端33的CPU 33b执行TG编号或者约束条件的获取以及所获取信息的显示。
<TG的附加设置/TG的设置内容的确认>
图22是示出了根据实施例1的用于在创建虚拟卷之后改变TG设置的TG设置屏幕的配置示例的视图。图23是示出了根据实施例1的用于确认TG设置的内容的TG设置确认屏幕的配置示例的视图。
类似于图21的在创建虚拟卷之后执行TG设置的改变的情况下,给定的TG编号和诸如第0层最大容量之类的约束条件在设置屏幕220的输入区域中被输入和设置,类似于图21。
另外,用户或者系统管理者可以确认图23的确认屏幕230的显示区域232上的TG编号或者在创建虚拟卷时建立或者在创建虚拟卷之后建立的约束条件。
例如,可见关于TG#1,第0层最大容量和第2层最小容量分别是10GB,并且第0层最小容量未被设置。另外,TG编号或者约束条件可以被动态地设置,即在继续对存储系统30的操作的同时被设置。
现在,图18的过程将被再次描述。
在S1802中,CPU 31b基于虚拟页面I/O计数管理表80(图8)创建虚拟卷I/O频率分布表150(图15)。
在S1803中,CPU 31b使用经由管理终端33获取的TG设置信息管理表200来使同一TG的虚拟卷的频率分布相加,并且创建每TG的频率分布。例如,因为虚拟卷#3和虚拟卷#4根据池#0的TG#1而被分组,因此CPU 31b通过使虚拟卷#3的频率分布和虚拟卷#4的频率分布相加来创建TG#1的频率分布。
实际上,CPU 31b使其中虚拟卷I/O频率分布表150中的虚拟卷#150a为“3”的虚拟卷的页面数目以及其中虚拟卷#150a为“4”的虚拟卷的页面数目相加。
类似地,CPU 31b使虚拟卷#3的累积I/O计数和虚拟卷#4的累积I/O计数相加。CPU31b基于相加结果来创建如在图17(b)中示出的频率分布,即TG频率分布。CPU 31b针对每个池中的每个TG执行上面描述的处理,并且每个TG的频率分布被创建。
在S1804中,CPU 31b使用所创建的TG频率分布和在TG设置信息管理表200中设置的第0层的最小使用量来执行对第0层最小容量的约束条件处理(图24)。
<第0层最小容量的约束条件处理>
图24是示出了根据实施例1的第0层最小容量的约束条件处理的流程图。
根据第0层最小容量的约束条件处理,TG 0中的第0层的最小使用量被设置为作为约束条件的30GB。第0层必须被分配给TG0的频率分布图240中由虚线围绕的部分242(容量30GB)。
在S2401中,CPU 31b将作为TG的标识号的i设置为“0”。
在S2402中,CPU 31b基于TG设置信息管理表200来判定是否对TGi(TG0)设置了第0层的最小使用量的约束条件。
如果第0层最小容量的约束条件未被设置(S2402:否),则CPU 31b执行S2405。如果约束条件被设置(S2402:是),则CPU31b执行S2403。因为基于TG设置信息管理表200,TG0的第0层最小容量的约束条件被设置为30GB,因此CPU 31b执行S2403。
在S2403中,使用虚拟页面I/O计数管理表80,CPU 31b在属于TGi(TG0)的虚拟卷(虚拟卷#0、#1和#2)的虚拟页面中搜索具有更高I/O计数的虚拟页面直到TG0中的第0层的使用量达到最小容量,并且搜索到的虚拟页面被从第1层或第2层迁移到第0层。
在S2404中,CPU 31b将被迁移到第0层的虚拟页面作为迁移页面记录到诸如分配表50或者虚拟页面I/O计数管理表80之类的管理表中。
在S2405中,CPU 31b向TG标识号i加1。换言之,CPU 31b将i的值从“0”更新为“1”。
在S2406中,CPU 31b判定TG的标识号i是否已经超过最大TG编号。例如,在POOL#0的情况下,最大TG编号是“1”(在POOL#0中存在TG0和TG1),所以TG的标识号尚未超过最大TG编号(S2406:否)。因此,CPU 31b重复S2402和其后的过程。
在S2402中,CPU 31b基于TG设置信息管理表200判定是否已经为TG1设置了第0层最小容量的约束条件。因为基于TG设置信息管理表200,第0层最小容量的约束条件是“未设置”(S2402:否),因此CPU 31b在S2405中向TG的标识号i加1,并且将处理目标TG设置为TG2。
在S2406中,CPU 31b重新判定TG的标识号i是否已经超过最大TG编号。在POOL#1中,因为TG2不存在,因此CPU 31b结束第0层最小容量的约束条件处理。CPU 31b也可以针对除POOL#0之外的池执行从S2401到S2406的处理。
在现有技术中,TG1的I/O计数的增加已经导致不向TG0分配第0层,据此TG0的访问性能已经劣化。根据本发明,如早先描述的,不管TG0的I/O计数如何,第0层中的至少30GB可被TG0使用。因此,有可能减少TG1的I/O计数的增加对TG0的访问性能的影响。
接下来,在S1805中(图18),CPU 31b使用所创建的TG频率分布和在TG设置信息管理表200中设置的第2层最小容量来执行第2层最小容量的约束条件处理(图25)。
<第2层最小容量的约束条件处理>
图25是示出了根据实施例1的第2层的最小使用量的约束条件处理的流程图。
根据第2层最小容量的约束条件处理,TG1中的第2层的最小使用量被设置为20GB。第2层一定被分配给一定被分配给TG 1的频率分布图241中由虚线围绕的部分252(20GB容量)。
在S2501中,CPU 31b将作为TG的标识号的i设置为“0”。
在S2502中,CPU 31b基于TG设置信息管理表200来判定是否对TGi(TG0)设置了第2层的最小容量的约束条件。
如果第2层最小容量的约束条件未被设置(S2502:否),则CPU 31b执行S2505。如果约束条件被设置(S2502:是),则CPU31b执行S2503。基于TG设置信息管理表200,TG0的第2层最小容量的约束条件是“未设置”,所以CPU 31b执行S2505。
在S2505中,CPU 31b向TG标识号i加1。换言之,CPU 31b将i的值从“0”更新为“1”。
在S2506中,CPU 31b判定TG的标识号i是否已经超过最大TG编号。在POOL#0的情况下,最大TG编号是“1”,所以CPU31b再次执行S2502的过程。
在S2502中,CPU 31b基于TG设置信息管理表200判定是否为TG1设置了第2层最小容量的约束条件。因为基于TG设置信息管理表200,为TG1设置了第2层最小容量(20GB)的约束条件(S2502:是),所以CPU 31b执行S2503。
在S2503中,CPU 31b根据虚拟页面I/O计数管理表80在属于TG1的页面中搜索具有更低I/O计数的虚拟页面直到TG1中的第2层的使用量已经达到20GB的最小使用量,并且搜索到的虚拟页面被从第0层或第1层顺序地迁移到第2层。
在S2504中,CPU 31b将正被迁移到第2层的虚拟页面作为迁移页面记录到诸如分配表50或者虚拟页面I/O计数管理表80之类的管理表中。
在S2505中,CPU 31b向TG标识号i加1,将TG2设置为处理目标TG,并且判定最大TG数目是否已被超过。因为在POOL#0中不存在TG2,因此CPU 31b结束第2层最小容量的约束条件处理。CPU 31b也可以针对除POOL#0之外的池执行从S2501到S2506的过程。
如所描述的,因为TG1必须使用第2层中的至少20GB,所以可以实现对TG1对第0层或第1层的排他使用或者使用量的限制。根据这一过程,可以减少TG1的I/O计数的增加对TG0的访问性能的影响。
现在,图18的过程将被再次描述。
在S1806中,CPU 31b使同一池的每TG的频率分布相加,并且创建每池的频率分布。例如,在POOL#0中,TG0的频率分布240和TG1的频率分布241被相加以创建如在图17(b)中示出的池频率。CPU 31b针对每个池执行创建处理。
在S1807中,CPU 31b将除已经迁移页面之外的虚拟页面分配给上层直到驱动性能或者层容量被满足,并且当驱动性能被超过时,CPU 31b将页面分配给(相同级别或者更低级别的)下一层。
接下来,在S1806中(图18),CPU 31b使用所创建的TG频率分布和在TG设置信息管理表200中设置的第0层最小容量来执行第0层最大容量的约束条件处理(图26)。
<第0层最大容量的约束条件处理>
图26是示出了根据实施例1的第0层最大容量的约束条件处理的流程图。
根据第0层最大容量的约束条件处理,TG1中的第1层的最大使用量被设置为作为约束条件的30GB。在TG1的频率分布图241中,箭头260的范围(虚线范围261和实线范围262)的容量被假定为50GB。
在S1808中,CPU 31b使用所创建的TG频率分布和在TG设置信息管理表200中设置的第0层中的最大使用量来执行第0层最大容量的约束条件处理(图26)。
在S2601中,CPU 31b将TG标识号的i设置为“0”。
在S2602中,CPU 31b基于TG设置信息管理表200来判定是否针对TGi(TG0)设置了第0层最大容量的约束条件。
如果第0层最大容量的约束条件未被设置(S2602:否),则CPU 31b执行S2606。如果约束条件被设置(S2602:是),则CPU31b执行S2603。基于TG设置信息管理表200,因为TG0的第0层最大容量的约束条件是“未设置”,因此CPU 31b执行S2606。
在S2606中,CPU 31b向TG标识号i加1。换言之,CPU 31b将i的值从“0”更新为“1”。
在S2607中,CPU 31b判定TG标识号i是否已经超过最大TG编号。例如,在POOL#0的情况下,最大TG编号是“1”,从而使得CPU 31b重新执行S2602的过程。
在S2602中,CPU 31b基于TG设置信息管理表200判定是否针对TG1将第0层最大容量设置为约束条件。因为基于TG设置信息管理表200,第0层最大容量的约束条件被设置为“30GB”(S2602:是),所以CPU 31b执行S2603。
在S2603中,CPU 31b判定TGi(TG1)对第0层的当前使用量是否大于被设置为约束条件的第0层最大容量。如果TG1对第0层的使用量不大于“30GB”的约束条件(S2603:否),则CPU 31b执行S2606,并且如果大于(S2603:是),则CPU执行S2604。
在图26中,如早先提到的,TG1已经使用了第0层中的50GB,超过约束条件30GB达20GB。因此,CPU 31b将已经超过最大使用量(实线范围262)的容量20GB的分配从TG1变为TG0。顺便提及,在改变分配之前,TG0仅能够使用第0层中的10GB(由箭头265所示的容量)。
在S2604中,CPU 31b根据虚拟页面I/O计数管理表80从分配给TGi(TG1)的第0层的虚拟页面中搜索与已经超过最大容量的20GB价值的容量对应的具有更低I/O计数的虚拟页,并且将这些页面从第0层顺序地迁移到第1层。
在S2605中,CPU 31b根据虚拟页面I/O计数管理表80从属于除TGi(TG1)之外的TG(图26中的TG0)的第1层的虚拟页面搜索具有更高I/O计数的虚拟页面,并且将对应于20GB容量(实线范围266)的页面从第1层顺序地迁移到第0层。
此后,CPU 31b将迁移到第0层或者第1层的虚拟页面作为迁移页面注册在诸如分配表50或者虚拟页面I/O计数管理表80之类的管理表中。
在S2606中,CPU 31b向TG标识号i加1,将TG2设置为处理目标TG,并且在S2607中判定最大TG数目是否已被超过。因为在POOL#1中不存在TG2,因此CPU 31b结束第0层最大容量的约束条件处理。CPU 31b可以针对除POOL#0之外的池执行从S2601到S2607的过程。
如所描述的,TG1中的第0层的使用量可以被限制为最大30GB,从而使得变得有可能防止TG1用完全部第0层。换言之,如果第0层的最大容量是60GB,那么TG0被使能以将第0层的使用量从10GB增加到30GB。因此,变得有可能防止TG0的访问性能受TG1的I/O计数的影响。
例如,如果属于池0的虚拟卷被在主计算机34中操作的数据库应用使用,那么TG0将是在索引部分中使用的虚拟卷组,并且TG1将是在存储实际数据的主体部分中使用的虚拟卷组。
至于由实现高速访问所需的索引部分所使用的TG0,根据前面提到的第0层最小容量的约束条件一定可以使用30GB,从而使得可以实现高速访问性能。此外,至于由不要求具有像索引部分这样的高访问性能的主体部分所使用的TG1,第0层最大容量的约束条件和第2层最小容量的约束条件使得能够减少给TG0的响应性能带来的影响。
《实施例2》
《概要》
根据实施例2的存储系统30具有以下功能(1)和(2)。
(1)使属于同一池的多个虚拟卷被分组的功能。
(2)针对每个TG建立加权条件的功能。
将被设置为加权条件的项目是“范围”和“权重”。“范围”指定了其中在每个TG中执行加权的范围。“权重”指定了加权的乘数(multiplying factor)。例如,如果TG0的容量是100GB,其中范围被设置为30GB并且权重被设置为两倍,则向TG0的所有虚拟页面中具有更高I/O计数的30GB范围的页面执行加权。另外,因为权重是两倍,因此属于30GB范围的虚拟页面的I/O计数被加倍。
对与所创建的按照TG的频率分布和预先设置的加权条件的范围对应的虚拟页面的I/O计数执行加权,并且基于加权结果,虚拟页面I/O计数管理表和按照TG的频率分布被基于加权结果更新。
接下来,属于同一池的TG的已经通过加权而被更新的按照TG的频率分布被相加以创建按照池的频率分布。
从具有更高I/O计数的虚拟页面顺序地执行到上层的虚拟页面的迁移直到驱动性能或者层容量被满足。当驱动性能或者层容量被超过时,(相同级别或者更低级别的)下一层的层被选择并且虚拟页面的迁移被执行。
如所描述的,通过针对每个TG提供加权条件,变得有可能将每个TG中正被加权的页面的范围分配给高级别第0层,从而使得变得有可能减少其他TG的负载增加对内部TG的响应性能造成的影响。
《通过加权的页面重定位处理》
图27是示出了根据实施例2的通过按照TG进行加权的页面重定位处理的流程图。图28是示出了根据实施例2的TG设置过程的流程图。
在S2701中,CPU 31b执行在图28中示出的TG设置过程。
<TG设置/TG设置信息管理表2>
在图28中的S2801到S2803的过程中,针对在图29中示出的TG设置项目来设置预定信息。
<TG设置信息管理表2>
图29是示出了根据实施例2的TG设置信息管理表的配置示例的视图。图30是示出了根据实施例2的在对TG设置信息管理表进行加权之前和之后的配置示例。
图29中的TG设置信息管理表290由POOL#290a、TG#290b、属于每个TG的虚拟卷#290c和加权条件290d组成。POOL#290a、TG#290b和属于每个TG的虚拟卷#290c与图20中的TG设置信息管理表200相同。
加权条件290d由“范围”和“权重”组成,如早先提到的。“范围”指定用于在每个TG的频率分布中执行加权的范围(容量)。“权重”指定对按照TG的频率分布中的I/O计数(IOPS)的加权的乘数。
例如,当POOL#0中的TG#0的容量是100GB时,范围是30GB并且权重是两倍,对TG#0的所有虚拟页面中的具有更高I/O计数的虚拟页面中与30GB容量对应的虚拟页面的I/O计数(IOPS)执行加权。根据本示例,因为权重是两倍,因此属于30GB范围的虚拟页面的I/O计数被加倍。
实际上,在图30(a)中的加权之前在虚拟页面I/O计数管理表300中被加权的虚拟页面是其中虚拟卷#300a为“0”并且虚拟页面#300b为“2”的虚拟卷#0中的虚拟页面#2以及其中虚拟卷#300a为“2”并且虚拟页面#300b为“0”的虚拟卷#2中的虚拟页面#0。
另外,可见当前虚拟页面的按照虚拟页面的I/O计数300c根据参考号301是“512”并且根据参考号302是“635”。
在本实施例中,针对前面提到的虚拟页面执行两倍加权。就是说,在图30(b)中的加权之后的虚拟页面I/O计数管理表310中,每虚拟页面的I/O计数300c被分别设置为“1024”和“1270”,如由参考号311和312所示。
首先,在S2801(图28)中,管理终端33的CPU 33b获取用户或者系统管理者通过诸如键盘之类的输入设备33e在诸如显示器之类的输出设备33a上显示的设置屏幕上输入的关于为了每种使用目的而将被分组为TG的虚拟卷的信息。
在S2802中,类似于关于为了每种使用目的而被分组的虚拟卷的信息,CPU 33b获取由用户或者系统管理者设置的用于针对每个TG执行加权的范围条件。
在S2803中,类似于关于为了每种使用目的而被分组的虚拟卷的信息,CPU 33b获取由用户或者系统管理者设置的针对每个TG的权重(乘数)。
在获取每个TG的权重(乘数)条件之后,CPU 33b将所获取的各种信息聚集为TG设置信息管理表290。然后,CPU 33b将聚集的TG设置信息管理表290经由NIC 33d发送给存储系统30。
存储系统30的CPU 31b经由NIC 31d获取从管理终端33发送的TG设置信息管理表290,并且将其存储在存储器31c中的共享存储器区域中。
<TG的新设置>
图31是示出了根据实施例2的在创建虚拟卷时的TG设置屏幕的配置示例的视图。根据实施例2的TG设置屏幕310的典型特征是TG设置项目的输入区域311由以下输入区域组成:用于输入TG编号的“TG Number”、用于输入范围的“Scope(范围)”和用于输入权重的“Weighting Cefficient(加权系数)”。另外,在显示区域312中,TG编号、所输入的加权范围和权重被CPU 33b显示。
<TG的附加设置/TG设置的内容的确认>
图32是示出了根据实施例2的用于在创建虚拟卷之后执行TG设置的改变的TG设置屏幕的配置示例的视图。图33是示出了根据实施例2的用于确认TG设置的内容的TG设置确认屏幕的配置示例的视图。
在创建虚拟卷之后执行TG设置的改变的情况下,类似于图31,预定的TG编号和加权条件在设置屏幕320的输入区域321中被输入和设置。
另外,用户或者系统管理者可以经由图33的确认屏幕330的显示区域331来确认在虚拟卷的创建期间或者在虚拟卷的创建之后设置的诸如TG编号或加权条件之类的输入信息。TG编号或者加权条件可以被动态地设置或改变,即在操作存储系统30的同时被设置或改变。
现在,图27的过程将被再次描述。
S2702和S2703的过程与S1802和S1803的过程相同,故其描述被省略。
在S2704中,CPU 31根据加权条件执行对每虚拟I/O页面的I/O计数的加权,并且改变每TG的频率分布。换言之,通过两倍权重273针对TG0的频率分布270的范围272(对应于30GB)中的虚拟页面的IOPS执行加权,并且TG0的频率分布270被改变为频率分布270a。
由此,范围272中的TG0的频率分布中的IOPS变得大于TG1的频率分布的IOPS,从而使得作为上层的第0层被优先分配给TG0中的虚拟页面。
在S2705中,类似于S1806,CPU 31b使同一池的按照TG的频率分布相加,并且创建按照池的频率分布。另外,在S2706中,CPU 31b将虚拟页面分配给高级别层直到驱动性能或者层容量被满足。如果驱动性能被超过,则CPU 31b选择下一层,并且将虚拟页面分配给该层。
如所描述的,通过针对每个TG设置加权条件,每个TG中已被加权的范围可以被容易地分配给高级别第0层,从而使得由其他TG的负载变化引起的对TG的访问性能的影响可以被减少。
《实施例3》
《概要》
根据实施例3的存储系统30具有以下功能(1)和(2)。
(1)使属于同一池的多个虚拟卷被分组的功能。
(2)针对每个TG建立目标平均响应时间的功能。
用户使用管理终端33来注册每个TG的将被分组的虚拟卷组,针对每个TG建立目标平均响应时间,并且所设置的信息被存储系统30获取。
存储系统30基于所获取的信息和诸如虚拟页面I/O计数管理表80之类的管理信息来创建每池的频率分布,并且具有更高I/O计数的虚拟页面被顺序地迁移到上层直到驱动性能或者层容量被满足。
当驱动性能或者层容量被超过时,(相同级别或者更低级别的)下一层被选择并且到其的迁移被执行。
当属于一个池的所有虚拟页面的迁移完成时,按照TG的平均响应时间被计算,并且计算出的值被与预先设置的目标平均响应时间(目标值)相比较以确认计算出的值是否满足目标值。
如果计算出的值尚未满足目标值,那么在除相关TG之外的TG的虚拟页面搜索被分配给第0层(高级别层)的这样的虚拟页面,该虚拟页面可以被迁移到第1层(更低层)而不导致该TG的平均响应时间的计算出的值降到目标平均响应时间以下。
然后,使在属于相关TG的第1层的虚拟页面内具有最高I/O计数的虚拟页面与前面提到的第0层中的虚拟页面交换的过程将被执行。上面描述的过程被重复地执行直到针对所有TG计算出的平均响应时间都已经满足目标平均响应时间。
图34被用来详细描述前面提到的操作。图34是示出了根据实施例3的通过设置目标平均响应时间来进行页面重定位/再再分配(re-reallocation)处理的概念的视图。
图34(a)示出了一种状态,其中已经基于相应的TG频率分布确定了页面重定位方案并且已经执行了页面再分配。参考号340示出了TG0的频率分布并且参考号341示出了TG1的频率分布。
在这种状态下,具有参考号342所示容量的第0层被分配给TG1的虚拟页面,而第0层不被分配给TG0的虚拟页面。
在这种状态下,TG0和TG1的平均响应时间被计算为计算值,并且计算值被与设置的目标平均响应时间(目标值)相比较。
TG0处于其中计算值已经超过平均响应时间的目标值的状态,就是说,处于其中实际响应时间长并且响应被延迟的状态。TG1处于其中计算值小于平均响应时间的目标值的状态,就是说,处于其中实际响应时间短并且响应快速的状态。
因此,基于(a)的结果,TG1中对应于性能过剩的第0层被迁移到TG0并且TG0的目标平均响应时间由此被达到。
换言之,如在图34(b)中所示,对应于容量343(过剩性能部分)的分配给第0层的TG1中具有更低I/O计数的虚拟页面被迁移到TG0中的虚拟页面,从而实现如参考344所示的布置。该过程被称为页面再重定位处理。
根据该页面再重定位处理,TG1中的平均响应时间的计算值被增加,但是TG0中的平均响应时间的计算值在满足目标值的同时可以被减小。
如所描述的,通过提供用于针对每个TG设置目标平均响应时间的功能,变得有可能不管其他TG的负载变化而满足每个TG的用户所需的响应性能。另外,通过由在主计算机34或者存储系统30中操作的应用中使用的虚拟卷形成TG,变得有可能在应用中减少对访问性能的影响。
《通过设置目标平均响应时间的页面重定位处理》
图35是示出了根据实施例3的通过设置目标平均响应时间的页面重定位处理的流程图。图36是示出了根据实施例3的TG设置过程的流程图。
在S3501中,CPU 31b执行在图36中示出的TG设置过程。
<TG设置/TG设置信息管理表3>
在图36中的S3601到S3602的过程中,针对在图37中示出的TG设置项目来设置预定信息。
图37是示出了根据实施例3的TG设置信息管理表的配置示例的视图。
图37中的TG设置信息管理表370由POOL#370a、TG#370b、属于每个TG的虚拟卷#370c和目标平均响应时间370d组成。POOL#370a、TG#370b和属于每个TG的虚拟卷#370c与图20中的TG设置信息管理表200和图29中的TG设置信息管理表290相同。
目标平均响应时间370d设置在每个TG中要求的平均响应时间的值。例如,针对POOL#0中的TG#0设置5毫秒,并且针对TG#1设置8毫秒,并且将这些值与计算出的平均响应时间相比较。可以针对池中的所有TG设置目标平均响应时间。
另外,还可以设置仅一个TG的值并且不设置其他TG的值,从而将值留为“未设置”,如在POOL#1中一样。
在S3601(图36)中,管理终端33的CPU 33b获取用户或者系统管理者通过诸如键盘之类的输入设备33e在诸如显示器之类的输出设备33a上显示的设置屏幕上输入的关于根据使用目的而被分组为TG的虚拟卷的信息。
在S3602中,类似于关于根据使用目的而被分组的虚拟卷的信息,CPU 33b获取由用户或者系统管理者设置的目标平均响应时间。
在获取目标平均响应时间之后,CPU 33b将所获取的各种信息聚集为TG设置信息管理表370。然后,CPU 33b将聚集的TG设置信息管理表370经由NIC 33d发送给存储系统30。
存储系统30的CPU 31b经由NIC 31d获取从管理终端33发送的TG设置信息管理表370,并且例如将该表存储在存储器31c中的共享存储器区域中。
<TG的新设置>
图38是示出看根据实施例3的在创建虚拟卷时的TG设置屏幕的配置示例的视图。TG设置屏幕380上的TG设置项目的输入区域381由用于输入TG编号的“TG Number”和用于输入目标平均响应时间的“Targeted Response Time(目标响应时间)”组成。所输入的信息经由CPU 33b而被显示在显示区域382上。
<TG的附加设置/TG的设置内容的确认>
图39是示出了根据实施例3的用于在创建虚拟卷之后改变TG设置的TG设置屏幕的配置示例的视图。图40是示出了根据实施例3的用于确认TG设置的内容的TG设置确认屏幕的配置示例的视图。
类似于图38,当在创建虚拟卷之后执行TG的设置的改变时,用户或者系统管理者在设置屏幕390的输入区域391中输入并设置预定TG编号和目标平均响应时间。
另外,用户或者系统管理者可以在图40中的确认屏幕400的显示区域402上确认在虚拟卷的创建期间或者在虚拟卷的创建之后设置的TG编号和目标平均响应时间。另外,TG编号或者目标平均响应时间可以被动态地设置或改变,即在存储系统30工作的同时被设置或改变。
现在,图35的处理将被再次描述。
从S3502到S3506的过程与实施例2中从S2702和S2706的过程相同,故其描述被省略。在图35的流程图中,执行实施例2中的加权处理以减少TG1的I/O计数的增加对TG0的访问性能的影响,并且通过使用目标平均响应时间执行页面再重定位处理来进一步减少该影响。
另外,还可以仅通过执行S3507中的页面再重定位处理而不执行S3504中的加权处理来减少对访问性能的影响。
在S3507中,CPU 31b执行针对每个TG的响应时间检查以及在图41中示出的页面重定位处理。
<页面重定位处理>
图41是示出了根据实施例3的通过设置目标平均响应时间的页面重定位处理的流程图。
在S4101中,CPU 31b将作为TG的标识号的i设置为0。
在S4102中,CPU 31b使用表达式3计算整个TGi的平均响应时间R_all。首先,因为TG标识号i是“0”,因此使用表达式3计算TG0的平均响应时间R_all。
R_all=(Sum(Tj x Rj)(j=0-n))/(Sum(Tj)(j=0-n))…表达式3
1)j:层#的编号
2)Rj:层#j的平均响应时间
3)Tj:层#j的总I/O计数
在S4103中,CPU 31b将在表达式3中计算的TG0的平均响应时间(计算值)与TG0的设置目标平均响应时间(目标值)相比较。如果计算值大于目标值(S4103:是),则必须将具有高速的高级别层安排为TG0的虚拟页面,故CPU 31b执行S4104。
顺便提及,没有TG0中的虚拟页面被分配给第0层,并且全部第0层被分配给TG1的虚拟页面。
如果计算值不大于目标值(S4103:否),就是说,如果当前平均响应时间满足目标值,则CPU 31b执行S4111以处理下一个TG。
在S4104中,CPU 31b搜索第0层中的可交换页面。就是说,搜索来自除TG0之外的TG(例如,TG1)的分配给第0层的如下虚拟页面,该虚拟页面可以被迁移到第1层而不使相关TG(TG1)的平均响应时间(计算的值)超过目标平均响应时间。
在S4105中,CPU 31b判定在第0层中是否存在可交换页面。如果在第0层中存在可交换页面(S4105:是),则CPU 31b执行S4106。
如果在第0层中没有可交换页面(S4105:否),则CPU 31b执行对第1层中的可交换页面的搜索以及S4107和其后的虚拟页面的迁移处理。
在S4106中,CPU 31b将属于除TG0之外的第0层(例如,TG1)的虚拟页面中的具有更低I/O计数的虚拟页面迁移到第1层,并且将属于TG0的第1层的虚拟页面中的具有更高I/O计数的虚拟页面迁移到第0层。
在完成S4106的处理之后,CPU 31b重新执行S4102到S4106的过程直到计算值降到平均响应时间的目标值以下为止或者直到第0层中不再有可交换页面。
在S4107中,TG0的目标平均响应时间(目标值)被与第1层中的平均响应时间相比较。如果第1层中的平均响应时间小于目标值(S4107:是),则CPU 31b执行S4108。此时,通过使分配给TG0的第2层的虚拟页面迁移(分配)给第1层,TG0的平均响应时间可被减少。
如果第1层中的平均响应时间不小于TG0的目标平均响应时间(目标值)(S4107:否),则CPU 31b执行S4113。
在S4108中,CPU 31b搜索第1层中的可交换页面。就是说,搜索除TG0之外的TG(例如,TG1)的虚拟页面中分配给第1层的如下虚拟页面,这些虚拟页面可以被迁移到第2层而不使TG降到目标响应时间以下。
在S4109中,CPU 31b判定在第1层中是否存在可交换页面。如果在第1层中存在可交换页面(S4109:是),则CPU 31b执行S4110。
在S4110中,CPU 31b将属于除TG0之外的第1层(例如TG1)的虚拟页面中的具有更低I/O计数的虚拟页面迁移到第2层,并且将属于TG0的第2层的虚拟页面中的具有更高I/O计数的虚拟页面迁移到第1层。
在完成S4110的过程之后,CPU 31b重新执行S4102到S4110的过程直到其中计算值降到平均响应时间的目标值以下的条件被满足或者直到当第0层或者第1层中不再有可交换页面时。
如果在第1层中没有可交换页面(S4109:否),则CPU 31b执行S4113。
在S4111中,CPU 31b向TG标识号i加1。就是说,CPU 31b将i的值从“0”更新为“1”。
在S4112中,CPU 31b判定TG标识号i是否已经超过最大TG编号。例如,因为POOL#0的最大TG编号根据TG设置信息管理表370是“1”,因此CPU 31b针对TG1重新执行S4102和其后的过程。
在S4113中,CPU 31b判定当前TG中的平均响应时间(计算值)不可能满足目标平均响应时间(目标值)。因此,CPU 31b根据存储系统30中布置的存储驱动的配置来输出表明所需响应性能无法被满足的SIM(Service Information Message,服务信息消息)并且结束页面重定位处理。
如描述的,通过针对每个TG设置目标平均响应时间(目标值)和通过计算每个TG中的平均响应时间并将其与目标值相比较来改变层,相应的TG的虚拟页面可以被平等地分配给作为第0层和第1层的高级别层。因此,其他TG的负载变化对TG的访问性能的影响可被减少。另外,可以防止由存储系统中的访问性能的劣化引起的应用软件的进程的延迟和终止。
已经结合实施例2中示出的加权处理描述了实施例3,但是也可以结合实施例1来执行实施例3。另外,实施例1至3全部可以被以组合方式执行。
在对实施例1至3的描述中,诸如应用所使用的虚拟卷单元、已经聚集虚拟卷的TG单元和已经进一步聚集TG的池单元之类的单元已经被用作描述示例。
还可以不是在应用单元中而是在OS单元或者文件单元中应用本发明。换言之,OS单元或者文件单元中使用的虚拟卷被分组为TG以执行实施例1至3的页面重定位处理和页面再重定位处理,据此对存储系统中的访问性能的影响可以被减少。另外,还可以防止由存储系统中的访问性能的劣化引起的应用软件的进程的延迟和终止。
类似地,本发明可以被应用于其他单元,诸如主计算机单元、在主计算机中操作的虚拟机单元以及已经将存储驱动分为两个或多个部分的分区单元。
本发明不局限于上面提到的实施例,并且其他各种修改示例被包括在本发明的范围中。本发明的优选实施例仅是为了更好地理解本发明而被示出的,并且它们不是旨在以任何方式限制本发明的范围。
一个实施例中的配置的一部分可以被用另一个实施例的配置代替,或者一个实施例的配置可以被添加到另一个实施例的配置。另外,相应的实施例的配置的所有部分可以添加有其他配置、从中删除其他配置或者用其代替其他配置。
另外,说明书中描述的配置、功能、处理单元、处理装置等中的一部分或者全部可以通过硬件来实现,诸如通过设计的集成电路来实现。相应的配置、功能等还可以通过软件来实现,诸如通过使处理器解释用于实现相应的功能的程序并且通过执行该程序来实现。
诸如程序、表格、文件等用于实现相应的功能的信息可以被存储在诸如存储器、硬盘和SSD(固态驱动)之类的存储设备中,或者存储在诸如IC卡、SD卡和DVD之类的存储介质中。
认为对描述是必要的控制线和信息线被示出,并且不是制造所需的所有控制线和信息线都被示出。实际上,可以认为几乎所有组件被相互连接。
标号列表
30 存储系统
50 分配表
60 池卷管理表
70 池页面管理表
80 虚拟页面I/O计数管理表
150 虚拟卷I/O频率分布表
160 池I/O频率分布表
200 TG设置信息管理表
Claims (10)
1.一种存储系统,所述存储系统被耦合到主计算机和管理设备,所述存储系统包括:
构成多个卷的多个存储设备,所述卷中的每个卷具有多个池页面并且基于响应性能而属于多个层中的一个层;以及
存储控制单元,用于控制所述存储系统,所述存储系统被配置为向所述主计算机提供具有多个虚拟页面的多个虚拟卷以及在虚拟页面首先被使用时向所述虚拟页面分配池页面,
其中所述存储控制单元
构建一个或多个分层组,所述分层组中的每个分层组包括所述虚拟卷中的一个或多个虚拟卷,
向所述分层组中的每个分层组设置重定位条件,所述重定位条件包括所述层中的每个层的最小使用量,以及
对于所述分层组中的每个分层组,向所述多个层中的最上层迁移所述虚拟卷中的属于该分层组的所述虚拟页面,直至向属于该分层组的所述虚拟卷分配的所述最上层的所述池页面的量达到所述最上层的所述最小使用量。
2.根据权利要求1所述的存储系统,其中对于所述分层组中的每个分层组,所述存储控制单元向所述多个层中的最下层迁移所述虚拟卷中的属于该分层组的所述虚拟页面,直至向属于该分层组所述虚拟卷分配的所述最下层的所述池页面的量达到所述最下层的所述最小使用量。
3.根据权利要求1所述的存储系统,其中所述重定位条件还包括所述最上层的最大使用量;并且其中
当向所述最上层的所述池页面分配的所述虚拟页面的量超过所述最上层的所述最大使用量时,所述存储控制单元改变对所述虚拟页面的所述分配以使得向属于所述分层组的所述虚拟卷分配的所述最上层的所述池页面的所述量不超过所述最上层的所述最大使用量。
4.根据权利要求1所述的存储系统,其中重定位条件的所述设置由所述管理设备执行。
5.根据权利要求4所述的存储系统,其中被设置的所述重定位条件被输出到所述管理设备。
6.根据权利要求1所述的存储系统,其中被要求具有高速响应的所述虚拟卷和不被要求具有高速响应的所述虚拟卷被分别按照不同的所述分层组注册。
7.根据权利要求1所述的存储系统,其中由在所述主计算机中操作的应用软件使用的所述虚拟卷和由在所述存储系统中操作的应用软件使用的所述虚拟卷被分别按照不同的所述分层组注册。
8.一种存储系统,所述存储系统被耦合到主计算机和管理设备,所述存储系统包括:
构成多个卷的多个存储设备,所述卷中的每个卷具有多个池页面并且基于响应性能而属于多个层中的一个层;以及
存储控制单元,用于控制所述存储系统,所述存储系统被配置为向所述主计算机提供具有多个虚拟页面的多个虚拟卷,在虚拟页面首先被使用时向所述虚拟页面分配池页面,以及在所述虚拟页面中的每个虚拟页面中维持I/O计数信息,所述I/O计数信息管理在该虚拟页面中生成的I/O;
其中所述存储控制单元
构建一个或多个分层组,所述分层组中的每个分层组包括所述虚拟卷中的一个或多个虚拟卷,
向所述分层组中的每个分层组设置重定位条件,所述重定位条件包括加权条件,所述加权条件包括用于执行加权的权重和范围,
对于所述分层组中的每个分层组,通过将用所述范围指定的所述虚拟页面的所述I/O计数信息乘以所述权重来向所述虚拟页面的所述I/O计数信息执行加权,以及
从具有较高I/O计数信息的所述虚拟页面顺序地向所述多个层中的最上层迁移所述虚拟页面,直至层容量或者驱动性能被满足。
9.根据权利要求8所述的存储系统,
其中当所述驱动性能被超过时,所述存储控制单元向下一层迁移所述虚拟页面。
10.一种存储系统,所述存储系统被耦合到主计算机和管理设备,所述存储系统包括:
构成多个卷的多个存储设备,所述卷中的每个卷具有多个池页面并且基于响应性能而属于多个层中的一个层;以及
存储控制单元,用于控制所述存储系统,所述存储系统被配置为向所述主计算机提供具有多个虚拟页面的多个虚拟卷以及在虚拟页面首先被使用时向所述虚拟页面分配池页面,
其中所述存储控制单元
构建一个或多个分层组,所述分层组中的每个分层组包括所述虚拟卷中的一个或多个虚拟卷,
向所述分层组中的每个分层组设置重定位条件,所述重定位条件包括目标平均响应时间,
计算所述分层组中的每个分层组的平均响应时间,以及
如果计算出的所述平均响应时间没有满足所述目标平均响应时间,则对于所述分层组中的每个分层组,重复地向所述多个层中的最上层中迁移不属于所述最上层的虚拟页面,直至计算出的所述平均响应满足所述目标平均响应时间。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2012/004584 WO2014013524A1 (en) | 2012-07-18 | 2012-07-18 | Storage system and storage control method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104471524A CN104471524A (zh) | 2015-03-25 |
CN104471524B true CN104471524B (zh) | 2017-07-04 |
Family
ID=49947563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280074714.6A Active CN104471524B (zh) | 2012-07-18 | 2012-07-18 | 存储系统和存储控制方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9250813B2 (zh) |
EP (1) | EP2864862B1 (zh) |
JP (1) | JP5944536B2 (zh) |
CN (1) | CN104471524B (zh) |
WO (1) | WO2014013524A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103593256B (zh) | 2012-08-15 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种基于多层排重的虚机快照备份方法和系统 |
US9542125B1 (en) * | 2012-09-25 | 2017-01-10 | EMC IP Holding Company LLC | Managing data relocation in storage systems |
US20150205541A1 (en) * | 2014-01-20 | 2015-07-23 | Samya Systems, Inc. | High-capacity solid state disk drives |
US10198192B2 (en) * | 2015-03-31 | 2019-02-05 | Veritas Technologies Llc | Systems and methods for improving quality of service within hybrid storage systems |
KR20190024613A (ko) * | 2017-08-30 | 2019-03-08 | 한국전자통신연구원 | 클라우드 서비스 제공을 위한 스토리지 제공 장치 및 방법 |
US10509721B2 (en) | 2017-11-09 | 2019-12-17 | Microsoft Technology Licensing, Llc | Performance counters for computer memory |
CN110737390B (zh) * | 2018-07-20 | 2023-08-18 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
US20220057947A1 (en) * | 2020-08-20 | 2022-02-24 | Portworx, Inc. | Application aware provisioning for distributed systems |
JP7219746B2 (ja) * | 2020-10-29 | 2023-02-08 | 株式会社日立製作所 | ストレージシステム及びストレージシステムのファイル再配置方法 |
CN113535096B (zh) * | 2021-09-16 | 2022-01-11 | 深圳创新科技术有限公司 | 虚拟NVMe固态驱动器存储构建方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102369506A (zh) * | 2009-05-13 | 2012-03-07 | 株式会社日立制作所 | 存储系统及存储系统的利用率管理方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136883B2 (en) * | 2001-09-08 | 2006-11-14 | Siemens Medial Solutions Health Services Corporation | System for managing object storage and retrieval in partitioned storage media |
US7149846B2 (en) * | 2002-04-17 | 2006-12-12 | Lsi Logic Corporation | RAID protected external secondary memory |
EP1546884A4 (en) * | 2002-09-16 | 2007-08-01 | Tigi Corp | STORAGE SYSTEM ARCHITECTURES AND MULTI-CACHE ARRANGEMENTS |
US8321645B2 (en) * | 2009-04-29 | 2012-11-27 | Netapp, Inc. | Mechanisms for moving data in a hybrid aggregate |
WO2011092738A1 (ja) | 2010-01-28 | 2011-08-04 | 株式会社日立製作所 | 性能の異なる実領域群で構成されたプールを有するストレージシステムの管理システム及び方法 |
US8768883B2 (en) | 2010-03-25 | 2014-07-01 | Hitachi, Ltd. | Storage apparatus and control method of the same |
JP5065434B2 (ja) * | 2010-04-06 | 2012-10-31 | 株式会社日立製作所 | 管理方法及び管理装置 |
JP5502232B2 (ja) * | 2010-12-28 | 2014-05-28 | 株式会社日立製作所 | ストレージシステム、及びその制御方法 |
-
2012
- 2012-07-18 EP EP12741107.2A patent/EP2864862B1/en active Active
- 2012-07-18 US US13/640,770 patent/US9250813B2/en active Active
- 2012-07-18 WO PCT/JP2012/004584 patent/WO2014013524A1/en active Application Filing
- 2012-07-18 CN CN201280074714.6A patent/CN104471524B/zh active Active
- 2012-07-18 JP JP2014559015A patent/JP5944536B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102369506A (zh) * | 2009-05-13 | 2012-03-07 | 株式会社日立制作所 | 存储系统及存储系统的利用率管理方法 |
Also Published As
Publication number | Publication date |
---|---|
JP5944536B2 (ja) | 2016-07-05 |
US9250813B2 (en) | 2016-02-02 |
CN104471524A (zh) | 2015-03-25 |
JP2015520426A (ja) | 2015-07-16 |
EP2864862A1 (en) | 2015-04-29 |
US20140025916A1 (en) | 2014-01-23 |
EP2864862B1 (en) | 2020-01-01 |
WO2014013524A1 (en) | 2014-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104471524B (zh) | 存储系统和存储控制方法 | |
CN102023813B (zh) | 在动态页重新分配存储系统中的应用和层配置管理 | |
US8402214B2 (en) | Dynamic page reallocation storage system management | |
US9116914B1 (en) | Data migration between multiple tiers in a storage system using policy based ILM for QOS | |
US8615640B2 (en) | System and method to efficiently schedule and/or commit write data to flash based SSDs attached to an array controller | |
JP5944587B2 (ja) | 計算機システム及び制御方法 | |
CN104285206A (zh) | 信息存储系统和控制信息存储系统的方法 | |
WO2013164878A1 (ja) | 計算機システムの管理装置および管理方法 | |
US20080016121A1 (en) | Method, an apparatus and a system for managing a snapshot storage pool | |
JP2007041904A (ja) | ストレージ装置、ディスクキャッシュ制御方法及びディスクキャッシュの容量割当方法 | |
US9354988B2 (en) | Allocation strategies for data storage applications | |
CN110413201A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN103080894A (zh) | 存储系统、存储系统的管理方法和程序 | |
CN107122131A (zh) | 自动精简配置的方法及装置 | |
US20020144076A1 (en) | Information processing system | |
JP2013506886A (ja) | ストレージシステム | |
CN101458613A (zh) | 一种混合分级阵列的实现方法、混合分级阵列和存储系统 | |
CN101976181A (zh) | 一种存储资源的管理方法及管理装置 | |
CN103827970A (zh) | 对固态驱动器再配置数据的存储装置、存储控制器以及方法 | |
CN106610903A (zh) | 层级化存储器系统、存储器控制器和去重及存储器层级化方法 | |
WO2016046880A1 (ja) | ストレージ装置、半導体記憶装置及びその制御方法 | |
CN103150245A (zh) | 确定数据实体的访问特性的方法和存储控制器 | |
CN109558333A (zh) | 具有可变额外存储空间(op)的固态存储设备命名空间 | |
CN110297601A (zh) | 固态硬盘阵列构建方法、电子设备及存储介质 | |
JP2016162407A (ja) | 制御装置、制御方法、および制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |