存储系统、存储系统的管理方法和程序的制作方法

文档序号:6352381阅读:225来源:国知局
专利名称:存储系统、存储系统的管理方法和程序的制作方法
技术领域
本发明涉及一种存储系统、存储系统的管理方法和程序,并且例如涉及对一种向主机装置动态分配存储容量的存储系统的控制。
背景技术
常规地,有向主机装置提供大规模数据存储服务的计算机系统。已知该系统为如下系统,该系统包括主机装置、主机装置连接的存储装置(也称为存储系统)和存储装置的
管理装置。存储装置通过RAID (独立/廉价盘冗余阵列)管理多个硬盘。使多个硬盘中包括的物理存储区域为逻辑的,并且向主机装置提供区域作为逻辑卷。主机装置访问逻辑卷以请求读取/写入数据。逻辑技术的例子包括所谓精简配置(精简配置)。在精简配置中未包括物理存储区域,并且将具有虚拟化的存储容量的逻辑卷设置到主机装置。逻辑卷称为虚拟卷,并且存储装置根据主机装置对虚拟卷的写入访问向虚拟卷依次分配存储区域。因此,该技术有利之处在于与从一开始向逻辑卷分配大容量存储区域的系统比较,可以有效使用存储资源。例如在专利文献I至4中描述精简配置。在精简配置中,向虚拟卷提供存储区域的一部分被配置用于通过在有从主机装置对虚拟卷的写入访问时从包括实际存储区域的容量池向虚拟卷的地址分配存储容量来存储写入数据。例如通过用将用于在虚拟卷中写入的实际容量编译多个逻辑组来定义和设置“容量池”(也简称为“池”),并且属于池的多个逻辑卷称为池卷。专利文献5公开一种技术,在该技术中,确定对存储的数据的访问频率是否高或者低,并且如果访问频率高,则基于如下池卷的介质的物理特性信息(比如介质类型和盘的旋转数)在池内向池卷移动数据,该池卷包括适合于高速处理的介质。引用列表专利文献PTL1:美国专利号 6857059PTL 2 :日本专利公开(Kokai)号 2003-015915APTL 3 :日本专利公开(Kokai)号 2006-338341APTL 4 :日本专利公开(Kokai)号 2008-234158APTL 5 :美国公开号 US 2005/05560
发明内容
技术问题常规技术公开一种如果访问频率高,则基于池卷的介质的物理特性信息向适合于高速处理的介质的存储区域迁移的方法。然而,有即使访问频率低、仍然需要在高性能介质中放置数据这样的情况。在这些情况下,在常规技术中有作为监视访问频率的结果而在先在高性能介质中存储数据之后向低性能介质迁移数据这样的问题。另外,有需要基于应用所必需的性能要求(比如响应时间和I/O速度)对向虚拟卷分配的介质分类这样的情况。在这些情况下,针对每个介质形成划分的池,并且在常规技术中需要逐个应用地对待使用的介质分类。然而如果划分池,则有即使在作为整体的介质中有容量余地、但是使用的容量仍然有变化,并且不能分配虚拟卷这样的情形。有降低容量效率的问题。另外,在常规技术中,当在应用的性能要求改变之后改变虚拟卷使用的介质时,有需要再次设置虚拟卷和使用的卷的映射这样的问题。另外,根据常规技术,当单个池用于多个虚拟卷时,可以向池中的所有介质的存储容量分配任何虚拟卷。因此,有用相同方式向具有高性能要求的虚拟卷和向具有低性能要求的虚拟卷分配池卷的适合于高速处理的介质的存储区域这样的问题。高性能介质的区域的成本通常高,并且容量有限。因此,需要向具有真正高性能要求的虚拟卷分配池的区域。已经鉴于上述情形而做出本发明,并且本发明提供一种用于实现用恰当成本、根据用户的使用环境向虚拟卷分配池区域而又提高介质的容量效率的技术。对问题的解决方案为了解决问题,在本发明中,通过选择或者限制池中的待使用于在存储系统(存储装置)中设置的每个虚拟卷的介质的层组合(可以在每个池中使用的层范围)来构成池。存储系统管理信息,该信息指示从池中的哪些存储设备层向从主机计算机接收I/o请求的虚拟卷指派存储区域。更具体而言,在根据本发明的存储系统中,提供包含从多个存储设备指派的多个存储区域的至少一个池。多个存储设备的属性相互不同。存储系统中的处理器响应于从高层计算机(主机计算机)对其中指派至少一个存储区域的虚拟卷的写入请求,来获取池中包括的存储区域并且在获取的存储区域中存储目标数据。另外,各自具有不同属性的多个存储设备由多个层组成。处理器响应于待输入的层设置指令向虚拟卷设置用于指派存储区域的一个或者多个层。本发明的有利效果根据本发明,可以用恰当成本、根据用户的使用环境向虚拟卷分配池区域,而又提高介质的容量效率。其它问题、配置和效果将从以下具体实施方式
和附图中变得清楚。


