CN102511030B - 计算机系统及其控制方法 - Google Patents
计算机系统及其控制方法 Download PDFInfo
- Publication number
- CN102511030B CN102511030B CN200980157683.9A CN200980157683A CN102511030B CN 102511030 B CN102511030 B CN 102511030B CN 200980157683 A CN200980157683 A CN 200980157683A CN 102511030 B CN102511030 B CN 102511030B
- Authority
- CN
- China
- Prior art keywords
- storage cell
- pond
- volume
- region
- page
- 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/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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0605—Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
-
- 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/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2206/00—Indexing scheme related to dedicated interfaces for computers
- G06F2206/10—Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
- G06F2206/1012—Load balancing
Abstract
本发明的目的在于提供一种计算机系统,其用于针对向虚拟逻辑区域动态地提供存储容量的多个实际逻辑区域,迅速并且可靠地执行存储容量的均等化。本发明的计算机系统,在针对来自上位装置的访问,执行向虚拟卷动态地分配存储区域的运用的过程中,在向池中追加了池卷时,使存储区域在多个池卷间移动来维持存储容量的平衡。
Description
技术领域
本发明涉及计算机系统,尤其涉及对主机装置动态地分配存储容量的计算机系统。
背景技术
目前,存在对主机装置提供大规模的数据存储服务的计算机系统。已知该系统具备主机装置、主机装置连接的存储装置、以及存储装置的管理装置。
存储装置以RAID(Redundant Array of Independent/Inexpensive Disks)方式管理多个硬盘。并且将大量硬盘所具有的物理的存储区域逻辑化,将其作为逻辑卷来提供给主机装置。主机装置访问逻辑卷来请求数据的读/写。
作为这种逻辑化技术之一,具有被称为自动精简配置(thin provisioning)的技术。存储装置对主机装置设定不具有物理存储区域的虚拟卷。与主机装置对虚拟卷进行写访问相配合,存储装置对虚拟卷依次分配存储区域。
因此,与从最初对逻辑卷分配大容量的存储区域的方式相比,该技术具有可以有效地利用存储资源的效果。该技术被记载在日本特愿2003-15915号公报以及日本特开2006-338341号公报中。
用于向虚拟卷提供存储区域的单元,由把分别被分配了实际存储区域的多个逻辑卷汇总成被称为池的逻辑组而构成。多个逻辑卷分别被称为池卷。当从主机装置对虚拟卷进行写访问时,对于虚拟卷的访问目的地分配池卷的对应区域的存储区域。
存储装置使从主机装置针对虚拟卷的访问区域与对池卷分配了存储容量的区域对应,由此可以保存来自主机装置的写数据。
存储装置使得向多个池卷的存储区域的分配变得均等,但是在经过长时间的过程中存在该均等被打破的问题。因此,日本特开2008-234158号公开了使存储区域在多个池卷间移动,来使存储区域的容量针对多个池卷变得均等的技术。
现有技术文献
专利文献1
专利文献1:日本特愿2003-015915号公报
专利文献2:日本特开2006-338341号公报
专利文献3:日本特开2008-234158号公报
发明内容
发明要解决的课题
日本特开2008-234158号公开了通过外部操作使存储区域移动的内容,但是未提出针对多个池卷迅速且可靠地执行存储容量的均等化的方案。
因此,本发明的目的在于,提供对于向虚拟逻辑区域动态地提供存储容量的多个实际逻辑区域,迅速且可靠地执行存储容量的均等化的计算机系统及其控制方法。
用于解决课题的手段
为了达成该目的,本发明的特征为,在针对来自上位装置的访问,执行向虚拟卷动态地分配存储区域的运用的过程中,在池中追加了池卷时,使存储区域在多个池卷间移动来维持存储容量的平衡的计算机系统及其控制方法。
发明效果
根据本发明,可以提供对于向虚拟逻辑区域动态地提供存储容量的多个实际逻辑区域,迅速且可靠地执行存储容量的均等化的计算机系统及其控制方法。
附图说明
图1是表示本发明的计算机系统的实施方式的硬件框图。
图2是表示在图1所示的计算机系统中,存储装置进行的存储区域的动态分配的动作的功能框图。
图3是存储装置的存储器框图。
图4是说明VDEV管理信息的框图。
图5是说明LDEV管理信息的框图。
图6是说明地址管理表的框图。
图7是池管理信息的框图。
图8是VVOL-DIR以及PSCB的框图。
图9是表示目标设备、LDEV、PDEV的映射关系的框图。
图10是表示在虚拟卷和池卷之间均等地分配了页的情形的框图。
图11是表示此时的空闲队列的构造的框图。
图12是表示页的分配集中于在池中追加的池卷的情形的框图。
图13是表示此时的空闲队列的构造的框图。
图14是页再平衡前的虚拟卷以及池卷的框图。
图15是页再平衡后的虚拟卷以及池卷的框图。
图16是表示在多个池卷间考虑池卷的容量比来进行再平衡的情形的虚拟卷以及池卷的框图。
图17A是管理池的表,图17B是管理池卷的表,图17C是管理空闲队列单位的表。
图18是表示针对从主机装置向虚拟卷的写访问,从属于池的池卷向虚拟卷分配页的顺序的框图。
图19是管理该分配顺序的表。
图20是说明当存储装置将池卷追加到池中时进行再平衡的处理的流程
图。
图21是表示再平衡的流程图。
图22是表示在多个池卷间迁移的页数的计算处理的流程图。
图23是表示计算出的页数和页的移动的情形的虚拟卷和池卷的框图。
图24是用于实现图23所示的页的移动形态的管理表。
图25是表示迁移处理的细节的流程图。
图26是表示迁移处理的更详细的内容的流程图。
图27是进行迁移处理的高速缓冲存储器的框图。
图28是说明相对于页迁移,优先从主机装置进行I/O处理的流程图。
图29是表示队列构造的再设定的过程的框图。
图31是说明队列构造的再设定的第一流程图。
图32是说明队列构造的再设定的第二流程图。
图33是说明在多个池卷间进行页迁移的情形的框图,为图34的前提。
图34是说明实现页的迁移的空闲队列处理的框图。
图35是成为图36的前提的框图。
图36是说明发生了迁移中断的情况下的空闲队列处理的框图。
图37A~图37F是迁移的进度管理画面,是针对每个池卷汇集了页的使用状况的画面。
图38A~图38B是以虚拟卷为单位汇集了页数的画面。
具体实施方式
接着,说明本发明的实施方式。图1是表示本发明的计算机系统的第一例的硬件框图。计算机系统具备主计算机10、管理装置20、它们所连接的存储装置30。存储装置也被称为存储系统,或者存储子系统。
主计算机10访问存储装置30的逻辑存储资源。管理装置20管理存储装置30的存储区域的结构。存储装置30在设定在物理设备34中的存储区域中存储数据。
主计算机10具备输入单元110、输出单元120、CPU130、存储器140、盘适配器150、网络适配器160以及盘驱动器170。输入单元110是从操作主计算机10的管理者等接受输入的单元。输入单元110例如由键盘构成。输出单元120是显示主计算机10的状态或设定项目的单元。输出单元120例如由显示器装置构成。
CPU130将存储在盘驱动器170中的程序读入存储器140,执行由该程序规定的处理。存储器140例如由RAM等构成,存储程序或数据等。
盘适配器150经由存储网络50与存储装置30连接,与存储装置30收发数据。存储网络50由适合于数据传输的协议(例如Fibre Channel)构成。
网络适配器160经由管理网络40与存储系统管理装置20或存储装置30收发数据。管理网络40例如由Ethernet构成。
盘驱动器170例如由硬盘装置构成,存储数据或程序。
管理装置20具备输入单元210、输出单元220、CPU230、存储器240、网络适配器250以及盘驱动器260。
输入单元210是接受操作管理装置20的管理者等的输入的单元。输入单元210例如由键盘构成。输出单元220是显示管理装置20的状态或设定项目的单元。输出单元220例如由显示器装置构成。
CPU230将存储在盘驱动器260中的管理程序读入到存储器240,基于该程序执行对存储装置的管理处理。存储器240例如由RAM等构成,存储程序或数据等。
网络适配器250经由管理网络40与主计算机10或存储装置30收发数据。
盘驱动器260例如由硬盘装置构成,存储数据或程序。
存储装置30具备控制器31、存储高速缓冲存储器32、共享存储器33、物理设备(PDEV)34、电源开关35以及电源36。控制器31控制向在PDEV中构成的存储区域进行的数据存储。存储高速缓冲存储器32临时存储在PDEV34中读写的数据。共享存储器33存储控制器31或PDEV34的结构信息。PDEV34由多个盘装置构成。电源36向存储装置30的各部供给电力。电源开关35是接通/断开(ON/OFF)来自电源36的电力供给的开关。盘装置(存储设备)例如由硬盘驱动器构成,主要存储用户数据。作为存储设备,也可以是由闪速存储器等半导体存储器构成的驱动器。
控制器31由主机适配器310、网络适配器320、非易失性存储器330、电源控制部340、存储器350、处理器360、存储适配器370以及共享存储器适配器380构成。
主机适配器310经由存储网络50与主计算机10之间收发数据。网络适配器320经由管理网络40与主计算机10或管理装置20之间收发数据。
非易失性存储器330由硬盘或闪速存储器构成,存储在控制器31中运行的程序或结构信息等。电源控制部340控制从电源36供给的电力。
存储器350例如由RAM等构成,存储程序或数据等。处理器360将存储在非易失性存储器330中的程序读入存储器350,执行由该程序规定的处理。
存储适配器370与PDEV34以及存储高速缓冲存储器32之间收发数据。共享存储器适配器380在与共享存储器33之间收发数据。
图2是表示在图1所示的计算机系统中由存储装置30进行的存储区域的动态分配的动作的功能框图。由PDEV34通过RAID结构构成RADI组。由该RAID组构成虚拟设备(VDEV)400(S101)。VDEV400被分割为作为存储区域的多个逻辑设备(LDEV)500。把由PDEV34构成的VDEV称为“第一种VDEV”。将该第一种VDEV中包含的LDEV称为“第一种LDEV”。
主计算机10访问存储装置30的卷(逻辑区域)。把从主计算机10能看到的卷称为“目标设备”。在包含第一种LDEV500的卷中定义向主计算机10的路径,来设定了目标设备700(S102)。
也可以与PDEV34同样地对在存储装置30的外部连接的外部物理设备600进行处理。即,通过RAID结构由多个外部物理设备(EDEV)600构成多个第一种VDEV400(S103)。第一种VDEV400被分割为一个以上的存储区域、即第一种LDEV500。在该第一种LDEV500中设定向主计算机10的路径,设定了目标设备700(S104)。
另外,在存储装置30中可以设定第二种VDEV401。所谓第二种VDEV,与由PDEV34构成的第一种VDEV不同,是具有地址和区域但不具有与PDEV34对应的区域的虚拟设备。能够设定与第二种VDEV对应的高速缓冲存储器的区域。在该第二种VDEV401中构成一个以上的LDEV。将该LDEV称为第二种LDEV501。
在该第二种LDEV501中设定向主计算机10的路径,设定目标设备701(S110)。该目标设备对应于虚拟卷。
第二种VDEV以及第二种LDEV没有被从PDEV分配物理存储区域(不具有存储区域)。为了主计算机10对其进行使用,需要使第二种LDEV与存储池(或者简称为“池”)60相关联。
存储池60是按照存储池的属性汇集一个或多个第一种LDEV500而得的组合。第一种LDEV500被分配给存储池(S112)。第一种LDEV是池卷。
使用地址使在该存储池中设定的第一种LDEV500与第二种LDEV501进行关联(S111)。将该关联称为“映射”或者“分配”。
由此,主计算机10能够对虚拟卷进行写/读访问。另外,通过变更第一种LDEV和第二种LDEV的映射,可以变更虚拟卷的存储区域。
图3是存储装置30的存储器350的框图。在存储器350中存储:通过处理器360读入并执行的各种程序、与LDEV的设定相关的结构信息351以及与存储池的设定相关的池信息352。
命令控制程序3501解释来自主计算机10或管理装置20的命令,执行由该命令规定的处理。结构控制程序3503控制存储装置30的结构。盘I/O程序3505控制对PDEV34的访问。池控制程序3507设定存储池。
结构信息351存储与存储装置30的VDEV以及LDEV相关的设定。池信息352存储与存储池相关的设定。
结构信息351包含地址管理表3511、LDEV管理信息3512、VDEV管理信息3514。
地址管理表3511存储目标设备、LDEV、VDEV与物理设备的地址的映射信息。地址管理表3511包含目标设备-LDEV映射信息35111、LDEV-VDEV映射信息35112、以及VDEV-PDEV映射信息35113。LDEV管理信息3512存储与LDEV相关的信息。VDEV管理信息3514存储与虚拟逻辑卷相关的信息。
池信息352包含池管理信息3512、池卷管理信息3522、VVOL-DIR3523、PSCB3524。池管理信息3521存储存储池的设定。池卷管理信息3522存储存储池的卷的信息。VVOL-DIR3523存储存储池的LDEV的地址的分配。PSCB信息存储存储池的LDEV的地址的信息。
而且,存储器350具有用于从PDEV对属于存储池的多个LDEV(池卷)500均等地分配存储区域的分配处理程序3508;用于使存储区域在多个池卷间移动来使多个池卷的存储容量均等化的再平衡处理程序3509。
而且,存储器350具备可以针对每个池或者每个虚拟卷设定是否执行再平衡的标志信息。
图4是VDEV管理信息的说明图。VDEV管理信息由VDEV固有信息35141构成。VDEV固有信息35141由VDEV号码(VDEV#)35142、仿真类型35143、总大小35144、剩余大小35145、设备属性35146、设备状态35147、设定LDEV数35148、LDEV号码35149、先头VDEV槽#35150以及结束VDEV槽#35151构成。
VDEV#35142是VDEV的识别符。仿真类型35143是VDEV的仿真类型的识别符。总大小35144是在VDEV中设定的总大小。剩余大小35145是VDEV的未使用的区域的大小。
设备属性35146是在VDEV中定义的属性的识别符。当该VDEV为第一种VDEV时存储表示第一种VDEV的识别符,当该VDEV为第二种VDEV,被设定为虚拟卷时,存储表示第二种VDEV的识别符。
设备状态35147是表示VDEV的状态的识别符。VDEV的状态有正常、闭塞、故障闭塞等。闭塞表示punk闭塞等,由于意外发生故障的原因而被闭塞。故障闭塞表示设备的某处发生故障,因此被闭塞。
设定LDEV数35148是在VDEV中设定的LDEV的总数。LDEV号码35149存储在VDEV中设定的LDEV的号码。先头VDEV槽#35150是设定的LDEV的物理的先头的槽号码的识别符。
结束VDEV槽#35151是所设定的LDEV的物理的最终的槽号码。针对每个LDEV号码,设定与LDEV数量相同数量的该LDEV号码35149、先头VDEV槽#35150以及结束VDEV槽#35151。
图5是LDEV管理信息的说明图。LDEV管理信息由VDEV固有信息35121构成。LDEV固有信息35121由LDEV号码(LDEV#)35122、仿真类型35123、大小35124、先头槽号码35125、结束槽号码35126、路径定义信息35127、设备属性35128、设备状态35129、程序使用状况351300以及池ID351301构成。
LDEV#35122是LDEV的识别符。仿真类型35123是LDEV的仿真类型的识别符。大小35124是在LDEV中设定的总大小。
先头槽号码35125是所设定的LDEV的先头的槽号码的识别符。结束槽号码35126是所设定的LDEV的最终的槽号码。路径定义信息35127是在主计算机10中定义的路径的识别符。
设备属性35128是LDEV的属性的识别符。当LDEV为第一种LDEV时存储表示第一种LDEV的识别符,当LDEV为第二种LDEV时存储表示第二种LDEV的识别符。另外,当LDEV被设定为存储池时,存储表示池属性的识别符。
设备状态35129是表示该LDEV所属的VDEV的状态的识别符。VDEV的状态有正常、闭塞、故障闭塞等。闭塞表示PUNK闭塞等由于意外发生故障的原因而被闭塞。故障闭塞表示设备的某处发生了故障,因此被闭塞。
程序使用状况351300,当LDEV正通过某个程序被处理时存储该程序的识别符。池ID351301,当LDEV被设定为存储池时存储其识别符。
图6是地址管理表的说明图。地址管理表3511存储目标设备、LDEV、VDEV与物理设备的地址的映射信息。地址管理表3511包含目标设备-LDEV映射信息35111、LDEV-VDEV映射信息35112以及VDEV-PDEV映射信息35113。
目标设备-LDEV映射信息35111存储目标设备的地址与LDEV的地址的对应。LDEV-VDEV映射信息35112存储LDEV的地址与VDEV的地址。
VDEV-PDEV映射信息35113存储VDEV的地址与其RAID组号码(或奇偶校验组)和PDEV的地址。
存储装置30通过参照该地址管理表可以知道目标设备的地址与哪个LDEV的哪个地址对应。另外可以知道LDEV的地址与哪个VDEV的哪个地址对应。另外可以知道VDEV的地址属于哪个RAID组,与哪个PDEV的哪个地址对应。
图7是池管理信息的说明图。池管理信息3521由池固有信息35211构成。池固有信息35211由池ID35212、属性/用途35213、仿真类型35214、容量35215、空闲容量35216、阈值35217、状态35218、池卷数35219、池卷设备号码列表35220、正在利用池的设备数35221以及正在利用池的设备号码35222构成。
池ID35212是池的识别符。属性/用途35213是表示该存储池的属性以及用途的识别符。用途例如是快照或SYS区域等运用形态的用途。
仿真类型35214是存储池的仿真类型的识别符。容量35215是存储池的总容量,空闲容量35216是存储池的未使用的区域的大小。
阈值35217是存储池所允许的最大的数据存储容量。状态35218是存储池的当前状态。例如定义中、扩展中、有效等。池卷数35219是被设定为存储池的LDEV的总数。
池卷设备号码列表35220是被设定为存储池的LDEV号码的一览。正在利用池的设备数35221是与存储池的LDEV关联的第二种LDEV的数量。正在利用池的设备号码35222是与存储池的LDEV关联的第二种LDEV号码的一览。
图8是VVOL-DIR3523以及PSCB3524的说明图。VVOL-DIR3523是虚拟卷的存储区域、即第二种LDEV的结构的信息。PSCB(POOL Slot ControlBrock)3524是被设定为存储池的第一种LDEV的结构的信息。
如前所述,存储装置30由PDEV34通过RAID结构而构成第一种VDEV。将该第一种VDEV分割为作为存储区域的第一种LDEV。第一种LDEV被设定为存储池。把该被设定为存储池的第一种LDEV所构成的卷设为池卷900。
另外,存储装置30设定虚拟卷(VVOL),构成第二种VDEV。将该第二种VDEV分割为作为存储区域的第二种LDEV。
存储装置30将VVOL800的第二种LDEV分配给池卷900的第一种LDEV。由此,将主计算机10访问的虚拟卷的存储区域设定为由作为物理设备的PDEV34构成的第一种LDEV。
VVOL的结构被存储在VVOL-DIR3523中。VVOL-DIR3523由LDEV号码(LDEV#)35231以及条目35232构成。
LDEV号码(LDEV#)35231是第二种LDEV的识别符。条目35232是第二种LDEV的结构信息。该条目35232由第二种LDEV地址35322以及PSCB指针35234构成。
第二种LDEV地址35233存储VVOL的第二种LDEV的地址。
当第二种LDEV被分配给池卷900的第一种LDEV时,PSCB指针35234存储该第一种LDEV的区域的指针。此外,在初始状态下,第二种LDEV未被分配给第一种LDEV,因此在PSCB指针35234中存储“NULL(空)”。
PSCB(POOL Slot Control Brock)3524是被设定为存储池的第一种LDEV的信息。针对被设定为存储池的第一种LDEV的每个槽设定该PSCB3524。
PSCB3524由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包含向表示下一槽的PSCB3524的指针。
存储装置30参照空闲PSCB队列35240所示的指针,得到下一PSCB3524。进而,参照下一PSCB3524的PSCB后方指针35245,分阶段地搜索PSCB3524。然后,得到与该未使用的区域的最终槽对应的PSCB3524。
该最后的PSCB3524的PSCB后方指针35244是空闲PSCB队列35240。存储装置30搜索空闲PSCB队列35240,根据通过PSCB3524的指针而连接的集合,可以得知存储池的池卷900的未使用的区域。
存储装置30设定与被设定为存储池的第一种LDEV对应的PSCB3524。具体来说,设定与被设定为存储池的第一种LDEV的各槽对应的PSCB3524,进而设定空闲PSCB队列35240。在初始状态下存储池完全未使用,因此,通过空闲PSCB队列35240连接的集合对应于被设定为存储池的第一种LDEV的全部区域。
然后,存储装置30在使用该存储池的区域时,通过将必要的槽数的PSCB3524分配给作为第二种LDEV的VVOL-DIR3523,能够使用该区域。多个槽的集合相当于页。根据多个PSCB来确定页。以页为单位来执行从主机装置向VVOL800的访问、从池卷对VVOL800的访问区域的存储区域的分配。
具体来说,存储装置30参照空闲PSCB队列35240。并且,取得向第二种LDEV分配的必要的区域量(页)的PSCB3524。将该取得的PSCB3524分别分配给VVOL-DIR3523的条目。即,在VVOL-DIR3523的各条目的PSCB指针35234中存储表示对应的PSCB3524的指针。
此外,将已分配的PSCB3524从空闲PSCB队列25240的连接中排除。
由此,把第二种LDEV的各页(槽)分配给用VVOL-DIR3523的各条目的PSCB指针35234表示的PSCB3424。PSCB3524对应于第一种LDEV的槽,因此,作为结果,把第二种LDEV分配给第一种LDEV,作为主计算机10的访问对象的虚拟卷能够作为物理设备来使用。
图9是目标设备和LDEV以及PDEV的说明图。主计算机10访问在存储装置30中设定的目标设备700。目标设备700的存储区域是第一种LDEV500。
第一种LDEV500是由物理卷通过RAID结构构成的第一种VDEV400的区域。第一种VDEV400被分割为一个以上的第一种LDEV500。
另外,主计算机10将在存储装置30中设定的虚拟卷作为目标设备701来访问。该目标设备701的虚拟存储区域是第二种LDEV501。第二种LDEV501与被设定为存储池的第一种LDEV500相关联。
主计算机10访问作为虚拟卷的目标设备701。该虚拟卷的存储区域是第二种LDEV501。存储装置30当接受对第二种LDEV501的访问时,将与第二种LDEV501关联的第一种LDEV500变换为访问目的地。
图10表示在虚拟卷(第二种LDEV)和多个池卷(第一种LDEV)之间均等地分配作为访问对象以及存储区域的单位的页的情形。
在图10中,针对从主计算机对虚拟卷(HDP-Vol)#0和虚拟卷#1的访问,处理器(MP)#0从池卷(Pool-Vol)#0~#2将页分配给虚拟卷#0、#1。
针对从主计算机对虚拟卷#2和虚拟卷#3的访问,处理器#1从池卷#0~#2将页分配给虚拟卷#2、#3。
对于虚拟卷#0~#3,如WR1~WR5那样依次执行来自主计算机的访问。MP#0对于虚拟卷#0的从主计算机访问过的页(WR1)分配池卷#0的页(WR1),对于虚拟卷#1的从主计算机访问过的页(WR2)分配池卷#1的页(WR2)。
接着,MP#1对于虚拟卷#2的从主计算机访问过的页(WR3)分配池卷#0的页(WR3),对于虚拟卷#3的从主计算机访问过的页(WR4)分配池卷#1的页(WR4)。
接着,MP#0对于虚拟卷#0的从主计算机访问过的页(WR5)分配池卷#0的页(WR5)。
通过所述图8的队列构造来实现该分配。图11是现有的空闲队列构造的一例。各池卷的未分配页的地址(freeM-N:M表示属于池卷#M。N表示是池卷M的第N个未分配页。)依次与空闲队列(0)~(1)连接。各MP依次访问空闲队列(0)~(1),将池卷的未分配区域分配给虚拟卷。
MP#0访问空闲队列(0)。在空闲队列(0)上首先连接了free0-1,因此,将池卷#0的未分配页中的第一页分配给虚拟卷#0的页WR1。该未分配页成为已分配(已使用)的页(WR1)。
接着,MP#0访问空闲队列(1)。在空闲队列(1)上最初连接了free1-2,因此,将池卷#1的未分配页中的第二页分配给虚拟卷#1的页WR2。该未分配页成为已分配(已使用)的页(WR2)。
接着,MP#1访问空闲队列(0)。空闲队列(0)的free0-1在分配中被使用,因此选择接下来的free0-4,将其分配给虚拟卷的页WR3。在分配中使用的页从空闲队列中被释放。
接着,MP#1访问空闲队列(1)。空闲队列(1)的free1-2在分配中使用,因此选择下一个free1-5,将其分配给虚拟卷的页WR4。
接着,MP#0访问空闲队列(2)。在空闲队列(2)上最初连接了free2-3,因此将池卷#2的第三个未分配页分配给虚拟卷#0的页WR5。
如图11所示,为了对于多个池卷均等地存在分配页,与空闲队列有关的空闲区域所属的池卷,针对每个空闲队列各移动一个。另外,与来自主计算机的访问对应的页的分配顺序、
空闲队列#0→#1→#2→#0→#1......
作为页分配顺序管理表存储在存储器350中。处理器始终参照该顺序表来进行页的分配。处理器在分配给虚拟卷的页中存储来自主机装置的写数据。
图12表示从属于池的池卷#0到#2的未分配页减少时。追加了池卷#3的情形。图13表示对追加的池卷的空闲区域进行管理的队列构造。由于在池中新追加了池卷#3,因此在各空闲队列上数量较多地连接了池卷#3的空闲区域。
在图10的形态中设置多个处理器,为使来自主计算机的访问处理的负荷分散,对各处理器分配了不同的虚拟卷。从主计算机对虚拟卷的访问在多个虚拟卷间变得不均等,因此当经过长时间时,多个池卷中的已使用页的比例的平衡被打破。
另外,在图13的形态中,来自处理器的访问集中于存在较多空闲区域的池卷#3中,因此,针对来自主计算机的I/O的处理性能有可能降低。
因此,如图14~图15所示,处理器使已分配页从已有的池卷移动(迁移)到在池中追加的池卷中,使得分配页的比例在已有的池卷和追加的池卷之间变得均等。
图14表示该处理的状态,图15表示该处理后的状态。在图14中,1400是执行了页的分配的已使用区域,1402是未使用区域。如图15所示,池卷#0的已使用页的一部分页的数据被复制到追加的池卷#2的未使用页中(S1404),进而,池卷#1的已使用页的一部分页数据被复制到池卷#2的未使用页中(S1406)。
然后,处理器将从虚拟卷#0向池卷#1的分配(S100)变更为池卷#2(S104),将从虚拟卷#2向池卷#0的分配(S102)变更为池卷#2(S106)。将这一系列过程称为页的移动(迁移)。
从图14到图15的过程表示已使用的多个页在多个池卷间被再配置,从而变得均等,即达成了页的再平衡。实施均等分配程序3508的处理器在池内的多个卷中均等地进行页的分配。处理器实施再平衡程序3509来进行再平衡处理。
作为这些处理的结果,针对多个池卷全体的页的分配均等,因此对于多个池卷的各个池卷的I/O率变为相同程度,在追加池卷后也良好地维持了存储装置针对从主机装置的访问的处理性能。
此外,根据移动源页的数据的更新日期时间,更新日期时间越近的数据,在向移动目的地页迁移时被复制到硬盘的越外周部。
在使分配页在多个池卷间变得均等方面,考虑池卷的容量是重要的。即,在多个池卷间使全部页数(可分配的全部页数:相当于池卷的容量)中在分配中已使用的页的比例(页使用率)均等是重要的。即使代替页数而用存储容量来计算也相同。
图16是表示该情况的框图。符号1300是分配给各卷的页的全部容量,1302是在卷间迁移的页的容量。关于池卷的容量比,池卷#0∶#1∶#2为1∶3∶2。
因此,从池卷#1以及#3向池卷#2分别迁移页,以使页的使用率变为相同比例。
图17A是管理池的表,图17B是管理池卷的表。这些表作为池信息352(图3)的一部分,被记录在存储器350中。这些表根据管理信息而生成。存储系统的再平衡处理程序3509参照这些表,构建在图15中说明的再平衡处理系统。
图17C是管理空闲队列单位的表。对于虚拟卷的访问区域进行的未使用页的分配,如前所述,通过空闲队列来管理。针对每个池卷设定了空闲队列。在空闲队列上以FIFO构造连接了池卷的多个未使用页。在向虚拟卷分配未使用页时,未使用页依次从空闲队列中释放,作为数据复制目的地处理来自虚拟卷的映射。
该表由空闲队列的识别号码(#)、空闲队列成为管理空闲区域的对象的池卷#、与空闲队列连接的空闲区域的个数、空闲队列所属的池#构成。该表还作为池信息的一部分,被记录在存储器350中。
图18是表示针对从主机装置向虚拟卷的写访问,从属于池的池卷向虚拟卷分配页的顺序的说明图。此处的说明以具有存储容量的比为2∶3∶2的多个池卷的池作为前提。
为了对池卷均等地分配虚拟卷的页,需要包含在池卷中追加的卷,来对卷决定页的分配顺序。该分配顺序作为管理信息被登录在存储器中(参照图19)。
分配处理程序3508参照该管理信息,从多个空闲队列中计算出目标空闲队列的地址,取得与空闲队列相关的未使用页的地址(指针信息:PSCB),在此存储对虚拟地址的页发送的、来自主机装置的写数据。
为了使其成为可能,空闲队列的地址与池卷的识别信息1∶1对应。例如,空闲队列#0管理池卷#0的空闲区域,空闲队列#1管理池卷#1的空闲区域,空闲队列#2管理池卷#2的空闲区域。
图18表示向池卷#0连续两次分配页,接着向池卷#1连续三次分配页,而且向池卷#2连续两次分配页,以后重复该处理。
图19是管理该分配顺序的表,登录了图18所示的分配方式。该表还作为池信息被记录在存储器中。分配处理程序3508参照该管理表,管理针对池卷的页的分配的依次控制处理。
该程序具备软件计数器,管理将页分配到了哪个池卷。计数器每当分配页时被增加1,因此根据计数器的位置知道成为当前的页分配对象的池卷。图19表示计数器位于池卷#1(空闲队列#1)的位置。
如图20所示,存储装置的再平衡处理程序3509以执行页的再配置为契机,检测出将池卷追加到池中。
在图20中,存储装置的再平衡处理程序3509以一定时间监视池的空闲容量(S33001,S33002)。判定池全体的使用量(在分配中使用的全部页的容量)是否超过阈值(S33003)。
当超过阈值时,管理装置20或维护终端进行在池中新追加池卷的处理。存储装置与池卷的追加相配合地更新图5至图7所示的管理信息(S33004)。此后,转移到再平衡处理(S33020)。
根据图21说明再平衡处理的细节。再平衡处理程序关于成为再平衡的对象的池,判定可否再平衡(S7007)。参照图3的池信息352来进行该判定。
被判定为成为再平衡的对象的池无法再平衡的情况,例如是如下情况。
池状态:池闭塞
池内的卷数在预定(8)以上
池卷状态:格式化中
退化中
闭塞
虚拟卷:闭塞
此外,当存储装置的硬件资源(处理器、共享存储器、高速缓冲存储器、PDEV)的故障时,还根据故障的程度判定为无法再平衡。
另外,处理器在对成为再平衡的对象的池设定了再平衡关闭(OFF)标志的情况下,判定为无法再平衡。可以针对每个池、每个虚拟卷来设定再平衡开启/关闭(ON/OFF)设定信息。
当判定为能够再平衡时,再平衡处理程序进行预处理(S7010)。例如,决定页迁移(页的分配的变更或移动)移动源的池卷和移动目的地的池卷、决定应用页迁移处理的池卷的选择顺序、模拟页迁移后的池卷的容量等。
接着,再平衡处理程序计算在池内应该迁移的页数(S7011)。此后,进行页的迁移处理(S7012)。此时,在后面进行描述,当迁移时同时进行用于舍弃在多个池卷中存在的固定模式(例如页的全体数据为“0”的模式)来缩小池卷的容量的处理。
在页迁移时,再平衡处理程序判定是否发生再平衡处理的中断条件。例如,当存在从主计算机对成为再平衡的对象的页的I/O时,中断再平衡。当再平衡的中断的原因消除后,可以重新启动再平衡处理。
接着,再平衡处理程序管理页迁移的进度(S7013)。通过该管理,再平衡处理程序可以使管理用户看到再平衡的进度状况。
图22是表示图21的迁移的页数的计算(S7011)的细节的流程图。这里的页数的计算方式为,将多个池卷间达到平衡的页数设为理想的页,弥补其与当前使用的页数的差。再平衡处理程序检索分配给HDP VOL(虚拟卷)的各池卷中的页的使用量。
在图22的说明中以如下情况为前提。
HDP VOL#i的池使用量全体(在属于池的全部卷中被分配的(被使用的)页的总数):A[i]
HDP VOL#i的池卷#j使用量全体(使用的页的总数):B[i][j]
池卷的#j的容量(总页数):C[j]
池全体的容量(总页数):D
追加池VOL全体的容量(总页数):E
首先,再平衡处理程序在追加池卷前使用被分配给HDP VOL[i]的池VOL[j]来计算页数,将其存储在B[i][j]中(S1900)。B[i][j]被设定为存储器350的工作区域。
接着,在将池卷追加到池中后,如下那样求出HDP VOL[i]应该使用池卷[j]的页数(S1902)。
HDP VOL#i的池使用量全体×池卷[j]的理想的使用率=A[i]×C[j]/(D+E)
池卷的理想的使用率,是分配给池卷的页数相对于可存储在池卷中的总页数的比例,是以在多个池卷间均等地分配了页作为前提的值。
关于池卷[j],移动所涉及的页数是池卷追加前和追加后的差,如下求出(S1904)。
页数=B[i][j]-A[i]×C[j]/(D+E)
当上述计算值为正(+)值时,池卷[j]成为移动源卷,当计算值为负(-)值时,池卷[j]成为移动目的地卷。
再平衡处理程序在计算出移动页数后,针对每个池号码将移动页数、池卷为移动源还是移动目的地登录在专用的表中。
图23是表示通过图22的处理计算出的页数和页的移动的情形的框图。在属于一个存储池组的多个池卷和与其对应的多个虚拟卷中,根据关于各虚拟卷计算页的移动所得的结果,来进行页的移动。池卷的符号中的数值表示在池卷中被用于分配的页数。
如图23所示,关于虚拟卷#0,在多个池卷间没有页的移动。关于虚拟卷#1、#2,在图23所示的箭头的方向上迁移在箭头上表示的数量的页。再平衡处理程序以池为单位来进行页的移动。即,进行图23所示的全部页移动。此外,可以以虚拟卷为单位进行页的移动。例如,关于虚拟卷#1,可以在多个池卷间进行页的移动,关于虚拟卷#2,不执行页的移动。
图24是用于实现图23所示的页的移动形态的管理表。该管理表被存储在存储器350的预定区域中。管理表针对每个虚拟卷而存在,基于图22的步骤S 1906的处理而生成。在每个虚拟卷中,登录了各池卷成为移动源还是成为移动目的地,从移动源池卷向移动目的地池卷移动的页数,被分别登录在移动源以及移动目的地的池卷中。
再平衡处理程序通过S7011(图21)的处理生成/登录该表,在S7012中参照该表来执行迁移。
图25是表示图21的迁移处理(S7012)的细节的流程图。当存在多个虚拟卷的情况下,针对各虚拟卷进行该处理。
再平衡处理程序从虚拟卷中检测关联页。成为移动对象的页是池卷的页,但是通过参照地址管理表3511,可以从虚拟卷的全部页中确定与成为移动对象的页对应的关联页。
再平衡处理程序针对虚拟卷中的从先头开始的全部页中的各个页,判定是否是关联页。为了管理已检查到哪个页而使用软件计数器。每当页的检查进展到下一页时,将计数器增加1。因此,再平衡处理程序进行计数器的初始化(S2300)。
接着,再平衡处理程序从先头页开始选择虚拟卷中的页(S2302)。接着,判定是否对所选择的页分配了池卷的移动对象页(S2304)。
再平衡处理程序当肯定该判定时,基于地址管理表3511检测移动对象页所属的池卷的识别信息(S2306)。
接着,参照图24的表,判定池卷是移动源还是移动目的地(S2306)。再平衡处理程序,当池卷为移动目的地时,在移动目的地池卷中确保用于从移动源池卷进行页移动的空闲区域(S2310)。
作为页被移动的池卷,选择分配平衡低的池卷,但是当多个池卷作为移动目的地产生竞争时,从所追加的池卷、然后从成为移动目的地方面优先度高的池卷开始依次选择。在移动目的地优先度表中,关于各池卷登录了成为移动目的地的优先度。
再平衡处理程序,当决定了移动目的地池卷、移动源池卷、移动对象页数时,决定页的移动的调度,将其登录在存储器350的迁移执行任务中(S212)。该调度,例如在伴随多个页的移动时,用于决定以怎样的顺序来进行页的移动。在每次存在在S2302中依次选择出的页时,每次决定新的移动目的地卷等时更新登录该调度。
接着,再平衡处理程序将计数器的计数值增加1(S2316),判定是否还存在在S2302中没有选择的页(S2318)。当存在未检查的页时返回步骤S2302,而且,在不存在页的时,按照在S2312中依次更新后的调度执行迁移(S2320)。此外,也可以在S2312后执行迁移处理(S2320)。
图26表示图25的迁移处理(S2320)。存储适配器370按照再平衡处理程序,以槽为单位将移动源页的全部数据从移动源池卷升级(staging)到高速缓冲存储器32中(S2400)。
图27表示该情形。池卷#1为移动源,池卷#2为移动目的地。S2600表示移动源页被升级到高速缓冲存储器的第一区域32A的情形。符号2601是槽。以槽为单位执行升级。符号2601A是移动源页,符号2601B是移动目的地页。
存储适配器370内的DRR电路(Data Recover and Reconstruct电路)以槽为单位检查移动源页2601A的数据,检查数据是否为“0”(图26:S2402-S2404,图27:S2602)。
该判定用于判定移动源页的数据是否是固定模式之一(全部数据为“0”)。当数据为固定模式时不进行页的迁移,将与虚拟卷的移动对象页对应的映射变更为存储了固定模式数据的专用区域。
当DRR检测出“1”的存在时,转移到步骤2414,高速缓冲存储器内的存储控制器将移动源页数据从第一区域32A向第二区域32B进行高速缓冲存储器间复制(图26:S2414,图27:S2604)。然后,存储适配器370清除移动源高速缓冲存储器32A(图27:S2416)。
接着,将第二区域32B的数据降级(destage)到移动目的地池卷#2的移动目的地页2601B(图27:S2606),进行将移动源页2601A变更为未使用页,而且将对于虚拟卷的页的分配从移动源页变更为移动目的地页等迁移处理(图26:S2418)。
当DDR所判定的槽的数据为“0”时,存储适配器370判定以槽为单位的全部数据的检查是否结束(S2406),当对其进行否定判定时返回步骤S2402,针对同一槽的其它数据检查是否为“0”。当针对槽的全部数据结束检查时,转移到步骤S2410,检查在移动源页中是否有剩余的槽,当对其进行肯定判定时,针对下一槽进行上述检查。
当针对属于页的全部槽结束判定时,转移到步骤S2412,全部数据由“0”组成的移动源页不需要迁移,变更为未使用页。
存储装置通过执行图26所示的处理对页进行再配置时,从已使用的管理中释放具有固定模式数据的页,消除了将固定模式数据重复分配给虚拟卷的情况,而且,主机装置可以高效率地利用池卷的存储区域。
在图26中说明的迁移的过程中,当从主计算机对移动源的页发行了I/O或者存储装置内复制I/O时,存储装置使I/O处理优先,中止页迁移。
即,如图28所示,当向虚拟卷提供读或写I/O时,处理器检查是否包含针对移动源页的逻辑地址(S2500)。
包含针对移动源页的逻辑地址,意味着虚拟卷和移动源页之间的路径未被切断,页迁移处理并未结束,因此,处理器清除存储有移动源页的数据的、高速缓冲存储器的第二区域(图27的32B)的数据,进而对移动目的地页进行清除处理(S2504)。
此处的清除处理是在映射到虚拟卷时删除映射管理信息,另外,如果移动目的地页作为使用页被管理,则删除该管理信息。
接着,处理器在S2506中跳过(结束)图26的迁移处理。此外,在读I/O的情况下,在该处理结束前,可以临时停止迁移处理,此后重新启动。
如图27中所说明的那样,高速缓冲存储器32有第一区域(移动源用的高速缓冲区域)32A和第二区域(移动目的地用的高速缓冲区域)32B,直到两者的差消除为止,不从第二区域向移动目的地页2601B复制移动源页的数据,因此,在对移动源页输入了I/O的时刻,可以中止页的移动处理。
空闲队列的构造为图11所示的方式的构造,在一个空闲队列上连接了多个池卷的空闲页信息(PSCB)。由此,当向虚拟卷分配页时,处理器向虚拟卷分配哪个池卷的空闲页都没有区别。
在再平衡处理中,已分配页从已分配的页的比例多的池卷向已分配的页的比例少的池卷移动,因此需要区别移动目的地的页属于哪个池卷。因此,处理器需要将空闲队列的构造变更为对一个空闲队列分配了一个池卷的构造。
图29是表示变更队列构造的过程的框图。处理器将与空闲队列#0相关的未使用区域的信息从空闲队列#0中释放,然后与工作队列2700的#1关联((1)→(2))。以使空闲队列#0与池卷#1对应的方式,构建空闲队列((3))。将属于池卷#1的空闲区域(1-1,1-2)的信息从工作队列#1中释放,然后与空闲队列#0连接((3))。
图30表示工作队列的构造。通过将与空闲队列相关的空闲页的信息的链接从空闲队列中释放并与工作队列连接,在队列构造的重组过程中不向空闲队列提供来自主计算机的I/O。
接着,处理器将未使用页的信息从空闲队列#1释放,与工作队列#2连接((4))。使空闲队列#1与池卷#2对应。接着,将属于池卷#1的未使用的区域(1-3,1-4)从工作队列#2释放,并与空闲队列#0连接((4)→(5))。
接着,处理器将未使用页的信息从空闲队列#2释放,并与工作队列#3连接。使空闲队列#2与池卷#3对应。接着,从工作队列#2中将属于池卷#1的未使用的区域(1-5,1-6)从工作队列#3释放,与空闲队列#0连接。
以上的结果为,向池卷#1分配了空闲队列#0,全部池卷1的空闲页信息(1-1~1-6)与池卷#1连接。
另外,将与工作队列#1的最初连接的池卷#2的空闲页信息从工作队列#1释放,与池卷#2连接。针对工作队列#2,然后针对工作队列#3执行同样的处理。其结果,在被分配给池卷#2的空闲队列#1上连接池卷#2的空闲页信息。
而且,将与工作队列#1的最初连接的池卷#3的空闲页信息从工作队列#1释放并与池卷#3连接。针对工作队列#2,然后针对工作队列#3执行同样的处理。其结果,在被分配给池卷#3的空闲队列#2上连接了池卷#3的空闲页信息。
图31是表示用于变换空闲队列构造的流程图。处理器当变换队列构造时,在向空闲队列请求了主机I/O时锁定空闲队列,使队列构造的变换待机,直到I/O处理结束为止。
处理器检查作为I/O对象的空闲队列是否在锁定中(2900)。当判定为在锁定中时,判定是否存在成为I/O对象的下一空闲队列(2902),当对其肯定时,参照下一空闲队列(2904),返回步骤2900。
当所选择的空闲队列并非锁定中时,将其锁定来确保空闲队列(2906,2908),从空闲队列中将未使用页分配给I/O。此后,解除空闲队列的锁定(2910)。
在步骤2902中,在没有下一空闲队列时向主机I/O通知锁定忙(lock busy)(2912)。
图32是用于实施队列构造的变换的流程图。处理器检查作为向工作队列移动的对象的空闲队列是否在锁定中,在锁定中的情况下重复步骤3000的处理,直到结束针对空闲队列的I/O处理为止(3002)。
在未锁定的情况下,锁定对象空闲队列(3004),将其与工作队列连接(3006)。然后,当从工作队列将空闲页信息与其它空闲队列重新连接时,检查连接目的地空闲队列是否在锁定中(3008)。在锁定中的情况下待机,直到针对连接目的地空闲队列的I/O处理结束为止(3010)。
在未锁定的情况下,锁定连接目的地空闲队列(3012),对其连接从工作队列中释放的空闲页信息(PSCB)(3014),解除对象队列以及连接目的地队列的锁定(3016)。
接着,判定是否存在从工作队列向其它空闲队列重新连接的下一连接目的地队列(3018),当对其肯定时返回步骤3008,当对其肯定时结束队列构造的变换处理。
接着,与空闲队列相关联地说明图26的S2418的页迁移处理。为了进行该说明,以图33所示的迁移为前提。即,使用图34说明池卷#0的页#1000的数据被复制到池卷#3的页#2000中,虚拟卷(DHP Vol#0)的针对前者的页的映射被变更为针对后者的页的映射的过程。
再平衡处理程序3509确保移动中队列,将其与空闲队列#3连接,然后,从与被分配给池卷#3的空闲队列#3连接的空闲区域中选择成为移动目的地页的对象区域3302,将该指针信息(池卷#3,#2000)3303连接在移动中队列(队列#0)3300的最后(S3300)。通过与空闲队列不同的队列管理成为移动目的地页的区域,这是为了不把成为移动目的地页的区域分配给虚拟卷。
当再平衡处理程序从复制任务接收到页数据的迁移已正常结束的通知时,清除向VVOL DIR中的页(池卷#0,页#1000)的映射3306的信息、即指针信息3304,将其变更为向移动目的地页的地址(池卷#3,#2000)的指针信息(S3302),将移动源页的地址插入到空闲队列#的队列构造的适当位置。而且,从移动中队列中释放移动目的地页。
如图35所示,当从移动源页向移动目的地页的数据迁移的过程通过来自主机装置的I/O等而被中断(3400)时,如图36所示,再平衡处理程序确保移动中队列,并清除对移动目的地队列设定的指针信息3304,恢复为变更前的信息。
而且,确保成为移动目的地的页3303原本存在的池卷的空闲队列#3,检索移动目的地页3303作为空闲区域而插入该空闲队列的位置。
再平衡处理程序将移动中队列3300与空闲队列(队列#3)连接,将移动目的地页3303从移动中队列3300释放,而且将移动目的地页与空闲队列(队列#3)连接。
如上所述,存储装置通过利用与空闲队列不同的队列、即移动中队列,能够进行页的再配置,并且,即使将与页再配置竞争的主机I/O等原因施加给存储装置,也可以使I/O的处理优先。
图37A~图37F是迁移的进度管理画面,提供给管理用户。基于上述的移动页的计算结果,表示了页的移动的进度。图37A~图37F是针对每个池卷汇集了移动前的页的使用状况的画面。图37A表示页的移动前,图37F表示页的移动后。画面中的数字表示页数。
图38A是以虚拟卷为单位汇集了页移动前的页数的画面。图38B是以虚拟卷为单位汇集了页移动后的页数的画面。
因此,通过管理画面向管理用户提示了迁移的进度状况。
在上述实施方式中,页再平衡契机的判定、可否实施再平衡的判定由存储装置进行,但是也可以由管理装置进行。在前者的情况下,存储装置成为本发明的计算机系统,在后者的情况下,管理装置和存储装置的组合成为计算机系统。
另外,在上述实施方式中说明了当页迁移时计算移动页数的情况,但是也可以由管理用户每次输入移动页数。
Claims (12)
1.一种计算机系统,其特征在于,
具备:具有存储区域的存储设备;
允许来自上位装置的访问的虚拟逻辑区域;
具有所述存储区域的多个实际逻辑区域;以及
控制从所述实际逻辑区域对所述虚拟逻辑区域的所述存储区域的分配的控制器,
所述控制器,
将多个实际逻辑区域作为组来分配给所述虚拟逻辑区域,
对应于从所述上位装置访问所述虚拟逻辑区域,从属于所述组的实际逻辑区域对所述虚拟逻辑区域依次分配具有成为基准的容量的存储单位,
当在所述组中追加了所述实际逻辑区域时,在所述组内的多个实际逻辑区域间变更所述存储单位的分配,以使存储容量在属于所述组的多个实际逻辑区域间变得均等,其中所述实际逻辑区域是池卷的存储区域,当在所述组中追加了池卷时,基于所述组中池卷的可分配的全部页数中的每个池卷在分配中已使用的页的比例,来使已分配页从已有的池卷移动到在组中追加的池卷中,从而使得分配页的比例在已有的池卷和追加的池卷之间变得均等。
2.根据权利要求1所述的计算机系统,其特征在于,
所述控制器,在对空闲队列连接未分配的存储单位,并将所述存储单位分配给所述虚拟逻辑区域时,从所述空闲队列中释放该存储单位,将所释放的存储单位分配给所述虚拟逻辑区域,
针对每个池卷设定有多个所述空闲队列,
具备登录了选择多个空闲队列的顺序的存储器,
所述控制器按照所述顺序访问所述多个空闲队列,从所述空闲队列中释放与所述访问的空闲队列连接的未分配的所述存储单位,并将所释放的存储单位分配给虚拟逻辑区域,
具备第一实际逻辑区域、第二实际逻辑区域、属于所述第一实际逻辑区域的第一存储单位、和属于所述第二实际逻辑区域的第二存储单位,
所述控制器从对所述第二实际逻辑区域分配的所述空闲队列中释放所述第二存储单位,将所述第二存储单位与作为数据转移目的地而管理的特殊队列连接,将所述第一存储单位的数据复制到所述第二存储单位,释放所述第一存储单位对于虚拟逻辑区域的分配,将所述第二存储单位分配给所述虚拟逻辑区域,将所述第一存储单位与针对所述第一实际逻辑区域的空闲队列连接,在被分配了所述第一存储单位的所述虚拟逻辑区域的区域中存在来自所述上位装置的访问,并且在所述第一实际逻辑区域和所述第二实际逻辑区域与所述虚拟逻辑区域之间中断所述第一存储单位以及所述第二存储单位的分配的变更时,从所述特殊队列释放所述第二存储单位。
3.根据权利要求1所述的计算机系统,其特征在于,
所述控制器考虑所述多个实际逻辑区域的容量比,在所述多个实际逻辑区域间变更所述存储单位的分配,以使所述存储单位的分配比变得均等。
4.根据权利要求3所述的计算机系统,其特征在于,
所述控制器,对于所述多个实际逻辑区域中的、所述存储单位的分配比多的第一实际逻辑区域,释放所述存储单位对于所述虚拟逻辑区域的分配,将该分配设定为所述存储单位的分配比少于所述第一实际逻辑区域的第二实际逻辑区域的所述存储单位。
5.根据权利要求4所述的计算机系统,其特征在于,
所述控制器将释放了所述第一实际逻辑区域对于所述虚拟逻辑区域的分配的存储单位的属性变更为未分配。
6.根据权利要求1所述的计算机系统,其特征在于,
所述控制器,在被分配了所述存储单位的所述虚拟逻辑区域的区域中存在来自所述上位装置的访问时,在所述多个实际逻辑区域间中断所述存储单位的分配的变更。
7.根据权利要求1所述的计算机系统,其特征在于,
所述控制器在空闲队列上连接未分配的存储单位,在将所述存储单位分配给所述虚拟逻辑区域时,从所述空闲队列中释放该存储单位,将所释放的存储单位分配给虚拟逻辑区域。
8.根据权利要求7所述的计算机系统,其特征在于,
针对每个池卷设定了多个所述空闲队列。
9.根据权利要求8所述的计算机系统,其特征在于,
具备登录了选择多个空闲队列的顺序的存储器,
所述控制器按照所述顺序访问所述多个空闲队列,从所述空闲队列中释放与所述访问的空闲队列连接的未分配的所述存储单位,并将释放的存储单位分配给虚拟逻辑区域。
10.根据权利要求8所述的计算机系统,其特征在于,
具备:
第一实际逻辑区域;
第二实际逻辑区域;
属于所述第一实际逻辑区域的第一存储单位;以及
属于所述第二实际逻辑区域的第二存储单位,
所述控制器执行如下处理:
从对于所述第二实际逻辑区域分配的所述空闲队列中释放所述第二存储单位,将所述第二存储单位与作为数据转移目的地而管理的特殊队列连接,
将所述第一存储单位的数据复制到所述第二存储单位,
释放所述第一存储单位对于虚拟逻辑区域的分配,
将所述第二存储单位分配给所述虚拟逻辑区域,
将所述第一存储单位与针对所述第一实际逻辑区域的空闲队列连接。
11.根据权利要求10所述的计算机系统,其特征在于,
所述控制器,当在被分配了所述第一存储单位的所述虚拟逻辑区域的区域中存在来自所述上位装置的访问,在所述第一实际逻辑区域和第二实际逻辑区域和所述虚拟逻辑区域间中断所述第一存储单位以及所述第二存储单位的分配的变更时,从所述特殊队列释放所述第二存储单位。
12.一种计算机系统的控制方法,其特征在于,
在针对来自上位装置的访问,执行向虚拟逻辑区域动态地分配存储区域的运用的过程中,在池中追加了池卷时,使存储区域在多个池卷间移动来维持存储容量的平衡,其中在池中追加了池卷时,基于多个池卷的可分配的全部页数中的每个池卷在分配中已使用的页的比例,来使已分配页从已有的池卷移动到在池中追加的池卷中,从而使得分配页的比例在已有的池卷和追加的池卷之间变得均等。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2009/058593 WO2010122679A1 (ja) | 2009-04-23 | 2009-04-23 | 計算機システム及びその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102511030A CN102511030A (zh) | 2012-06-20 |
CN102511030B true CN102511030B (zh) | 2015-05-20 |
Family
ID=43010811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980157683.9A Active CN102511030B (zh) | 2009-04-23 | 2009-04-23 | 计算机系统及其控制方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8751767B2 (zh) |
EP (1) | EP2302498B1 (zh) |
JP (1) | JP5801189B2 (zh) |
CN (1) | CN102511030B (zh) |
WO (1) | WO2010122679A1 (zh) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9672150B2 (en) * | 2010-05-26 | 2017-06-06 | Hewlett Packard Enterprise Development Lp | Migrating write information in a write cache of a storage system |
JP5416860B2 (ja) * | 2011-03-02 | 2014-02-12 | 株式会社日立製作所 | 計算機システムおよびその制御方法 |
JP2013122691A (ja) * | 2011-12-12 | 2013-06-20 | Fujitsu Ltd | 割り当て装置およびストレージ装置 |
US8868876B2 (en) * | 2011-12-28 | 2014-10-21 | International Business Machines Corporation | Dedicated large page memory pools |
US20130179636A1 (en) * | 2012-01-05 | 2013-07-11 | Hitachi, Ltd. | Management apparatus and management method of computer system |
CN103827804B (zh) * | 2012-09-21 | 2016-08-03 | 株式会社东芝 | 在物理区块间拷贝数据的磁盘阵列装置、磁盘阵列控制器以及方法 |
WO2014081414A1 (en) * | 2012-11-20 | 2014-05-30 | Empire Technology Development Llc | Multi-element solid-state storage device management |
JP6142599B2 (ja) * | 2013-03-18 | 2017-06-07 | 富士通株式会社 | ストレージシステム、ストレージ装置および制御プログラム |
US9009204B2 (en) * | 2013-04-04 | 2015-04-14 | Hitachi, Ltd. | Storage system |
US20150032961A1 (en) * | 2013-07-23 | 2015-01-29 | Lexmark International Technologies S.A. | System and Methods of Data Migration Between Storage Devices |
CN103914264B (zh) * | 2014-03-12 | 2017-09-12 | 汉柏科技有限公司 | 一种矩阵硬盘的数据存储方法及系统 |
US9785348B2 (en) * | 2014-05-28 | 2017-10-10 | International Business Machines Corporation | Balancing usage of real and virtual space to avoid out-of-space conditions in storage controllers |
US10324662B2 (en) | 2017-08-28 | 2019-06-18 | International Business Machines Corporation | Rebalancing of the first extents of logical volumes among a plurality of ranks |
US11216203B2 (en) * | 2017-09-27 | 2022-01-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and reallocation component for managing reallocation of information from source to target memory sled |
US11249852B2 (en) | 2018-07-31 | 2022-02-15 | Portwonx, Inc. | Efficient transfer of copy-on-write snapshots |
US11354060B2 (en) | 2018-09-11 | 2022-06-07 | Portworx, Inc. | Application snapshot for highly available and distributed volumes |
US11163476B2 (en) * | 2019-10-04 | 2021-11-02 | International Business Machines Corporation | Dynamic rebalancing of free space between storage pools |
US11494128B1 (en) | 2020-01-28 | 2022-11-08 | Pure Storage, Inc. | Access control of resources in a cloud-native storage system |
US11531467B1 (en) | 2021-01-29 | 2022-12-20 | Pure Storage, Inc. | Controlling public access of resources in a secure distributed storage system |
US11733897B1 (en) | 2021-02-25 | 2023-08-22 | Pure Storage, Inc. | Dynamic volume storage adjustment |
US11520516B1 (en) | 2021-02-25 | 2022-12-06 | Pure Storage, Inc. | Optimizing performance for synchronous workloads |
US11726684B1 (en) | 2021-02-26 | 2023-08-15 | Pure Storage, Inc. | Cluster rebalance using user defined rules |
JP7429214B2 (ja) * | 2021-10-07 | 2024-02-07 | 株式会社日立製作所 | ストレージシステム及びストレージシステムにおけるデータ複製方法 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6491221A (en) | 1987-09-30 | 1989-04-10 | Sharp Kk | Connecting circuit for precharging bus |
JPH01191221A (ja) * | 1988-01-26 | 1989-08-01 | Nec Corp | 磁気ディスク領域の動的割り当て管理方式 |
JPH0438540A (ja) | 1990-06-05 | 1992-02-07 | Toshiba Corp | メモリ管理方式 |
JP3155836B2 (ja) | 1992-10-08 | 2001-04-16 | 富士通株式会社 | ディスクアレイ装置 |
JPH06187227A (ja) | 1992-12-16 | 1994-07-08 | Hitachi Ltd | 記憶装置とメモリ管理方法 |
JP3239669B2 (ja) | 1995-02-20 | 2001-12-17 | 株式会社日立製作所 | 記憶制御装置及びその制御方法 |
JP2003005920A (ja) | 2001-06-22 | 2003-01-10 | Nec Corp | ストレージシステム、データ再配置方法及びデータ再配置プログラム |
JP4175788B2 (ja) | 2001-07-05 | 2008-11-05 | 株式会社日立製作所 | ボリューム制御装置 |
US7162600B2 (en) * | 2005-03-29 | 2007-01-09 | Hitachi, Ltd. | Data copying method and apparatus in a thin provisioned system |
JP2003186713A (ja) | 2001-12-14 | 2003-07-04 | Ricoh Co Ltd | 画像処理装置 |
JP2003186712A (ja) | 2001-12-14 | 2003-07-04 | Ricoh Co Ltd | 画像処理装置 |
JP4301822B2 (ja) * | 2003-01-24 | 2009-07-22 | 富士通株式会社 | 偏波モード分散補償機能を有する光増幅器 |
JP4418286B2 (ja) * | 2003-07-14 | 2010-02-17 | 富士通株式会社 | 分散型ストレージシステム |
US7395369B2 (en) | 2004-05-18 | 2008-07-01 | Oracle International Corporation | Distributing data across multiple storage devices |
US20060020691A1 (en) * | 2004-07-20 | 2006-01-26 | Hewlett-Packard Development Company, L.P. | Load balancing based on front-end utilization |
US7296115B2 (en) * | 2004-09-17 | 2007-11-13 | Hitachi, Ltd. | Method of and system for controlling attributes of a plurality of storage devices |
JP2006293850A (ja) | 2005-04-13 | 2006-10-26 | Hitachi Ltd | リモートコピーシステムおよびリモートコピー方法 |
JP4699808B2 (ja) | 2005-06-02 | 2011-06-15 | 株式会社日立製作所 | ストレージシステム及び構成変更方法 |
JP2007072519A (ja) | 2005-09-02 | 2007-03-22 | Hitachi Ltd | ストレージシステム及びストレージシステムの制御方法 |
JP2007079885A (ja) | 2005-09-14 | 2007-03-29 | Hitachi Ltd | データ入出力負荷分散方法、データ入出力負荷分散プログラム、計算機システムおよび管理サーバ |
US7404036B2 (en) | 2005-11-23 | 2008-07-22 | International Business Machines Corporation | Rebalancing of striped disk data |
JP2007179156A (ja) | 2005-12-27 | 2007-07-12 | Hitachi Ltd | 記憶制御装置及び方法 |
JP2008015768A (ja) | 2006-07-05 | 2008-01-24 | Hitachi Ltd | 記憶システム並びにこれを用いたデータの管理方法 |
CN100428131C (zh) * | 2006-10-13 | 2008-10-22 | 清华大学 | 海量存储系统中的资源分配方法 |
JP4331746B2 (ja) | 2006-12-28 | 2009-09-16 | 株式会社日立製作所 | ストレージ装置構成管理方法、管理計算機及び計算機システム |
JP5379956B2 (ja) * | 2007-03-19 | 2013-12-25 | 株式会社日立製作所 | ストレージ装置及び記憶領域配置方法 |
JP2009037304A (ja) | 2007-07-31 | 2009-02-19 | Hitachi Ltd | Raidレベルを変更する機能を有したストレージシステム |
JP4990066B2 (ja) | 2007-08-21 | 2012-08-01 | 株式会社日立製作所 | 論理ボリュームのペアを利用したデータ保存の方式を変更する機能を備えたストレージシステム |
JP5142629B2 (ja) | 2007-08-22 | 2013-02-13 | 株式会社日立製作所 | 仮想ボリュームのバックアップを行うストレージシステム及び方法 |
JP4961319B2 (ja) * | 2007-10-11 | 2012-06-27 | 株式会社日立製作所 | 仮想ボリュームにおける仮想領域に動的に実領域を割り当てるストレージシステム |
JP4808747B2 (ja) | 2008-06-03 | 2011-11-02 | 株式会社日立製作所 | ストレージサブシステム |
-
2009
- 2009-04-23 US US12/594,226 patent/US8751767B2/en active Active
- 2009-04-23 JP JP2011510144A patent/JP5801189B2/ja active Active
- 2009-04-23 WO PCT/JP2009/058593 patent/WO2010122679A1/ja active Application Filing
- 2009-04-23 CN CN200980157683.9A patent/CN102511030B/zh active Active
- 2009-04-23 EP EP09820061.1A patent/EP2302498B1/en not_active Not-in-force
Also Published As
Publication number | Publication date |
---|---|
US8751767B2 (en) | 2014-06-10 |
JPWO2010122679A1 (ja) | 2012-10-25 |
EP2302498A4 (en) | 2011-08-17 |
WO2010122679A1 (ja) | 2010-10-28 |
CN102511030A (zh) | 2012-06-20 |
EP2302498B1 (en) | 2014-11-12 |
US20110185139A1 (en) | 2011-07-28 |
JP5801189B2 (ja) | 2015-10-28 |
EP2302498A1 (en) | 2011-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102511030B (zh) | 计算机系统及其控制方法 | |
JP5781925B2 (ja) | 計算機システム及びその制御方法 | |
CN102449607B (zh) | 具有多个闪存封装的存储系统 | |
CN102841761B (zh) | 存储系统 | |
CN102859499B (zh) | 计算机系统及其存储控制方法 | |
KR101502896B1 (ko) | 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법 | |
US9658779B2 (en) | Computer system and control method for computer system | |
US20070078901A1 (en) | Hierarchical storage system, and control method and program therefor | |
US10452302B2 (en) | Storage system and data control method | |
CN102123176B (zh) | 一种网络存储系统空间分配管理方法及装置 | |
EP1798636A2 (en) | Storage system and capacity allocation method therefor | |
CN103384877A (zh) | 包括闪存的存储系统和存储控制方法 | |
US20130318196A1 (en) | Storage system and storage control method for using storage area based on secondary storage as cache area | |
CN104115109A (zh) | 具有多个非易失性半导体存储单元的存储装置及其用于在具有较高残留寿命长度的存储单元中放置热数据而在具有较低残留寿命长度的存储单元中放置冷数据的控制方法 | |
US9760292B2 (en) | Storage system and storage control method | |
CN103051691B (zh) | 分区分配方法、装置以及分布式存储系统 | |
CN107092442A (zh) | 存储系统资源分配方法及装置 | |
CN105074674A (zh) | 计算机系统以及资源管理方法 | |
CN104317742A (zh) | 一种优化空间管理的自动精简配置方法 | |
CN103761053A (zh) | 一种数据处理方法和装置 | |
EP3537281A1 (en) | Storage controller and io request processing method | |
CN107533435A (zh) | 存储空间的分配方法及存储设备 | |
EP3889785B1 (en) | Stripe reconstruction method in storage system and striping server | |
CN111338579B (zh) | 基于存储池的读写缓存优化方法、系统、终端及存储介质 | |
CN101997919A (zh) | 一种存储资源的管理方法及管理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |