提供虚拟卷的存储系统及其控制方法_2

文档序号:8487621阅读:来源:国知局
,进行所述㈧以及(B)。
[0130]〈观点27〉
[0131]一种依照观点3至观点26的任一观点的存储系统,所述控制器在所述页单位迀移处理开始之后从所述主机接收确定所述第一虚拟页的写入命令,并且在正从所述第一实际页向所述第二实际页迀移数据的情况下将该迀移取消,向所述第二种实际页群内的实际页写入依照所述写入命令的数据,并且更新所述分配信息,从而以该写入目的地实际页取代所述第一实际页分配给所述第一虚拟页。
[0132]〈观点28〉
[0133]一种依照观点3至观点26的任一观点的存储系统,所述控制器在所述页单位迀移处理开始之后从所述主机接收确定所述第一虚拟页的写入命令,并且在正从所述第一实际页向所述第二实际页迀移数据的情况下,向所述第一实际页写入依照所述写入命令的数据,然后,重新开始从所述第一实际页向所述第二种实际页群内的实际页的数据迀移。
[0134]〈观点29〉
[0135]一种依照观点3至观点26的任一观点的存储系统,所述控制器在所述页单位迀移处理开始之后从所述主机接收确定所述第一虚拟页的写入命令,并且在正从所述第一实际页向所述第二实际页迀移数据的情况下,在该迀移结束后,依照所述分配信息向所述第二实际页写入依照所述写入命令的数据。
[0136]〈观点30〉
[0137]一种依照观点3至观点26的任一观点的存储系统,所述控制器在所述页单位迀移处理开始之后从所述主机接收确定所述第一虚拟页的写入命令,并且在正从所述第一实际页向所述第二实际页迀移数据的情况下,向所述第一实际页和所述第二实际页双方写入依照所述写入命令的数据。
[0138]〈观点31〉
[0139]一种依照观点3至观点30的任一观点的存储系统,所述控制器在所述页单位迀移处理开始之后从所述主机接收确定所述第一虚拟页的写入命令,并且在所述(A)以及(B)结束的情况下,依照所述分配信息,向所述第二实际页写入依照所述写入命令的数据。
[0140]〈观点32〉
[0141]一种依照观点3至观点31的任一观点的存储系统,所述第一虚拟页是进行了 I/O的最新时刻、即最终I/o时刻满足预定条件的虚拟页。
[0142]〈观点33〉
[0143]一种依照观点32的存储系统,所述预定条件是指最终I/O时刻是当前时刻之前过去预定时间以上的时间。所述第二种实际页群是比所述第一种实际页群更下位的实际页群。
[0144]〈观点34〉
[0145]一种依照观点3至观点33的任一观点的存储系统,所述第一虚拟页是发生依照顺序存取的I/o的虚拟页。所述第二种实际页群是比所述第一种实际页群更下位的实际页群。
[0146]〈观点35〉
[0147]一种依照观点3至观点34的任一观点的存储系统,所述控制器仅在预定的时间带进行所述监视信息的更新。所述控制器在每经过预定时间带时,保存所述监视信息。所述第一虚拟页是根据与被指定的时间带对应的监视信息所确定的I/o频度不适合预定条件的虚拟页。
[0148]〈观点36〉
[0149]一种与主机连接的存储系统的存储控制装置,其具有存储资源和控制器,所述控制器与所述存储资源以及所述主机连接。所述控制器向所述一台以上的主机提供一个以上的虚拟卷。所述虚拟卷是由多个虚拟页构成的虚拟逻辑卷。所述虚拟页是虚拟的存储区域。所述实际页是实体的存储区域。所述存储资源存储分配信息、监视信息和实际页群管理信息,其中,所述分配信息是表示对哪个虚拟页分配了哪个实际页的信息,所述监视信息是表示各虚拟页的l/0(lnput/0utput)频度的信息,所述实际页群管理信息是包含表示对每种实际页群设定的I/O频度范围信息的信息。所述控制器从所述主机接收写入命令,根据所述写入命令确定写入目的地虚拟页,更新所述分配信息,从而对所确定的虚拟页从多种实际页群中的某一个分配自由的实际页,在所分配的实际页中保存写入对象数据。所述控制器根据针对虚拟页或者分配给该虚拟页的实际页的1/0,更新所述监视信息中的、该虚拟页的I/O频度。所述实际页是实体的存储区域。实际页群具有多个实际页。所述控制器进行迀移处理,该迀移处理是包含以下处理(A)至(C)的处理:(A)确定根据所述监视信息所确定的I/O频度不符合预定条件的虚拟卷或者虚拟页,(B)将保存在分配给所确定的虚拟卷或者虚拟页的、第一种实际页群内第一实际页中的数据,迀移到第二种实际页群内的第二实际页,(C)更新所述分配信息,从而以所述第二实际页取代所述第一实际页向所述第一实际页分配目的地虚拟页、即第一虚拟页进行分配。所述预定条件是指纳入所述第一种实际页群的I/O频度范围。所述第二种实际页群是I/O频度范围纳入通过所述(A)所确定的虚拟卷或者虚拟页的I/O频度的实际页群。所述控制器进行I/O频度范围的决定处理,在该决定处理中,所述控制器基于所述监视信息决定各种实际页群的I/O频度范围。
[0150]上述的观点I以及2是以存储系统的控制方法为例的观点,观点3至35是以存储系统为例的观点,观点36是以存储控制装置为例的观点,它们之中的任何一种观点均能够成为存储系统、存储控制装置、存储控制方法、存储系统或者存储控制装置的控制方法、存储系统或者存储控制装置、计算机程序(例如用于存储控制的计算机程序或者在存储系统或者存储控制装置中执行的计算机程序)中的至少一个的观点。
[0151]以下,参照【附图说明】本发明多个实施例中涉及的存储系统。需要说明的是,在以下的说明中,存在由名称和ID的组合取代参照符号来表示对象的情况。例如,在逻辑卷由参照符号500表示的情况下,表述为“逻辑卷500”,在表示ID为00的逻辑卷的情况下,表述为“逻辑卷#00”。另外,下文中将保存在一个实际页中的数据称为“数据要素”。另外,存在将保存在分配给虚拟页的实际页中的数据要素以“虚拟页内的数据要素”或者与其类似的表达来表示的情况。
[0152]实施例1
[0153]图1表示本发明实施例1的概要。
[0154]存储系统103上连接有主机装置(以下称作主机)101。主机101可以为一台或者多台。存储系统103向主机101提供虚拟卷(以下称作VVOL(Virtual VOLume)) 203,具有多种层(tier) 303。
[0155]VV0L203是依照Thin Provis1ning的虚拟逻辑卷,即不以物理存储设备(以下称作TOEV)为根基的逻辑卷。VV0L203由多个虚拟页207构成。虚拟页207是虚拟的存储区域。设一个VV0L#00作为VV0L203。下文中,将VV0L#a内的虚拟页#b表述为“虚拟页# (a-b) ”。Thin Provis1ning的VV0L203作为具有虚拟容量的逻辑卷被提供给主机101,根据从主机101向具有虚拟页的地址的写入请求被分配了实际页。因此,除去为了满足虚拟容量而被分配了实际页的状态,分配给某一 VV0L203的所有实际页的总容量小于虚拟容量。一个VV0L203被提供给一台以上的主机101,在提供给多台主机101的情况下,由这些多台主机101共享。
[0156]层303由多个实际页209构成。实际页209是实体的存储区域。例如,设层#01和#02这两个层作为层303。下文中,将层#c内的实际页#d表述为“实际页#(c-d)”。而且,层303例如可由一个以上的实际卷(以下称作RVOL(Real VOLume))构成。RVOL是实体的逻辑卷,即以TOEV为根基的逻辑卷。一个池内的多个层303的每一个层在数据迀移前的状态下被设定为被一个或者多个VV0L203利用。
[0157]主机101通常是计算机,也可由其它的存储系统来取代计算机。主机101向存储系统103发送例如I/O (Input/Output)命令。I/O命令例如为写入命令或者读出命令,具有I/O目的地信息。I/O目的地信息是表示I/O目的地的信息,例如包括VV0L203的ID (例如LUN (Logical Unit Number:逻辑单元号))和 I/O 目的地的地址(例如 LBA (Logical BlockAddress:逻辑块地址))。根据1/0目的地信息能够确定1/0目的地VV0L203以及虚拟页
207。
[0158]设存储系统103从主机101接收写入命令,并基于该写入命令所具有的1/0目的地信息将虚拟页#(00-C)确定为写入目的地。如果所确定的虚拟页#(00-C)未被分配某一个实际页209,则存储系统103对该虚拟页207分配某一个自由(未分配状态)的实际页#(01-D),在所分配的实际页#(01-D)中写入依照写入命令的写入对象数据要素。
[0159]本实施例中,数据迀移以页单位进行。具体地,例如如图1所示,存储系统103进行以下的处理:
[0160]*将分配给虚拟页# (00-C)的实际页#(01_D)内的数据要素迀移到自由(未分配状态)的实际页#(02-E)
[0161]*将虚拟页# (00-C)的分配源从实际页# (01-D)变更为实际页#(02_E)
[0162]*将实际页# (01-D)的状态更新为自由(未分配状态)
[0163]是否进行数据迀移以及将迀移目的地层配置为哪一个层是基于后述的层范围来决定的。层范围以自动方式来决定。
[0164]以下,详细说明实施例1。
[0165]图2表示存储系统103的构成。
[0166]存储系统103具有多个TOEV105、与多个PDEV105连接的存储控制装置、以及电源单元100。
[0167]多个PDEV105包括多种PDEV,例如SSD(Solid State Drive:固态驱动器)以及 HDD(Hard Disk Drive:硬盘驱动器)。HDD 具有 HDD-FC(Fibre Channel:光纤通道)、HDD-SATA(Serial ATA:串行 ΑΤΑ)、以及 HDD-SAS (Serial Attached SCS1:串行连接 SCSI)等。
[0168]存储控制装置具有控制器和与控制器连接的多个CMPK(高速缓存封装:CacheMemory Package) 119。控制器具有多个 CHA (通道适配器:Channel Adapter) 111、多个 DKA(盘适配器:Disk Adapter) 113、多个 MPPK(微处理器封装:MicroProcessorPackage) 121、以及 SW(开关!Switch) 117。从冗余化的观点出发,CHA111、DKA113、MPPK121、Sffl 17以及电源单元100分别存在多个,但是它们中至少一者的数量不限于附图所示的2,可比2多或者少。CMPK119的数量可比2多。
[0169]电源单元100将基于来自商用电源电力的电力提供给各封装119、111、113、121以及 117。
[0170]CHAlll是与主机101连接的接口装置。CHAlll从主机101接收I/O命令(写入命令或者读出命令),并将接收到的I/O命令转发给多个MPPK121中的某一个。
[0171]CHAlll具有协议芯片112和LR(Local Router:本地路由器)114。协议芯片112进行用于与主机101的通信的协议转换。LR114将接收到的I/O命令转发给与根据该I/O命令具有的I/O目的地信息确定的I/O目的地对应的MPPK121。
[0172]DKA113是与HDD105连接的接口装置。DKA113从HDD105读出数据并转发给CMPKl 19 的 DRAM (Dynamic Random Access Memory:动态随机存取存储器),或者向 HDD105写入来自CMPKl 19的数据。
[0173]MPPK121是具有一个或者多个MP (微处理器:Microprocessor)的装置。MP处理来自CHAlll的I/O命令。
[0174]SWl 17 上连接有多个封装、即 CHA111、DKA113、CMPK119 以及 MPPK121。SWl 17 控制PK(封装-Package)间的连接。
[0175]CMPKl 19具有易失性存储器以及/或者非易失性存储器。CMPK119中具有暂时存储例如作为针对虚拟页207 (实际页209)的I/O的对象的数据要素的存储区域(以下称作高速缓存或者将其略称为CM)。另外,CMPK119中具有存储各种信息以及计算机程序的存储区域。关于信息以及计算机程序,将在下文中进行说明。
[0176]存储系统103上连接有管理装置107。管理装置107例如为具有显示装置以及输入装置的计算机。管理者能够从管理装置107对存储系统103进行各种设定。
[0177]图3表示存储系统103中各种存储区域的关系。
[0178]如图3所示,从下位到上位,管理一个以上的RG301、一个以上的池201、一个以上的 VV0L203。
[0179]RG301是RAID组(group)的略称。一个RG301由同一种类的PDEV构成。PDEV的种类例如由性能以及单位成本中的至少一者定义。性能是指例如数据的I/o的速度、或者响应时间(从由主机接受到命令起到返回响应为止的时间长度)。单位成本是保存单位大小(Size)的数据所需的价格(例如所谓的比特成本)。例如,RG#00由多个SSD构成,RG#01由多个HDD-SAS构成,RG#02由多个HDD-SATA构成。而且,构成一个RG的多个TOEV的容量例如是相同的。
[0180]池201是实际页207的集合。具体地,例如,池201由一个以上的RV0L205构成,各RV0L205由一个以上的实际页207构成。以下,对于构成池201的RV0L,将池VOL加以省略地表示为“ PVOL ”。
[0181]构成一个池201的实际页207进行了层次化。S卩,一个池201中存在多个层303。层303例如在每种RVOL中存在。例如,根据图3,由于RVOL的种类为3种,因此层303的数量也为3。因此,一个层303中包括与该层对应种类的RV0L205。具体地,例如,层#00是SSD这一种类,基于由SSD构成的RG301的RVOL属于层#00,层#01是HDD-SAS这一种类,基于由HDD-SAS构成的RG301的RVOL属于层#01,层#03是HDD-SATA这一种类,基于由HDD-SATA构成的RG301的RVOL属于层#03。而且,层303不一定严密地针对每种RVOL进行设置,基于类似种类的RG的多个RV0L205可属于同一层303。
[0182]VV0L203与一个以上的池201中成为分配源的池201相关联。另外,VV0L203与选择出的池201中可作为分配源使用的层(以下称作分配层)303相关联。另外,一个以上的分配层303之一作为默认的层303与VV0L203相关联。根据图3,VV0L#01的分配层是层#00 以及 #02 ο
[0183]另外,根据上述的说明,对于多个RVOL而言,只要它们属于同一层,则存在根基为一个RG的可能性,但是如果它们分别属于不同的层,则成为根基的RG各不相同。在对与同一层303相关联的一个或者多个VV0L203的多个虚拟页依次分配多个实际页的情况下,优选跨越与该层303相关联的RG来依次选择实际页。具体地,在从该层303所含多个RV0L205选择多个实际页的情况下,考虑到与RG的关系,依次从不同的RG依次选择实际页。由此,能够提高存取性能。
[0184]图4表示CMPKl 19所存储的信息以及计算机程序。需要说明的是,在本实施例中,采用表作为信息的一个例子,但是信息也可以是表以外的形式(例如队列形式)。
[0185]CMPKl 19存储层定义表401、层管理表402、池管理表403、VVOL管理表404、PVOL管理表405、分配表407、实际页管理表408、监视表409、度数分布表410、迀移页表411以及迀移定义表412作为信息。另外,CMPKl 19存储控制Π (User Interface:用户接口)的程序即UI控制程序413、控制I/O的程序即I/O控制程序414、以及进行重新配置的程序即重新配置程序415作为计算机程序。而且,这些表以及计算机程序中的至少一个也可以存储在CMPK119以外的存储资源。例如,至少一个计算机程序以及/或者迀移页表411可以存储在MPPK121内的存储器中。
[0186]下面说明各表。需要说明的是,在以下的说明中,对象使用ID来确定,但是也可以取代ID或者在其基础上,使用名称以及编号中的至少一个来确定。
[0187]图5表示层定义表401的构成。
[0188]层定义表401是表示层的定义的表。具体地,例如,表401表示RVOL种类与层ID的关系。根据表401,作为与RVOL种类“SSD”对应的层,准备附加有“00”这一 ID的层。
[0189]图6表不层管理表402的构成。
[0190]层管理表402是用于管理与层相关的信息的表。具体地,例如,表402针对每层具有池ID、层ID、层范围、PVOL ID、层阈值、使用比例、实际页ID。以一个层(以下,在图6的说明中称作“对象层”)为例,这些信息要素具体如下。
[0191]* “池ID”是具有对象层的池的ID。
[0192]* “层ID”是对象层的ID。根据层ID,成为属于对象层的PVOL的根基的I3DEV的种类被唯一确定。
[0193]* “层范围”是应该存在于对象层中的实际页的负荷(例如I/O频度)的范围。
[0194]* “PVOL ID”是属于对象层的PVOL的ID。
[0195]* “层阈值”是对象层的使用比例的阈值。
[0196]* “使用比例”是对象层的使用比例,即已分配的实际页的数量相对于构成对象层的实际页的数量的比例。
[0197]* “实际页ID”是属于对象层的所有实际页的ID。
[0198]根据图6的表402的例子,层阈值是针对每层进行了设定,但是也可以取而代之,对一个池设定一个层阈值,该一个层对于该一个池所具有的所有层是共通的。
[0199]图7表示池管理表403的构成。
[0200]池管理表403是用于管理与池相关的信息的表。具体地,例如,表403针对每个池具有池ID、层次化、重新配置、自动执行、重新配置执行周期、重新配置执行时刻、监视时间带以及池状态。以一个池(以下,图7的说明中称作“对象池”)为例,这些信息要素具体如下。
[0201]* “池ID”是对象池的ID。
[0202]*“层次化”是是否对对象池内的实际页进行层次化。“ON”意味着进行层次化(即、对象池中设有多个层),“OFF”意味着不进行层次化(即、对象池中不设层)。
[0203]* “重新配置”是是否对对象池内的数据要素进行重新配置。“ON”意味着进行重新配置,“OFF”意味着不进行重新配置。“ON”的情况下,分配到对象池的VVOL或者其虚拟页的I/O频度受到监视,“OFF”的情况下,分配到对象池的VVOL或者其虚拟页的1/0频度不受监视。关于1/0频度的监视,重要的是,如果实际不对分配给1/0目的地VVOL或者虚拟页的实际页进行1/0,则1/0频度不被更新,在对该分配的实际页进行1/0时,1/0频度得到更新。这一点在下文中叙述写入处理以及读出处理时也将进行说明。
[0204]* “自动执行”是对象池内的数据要素的重新配置是自动开始还是手动开始。“0N”意味着重新配置以自动形式开始,“OFF”意味着重新配置以手动形式开始。
[0205]* “重新配置执行周期”是进行对象池内的数据要素的重新配置的周期。例如,“I日”意味着每I日(24小时)开始进行重新配置。
[0206]* “重新配置执行时刻”是开始对象池内的数据要素的重新配置的时刻。
[0207]* “监视时间带”是对分配给分配到对象池的VVOL的实际页的1/0频度进行监视的时间带。
[0208]* “池状态”是对象池的状态。作为“池状态”的值,例如有“监视中”、“重新配置中”、“非监视中”。“监视中”意味着正
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1