图1是示出根据本发明的计算机系统的基本配置的图。图2是示出适用于本发明的计算机系统的修改例子I的配置的图。图3是示出适用于本发明的计算机系统的修改例子2的配置的图。图4是示出配置的图,在该配置中,图2中所示存储装置包括多个模块(簇)。图5是示出存储装置执行的存储区域动态分配操作的功能框图。图6是用于说明根据作为池卷的供应源的存储设备的特性在层中管理的池卷与虚拟卷之间的对应性的图。
图7是示出在存储装置的存储器以内的软件配置的图。图8是示出介质管理信息表的配置例子的图。图9是示出层管理信息表的配置例子(I)的图。图10是示出层管理信息表的配置例子(2)的图。图11是示出LANE管理信息表的配置例子的图。图12A是示出LANE的组合例子(I)的图。图12B是示出LANE的组合例子(2)的图。图13是示出LDEV管理信息表的配置例子的图。图14是示出池管理信息表的配置例子的图。图15是示出用于管理分层的池的层的层管理信息表的配置例子的图。图16是用于说明VVOL-DIR和PSCB的框图。图17是用于说明从池创建到虚拟卷分配的整个过程的概要的流程图。图18是用于说明池创建过程的流程图(I)。图19是用于说明池创建过程的流程图(2)。图20是用于说明在向存储系统发出读取请求时的过程(读取过程)的流程图。图21是用于说明在向存储系统发出写入请求时的过程(写入过程)的流程图。图22是示出数据迁移的总概要的图。图23是示出监视信息表的配置例子的图。图24是示出层范围图的例子的图。图25是用于说明基于监视信息确定存在/不存在迁移的过程例子的图。图26是用于说明数据迁移过程的流程图。图27是示出用于说明最高性能层构成的最高性能LANE(例如LANE#0)的迁移过程(S2602)的细节的流程图。图28是用于说明其它LANE (例如LANE#1至#5)的迁移过程(S2606至S2614)的细节的流程图。图29是用于说明迁移方法3中的最高性能LANE的迁移过程的流程图。图30是用于说明具体迁移例子的图。
具体实施例方式下文将参照附图描述本发明的实施例。然而应当注意当前实施例仅为用于实现本发明的例子并且当前实施例未限制本发明的技术范围。用相同标号表示附图中的共同配置。虽然将在以下描述中表达本发明的信息为“表”,但是信息并非必须由表的数据结构表达,并且信息可以由列表、DB、对列等的数据结构或者由其它结构表达。因此,“表”、“列表”、“DB”、“队列等”也可以简称为“信息”以表明与数据结构的独立性。表达、比如“标识信息”、“标识符”、“名”、“名称”和“ID”可以用来描述信息的内容,并且表达可以相互替代。虽然“程序”在以下描述中用作主题,但是程序由处理器执行以在使用存储器和通信端口(通信控制装置)之时实现提供的过程。因此,处理器可以在描述中用作主题。计算机、比如管理服务器或者信息处理装置可以执行公开的过程,在这些过程中,程序被设计用于用作主题。程序的部分或者全部可以由专用硬件实现,或者可以将程序形成为模块。各种程序可以由程序分发服务器或者存储介质安装于计算机中。<计算机系统的配置>(基本配置)图1是示出根据本发明的计算机系统的基本配置的硬件框图。计算机系统包括至少一个主机计算机10、至少一个管理装置(管理计算机)20以及与主机计算机10和管理装置20连接的至少一个存储装置30。存储装置30可以称为存储系统或者存储子系统。主机计算机10访问存储装置30的逻辑存储资源。管理装置20管理存储装置30的存储区域的配置。存储装置30在向物理设备34设置的存储区域中存储数据。主机计算机10包括输入部110、输出部120、CPU 130、存储器140、盘适配器150、网络适配器160和盘驱动器170。输入设备110是从操作主机计算机10的管理者或类似物接收输入的部分并且例如由键盘和鼠标构成。输出设备120是显示主机计算机10的状态或者设置项目的部分并且例如由显示设备和打印机构成。CPU 130 (控制器、处理器)在存储器140上加载盘驱动器170中存储的程序以执行程序中定义的过程。存储器140例如由RAM构成并且存储程序、数据等。盘适配器150通过存储区域网络50连接到存储装置30并且传输和接收来往于存储装置30的数据。存储区域网络50基于适合于数据传送的协议(比如光纤信道)实现数据传送。网络适配器160通过管理网络40传输和接收来往于管理装置20或者存储装置30的数据。管理网络40例如由以太网(注册商标)构成。盘驱动170例如由硬盘驱动构成并且存储数据和程序。管理装置20包括输入设备210、输出设备220、CPU 230、存储器240、网络适配器250和盘驱动器260。输入部210是接收操作管理装置20的管理者等的输入的部分并且例如由键盘构成。输出部220是显示管理装置20的状态和设置项目的部分并且例如由显示设备构成。CPU 230在存储器240上加载盘驱动器260中存储的管理程序并且基于程序执行针对存储装置30的管理过程。存储器240例如由RAM构成并且存储程序、数据等。网络适配器250通过管理网络40传输和接收来往于主机计算机10或者存储装置30的数据。盘驱动器260例如由硬盘驱动器构成并且存储数据和程序。存储装置30包括控制器31、至少一个存储高速缓存存储器32、至少一个共享存储器33、物理设备(I3DEV) 34、电源开关35和至少一个电源36。控制器31控制向TOEV 34中包括的存储区域存储数据。存储高速缓存存储器32临时存储来往于TOEV 34的读取和写入的数据。共享存储器33存储控制器31和TOEV 34的配置信息。PDEV 34包括多个盘驱动器。电源36向存储装置30的部件供应功率。电源开关35是用于接通/关断来自电源36的功率供应的开关。盘驱动器(存储设备)例如由硬盘驱动器构成并且主要存储用户数据。存储设备可以是由半导体存储器、比如闪存制成的驱动器。控制器31至少包括处理器360并且在实施例中还包括主机适配器310、网络适配器320、非易失性存储器330、电源控制单元340、存储器350、存储适配器370和共享存储器适配器380。主机适配器310通过存储网络50传输和接收来往于主机计算机10的数据。网络适配器320通过管理网络40传输和接收来往于主机计算机10或者管理装置20的用于系统管理所必需的数据(管理信息)。非易失性存储器330由硬盘或者闪存构成并且存储控制器31上操作的程序、配置信息等。电源控制单元340控制从电源36供应的功率。存储器350例如由RAM构成并且存储程序、数据等。处理器360在存储器350上加载非易失性存储器330中存储的程序以执行程序定义的过程。存储适配器370传输和接收来往于I3DEV 34和存储高速缓存存储器32的数据。共享存储器适配器380传输和接收来往于共享存储器33的数据。(修改例子I)图2是示出图1的计算机系统的修改例子的配置的硬件框图。计算机系统包括一个或者多个主机计算机10、管理主机计算机20、第一存储装置125和第二存储装置161。第一存储装置125通过第一网络121连接到主机计算机10。第二存储装置161通过第二网络123连接到第一存储系统30A。一个或者多个主机计算机10、管理主机计算机20、第一存储装置125和第二存储装置161通过第三网络108相互连接。第一网络121、第二网络123和第三网络108可以是任何类型的网络。例如,SAN可以用作第一网络121和第二网络123并且LAN可以用作第三网络108。第一存储装置125包括控制器和存储设备组34。控制器例如包括多个前端接口127、多个后端接口 137、第一内部网络156、一个或者多个高速缓存存储器32、一个或者多个控制存储器350和一个或者多个控制处理器360。前端接口 127是用于与通过网络121连接到第一存储装置125的主机计算机10或者第二存储装置161通信的接口电路。因此,第一存储装置125包括至少两个前端接口 127,并且前端接口 127之一连接到第一网络121,而另一前端接口 127连接到第二网络123。前端接口 127例如包括连接到第一网络121或者第二网络123的端口 129、存储器131和本地路由器(下文缩写为“LR”)133。端口 129和存储器131连接到LR 133。LR 133分发通过端口 129接收的数据用于由任意控制处理器360处理。具体而言,例如控制处理器360设置LR 133以使控制处理器360执行指明地址的I/O命令。LR 133根据设置分发I/O命令和数据。也有多个后端接口 137。后端接口 137是用于与TOEV 34通信的接口电路。后端接口 137例如包括连接到TOEV 34的盘接口 141、存储器135和LR 139。盘接口 141和存储器135连接到LR 139。第一内部网络156例如由交换机或者总线构成。多个前端接口 127、多个后端接口137、一个或者多个高速缓存存储器32、一个或者多个控制存储器350和一个或者多个控制处理器143连接到第一内部网络156。通过第一内部网络156执行在单元之间的通信。第二内部网络(例如LAN) 155连接到作为控制器的构成单元的前端接口 127、后端接口 137、高速缓存存储器32、控制存储器350和控制处理器360,并且维护管理终端153连接到第二内部网络155。
维护管理终端153也连接到第三网络108并且是维护或者管理第一存储装置125的计算机。第一存储装置125的维护人员例如可以操作维护管理终端153 (或者能够与维护管理终端153通信的管理装置20)以定义控制存储器350中存储的各条信息。第二存储装置161包括控制器165和TOEV 163。控制器165包括例如网络适配器162、主机适配器164、高速缓存存储器172、控制存储器171、处理器167和存储适配器169。网络适配器162连接到第三网络108并且是用于与管理计算机20通信的接口。通过第三网络在管理计算机20与主机计算机10之间和在管理计算机2与第二存储装置161之间传输和接收系统管理所必需的管理信息。主机适配器164连接到第二网络123并且是用于与第一存储装置125通信的接口。主机适配器164可以例如与第一存储装置125的前端接口 127相似。控制存储器171是存储各种计算机程序和信息的存储器。高速缓存存储器172是临时存储根据来自第一存储装置125的I/O命令读取或者写入的数据的存储器。处理器167执行控制存储器171中存储的各种计算机程序。处理器167根据来自第一存储装置125的I/O命令至少控制来往于高速缓存存储器172和TOEV 163的数据写入和读取。PDEV 163是物理存储设备并且可以例如与第一存储装置的TOEV 34相似。PDEV163也可以是带存储介质。第一存储装置125包括所谓外部连接功能。第二存储装置161基于功能来外部连接到第一存储装置125。这里将描述外部连接。如描述的那样,第一存储装置125向主机计算机10提供一个或者多个逻辑卷。主机计算机10识别每个逻辑卷为一个存储设备。例如第一存储装置125提供的逻辑卷可以与第一存储装置125中的TOEV 34关联。在该情况下,当接收对逻辑卷的写入命令时,第一存储装置125向与逻辑卷关联的TOEV 34存储数据。在以下描述中也将这样的逻辑卷描述为常规卷。备选地,第一存储装置125提供的逻辑卷可以与第二存储装置161中的I3DEV 163关联。在该情况下,当接收对逻辑卷的写入命令时,第一存储装置125生成用于向与逻辑卷关联的TOEV 163写入数据的写入命令并且向第二存储装置161传输生成的写入命令。第二存储装置161根据从第一存储装置125接收的写入命令在TOEV 163中写入数据。在实际连接到第一存储装置125的第二存储装置161中存储第一存储装置125提供的逻辑卷中存储的数据的功能称为外部连接功能。第一存储装置125包括建立存储控制过程的多个模块(簇)1251。每个模块包括内部网络156,并且多个模块内部网络156由在模块之间的网络1561连接。因此,一个模块的控制处理器360可以访问其它模块。例如,控制处理器360可以读取和写入其它模块的高速缓存存储器32的数据。在多个模块之间的网络1561由路径和交换机构成。(修改例子2)图3是示出图1和2中与多个存储装置连接的计算机系统的配置的硬件框图。多个存储装置30(图1)或者125 (图2)在计算机系统中连接,并且各自连接到主机计算机10和管理装置20。存储装置161连接到存储装置30B或者125B。虽然存储装置161在本例中连接到存储装置30B或者125B,但是不同存储装置161或者相同存储装置161可以连接到第一存储装置30A或者125A。主机计算机10使用替代路径程序以使用两个存储装置125A或者30A和30B或者135B作为一个存储系统。主机计算机10的存储器140存储路径管理表(未示出)、替代路径程序和多个应用程序(未示出)。通过管理表与一个逻辑卷关联的多个路径可以是通向不同存储装置的逻辑单元的路径。更具体而言,主机计算机10设置存储装置125或者30作为相同物理卷的替代路径。逻辑单元可以返回对SCSI标准定义的查询命令的查询的相同响应以向多个应用程序提供响应。<存储装置的内部配置例子>图4是示出配置的硬件框图,在该配置中,图2中所示存储装置包括多个模块。第一模块1251a控制对第一虚拟卷(V0L#0)的访问过程,并且第二模块1251b控制对第二虚拟卷(V0L#1)的访问过程。可以跨越多个模块形成图4中所示池30004。然而,根据网络1561的设备配置,传输速度可能下降,并且如果传送通过网络1561则性能可能降低。为了防止这一点,系统在向虚拟卷(V0L#0)分配池卷时选择未穿过网络1561的池卷。因此,存储装置30逐个模块地管理池。池卷组#0 (30002)、#1 (30004)和#2 (30006)示出管理的例子。当存储装置30向模块1251a中设置的虚拟卷#0分配页面时,选择池组#0(30002)的池卷(S30000)。存储装置30逐层地管理池组的容量。如下文描述的那样,以相同方式管理系统容量池。如果池组#0(30002)的容量耗尽或者将要耗尽,则存储装置30向池组#0(30002)添加池组#1(30004)的具有容量余地的池卷(如果自由容量相对于整个容量的比例小于预定值,则可以确定自由容量的比例大)。跨越池模块设置池卷在池组#2 (30006)中也有可能。在该情况下,通过网络1561处理从第一模块1251a输入的并且用于#2 (30006)的1251b侧上的卷的I/O。图4的控制处理器143控制模块1251中连接的逻辑卷。例如,控制处理器143A执行属于池卷组30002的池卷的处理。作为执行虚拟卷处理的控制实体的处理器是池卷组属于的模块中的控制处理器143。控制处理器143A执行虚拟卷#0的处理。<存储区域的动态分配过程>图5是用于说明存储装置30执行的存储区域动态分配操作的框图。RAID 组由 PDEV 34 通过 RAID 配置形成。RAID 组形成 VDEV 400 (SlOl)。将 VDEV400划分成多个逻辑设备(LDEV) 500作为存储区域。PDEV 34构成的VDEV将称为“第一类型VDEV”。在第一类型VDEV中包括的LDEV将称为“第一类型LDEV”。主机计算机IOA执行用于存储装置30的主机访问的逻辑单元访问。如从主机计算机10所见的访问目标将称为“目标设备”。与从主机计算机IOA到包括第一类型LDEV500的卷的路径的定义关联设置目标设备700(S102)。目标设备700 —对一对应于第一类型 LDEV 500。存储装置30可以用与用于TOEV 34相同的方式操纵从外界连接的外部物理设备600。更具体而言,多个第一类型VDEV 400由多个外部物理设备(EDEV) 600通过RAID配置构成(S103)。将第一类型VDEV 400划分成第一类型LDEV 500作为一个或者多个存储区域。将通向主机计算机10的路径设置成第一类型LDEV 500以设置目标设备700(S104)。存储装置30也设置第二类型VEDV 401。不同于TOEV 34构成的第一类型VDEV 400,第二类型VDEV是具有地址区域、但是没有与TOEV 34对应的区域的虚拟设备。可以设置高速缓存存储器的与第二类型VDEV 401对应的区域。在第二类型VDEV401中包括一个或者多个LDEV。LDEV将称为第二类型LDEV 501。将通向主机计算机IOB的路径设置成第二类型LDEV 501以设置目标设备701(S110)。目标设备701是主机计算机IOB的访问目标。向第二类型LDEV 501分配目标设备701。目标设备701和/或第二类型LDEV 501等效于虚拟卷。未从TOEV向第二类型VDEV 401和第二类型LDEV 501分配物理存储区域。更具体而言,由于虚拟化存储区域,所以第二类型VDEV 401和第二类型LDEV 501不同于第一类型VDEV 400和第一类型LDEV 500。包括实际存储区域的池60需要与第二类型LDEV 501关联以允许主机计算机IOB使用虚拟区域。池的使用是精简配置的特征之一。池60是通过基于一个或者多个属性编译一个或者多个第一类型LDEV 500来形成的组。向池60分配第一类型LDEV 500(S112)。第一类型LDEV 500对应于池卷。地址用来向第二类型LDEV 501分配设置到池的第一类型LDEV 500 (Slll)。因此,目标设备700的存储区域是第一类型LDEV 500,并且目标设备701的存储区域是第二类型LDEV 501。当存储装置30通过目标设备701接收对第二类型LDEV 501的访问时,设置与第二类型LDEV 501对应的第一类型LDEV 500作为访问目的地。在第一类型LDEV 500中存储来自主机计算机IOA和IOB的写入数据。第一类型VDEV 400和第二类型VDEV 401基于地址来对应。因此,在TOEV 34中存储来自主机的写入数据。RG表示RAID组的缩写。一个RG由相同类型的I3DEV构成。I3DEV类型由性能和单位成本中的至少一项定义。性能例如是数据I/o速度或者响应时间(从接收来自主机的命令到返回响应的时间长度)。单位成本是为了存储单位大小的数据而需要的代价(例如所谓位成本)。例如,RG#1由多个SSD构成并且RG#2由多个HDD-SAS构成。构成一个RG的多个TOEV的容量例如相同。<在池与虚拟卷之间的关系>图6是包括在虚拟卷411和412与池卷421之间的对应性的存储装置30的框图。标号411和412表示目标设备701。标号42表示图5的池60、LDEV 400和TOEV 34的组合配置。每个池包括多个池卷421。标号421A表示池卷的页面。页面是用于处理来自主机的读取/写入访问的预定容量形成的存储区域单位。在一个或者多个页面中存储写入数据。备选地,可以针对写入访问分配页面一次,并且可以在相同页面中存储若干写入访问的写入数据。如果不能在一个页面中存储后继写入数据,则可以向关于写入数据的写入访问分配新页面。标号411A表示虚拟卷411的虚拟页面。虚拟页面411A不同于池卷421的页面并且是未与实际存储区域关联的虚拟存储容量的单位。按照虚拟卷的逐个虚拟页面处理来自主机的读取/写入。当针对虚拟卷执行来自主机的写入时,每当有写入访问向虚拟卷的虚拟页面分配池卷的实际页面。
标号4112表示如下线,该线示出在虚拟卷的虚拟页面与池卷的虚拟页面之间的对应性。存储装置30设置在虚拟卷与池之间和在虚拟卷与池卷之间的对应性并且从池的对应池卷向虚拟卷分配页面。存储装置30主要通过基于作为池卷供应源的存储设备的特性将池卷分类成层(下文可以在本说明书中写为“Tier”)来管理池卷。层的部分包括层O、层I和层2。将属于层O的介质分配为在线存储器,并且介质的例子包括快速响应、高度可靠SSD、SAS和光纤通道HDD。将属于层I的介质分类为近线存储器,并且介质的例子包括SATA硬盘和ATA硬盘。将属于层2的存储设备分类为离线存储器,并且存储设备的例子包括低价格、大容量带设备。这些是例子,并且如描述的那样,可以基于与描述的分类不同的分类将存储设备分类成层。将与图6 —起描述基本操作。存储装置30向主机计算机10提供虚拟卷411并且包括多个类型的层422。虚拟卷411是根据精简配置的虚拟逻辑卷,换而言之,未基于物理存储设备(下文为“PDEV”)的逻辑卷。虚拟卷411由多个虚拟页面411A构成。虚拟页面411A是虚拟存储区域。假设有作为虚拟卷411的一个虚拟卷#1。下文将虚拟卷#a中的虚拟页面#b写为“虚拟页面#(a-b) ”。向主机计算机10提供的精简配置的虚拟卷411包括虚拟容量,并且响应于从主机计算机10对虚拟页面地址的写入请求来分配实际页面。因此,除了当分配实际页面以满足虚拟容量时之外,向虚拟卷411分配的所有实际页面的总容量小于虚拟容量。向一个或者多个主机计算机10提供一个虚拟卷411,并且当向多个主机计算机10提供虚拟卷411时,多个主机计算机10共享虚拟卷411。层422由多个实际页面421A构成。实际页面421A是实质存储区域。层422例如包括两个层O和I。下文将层#c中的实际页面#d写为“实际页面#(c-d) ”。层422可以例如由一个或者多个实际卷构成。实际卷是实质逻辑卷,换而言之,基于TOEV的逻辑卷。在移动数据之前,设置一个池中的多个层422中的每个层422由一个或者多个虚拟卷411使用。虽然主机计算机10通常是计算机,但是主机计算机10可以是另一存储装置而不是计算机。主机计算机10例如向存储装置30传输I/O (输入/输出)命令。I/O命令例如是写入命令或者读取命令并且包括I/O目的地信息。I/O目的地信息是指示I/O目的地的信息并且例如包括虚拟卷411的ID (例如LUN(逻辑单元编号))和IO目的地的地址(例如LBA(逻辑块地址))。根据I/O目的地信息指定虚拟卷411和I/O目的地的虚拟页面。假设存储装置30已经从主机计算机10接收写入命令并且基于在写入命令中包括的I/o目的地信息指定虚拟页面#(1-C)作为写入目的地。如果未向指定的虚拟页面#(1-C)分配实际页面421A,则存储装置30向虚拟页面421A分配自由(未分配状态)实际页面#(O-D)并且根据写入命令向分配的实际页面(O-D)写入写入目标的数据元。在当前实施例中逐个页面地执行在层之间的数据移动。举例而言,例如存储装置30执行如图1中所示以下过程(i)向自由(未分配状态)实际页面#(1-E)移动向虚拟页面#(0_C)分配的实际页面# (1-D)中的数据元;(ii)将虚拟页面# (1-C)的分配源从实际页面# (O-D)改变成实际页面# (1-E);并且(iii)将实际页面# (O-D)的状态更新成自由(未分配状态)。<在存储装置的存储器以内的配置>图7是示出存储装置30的存储器350的内部配置的框图。存储器350存储处理器360加载和执行的各种程序、与逻辑卷的设置有关的配置信息351以及与池的设置有关的池信息352。命令控制程序3501解译来自主机计算机10或者管理装置20的命令以执行命令定义的过程。配置控制程序3503实现过程、比如设置和更新存储装置30的配置。盘I/O程序3505控制对TOEV 34的访问。池控制程序3507执行与池的设置有关的各种过程。配置信息351是为了设置存储装置的环境、比如VDEV、LDEV、层和RAID组而必需的信息。配置信息351包括地址管理表3511、LDEV管理信息(表3512)、层管理信息(表)3513和LANE管理信息(表)3514。此外,也可以包括VDEV管理信息(表)和RAID组管理信息(表)°地址管理表3511存储目标设备、LDEV, VDEV和物理设备的地址的映射信息、目标设备和LDEV的映射信息、LDEV和VDEV的映射信息以及VDEV和TOEV的映射信息。存储装置可以查询地址管理表以识别目标设备700和701对应于哪些LDEV的哪些地址。也可以识别LDEV的地址对应于哪些VDEV的哪些地址。也可以识别VDEV的地址属于哪个RAID组和VDEV的地址对应于哪个I3DEV的哪个地址。LDEV管理信息表3512包括与LDEV有关的管理信息。层管理信息表3513包括池中定义的层的管理信息。LANE管理信息表3514包括池中定义的层组合的信息。池信息352存储与池有关的设置并且包括池管理信息表3521、池卷管理信息表3522、VVOL (虚拟卷)-DIR管理信息(表)3523、PSCB (池槽控制块)管理信息(表)3524和池层管理信息表3527。池管理信息表3521包括与池的设置有关的管理信息。池卷管理信息表3522包括与池60的池卷有关的管理信息。VVOL-DIR管理信息表3523包括与向虚拟卷分配池的LDEV(池卷)有关的信息。PSCB管理信息3524包括池的LDEV的地址的信息。池层管理信息表3527包括设置到池的层的管理信息。在每个池中设置该表。每层的池卷管理程序3508管理每层中的池卷数目和池卷的其它特性。命令控制程序3501实现基于来自主机装置的访问从池的池卷向虚拟卷动态分配页面的过程。LANE定义程序3509将来自用户指示的性能要求替换为LANE以定义LANE管理信息3514。定义用于在LANE之间使用层的优先级和在LANE中的层之间的使用比例。也执行将LANE设置和改变成虚拟卷。也选择适合于LANE的池。〈介质管理信息表〉图8是示出介质管理信息表3515的配置例子的图。介质管理信息表3515在介质连接到存储装置时由配置控制程序3503创建并且包括介质类型802、容量804和响应时间806作为构成项目。介质类型802表示介质的类型。如果介质是盘,则类型的例子包括SSD、FC(光纤通道)、SAS (串行附接SCSI)和SATA (串行ATA)。
响应时间806表示从介质到数据读取或者写入指令的响应时间。一般而言,该时间越短,介质的处理性能就越高。图8是介质管理信息的例子并且未排除其它信息。〈层管理信息表〉图9和10示出层管理信息表3513。在存储器350中存储管理信息作为层管理信息3513的具体管理信息。管理信息表(图9)示出在层编号与介质类型之间的对应性。图9和10示出用于关联介质与层编号的分类例子。介质分类基于介质的性能。层#902表示如下信息,该信息示出层的标识符。标号904表示如下信息,该信息指示介质的存储位置。在层#902中存储的“内部”表示在存储器30中包括的HDD (硬盘)。“外部”表示从存储装置30外部连接的另一存储装置30,并且在图9中例如指示AMS2500和2100为外部存储装置。旋转数908表示如下信息,该信息指示介质的数据传送性能。这表示介质可以每单位时间传送的数据量。一般而言,该值越大,介质的数据传送性能就越高。RAID级别910表示如下信息,该信息指示可配置RAID的级别。因此,基于作为影响存储器性能的要素的908和RAID级别910来关联介质和层编号。图9示出将介质分类成六个层类型的例子。存储装置可以在以后、比如在添加新介质时扩展层。管理者或者用户可以对定时器分类,或者分类可以由存储系统唯一地确定。介质分类的另一模式包括如下方法,在该方法中,除了性能之外还添加位成本观点。如果性能、成本、可靠性等基本上相同,则可以共同地形成一个层。例如图9的层I和层2可以放在一起。图10示出三层(有三个Tier)的例子作为以下描述的具体例子。未图示除了项目906之外的项目。在当前实施例中的策略是尽可能多地在高性能介质中存储数据并且按照介质性能的降序存储层的编号。以这一方式,保证用于通过使具有更小编号的层优先来存储数据的存储区域。作为修改变化,可以初始地指明待指派的层。根据本发明的存储装置30的特征之一在于为每个虚拟卷选择和设置待使用的层。如图12A中所示,虚拟卷根据访问特性逐个页面地分配存储区域。在该例中,将池划分成SSD、SAS和SATA这些层。虚拟卷#1从SSD分配页面,并且虚拟卷#2从SAS分配页面。以这一方式,为每个虚拟卷定义使用的池中的层组合。该定义称为LANE(通路(lane))。更具体而言,LANE表示如下信息,该信息指示可以构成虚拟卷的层范围。在LANE的例子中,将图6的层O设置成SSD,将层I设置成SAS,并且将层2设置成SATA。在这一情况下,定义图12A中所示六个组合。图9B示出本例中的层管理信息。图11中所示LANE管理信息表3514定义作为LANE范围的层组合。LANE管理信息表3514包括LANE编号的信息和层的组合作为构成项目。图12A和12B是示出构成LANE的层组合例子的图。如图12A和12B中所示,LANE由单个层和多个层的组合构成。从图12A和12B可以认识,通过使用关联LANE来构成虚拟卷。〈LDEV管理信息表〉图13是示出LDEV(卷)管理信息表3512的配置例子的图。LDEV管理信息表3512由多个表构成,并且一个表35121包括LDEV编号(LDEV#) 35122、大小35123、设备属性35124、池ID 35125、设备状态35127、与存在/不存在自动迁移执行有关的信息35128、迁移执行周期35129、迁移执行时间35130和监视时区35131作为构成项目。LDEV#35122是指示LDEV的标识符的信息。大小35123是指示设置成LDEV的总大小的信息。如果LDEV是虚拟卷,则虚拟化大小。设备属性35124是如下信息,该信息指示LDEV的属性的标识符。如果LDEV是第一类型LDEV,则存储指示第一类型LDEV的标识符,而如果LDEV是第二类型LDEV,则存储指示第二类型LDEV的标识符。如果将LDEV设置到池,则存储指示池属性的标识符。在池ID 35125的字段中,如果将LDEV设置到池,则存储标识符。如果将LDEV设置成虚拟卷,则在字段中存储在存储数据时存储区域被分配到的池ID的编号。状态35127是如下信息,该信息指示LDEV属于的VDEV的状态。状态的值的例子包括正常、阻塞和故障阻塞。阻塞指示由于除了故障之外的因素所致的阻塞、比如溢出阻塞。故障阻塞指示由于设备之一中的故障所致的阻塞。与存在/不存在自动迁移执行有关的信息35128指示是否自动或者手动开始迁移虚拟卷中的数据元。“0N”表示将自动开始迁移,而“OFF”表示将手动开始迁移。可以能够设置存在/不存在迁移。更具体而言,基于该信息确定是否迁移虚拟卷中的数据元。如果设置“0N”则迁移数据元,而如果设置“OFF”则未迁移数据元。在“0N”的情况下监视虚拟卷或者虚拟页面的1/0频率,并且在“OFF”的情况下未监视虚拟卷或者虚拟页面的1/0频率。监视执行周期35129是如下信息,该信息指示虚拟卷中的数据元的迁移周期。迁移执行时间35130是如下信息,该信息指示虚拟卷中的数据元的迁移开始时间。监视时区35131是如下信息,该信息指示监视虚拟卷或者虚拟页面的1/0频率的时区。虽然迁移自动执行存在/不存在35128、迁移执行周期35129、迁移执行时间35130和监视时区35131是与下文描述的池管理信息3521中的信息兀相同的信息,但是如果表中的信息元(例如“迁移”)的值不同于池管理信息3521中的相同信息元(例如“迁移”)的值,则可以表中的值优先。更具体而言,在池管理信息3521中,为一个池设置信息元的值,并且作为结果,可以在池被分配到的所有虚拟卷的设置上反映值。然而,如果使用LDEV(卷)管理信息表3512,则可以针对每个虚拟卷设置值。因此,如果未针对虚拟卷具体设置值,则可以操纵针对向虚拟卷分配的池而设置的值作为虚拟卷的值。通过来自用户或者管理者的基于配置控制程序3503的操作来设置或者更新LDEV管理信息表3512,并且通过LANE编号管理表。这同样适用于以下管理表。例如,将描述在如图11中所示LANE配置中向如图6中所示虚拟卷分配池的情况。根据图11,LANE 3由层O与层I的组合构成,并且LANE 4由层I与层2的组合构成。如果将池定义成形成于LANE 3中,则虚拟卷411使用层O和I。如果将池定义成形成于LANE 4中,则虚拟卷412使用层I至2。由于虚拟卷411和412使用相同池,池ID指示相同标识符。LANE设置允许选择在虚拟卷中使用的层(Tier)并且允许限制将在所有层之中使用的层。作为结果,可以根据访问虚拟卷的应用所必需的性能要求从介质分配页面。新颖的是未逐个应用而是逐个虚拟卷地控制层,虚拟卷是应用中的更详细单位。因此,可以向高性能介质和其它介质分配应用所使用的多个虚拟卷。另外,限制分配的层允许向实际必需的虚拟卷分配高性能介质。高性能的代价高,并且一般而言,高性能介质在整个容量中的比例小。可以有效使用很少资源。常规地,如果虚拟卷的访问频率相同,则分配高性能介质。因此,如果访问频率高,则将高性能介质用于无高性能要求的数据。根据LANE控制,未划分物理池,并且用单个池有可能划分和使用。因此,负荷小并且可以在该方法中实现性能。〈池管理信息表〉图14是示出池管理信息表3521中的池管理的配置例子的图。池管理信息3521由多个池特定信息表35211构成。池特定信息35211包括池ID 35212、应用35213、容量35214、自由容量35215、池卷数目35216、池卷设备编号列表35217、使用池的设备数目35218、使用池的设备编号35219、指示是否执行迁移的迁移存在/不存在35220、迁移自动执行存在/不存在35221、迁移执行周期35222、迁移执行时间35223、监视时区35224、状态35225和池中的层列表35226作为构成项目。为每个介质保持容量35214和自由容量35215的信息。池ID 35212是池的标识符。应用35213是指示池的应用的标识符。应用是按照池操作格式、比如精简配置、快照和远程复制的应用。容量35214是指示池的实际容量的信息。在图14的池管理信息表3521中,可以针对主机计算机10注册虚拟化的容量(虚拟容量)。自由容量35215是指示池的未使用实际容量的信息。可以在表中注册容量虚拟化的池的总实际容量、使用的实际容量或者容量中的一个或者多个组合。池卷数目35216是指示设置为池的LDEV总数的信息。池卷设备编号列表35217是指示设置为池的LDEV编号列表的信息。使用池的设备数目35218是指示属于池的池卷数目的信息。使用池的设备编号35219是如下信息,该信息指示属于池的池卷的ID列表。可以针对每层设置使用池的设备数目35218和使用池的设备编号35219。迁移存在/不存在35220是指示是否迁移目标池中的数据元的信息,并且写入“0N”或者“OFF”。“ON”表示将执行迁移,而“OFF”表示将不执行迁移。在“0N”的情况下,监视目标池被分配到的虚拟卷或者虚拟页面的1/0频率,而在“OFF”的情况下,未监视目标池被分配到的虚拟卷或者虚拟页面的1/0频率。关于监视1/0频率重要的是在未针对向I/O目的地的虚拟卷或者虚拟页面分配的实际页面实际执行1/0时未更新1/0频率而在针对分配的实际页面执行I/o时更新1/0频率。下文也将在写入过程和读取过程中描述这一要点。迁移自动执行存在/不存在35221是指示是否自动或者手动开始迁移目标池中的数据元的信息,并且描述“0N”或者“OFF”。“ON”表示将自动开始迁移,而“OFF”表示将手动开始迁移。迁移执行周期35222是如下信息,该信息指示目标池中的数据元的迁移周期。例如“一天”表示迁移每一天(24小时)开始。迁移执行时间35223是如下信息,该信息指示目标池中的数据元的迁移开始时间。监视时区35224是如下信息,该信息指示用于监视向目标池被分配到的虚拟卷分配的实际页面的I/o频率的时区。状态35225是指示目标池的状态的信息。状态的值的例子包括“监视”、“重新布置”和“未监视”。“监视”表示监视目标池被分配到的虚拟卷的或者虚拟卷中的虚拟页面的I/o频率并且未迁移数据元。“重新布置”表示迁移数据元(可以是在目标池内的迁移或者可以是数据元从目标池向另一个池的迁移)。“未监视”表示未监视I/o频率并且未迁移数据元。池中的层列表35226是如下信息,该信息指示设置到池的层信息列表的视图。虽然后文将描述层信息列表35226,但是层信息列表35226是层管理信息表3513的例子。配置控制程序3503设置和更新图14的池管理信息表3521。〈池层管理信息表〉图15是示出池层管理信息表3513的配置例子的图。池层管理信息表3513包括至少一个配置表35271,并且每个配置表35271包括池ID 35272、层编号35273、容量35274、自由容量35275、池卷数目35276、池卷设备编号列表35277、使用池的设备数目35278、使用池的设备编号35279和属于层的池卷列表35280作为构成项目。下文将仅针对该信息描述与池的管理信息表(图14)不同的部分。层编号35273是设置到池的层的标识信息(见图8和9)。例如,如果在池中设置多个层,则为每层设置图15的配置表35271。更具体而言,如果有三层,则池层管理信息表3513包括三个配置表35271。容量35274是在每层(层# :35373)中包括的总实际容量。层的容量35274之和表不池管理信息表3521的配置表35211中的容量35214的值。自由容量35275表示层的未使用区域的大小。层的自由容量35275之和表示池管理信息表3521的配置表35211中的自由容量35215的值。池卷数目35276、池卷设备编号列表35277、使用池的设备数目35278和使用池的设备编号35279的内容如已经描述的那样,并且为每层设置信息。属于层的池卷列表35280包括属于每层的池卷的列表35121 (见图13)。如果池如图4中所示跨越多个模块(簇),则向池管理信息表3521 (见图14)添加用于区分模块的信息,并且逐个模块地管理表中的信息。如果在表中未设置层,则在与层有关的信息字段中注册NULL。〈VV0L-DIR管理信息表和PSCB管理信息>图16是用于说明VVOL-DIR管理信息表3523和PSCB管理信息3524的图。VVOL-DIR管理信息表3523是如下信息,该信息指示用于形成虚拟卷的虚拟区域的第二类型LDEV的配置。PSCB (池槽控制块)管理信息3524是如下信息,该信息指示设置到池42的第一类型LDEV的配置。如描述的那样,在存储装置30中,第一类型VDEV 400由TOEV 34通过RAID配置形成。将第一类型VDEV 400划分成第一类型LDEV 500作为存储区域。将第一类型LDEV500设置到池60。设置到池42的第一类型LDEV 500是池卷900。存储装置30设置虚拟卷(VVOL) 800并且还构成第二类型LDEV 35231 (等效于图5中的第二类型LDEV 501) ο将第二类型VDEV 401划分成第二类型LDEV 35231 (VV0L 800)作为虚拟卷的虚拟存储区域。
存储装置向作为池卷的第一类型LDEV 500分配作为虚拟卷800的第二类型LDEV35231。作为结果,主机计算机10访问的虚拟卷的存储区域对应于作为物理设备的TOEV 34构成的第一类型LDEV 500。在VVOL-DIR 3523中存储虚拟卷701的配置。VVOL-DIR 3523由LDEV编号(LDEV#) 35231 和条目 35232 构成。LDEV编号(LDEV#) 35231是指示第二类型LDEV 35231的标识符的信息。条目35232是第二类型LDEV 35231的配置信息并且由第二类型LDEV地址35233、PSCB指针35234和层编号35235构成。PSCB指针35234在向池卷900的第一类型LDEV 500分配第二类型的LDEV 35231时存储第一类型LDEV 500的区域的指针。在初始状态中未向第一类型LDEV 500分配第二类型LDEV 35231,并且在PSCB指针35234中存储“NULL”。PSCB管理信息3524是设置到池60的第一类型LDEV 500的信息。为设置到池60的第一类型LDEV 500的每个槽设置PSCB管理信息3524。每条PSCB管理信息3524由LDEV编号(LDEV#) 35241、池卷地址35242、PSCB前向指针35243和PSCB后向指针35244构成。LDEV编号(LDEV#) 35241是如下信息,该信息指示池卷中的第一类型LDEV的标识符。池卷地址35242是如下信息,该信息指示池卷900中的第一类型LDEV的地址。PSCB前向指针35243和PSCB后向指针35244表示如下信息,该信息指示在池卷900中的第一类型LDEV之前和之后的槽的标识符。池卷900的区域中的未使用区域的顶部由自由PSCB队列35240指示。自由PSCB队列35240包括指示下一个槽的指向PSCB 3524的指针。存储装置30查询PSCB队列35240指示的指针以获得下一 PSCB 3524。存储装置30还查询下一 PSCB 3524的PSCB后向指针35244以逐渐跟随PSCB 3524,以获得与未使用区域的最后槽对应的PSCB 3524。最后PSCB 3524的PSCB后向指针35244是自由PSCB队列 35240。存储装置30可以跟随自由PSCB队列35240以基于PSCB 3524的连接指针集识别池的池卷900的未使用区域。存储装置30设置与在池60中设置的第一类型LDEV 500对应的PSCB 3524。具体而言,设置与设置到池60的第一类型LDEV 500的每个槽对应的PSCB 3524,并且还设置自由PSCB队列35240。由于池42在初始状态中都未被使用,所以自由PSCB队列35240连接的集合对应于设置到池的第一类型LDEV 500的所有区域。当存储装置30使用池60的区域时,存储装置30可以向管理第二类型LDEV 35231的VVOL-DIR管理信息表3523分配必需槽的PSCB 3524以使用区域。一个槽或者多个槽的集合等效于页面。页面由一个或者多个PSCB 3524指定。逐个页面地执行从主机装置10访问虚拟卷800和从池卷900向虚拟卷800的访问区域分配存储区域。更具体而言,存储装置30查询自由PSCB队列35240以获取向第二类型LDEV35231分配的必需区域(页面)的PSCB 3524。存储装置30然后向VVOL-DIR管理信息表3523的条目35232分配获取的PSCB 3524。因此,存储装置30在VVOL-DIR管理信息表3523的条目35232的PCB指针35234中存储指示对应PSCB 3524的指针。从自由PSCB队列35240的连接中去除分配的PSCB 3524。
作为结果,向VVOL-DIR管理信息表3523的每个条目3523的PSCB指针35234指示的PSCB管理信息3524分配第二类型LDEV 35231的每个页面(槽)。PSCB管理信息3524对应于第一类型LDEV 500的槽。作为结果,向第一类型LDEV 500分配第二类型LDEV35231,并且可以使用作为主机计算机10的访问目标的虚拟卷800作为物理设备。存储装置30逐层地管理自由PSCB 35240。图16图示层O和层I作为层,并且池60也由相同的层管理。从多层(例如层O和层I)向一个第二类型LDEV 35231逐个页面地分配区域。存储装置30管理逐个页面的信息作为PSCB的信息。层编号35235是PSCB属于的层的编号。当从主机计算机10接收写入请求时,命令控制程序3501基于在写入请求中包括的虚拟卷800的地址跟随VVOL-DIR管理信息表3523以检查是否向VVOL-DIR 3523的条目分配PSCB。如果分配PSCB,则命令控制程序3051用写入数据改写已经存在的PSCB。另一方面,如果未分配PSCB,则命令控制程序3501选择将连接到向目标层的编号分配的自由PSCB队列的PSCB,以向VVOL-DIR管理信息表3523的条目35232分配PSCB。逐个页面的信息也包括从页面的状态验证中获得的信息。例如,获得该信息作为定期监视对页面的访问频率的结果。可以在池60的每个页面中附接信息,并且在池卷900中存储的数据可以包括如下信息,该信息允许搜索向哪个虚拟卷800的哪个地址分配数据。在每个存储装置30中保持LDEV管理信息表(图13)、池管理信息表(图14)和层管理信息表(图15)。管理装置20可以保持所有存储装置30的管理信息表(图13至15)的信息。<初始设置过程>图17是用于说明初始设置过程的概要的流程图。图17简单地描述初始设置过程的总流程,并且后文将描述步骤的细节。在图17的步骤中的操作的实体是管理装置20和存储装置30的预定程序。因此,在图17的描述中,管理装置20和存储装置30之一形成操作实体,或者管理装置20和存储装置30协作以形成操作实体。管理装置20和存储装置30先协作以创建整个池并且在池管理信息表3521中注册创建的池的信息(S1710)。存储装置30然后根据存储装置30上安装的介质类型定义LANE管理信息并且通过池中的层组合定义LANE(S1720)。最后,存储装置30定义虚拟卷800 (S1730)。在S1730中,除了定义虚拟卷800的过程之外,还执行将LANE设置成虚拟卷800和选择待使用的池的过程。<池创建>图18和19是用于说明S1710的池创建过程的细节的流程图。管理装置20的管理程序(未示出)先接收操作⑶I的管理者输入的作为池的标识符的池ID、应用、第一类型LDEV的数目和LDEV的编号(S42110)。管理装置20的管理程序生成包括输入信息的池创建命令并且向存储装置30传输命令(S42120)。存储装置30的命令控制程序3501接收从管理装置20传输的创建的命令(S42130)。
当命令控制程序3501确定接收的命令用于池设置过程时,命令控制程序3501向池控制程序3507传送接收的命令并且通知池控制程序基于接收的命令执行池设置/创建过程(S42150)。随后,池控制程序3507基于命令指明的信息在池管理信息表3521中将容量、自由容量和池卷数目设置到池特定信息(S42230)。池控制程序3507确定是否针对命令指示的LDEV(池卷)数目执行S41260至S41320 的过程(S42250)。如果针对命令指示的LDEV (池卷)数目执行S41260至S41320的过程(在S42250中为是),则过程移向S42170。如果未针对命令指示的LDEV(池卷)数目执行S41260至S41320的过程(在S42250中为否),则过程移向S42260。在S42260中,池控制程序3507选择命令指明的LDEV之一作为构成池卷的LDEV并且在池管理信息表3521的池卷设备编号列表35217中注册选择的LDEV(S42260)。关于命令指示的池卷,池控制程序3507确定是否已经将层管理信息35271设置成与池卷对应的层信息区域(池中的层列表35226) (S42270)。如果已经设置层管理信息35271 (在S42270中为是),则过程移向步骤S42290。如果尚未设置层管理信息35271 (在S42270中为否),则池控制程序3507创建管理池的层的管理信息表35271、在池管理信息表3521的池中的层列表35226中注册表35271并且使过程移向 S42290(S42280)。在S42990中,池控制程序3507访问层管理信息表3513中的对应配置表35271并且在属于层的池卷列表35280中注册LDEV编号ID(S42290)。池控制程序3507然后向设置到池卷的第一类型LDEV分配PSCB (S42300)并且将PSCB连接到每层的自由队列(S42310)。当池控制程序3507通过过程将第一类型LDEV设置到池卷时,配置控制程序3503设置LDEV管理信息表3512 (图13)以实现管理在池卷中使用哪个LDEV(S42320)。作为结果,可以标识和管理设置和未设置为池卷的多个第一类型LDEV。更具体而言,配置控制程序3503将指示构成池卷的LDEV的标识符(池卷属性)设置到命令指明的LDEV编号的LDEV管理信息表3512(对应配置表35121)中的设备属性35128并且在池ID中注册池卷属于的池ID。随后,配置控制程序3503向池控制程序3507传送控制权。池控制程序3507使过程移向S42250并且如果池控制程序3507确定完成对所有LDEV的过程(在S42250中为是),则将向命令控制程序3501传送控制权。如图18中所示,在S42170中,命令控制程序3501向管理装置20传输命令的成功响应(S42170)。当接收来自存储装置30的响应时(S42180),管理装置20的管理程序(未示出)结束系列过程。虽然已经在图18和19中描述基于来自管理装置20的用户指令来生成池,但是可以基于从主机计算机10或者维护管理终端153而不是管理装置20输入的用户指令来生成池。如果在来自用户的输入信息中包括需要用来创建池的介质类型,则存储装置30先确定指明的介质是否存在并且如果介质存在,则根据图18和19执行池的新设置过程。如果指明的介质不存在,则存储装置30向用户通知系统中无指明的介质。〈LANE定义过程〉随后将描述创建图11中所示LANE定义(S1720)的过程的细节。至于LANE定义,有根据应当在LANE中设置哪个(些)层的指令执行LANE定义的方法、存储装置30在输入性能要求和成本要求之后根据要求定义LANE的方法(将主机计算机10的应用的性能要求替换为LANE的方法)等。这里将具体描述后一种方法的具体例子。当向主机计算机10、管理装置20等输入性能要求和成本要求时,主机计算机10或者管理装置20的管理程序(未示出)根据输入信息计算响应性能(ms)、吞吐量(I0PS,MBPS)和位成本并且确定对于存储控制过程而言最优的介质类型。用户可以指明服务水平以确定介质类型。例如,如果用户选择“强调响应性能”,则GUI的程序确定SSD或者SAS作为虚拟卷使用的介质为最优。在这一点,定义使用SSD和SAS的LANE。在另一例子中,定义页面仅从SSD被分配到的LANE作为用于特别需要高性能的虚拟卷的超高性能LANE。此外,定义SSD和SAS的页面被分配到的LANE作为高性能LANE。定义页面从SSD、SAS和SATA被分配到的LANE作为默认分配的LANE。虽然通过主机计算机10或者管理装置20导入来自用户的性能要求,但是可以在池创建中提供用于输入性能要求的接口。也有其中存储装置30基于来自用户的指令识别应用的性能要求并且存储装置30定义LANE的方法。当如上文描述的那样确定LANE时,LANE定义程序3509在存储装置30中的LANE管理信息表3514(图11)中注册确定的LANE定义。图11示出具有池的存储装置30的LANE定义例子,该池包括三层介质(SSD、SAS和SATA)。LANE O、I和2是区域仅从一个介质被分配到的LANE。在LANE 3和4中,有如下LANE,在这些LANE中,在三层之中的具体区域不是分配目标。〈S1730的过程细节>下文将描述S1730的过程中的虚拟卷定义(设置)过程、虚拟卷LANE设置(LANE信息注册)过程和基于虚拟卷LANE信息的池选择过程。(i)虚拟卷定义(设置)过程通常,配置控制程序3503基于通过虚拟卷创建命令的输入信息创建虚拟卷。通过虚拟卷创建命令的输入信息包括虚拟卷编号、将用于虚拟卷的池的池编号、虚拟卷的虚拟容量等。也可以实施LANE的概念以相似地设置虚拟卷。定义虚拟卷从而指明虚拟卷编号、将用于虚拟卷的池的池编号、将用于虚拟卷的介质的类型和虚拟卷的虚拟容量作为通过虚拟卷创建命令的输入信息。可以使用定义的LANE编号而不是将用于虚拟卷的介质的类型。根据每个虚拟卷的性能要求将LANE设置到虚拟卷。因此,用户未指明用于虚拟卷的池的池编号,并且有其中配置控制程序3503从设置的LANE选择将用于虚拟卷的池并且向管理装置20报告该选择的方法。配置控制程序3503可以确定将用于主机计算机(服务器)10的每个应用或者用于主机计算机(服务器)10的应用所使用的每组卷的LANE。在该情况下,用户指示将为应用所使用的多个虚拟卷之中的哪个虚拟卷定义哪个LANE或者性能要求。指示方法与在LANE定义中描述的方法相同。如描述的那样,除了发出用于每个虚拟卷编号的指令,还可以指明每个LANE的虚拟卷数目,并且存储装置30或者管理装置20可以向应用返回设置结果。例如,如果定义图11的LANE,可以将虚拟卷设置成LANE O至5中的任何LANE。将用户针对其请求高性能的虚拟卷设置成LANE O。如果未指明性能要求,则将虚拟卷默认设置成LANE 5。(ii)虚拟卷的LANE设置(LANE信息注册)过程配置控制程序3503然后为每个虚拟卷注册图13中的定义的LANE信息。逐个LANE地管理图13的LDEV管理信息。管理格式是列表或者队列结构。如果在图11中定义六个LANE类型,则有六个队列。如果未为虚拟卷设置LANE,则所有层可以用于虚拟卷。(iii)基于虚拟卷的LANE信息的池选择过程配置控制程序3503然后从设置到虚拟卷的容量或者LANE信息选择池(候选)。更具体而言,配置控制程序3503基于设置到虚拟卷的容量和LANE信息设置具有与条件相符的介质的池作为候选并且从候选选择具有更多自由容量(未向虚拟卷分配的区域)的候选。选择方法的另一例子包括选择具有高性能介质的更多存储区域的方法。例如,如果存储装置30具有图3的配置,则配置控制程序3503选择具有与条件相符的介质的存储装置30、选择在选择的存储装置30中的池并且注册池。存储装置30的选择标准的例子包括有多个未用LDEV成员;以及处理器操作比或者硬盘的负荷低。通过将资源负荷信息纳入考虑之中来防止在存储装置30之间的性能偏差和其中不能在全部存储装置30中使用性能的状况。例如一般而言,与在一个存储装置依次处理100个请求时比较,在向两个存储装置中的每个存储装置分散50个请求时可以更快完成过程。如果虚拟卷与复制有关功能关联,则也可以考虑功能的负荷。以这一方式,配置控制程序3503确定虚拟卷被提供到的存储装置30和池卷。配置控制程序3503也为每个虚拟卷注册图13中的所选池的池ID。<读取过程>图20是用于说明读取过程的流程图。当主机计算机10发出命令(S14100)时,存储装置30接收命令(S14102)。存储装置30的命令控制程序3501分析接收的命令(S14104)并且查询在读取请求中包括的地址(S14106)。命令控制程序S3501基于查询的地址确定访问目标卷是否为第二类型LDEV (虚拟卷)(S214106)。如果访问目标是第一类型LDEV(实质逻辑卷,该实质逻辑卷不是精简配置卷(实际卷)),则过程移向S14110。如果访问目标是第二类型LDEV(精简配置卷),则过程移向 S14126。在S14110中,命令控制程序3501执行LU-LDEV-VDEV地址转换(S14110)并且确定读取目标地址的数据是否在高速缓存存储器中(S14112)。如果读取目标地址的数据在高速缓存中(在S14112中为是),则命令控制程序3501向主机计算机传送高速缓存中的数据(S14112)并且向主机计算机报告完成(S14142)。如果读取目标地址的数据未在高速缓存中(在步骤S14112中为否),则命令控制程序3501执行VDEV-PDEV/外部LU地址转换(S14114)、计算存储读取目标数据的介质的地址(S14116)并且激活介质访问程序(未示出)。介质访问程序从计算的介质地址读出数据以在高速缓存中存储数据(S14118)并且向命令控制程序3501通知在高速缓存中的存储(S14120)。当接收来自介质访问程序的通知时,命令控制程序3501向主机计算机10传送高速缓存中的数据(S14122)。同时,如果读取目标地址是虚拟卷(第二类型LDEV :精简配置卷)的地址(在S14108中为否),则命令控制程序3501执行LU-LDEV-VDEV地址转换(S14126)并且确定读取目标地址的数据是否在高速缓存中(S14128)。如果读取目标地址的数据在高速缓存中(在步骤S14128中为是),则命令控制程序3501向主机计算机10传送高速缓存中的数据(S14122)。如果读取目标地址的数据未在高速缓存中(在S14128中为否),则命令控制3501使用虚拟池地址转换函数(S14130)以将虚拟卷的VDEV空间中的地址转换成容量虚拟化的池的VDEV空间的地址。在这一点,在对以前未写入数据的区域的数据读取请求的情况下(在S14132中为是),则命令控制程序3501计算用于返回默认值(例如全“O”)的VDEV空间(O数据区域)的地址(S14136)。否则(在S14132中为否),命令控制程序3501计算为在第一次写入数据时向虚拟卷的数据写入而分配的区域的VDEV地址或者为了提高池的负荷分散或者使用效率或者为了恢复故障而将数据从用于数据写入等的区域移向的区域的VDEV地址(S14134)。命令控制程序3501还执行VDEV-PDEV/外部LU地址转换以计算存储读取目标数据的介质的地址(S14136)。命令控制程序3501然后从计算的介质地址读出数据并且在为虚拟卷的空间地址而保证的高速缓存存储器中存储数据(S14138)。〈写入过程〉图21是用于说明写入过程的流程图。当主机计算机10发出写入命令(S14140)并且存储装置30接收写入命令(S14142)时,命令控制程序3501查询写入请求的地址(S14144)。命令控制程序3501无论地址是否为实际卷(第一类型LDEV)的地址或者虚拟卷(第二类型LDEV)的地址都执行LU-LDEV-VDEV地址转换(S14146)并且确定是否在高速缓存存储器中保证写入目标地址(S14148)。如果未为写入目标地址保证高速缓存存储器(在S14148中为否),则命令控制程序3501保证用于存储从主机计算机10传送的数据的高速缓存存储器区域(S14150)。命令控制程序3501然后向主机计算机10报告数据接收准备就绪(S14152)。当从主机计算机10接收传送数据时(S14154),命令控制程序3501在保证的高速缓冲存储器中存储数据(S14156)并且向主机装置10传输写入完成报告(S14158)。如果写入请求地址是第一类型LDEV(实际卷)的地址(在S14160中为否),则命令控制程序3501执行VDEV-PDEV/外部LU地址转换(S14162)、计算用于存储写入目标数据的介质的地址(S14164)并且在介质地址中写入高速缓存存储器中存储的数据(S14166)。同时,如果写入请求地址指示虚拟卷(第二类型LDEV :精简配置卷)(S14160),则命令控制程序3501基于虚拟卷地址到池地址的转换函数查询VVOL-DIR表并且将虚拟卷的VDEV空间的地址转换成池的VDEV空间的地址(S14168)。如果写入请求是针对以前未写入数据的区域的写入请求(在S14170中为是),则命令控制程序3501执行以下过程以保证用于存储写入数据的存储区域。如果确定在设置到虚拟卷的LANE中的层的自由容量大于预定值,换而言之,如果确定有足够自由区域(在S14174中为否),则命令控制程序3501从LANE中的所选层动态分配池的自由区域,用于存储与虚拟卷的地址对应的数据(S14182和S14180)。基于设置层管理信息表3513的方法,按照分配顺序优先级化的层是具有更小层编号的层。如果在S14174中确定容量不足(在S14174中为是),则命令控制程序3501从LANE以外的层临时分配区域(S14176和S14180)。这防止不能分配区域这样的情形。为了允许识别从LANE以外的层分配的虚拟卷的编号,可以创建表以管理从LANE以外的层分配的虚拟卷。 计算动态分配有自由区域的池地址为池的VDEV空间的与VDEV空间的用于虚拟卷的写入目标的地址对应的地址。存储装置30可以在池中的属于相同层的多个池卷之中均衡页面向虚拟卷的分配。在PCT/JP2009/058533中描述均衡过程。本申请人将PCT/JP2009/058533中描述的所有项目并入于说明书中。<虚拟卷的LANE改变>主机计算机10的应用可以在操作期间改变要求。如果已经请求高性能的应用在从某点的操作中仅需中等程度性能,则无需如以前在高性能介质中激进地存储数据。因此,可以向更强调性能的其它虚拟卷优先分配高性能介质。在这一情况下,用户使用与用于指示性能要求的接口相似的接口,以指示目标虚拟卷的性能要求改变或者需要改变的具体LANE编号。在指示性能要求的情况下,将LANE替换为在改变之后的性能要求(由管理装置20或者存储装置30执行,这是与在LANE设置中相同的逻辑),并且将替换之后的LANE编号设置到虚拟卷。具体而言,将队列从在改变之前的LANE编号队列重新连接到在改变之后的LANE编号队列。例如,在图3的配置的情况下,可以选择其它存储装置30中定义的LANE和池。在图4的配置的情况下,也将执行虚拟卷处理的控制处理器143中的改变纳入考虑之中。例如,如果在改变虚拟卷#0的LANE时有控制处理器143A和143B的操作比偏差,则进行对模块1251b的LANE或者池的改变,以使用具有更低操作比的控制处理器143B。如果将虚拟卷#0改变成模块1251b的池,则从模块1251a向模块1251b迁移虚拟卷#0的实体。在另一变化中,有基于如下确定来改变LANE的方法,该确定源于存储装置30监视I/o频率的结果。在存储装置30的监视中,可以监视使用数据的频率,可以每某一时间比较频率与预设阈值,并且如果频率在阈值以下则确定频率下降。也可以布置如下部分,该部分在实际LANE改变之前检查用户。另外,可以执行的用于改变LANE的迁移过程未视为待监视的I/O。作为结果,可以创建与用户的性能要求对应的卷。在多个存储装置构成的系统环境中,在应用的操作开始时与性能要求相符的介质可以用来构成虚拟卷。为了构成虚拟卷而必需的介质与在应用的操作之后在应用中的性能要求改变一起改变。可以改变虚拟卷的设置,从而可以根据新的所需性能,在请求的介质中使用在应用的操作开始时分配的层。有基于来自用户的指令或者通过存储装置30监视数据使用频率来自动改变存储装置30中的请求的性能的方法。用户可以选择在设置到虚拟卷的层中的数据存储位置而不了解介质,换句话说,未改变池的可用性。<与常规层控制的比较>在常规层控制技术中,由一层组成的虚拟卷(LU)不是层控制的目标,并且作为层控制的目标的LU总是在多层中存储数据。因此,至于由一层组成的LU,未考虑LU层、比如从哪一层创建LU。另一方面,在本发明中,形成多个层,并且具体虚拟卷(LU)基于LANE设置仅在一层的池区域中保证存储区域。因此,需要考虑层。在如图3中那样的多个存储装置的配置中,需要考虑层以在存储装置之间移动数据。如果层数是二,则选择是否执行层控制、比如当有一层时未执行层控制而当有两个层时执行层控制。另外,与常规层控制比较新颖的是当层数是三或者更多时,添加选择层(Tier)作为层控制目标的过程。〈数据迁移(迁移)>为了存储虚拟卷的数据,在初始点从更高优先级的层保证存储区域。优先级例如由性能和单位成本中的至少一项定义。性能例如是数据I/o速度或者响应时间(从接收来自主机的命令到返回响应的时间长度)。单位成本是为了存储单位大小的数据而需要的代价(例如所谓位成本)。如果继续保证存储区域的过程,则在高性能介质中存储的数据量增加,并且自由区域最终消失。因此,迁移数据。具体而言,可以通过向设置到虚拟卷的LANE中的另一层(不同介质)分散数据来存储数据。更具体而言,当在第一数据存储器中使LANE中的具有高性能的层优先并且选择这些层时,在数据存储之后监视每个页面的访问频率。因而,在更高层中存储具有实际高访问频率的数据,并且执行向具有低性能的层重新布置无高访问频率的数据的过程、即数据迁移。图22是示出数据迁移的总概况的图。通常,当从主机计算机10发出I/O时执行读取/写入过程(见图20和21),并且在监视信息表(见图23)中注册访问条件。迁移过程每某一时间由存储装置30中的迁移指令激活(2270)或者由来自用户的指令激活(2220)。当激活迁移过程时,迁移程序3510确定层范围,该范围是应当存在于目标层中的实际页面的负荷(例如I/o频率)范围(2280)。层范围由容量和性能确定,并且在查询图23的监视信息之后确定层范围。当创建层范围时,迁移程序3510根据层范围执行迁移过程2290。例如,迁移程序3510逐个地依次检查多个虚拟卷以确定当前布置层和需要布置的层是否冲突。如果层未重合,则迁移数据。在迁移中,希望先处理临时分配的虚拟卷(例如在图21的S14176和S14180中临时分配的虚拟卷)。〈监视信息表〉图23是示出监视信息表的配置例子的图。为每个虚拟卷布置监视信息表。在配置表2300中示出一页的信息。最多将可以在容量中存储的页面的配置表2300连接到虚拟卷。
监视信息表的每个配置表2300包括页面编号2302、I/O总数2304、I/O平均数目2306、I/O最大编号2308和最后I/O时间2310作为构成项目。页面编号2302是如下信息,该信息指示虚拟卷中的页面的标识符。I/O总数2304是如下信息,该信息指示在监视时区中针对目标虚拟页面执行的I/o数目。I/O平均数目2306是通过将I/O总数2304的值除以预定时间来计算的值。I/O最大编号2308是如下信息,该信息指示在构成监视时区的多个时区中的多个I/o编号(关于目标虚拟页面的I/O编号)之中的最大I/o编号。最后I/O时间2310是对目标虚拟页面的I/O的最晚时间。〈层范围〉图24是示出层范围的例子的图。在图24中,水平轴表示页面数目,而竖直轴表示IOPSo例如,范围2401表示层0,范围2402表示层1,并且范围2403表示层2的范围。将参照点(X,a) 2404作为例子来描述图24。从该点可以认识到有其中IOPS是a的X个页面。由于该点在层I的范围2402中,所以该点指示需要在层I中存储其中IOPS是a的页面。在其中IOPS是a的页面之中实际上有在层I以外存储的页面。向层I迁移页面的过程是页面的迁移。可以总共创建图24的一个层范围图,或者可以针对每个LANE创建该图。迁移过程的触发包括每个预设某一时间的自动执行和通过用户指令的手动执行。可以每当发出指令时(图22的2620)或者每个某一时间(图22的2670)创建图24的层范围,或者可以通过监视池的阈值来创建层范围图。<当前在其中布置虚拟页面的层和其中需要布置虚拟页面的层不同的例子>图25是示出如下例子的图,该例子是当前在其中布置虚拟页面的层和其中需要布置虚拟页面的层不同。图25示出页面、当前存储的层编号和页面的I0PS。虽然在层O中存储页面2501,但是访问频率(IOPS)是C,并且页面2501落入层2的范围中。因此,执行页面2501从层O到与IOPS相符的层2的迁移。以相同方式从层2向层O迁移页面2502。<迁移过程>下文将描述迁移过程(迁移过程)。将描述其中定义图11的LANE的例子。⑴迁移方法I如图22中所示,层范围创建由迁移指令激活(2280)。当创建层范围时,激活迁移过程(2290)。从包括具有高性能的层O的LANE实现并且按照在LANE之中优先保证来自层O的区域的顺序执行迁移过程。当完成与层O有关的迁移时,执行与层I有关的迁移,并且最后执行剩余迁移。迁移方法I的特征在于先创建层范围图(图24)并且基于层范围图执行迁移过程。在当前实施例中,如图11中那样定义LANE,并且迁移过程的具体执行顺序按照LANE#0、LANE#3、LANE#5、LANE#K LANE#4和LANE#2的顺序。因此,优先处理具有高性能层的 LANE。(ii)迁移方法2迁移方法2的特征在于先针对最高性能LANE (例如LANE#0)执行迁移过程、然后创建层范围图(图24)并且基于层范围图针对其它LANE执行迁移过程。图26是用于说明另一迁移处理方法的流程图。虽然图26的流程图是按照图11的定义而定制的过程,但是基本概念对于任何LANE定义而言相同。更具体而言,针对需要优先处理的仅包括最高性能层的LANE执行迁移过程,然后处理包括最高性能层的其它LANE。如果有包括最高性能层的多个LANE,则迁移过程的顺序由排除最高性能层的层的优先级确定。由于层O在所有包括的介质之中是高性能,所以迁移程序3510执行迁移过程,该迁移过程在层O中存储设置成LANE#0的虚拟卷的分配页面(S2602)。由于图13的LDEV管理信息表3512如上文描述的那样针对每个LANE编号存在,所以针对LANE#0的LDEV管理信息执行过程。迁移程序3510然后获得容量的层范围,该容量排除在S2602中使用的层O的容量(S2604)。迁移程序3510然后基于获得的层范围执行向设置成LANE#3的虚拟卷的迁移过程(S2606)。类似地,迁移程序3510执行向在LANE#1、#5、#4和#2中设置的虚拟卷的迁移过程(S2608 至 S2614)。作为图26的过程的结果,使设置成由最高层O形成的LANE O的虚拟卷优先以分配层O的区域。在LANE#3中,如果层O的容量不足,则请求在层I中存储所有数据以确保未从LANE以外分配区域这样的状态。另外,由于LANE#1仅由层I组成,所以请求确保向其中设置LANE#1的虚拟卷分配层I的区域。基于图26的处理顺序确保请求。在LANE#5和LANE#4中,可以基于层范围将确定为层I的页面放入层2中。在VVOL-DIR 3523的目标条目35232中的编号35235(见图16)中存储不能迁移的并且在与确定为所期望层的层不同的层中存储的页面的信息。如果无定义的LANE,则略过图26中的LANE的过程。例如,如果未定义LANE#1,则未执行S2608并且执行下一过程。〈S2602 的细节 >图27是用于说明S2602的过程的细节的流程图。S2602是设置成由层O构成的LANE#0的虚拟卷(LDEV)的过程,并且使用图13的LDEV关联信息表3512之中的LANE#0的LDEV管理信息表3512来执行过程。从LDEV关联信息表3512的顶部逐个地依次选择LDEV,并且确定是否从层O分配LDEV的页面。如果未从层O分配页面,则向层O迁移数据。下文将根据图27的流程图描述过程。迁移程序3510先确定在处理目标LANE (例如LANE#0)的LDEV管理信息表3512中是否有作为S2704和后续过程的目标的虚拟卷(LDEV) (S2702)。如果处理作为处理目标的所有LDEV,或者如果无作为处理目标的LDEV(在S2702中为否),则S2602的过程结束。如果有作为处理目标的LDEV (在S2702中为是),则过程移向S2702。随后,迁移程序3510确定是否在层O中存储作为处理目标的LDEV中包括的页面的数据(S2704)。如果在层O中存储数据(在S2704中为是),则过程移向步骤S2708。如果在层O中未存储数据(在S2704中为否),则过程移向S2706。在S2706中,迁移程序3510在层O中保证用于存储处理目标页面的数据的区域,并且向层O迁移数据(S2706)。随后,如果在相同LDEV中有下一页面的数据,则过程移向S2704。S2704到S2706的过程重复,并且如果作为处理目标的页面是LDEV中的最后页面,则过程移向S2702(S2708)。以这一方式,执行LANE#0 (最高性能层构成的LANE)的迁移过程。〈S2606 至 S2614 的细节 >图28是用于说明S2606、S2608、S2610、S2612和S2614的过程的细节的流程图。图28中的“LANE”表示如果存储目标页面的LANE在迁移过程之前有改变则在改变之后的LANE。在当前实施例中的过程着重于在LANE之间共享高性能介质的容量。从另一观点来看,可以在图11的LANE定义中使具有稳定性能的LANE优先并且迁移这些LANE。在该情况下,按照LANE O、LANE ULANE 2、LANE 3、LANE 4和LANE 5的顺序执行迁移过程。如果构成LANE的层数目增加,则用于分配页面的选择(选择广度)增加。因此,具有更少层的LANE对性能稳定性有贡献。迁移程序3510先确定在处理目标LANE (例如LANE#3、#5、#1、#4、和#2)中是否有作为S2704和后续过程的目标的虚拟卷(LDEV) (S2802)。如果无虚拟卷,则过程结束。逐个页面地执行迁移过程。如果有作为过程目标的虚拟卷(在S2802中为是),则迁移程序3510确定某一时间是否已经从向区域分配虚拟卷的目标页面起过去(S2804)。这是因为页面的使用频率可以在分配之后就视为低。如果某一时间已经过去(在S2804中为是),则过程移向S2806。如果某一时间尚未过去(在S2804中为否),则过程移向S2822。在S2806中,迁移程序3510确定需要包括目标页面的数据的层是否在虚拟卷的LANE中。这是因为即使向在LANE以外的层分配数据、仍然可以最终在所期望的层中布置数据。如果层在虚拟卷的LANE中(在S2806中为是),则过程移向S2808。如果层未在LANE中(在S2806中为否),则过程移向S2816。在S2808中,迁移程序3510确定包括目标虚拟页面的当前层和所期望的层是否不同。具体而言,在确定中使用图24的层范围图。如果当前层和所期望的层不同(在S2808中为是),则过程移向S2810。如果当前层和所期望的层相同(在S2808中为否),则过程移向S2814。如果有下一页面,则重复从S2804起的过程。在S2810中,迁移程序3510确定是否可以在所期望的层中保证用于存储目标页面的数据(S2810)。如果可以保证区域(在S2810中为是),则过程移向S2812。如果不能保证区域(在S2810中为否),则过程移向S2816。在S2812中,迁移程序3510在所期望的层中保证用于存储目标虚拟页面的区域并且迁移数据。如果有下一页面,则迁移程序3510重复从S2804起的过程(S2814)。如果在S2808中确定当前层和所期望的层相同,则迁移程序3510确定当前层是否在虚拟卷的LANE中(S2816)。如果当前层在LANE中(在S2816中为是),则过程移向S2814。如果有下一页面,则重复从S2804起的过程。如果当前层未在LANE中(在S2816中为否),则迁移程序3510确定是否可以在LANE中的层中保证用于存储目标页面的区域(S2818)。如果可以保证区域(在S2818中为是),则过程移向S2820。如果不能保证区域(在S2818中为否),则过程移向S2814。在S2818中,迁移程序3510在LANE中的层中保证用于存储目标虚拟页面的区域并且迁移数据。如果有下一页面,则迁移程序3510重复从S2804起的过程(S2814)。
如果在S2804中确定某一时间已经从向区域分配虚拟卷的目标页面起过去,则迁移程序3510确定当前层是否在虚拟卷的LANE以外(S2822)。如果当前层在虚拟卷的LANE以外(在S2822中为是),则过程移向S2824。如果当前层在虚拟卷的LANE中(在S2822中为否),则过程移向S2814。如果有下一页面,则重复从S2804起的过程。在S2824中,迁移程序3510确定是否可以在LANE中的层中保证用于存储处理目标页面的区域。如果不能保证区域(在S2824中为否),则过程移向S2814。如果有下一页面,则重复从S2804起的过程。如果在S2824中确定可以在LANE中的层中保证用于存储处理目标页面的区域,则迁移程序3510在LANE中的层中保证区域并且迁移处理目标页面的数据(S2826)。如果有下一页面,则迁移程序3510重复从S2804起的过程(S2814)。可以允许无相邻层的组合作为LANE定义的变化。有如图12B中具有SSD与SATA的组合的LANE。也可以设置这样的LANE。当前实施例可以例如操纵多数时间在SATA中使用的并且由于需要性能的数据零星地到来而需要部分地在SSD中使用的虚拟卷。(iii)迁移方法3如描述的那样,可以改变设置到虚拟卷的LANE。如果由于指明给LANE的层中的容量缺乏而不能分配页面,则可以例外地从另一层临时分配页面。这等效于虽然整个池的容量充足、但是有局部容量耗尽的情况。在这一情况下,通过分配另一虚拟卷的页面或者通过收集O个页面来预计保证容量。希望尽可能多的不向池添加容量,因为操作繁琐并且给维护人员施加负担。以这一方式,通过为LANE的改变或者为从LANE以外的层的临时分配设置标志并且通过使过程在激活迁移过程时优先来有可能高效迁移。可以在设置标志的时刻处激活迁移过程(迁移过程)。〈S2602 的细节 >图29是用于说明迁移方法3的S2602的细节的流程图。与迁移方法2 (图27)的不同在于在S2702与S2704之间执行S2910的过程。更具体而言,迁移程序3510进一步确定在处理目标LANE中的尚未应用在S2710之后的过程的LDEV之中是否有临时分配的LDEV (是否有具有标志的LDEV)以进一步缩减处理目标LDEV (S2910)。针对缩减的LDEV执行S2704至S2708的过程。<步骤S2606至S2614的过程>在迁移方法3中的步骤S2606至S2614的过程与在图28中所示迁移方法2中相同。如在S2602的过程的情况中那样,在S2802和S2804的过程之间插入如下过程(未示出),该过程通过进一步确定在S2802中选择的LDEV之中是否有临时分配的LDEV来进一步缩减处理目标。其它过程与在图28中相同,并且将不重复描述。可以向页面预先附接指示不执行迁移过程的属性。在这一情况下,即使具有属性的页面变成将根据I/O频率从当前层向另一层迁移的目标页面,仍然未迁移页面。具体而言,可以通过在图16中的用于每个页面的PSCB管理信息3524内提供用于禁止迁移的标志来向页面附接属性。在迁移之前来确定标志是否开启。如果标志未开启,则如上文描述的那样执行迁移过程。如果标志开启,则未执行迁移过程。当确定未执行迁移过程时,可以在显示器的屏幕上显示它或者向管理服务器通知不执行迁移过程。
<在迁移过程中的目标虚拟卷的处理优先级>迁移过程的可能方法包括(a)通过使页面从LANE范围以外被临时分配到的虚拟卷和如下虚拟卷优先来执行过程的方法,这些虚拟卷由于设置到虚拟卷的LANE的改变而包括在LANE范围以外的页面;以及(b)通过使包括在层范围以外的页面的虚拟卷优先来执行过程的方法。在(a)的情况下,如果由于LANE的改变而有未使用的层,则优先迁移未使用的层中的数据。例如,在从SSD+SAS改变成SAS+SATA的情况下,先执行从SSD移向SAS或者SATA的过程以快速设置适合于在虚拟卷中设置的新LANE的状态。在该情况下,基于图30中所示策略选择在改变之后的LANE。(b)的情况等效于图28的过程。在向虚拟卷分配的LANE的范围内选择迁移位置,并且如果从层范围确定的移动目的地的层在LANE范围以外,则未移动数据。备选地,向附近层移动数据。图30A示出通过根据LANE在改变之前的层顺序来为在改变之后的LANE选择移动目的地的基本迁移策略。如图30A中所示,基本迁移操作是从层#n向层#(n+l)迁移数据。图30B示出当在LANE改变时从层范围图获得需要存储数据的层时的移动目的地选择方法。由于所期望的层不是在改变之后的LANE中的层,所以从在改变之后的LANE选择在所期望的层#n附近的层#(n-l),以迁移数据。图30C示出当在向LANE以外的层当前临时分配数据的情形中需要从层范围图获得需要存储数据的层时的移动目的地选择方法。如在图30B的策略中那样,选择LANE中的在所期望的层#n附近的层(例如层#(n+l)或者层#(n-l)),以迁移数据。用于图28的过程的选择虚拟卷的方法的例子包括按照虚拟卷的编号顺序执行过程的方法。该方法用于如果再次激活迁移过程则在先前过程之后从具有下一编号的虚拟卷开始过程而未执行迁移过程直至最后虚拟卷。< 结论 >虚拟卷和池相互关联。当存储系统从上级计算机、比如主机计算机接收对虚拟卷的写入请求时,在与虚拟卷关联的池中保持存储区域,并且在保持的存储区域中存储写入请求的目标数据。通过组合各自具有与其它种类的存储介质不同的性能的若干种类的存储介质、比如SSD、SAS和SATA来配置池。具有不同性能的这些介质构成多个层。存储系统预先设置在池中的多个层(介质)之中的哪个(哪些)层应当用于虚拟卷。也就是说,确定应当从哪些层保持用于存储写入数据的存储区域。可以通过设置LANE管理信息以指派LANE编号来向虚拟卷指派待使用的层。也可以指明应用所使用的虚拟卷的性能要求以根据性能要求确定LANE。以这一方式,池由层的组合构成而不是关联池与一层(介质)。因此,虚拟卷的分配广度和存储系统的使用广度更宽,并且也可以高效使用介质的容量。作为结果,可以根据主机计算机的应用的性能要求来针对应用所使用的每个虚拟卷控制对用于分配存储区域的请求的介质的选择。另外,主机计算机可以按照应用的性能要求来选择池中的介质以向虚拟卷分配介质而未改变单个池配置、换而言之未改变池的容量效率和可用性。当改变性能要求时,也可以改变向虚拟卷分配的介质。在当前实施例中,当写入请求从主机计算机到来时,在包括请求所指定的地址的层中的容量可能未包括足以存储写入目标页面数据的容量。在这样的情况下,选择与从地址信息指定的LANE不同的LANE的层以写入目标页面数据。以后向适当层迁移页面数据。以这一方式,可以防止不能在写入期间向目标页面分配存储区域这样的情形。另外,逐个页面地监视对虚拟卷的访问以管理访问条件。基于监视结果指定需要存储处理目标页面的层,并且基于存储处理目标的层、需要存储处理目标页面的层和层属于的LANE的信息来迁移处理目标页面的数据。更具体而言,如果需要存储处理目标页面的层是构成如下LANE的层,存储处理目标页面的层属于该LANE,并且如果需要存储处理目标页面的层和存储处理目标页面的层不同,则在迁移之前确定是否有可能向需要存储数据的层迁移处理目标页面的数据。如果不可能向需要存储数据的层迁移处理目标页面的数据,则优选向在与需要存储数据的层附近的层之中的能够迁移的最近层迁移处理目标页面的数据。另一方面,如果需要存储处理目标页面的层不是构成如下目标LANE的层,存储处理目标页面的层属于该目标LANE,并且如果存储处理目标页面的层不是构成目标LANE的层,则向构成目标LANE的层的存储区域迁移处理目标页面。以这一方式,可以在具有与需要存储数据的层(介质)的性能接近的性能的介质中存储数据,并且可以更适当地响应用户的请求。在本存储系统中,可以设置多个池而不是单个池。在这一情况下,例如,不同LANE管理信息可以用于每个池。此外,向在用来配置池的层范围内的虚拟卷分配存储区域。本发明不限于实施例,并且在执行阶段中,可以修改构成单元以实现本发明而未脱离本发明范围。各种发明可以由在实施例中公开的多个构成单元的适当组合形成。例如,可以从实施例中示出的所有构成单元之中删除一些构成单元。另外,可以适当组合跨越不同实施例的构成单元。可以例如通过用集成电路设计单元、通过硬件实现实施例中所示配置、功能、处理单元、处理部等的部分或者全部。可以通过处理器解译和执行用于实现功能的处理器、通过软件实现配置、功能等。可以在记录或者存储设备、比如存储器、硬盘和SSD(固态驱动器)中或者在记录或者存储介质、比如IC卡、SD卡和DVD中存储用于实现功能的程序、表、文件
等的信息。在实施例中图示视为描述所必需的控制线和信息线,并且可以未完全图示产品中的控制线和信息线。所有配置可以相互连接。标号列表10主机计算机20管理装置(管理计算机)30存储装置351配置信息352池信息3501命令控制程序3503配置控制程序3505 盘 I/O 程序3507池控制程序3508每层的池卷管理程序3509 LANE 定义程序
3510迁移程序3511地址管理表3512LDEV管理信息表3513层管理信息表3514LANE管理信息表3515介质管理信息表3521池管理信息表3522池卷管理信息表3527池层管理信息表3523VV0L-DIR 管理信息表3524PSCB管 理信息表
权利要求
1.一种存储系统,包括: 至少一个池,包括从具有不同属性的多个存储设备提供的多个存储区;以及处理器,响应于来自上级计算机的向虚拟卷的写入请求而向所述虚拟卷分配所述池中包括的所述存储区并且在所述分配的存储区中存储目标数据,其中具有不同属性的所述多个存储设备构成多个层,并且 其中所述处理器基于层设置指令输入向所述虚拟卷设立用来分配所述存储区的一个或者多个层。
2.根据权利要求1所述的存储系统,其中所述处理器使用所有所述多个层向待设置的特定层还未确定的所述虚拟卷分配所述存储区。
3.根据权利要求1所述的存储系统,其中所述层设置指令包括要设置所述层的所述虚拟卷的标识信息和所述虚拟卷可以使用的所述层的标识信息,并且其中所述处理器基于所述层设置指令中包括的所述信息向所述虚拟卷设立层。
4.根据权利要求1 所述的存储系统,其中所述处理器响应于在所述上级计算机中操作的应用软件所需要的性能要求而向所述虚拟卷设立所述层。
5.根据权利要求4所述的存储系统,其中: 所述处理器被配置成: 监视对所述虚拟卷的访问; 基于所述监视的结果指定处理应存储所述目标数据的层;以及基于当前存储所述目标数据的第一层、应当存储所述目标数据的第二层和向所述虚拟卷设立的所述一个或者多个层的信息来迁移所述目标数据。
6.根据权利要求5所述的存储系统,其中: 如果所述第二层被包括在向所述虚拟卷设立的所述一个或者多个层中,并且如果所述第二层与所述第一层不同,则所述处理器被配置成确定是否可以向第二层迁移所述目标数据并且根据确定结果迁移所述数据。
7.根据权利要求5所述的存储系统,其中: 所述处理器被配置成: 如果所述第一层和第二层未被一起包括在向所述虚拟卷设立的所述一个或者多个层中,则所述处理器被配置成获取向所述虚拟卷设立的所述一个或者多个层中的所述存储区并且向所述获取的存储区迁移所述目标数据。
8.根据权利要求1所述的存储系统,其中: 所述处理器被配置成: 基于由来自所述上级计算机的所述写入请求指明的地址信息来指定向所述虚拟卷设立的所述一个或者多个层, 如果所述指定的层的容量不足以存储所述目标数据,则从向所述虚拟卷设立的所述一个或者多个层之中选择与所述指定的层不同的层,以及在所述选择的层中的所述存储区中写入所述目标数据。
9.一种存储系统的管理方法,所述存储系统与多个存储设备耦合并且向上级计算机提供所述多个存储设备的存储区作为逻辑存储卷,其中所述存储系统包括:至少一个池,包括从具有不同属性的多个存储设备提供的多个存储区;以及处理器,响应于来自上级计算机的向被分配以所述池中的至少一个存储区的虚拟卷的写入请求而获取所述池中包括的所述存储区并且在所述获取的存储区中存储目标数据,并且其中具有不同属性的多个存储设备构成多个层, 所述管理方法包括步骤:所述处理器响应于层设置指令输入而向所述虚拟卷设立用来分配所述存储区的一个或者多个层。
10.根据权利要求9所述的管理方法,还包括步骤:所述处理器使用所有所述多个层向待设置的特定层还未确定的所述虚拟卷分配所述存储区。
11.根据权利要求9所述的管理方法,其中所述层设置指令包括要设置所述层的所述虚拟卷的标识信息和所述虚拟卷可以使用的所述层的标识信息,并且其中所述处理器基于所述层设置指令中包括的所述信息向所述虚拟卷设立层。
12.根据权利要求9所述的管理方法,其中所述处理器响应于在所述上级计算机中操作的应用软件所需要的性能要求向所述虚拟卷设立所述层。
13.根据权利要求9所述的 管理方法,还包括步骤: 所述处理器监视对所述虚拟卷的访问; 所述处理器基于所述监视的结果指定应存储处理目标数据的层;以及 所述处理器基于当前存储所述目标数据的第一层、应存储所述目标数据的第二层和向所述虚拟卷设立的所述一个或者多个层的信息来迁移所述目标数据。
14.根据权利要求13所述的管理方法, 其中在所述迁移步骤中,如果所述第二层被包括在向所述虚拟卷设立的所述一个或者多个层中,并且如果所述第二层与所述第一层不同,则所述处理器被配置成确定是否可以向第二层迁移所述目标数据并且根据确定结果迁移所述数据,并且 其中如果所述第一层和第二层未被一起包括在向所述虚拟卷设立的所述一个或者多个层中,则所述处理器被配置成获取向所述虚拟卷设立的所述一个或者多个层中的所述存储区并且向所述获取的存储区迁移所述目标数据。
15.一种用于管理存储系统的程序,所述存储系统与多个存储设备耦合并且向上级计算机提供所述多个存储设备的存储区作为逻辑存储卷,其中所述程序使通过池提供所述逻辑存储卷的组合作为虚拟卷的处理器实现以下功能: 生成至少一个池的功能,所述至少一个池包括从具有不同属性的多个存储设备提供的多个存储区; 响应于来自上级计算机的向所述池中被分配以至少一个存储区的虚拟卷的写入请求而获取所述池中包括的所述存储区并且在所述获取的存储区中存储目标数据的功能; 识别具有不同属性的所述多个存储设备作为多个层的功能;以及 响应于层设置指令输入而向所述虚拟卷设立用来分配所述存储区的一个或者多个层的功能。
全文摘要
提供一种用于实现用恰当成本根据用户的使用环境向虚拟卷分配池区域而又提高介质的容量效率的技术。出于这一目的,在本发明中,通过选择或者限制池中的待使用的介质的层组合(可以在每个池中使用的层范围)用于在存储系统中设置的每个虚拟卷来构成池。
文档编号G06F3/06GK103080894SQ20108006863
公开日2013年5月1日 申请日期2010年12月28日 优先权日2010年12月28日
发明者里山爱, 江口贤哲 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1