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

文档序号:8487621阅读:来源:国知局

[0444](S3406)
[0445]程序415从对象VVOL中选择上一次被选择的虚拟页的下一个虚拟页。然后,针对该被选择的虚拟页进行S3402以后的处理。
[0446]通过该迀移页表生成处理,能够生成用于页单位的迀移处理的移动页表411。
[0447]图35表示页单位的迀移处理的概要。
[0448]根据页单位的迀移处理,针对表411中登记的每个虚拟页,分配给该虚拟页的实际页内的数据要素被迀移到与该虚拟页对应的迀移目的地层内的自由的实际页。以迀移目的地实际页取代迀移源实际页对该虚拟页进行分配。如图35所示,通过该迀移处理,既有被迀移到更上位的层中的数据要素,也有被迀移到更下位的层中的数据要素。
[0449]根据针对哪个层设定怎样的层范围,能够在适合虚拟页的I/O频度的层中配置该虚拟页内的数据要素。
[0450]例如,假设对越上位的层设定越高的层范围,对越下位的层设定越低的层范围。具体地,假设例如层#11是高速且高信赖性的层(例如RVOL种类为“SSD”的层),并被设定为高的层范围。另外,假设例如层#13是低速且低信赖性的层(例如RVOL种类为“HDD-SATA”的层),并被设定为低的层范围。另外,假设例如层#12是VV0L#50的默认层,并被设定为中程度的层范围。该情况下,针对构成VV0L#50的虚拟页的写入对象数据要素暂时被写入默认层#12内的实际页。然后,在例如VV0L#50内的某个虚拟页#A的I/O频度成为纳入在高的层范围内程度的高I/O频度的情况下,分配给该虚拟页#A的实际页#X内的数据要素被从层#12迀移到层#11。另一方面,在例如VV0L#50内的某个虚拟页#B的I/O频度成为纳入在低的层范围内程度的低I/O频度的情况下,分配给该虚拟页#B的实际页#Y内的数据要素被从层#12迀移到层#13。
[0451]这样,通过对哪个层设定怎样的层范围、每个虚拟页的I/O频度的监视结果、页单位的数据迀移,能够将VVOL内的数据要素配置在适当的层(物理存储资源)中。
[0452]图36表示页单位的迀移处理的流程。
[0453](S3601)
[0454]重新配置程序415将分配给对象VVOL的池的“池状态”更新为“重新配置中”。
[0455](S3602)
[0456]程序415选择所生成的迀移页表411的最初的记录。
[0457](S3603)
[0458]程序415将所选择的记录中的“迀移状态”的值更新为“迀移中”。
[0459](S3604)
[0460]程序415从所选择的记录所表示的迀移目的地层中选择自由的实际页,向所选择的实际页(迀移目的地实际页)迀移存储在迀移源层内的迀移源实际页中数据要素。迀移源实际页是分配给对象虚拟页的实际页。
[0461](S3605)
[0462]程序415更新表。具体如下。
[0463]*程序415更新分配表407,从而以迀移目的地实际页取代迀移源实际页分配给被选择的记录所表示的虚拟页(以下,在S3605的说明中称作“选择虚拟页”)。即,程序415使迀移目的地实际页的ID、迀移目的地层的ID与选择虚拟页相对应。
[0464]*程序415更新选择虚拟页的I/O频度(例如激活的表409)。具体地,例如,选择虚拟页或者对象WOL的合计I/O数增加I。
[0465]*程序415更新表402 (图6)中的、迀移目的地层的“使用比例”的值。
[0466](S3606)
[0467]程序415将被选择的记录中的“迀移状态”的值更新为“已迀移”。
[0468](S3607)
[0469]程序415判断被选择的记录是否是虚拟页表411中末端的记录。如果该判断的结果是否定性的,则进行S3608,如果该判断的结果是肯定性的,则该迀移处理结束。
[0470](S3608)
[0471]程序415从虚拟页表411选择上一次被选择的记录的下一个记录。然后,针对该被选择的记录,进行S3603以后的处理。
[0472]以上是页单位的迀移处理的流程。而且,作为页单位的迀移处理的变形例,可以考虑到例如下述多个变形例中的至少一个。
[0473]*在S3602、S3603之间,可以假设数据要素已经迀移到了迀移目的地层中,程序415判断迀移目的地层的使用比例是否超出了迀移目的地层的层阈值。在判断为超出的情况下,程序415可以跳过S3603?S3606直接进行S3607(即,程序415针对被选择的记录可以不进行数据要素的迀移)。或者,在判断为超出的情况下,程序415可以通过针对以迀移目的地层为分配层的VVOL进行重新配置处理,在迀移目的地层中增加自由的实际页,然后开始S3603。
[0474]*可以在通过S3605更新迀移目的地层的使用比例时由程序415判断迀移目的地层的使用比例是否超出了迀移目的地层的层阈值。在判断为超出的情况下,程序415可以在管理装置107中显示警告,以及/或者,通过针对以迀移目的地层为分配层的VVOL进行重新配置处理,在迀移目的地层中增加自由的实际页。
[0475]〈层阈值的变更〉
[0476]UI控制程序413能够从管理者接受层阈值的变更。
[0477]图37表示层阈值的变更处理的流程。
[0478](S3701)
[0479]程序413接受池ID以及层ID、针对该层ID的变更后的层阈值。
[0480](S3702)
[0481]程序413判断与通过S3701接受到的池ID以及层ID对应的“使用比例”的值是否超出了变更后的层阈值。
[0482](S3703)
[0483]程序413在S3702的判断的结果是肯定性的情况下在管理装置107中显示错误。
[0484]〈使用比例的监视〉
[0485]如上所述,I/O控制程序414或者重新配置程序415在向实际页写入数据要素的情况下更新表402(图6)中的、具有该实际页的层的“使用比例”的值。然后,程序414或者415可以判断“使用比例”的更新后的值是否超出了与该层对应的“层阈值”的值。如果该判断的结果是肯定性的,则程序414或者415可以进行图38所示的阈值超出应对处理。
[0486]图38表示阈值超出应对处理的流程。
[0487]程序414或者415判断具有使用比例超出了层阈值的层的池的“池状态”是否为“重新配置中”(S3801)。
[0488]在S3801的判断的结果是肯定性的情况下,程序414或者415向管理装置107或者主机101发出警告(S3802)。该警告例如可以包括使用比例超出了层阈值的层的ID、具有该层的池的ID、该池的“池状态”的值(“重新配置中”)。
[0489]在S3801的判断的结果是否定性的情况下,程序414或者415向管理装置107或者主机101发出警告(S3803),执行使该层的使用比例成为该层的层阈值以下的重新配置处理(图28) (S3804)。而且,S3803中的警告例如可以包括使用比例超出层阈值的层的ID、具有该层的池的ID、意味着针对该池进行重新配置处理的消息。
[0490]〈数据要素的汇总〉[0491 ] 本实施例中,可以进行数据要素的汇总处理。
[0492]图21表示数据要素的汇总处理的概要。
[0493]I/O控制程序414或者重新配置程序415在针对VVOL#39定期性或者在将数据要素写入实际页时(例如,页单位的迀移处理结束时)检查VVOL#39内的数据要素的配置。具体地,例如,程序414或者415针对VVOL#39的各分配层#00、##01、#03计算存在VVOL#39内所有数据要素中多大程度的比例的数据要素(即保存比例)。程序414或者415判断VVOL#39的分配层#00、##01、#03中是否存在保存比例超出保存阈值的分配层。
[0494]在存在保存比例超出保存阈值的保存比例的分配层的情况下,程序414或者415将该分配层#00以外的分配层#01以及#03内的数据要素(VVOL#39内的数据要素)迀移到分配层#00 (具体地,例如分配层#00的自由的实际页)。
[0495]而且,在之后,例如程序414可以在针对VVOL#39内的虚拟页(尤其是未分配有实际页的虚拟页)发生写入的情况下,必定从分配层#00向该虚拟页分配实际页。
[0496]而且,如果将分配层#01以及#03内的数据要素(VVOL#39内的数据要素)迀移到分配层#00后导致分配层#00的使用比例超出分配层#00的层阈值,则程序414或者415可以进行下述的(X)或者(y)。
[0497](x)程序414不将分配层#01以及#03内的数据要素迀移到分配层#00。
[0498](y)程序414通过将对象VVOL以外的VVOL内的、分配层#00内的数据要素迀移到其它的层中,来在分配层#00中增加自由的实际页。
[0499]另外,本实施例中,能够在图28的S2807中自动决定层范围。层范围例如通过由MP执行未图示的层范围决定程序来决定。
[0500]以下,以一个池(在层范围的自动决定的说明中称作“对象池”)为例说明层范围决定处理。
[0501]图29表示层范围决定处理的概要。
[0502]设对象池具有层#01、#02以及#03这三个层。设层#01为最上位,层#02为第二上位,层#03为最下位的层。换言之,设层#01的性能潜力(potential)最高,层#02的性能潜力第二高,层#03的性能潜力最低。“性能潜力”是指重新配置处理中的数据要素配置权重。关于性能潜力,将在后面详细叙述。
[0503]层范围决定程序通过汇总分配有对象池的所有VVOL的度数分布来取得针对对象池的度数分布4300。度数分布的横轴为I/O频度(负荷),纵轴为虚拟页数。
[0504]层范围决定程序从上位层到下位层依次(或者从下位层到上位层依次)决定层范围。以下,设以层#01、#02、#03的顺序决定层范围。以下,叙述用于决定针对各层的层范围所进行的处理(而且,图29中,层范围的上限为菱形的标记,层范围的下限为圆形标记)。
[0505]《层#01的层范围I的决定》
[0506]*层范围决定程序将层#01的层范围I的上限决定为无限大。即,最上位的层的层范围的上限设定为无限大。
[0507]*层范围决定程序在度数分布4300中如箭头4301所示按照I/O频度从最高到较低累计虚拟页数。该累计值达到层#01的性能潜力的情况下,层范围决定程序将与即将到达层#01的性能潜力之前相加的虚拟页数对应的I/O频度设定为层(0-1)边界值(层#00与层#01的边界值)。
[0508]*层范围决定程序将比层(0-1)边界值低某种程度容限(margin)的I/O频度设定为层#01的层范围I的下限。具体地,例如,该下限是低于层(0-1)边界值预定比例的I/O频度(例如低10%的I/O频度)。
[0509]*层范围决定程序假定I/O频度纳入层范围I的所有虚拟页内的数据要素被迀移到了层#01,判断层#01的使用比例是否超出层#01的层阈值。在该判断的结果为肯定性的情况下,层范围决定程序将层范围I修正为层#01的使用比例不超出层#01的层阈值的大小。
[0510]《层#02的层范围2的决定》
[0511]*层范围决定程序将比层(0-1)边界值高某种程度容限(margin)的I/O频度设定为层#02的层范围I的上限。具体地,例如,该上限是高于层(0-1)边界值预定比例的I/O频度(例如高10%的I/O频度)。
[0512]*层范围决定程序在度数分布4300中从层(0-1)边界值到较低累计虚拟页数。该累计值达到层#02的性能潜力的情况下,层范围决定程序将与即将到达层#02的性能潜力之前相加的虚拟页数对应的I/O频度设定为层(1-2)边界值(层#01与层#02的边界值)。
[0513]*层范围决定程序将比层(1-2)边界值低某种程度容限(margin)的I/O频度设定为层#02的层范围2的下限。
[0514]*层范围决定程序假定I/O频度纳入层范围2的所有虚拟页内的数据要素被迀移到了层#02,判断层#02的使用比例是否超出层#02的层阈值。在该判断的结果为肯定性的情况下,层范围决定程序将层范围2修正为层#02的使用比例不超出层#02的层阈值的大小。
[0515]《层#03的层范围3的决定》
[0516]*层范围决定程序将比层(1-2)边界值高某种程度容限(margin)的I/O频度设定为层#03的层范围3的上限。
[0517]*层范围决定程序将层#02的层范围2的下限设定为O。即,最下位层的层范围的下限设定为O。
[0518]*层范围决定程序假定I/O频度纳入层范围3的所有虚拟页内的数据要素被迀移到了层#03,判断层#03的使用比例是否超出层#03的层阈值。在该判断的结果为肯定性的情况下,层范围决定程序将层范围3修正为层#03的使用比例不超出层#03的层阈值的大小。
[0519]如上决定层范围I?3。而且,之所以在层范围的上限以及/或者下限赋予层边界值的容限,是为了不随着I/o频度的变动频繁地发生数据要素的迀移。具体地,例如,如果没有容限、并且某虚拟页的I/o频度频繁超出或者低于层(0-1)边界值,则该虚拟页内的数据要素被频繁地迀移到层#01或者层#02。但是,如果如上所述设置了容限,则能够减少进行该种迀移的频度。
[0520]以下,进一步详细说明层范围决定处理。
[0521]图30表示层范围决定处理的流程。
[0522](S4401)
[0523]层范围决定程序针对对象池的各层计算性能潜力。以一个层(在S4401的说明中称作“对象层”)为例,性能潜力例如通过下述(式I)来计算。
[0524]性能潜力=性能等级X实效实际页数(实效容量)..?(式I)
[0525]该(式I)意味着即便性能等级低,只要执行实际页数多,性能潜力就高。
[0526]而且,“实效实际页数”是指构成对象层的所有实际页中的、在重新配置处理中可成为数据要素迀移目的地的实际页的总数。换言之,为了在池中写入重新配置处理中来自主机的写入对象数据要素,可以设置在重新配置处理中不会作为迀移目的地的实际页。
[0527]“性能等级”是指对象层的每单位容量(例如一个实际页)的性能潜力。性能等级例如基于通过下述(式2)计算的值K。
[0528]值K = RG性能/RG实效容量..?(式2)
[0529](式2)中的“RG性能”例如是指读出权重与写入权重的比为1:1时的RG性能,是成为对象层的根基的RG在每单位时间能够处理的最大I/O数。(式2)中的“RG实效容量”例如是指针对成为对象层的根基的RG的、保存数据要素的实际页的总数。而且,性能等级可以取代上述值K或者在其基础上参酌读出权重与写入权重的比。该比例如可以基于来自主机的I/O的状况、高速缓存的状况(例如,脏数据要素与清洁数据要素(已保存在实际页中的数据要素)的分配)、RG的RAID等级中的至少一个来进行变更。另外,性能等级可以由管理者通过手动来设定。
[0530](S4402)
[0531]层范围决定程序进行层边界值计算处理。即,层范围决定程序基于针对对象池的各层计算出的性能潜力来计算层边界值。
[0532](S4403)
[0533]层范围决定程序基于计算出的各层边界值针对各层计算层范围。
[0534](S4404)
[0535]层范围决定程序针对各层判断层范围是否不合适。以一个层(以下,在S4403以及S4405的说明中称作“对象层”)为例具体而言,例如,层范围决定程序假定I/O频度纳入对象层的层范围的所有虚拟页内的数据要素被迀移到了对象层,判断对象层的使用比例是否超出对象层的层阈值。
[0536](S4405)
[0537]在S4404的判断的结果为肯定性的情况下,层范围决定程序或者在管理装置107中显示警告,或者将层范围修正为对象层的使用比例不超出对象层的层阈值的大小。
[0538]图31表示图30的S4402中层边界值计算处理的流程。
[0539](S4501)
[0540]层范围决定程序通过汇总分配有对象池的所有VVOL的度数分布来取得对象池的度数分布。度数分布能够使用与分配有对象池的各VVOL对应的监视表409来取得。
[0541](S4502)
[0542]层范围决定程序计算对象池的I/O频度合计。具体地,层范围决定程序合计分配有对象池的所有VVOL的所有虚拟页的I/O频度。
[0543](S4503)
[0544]层范围决定程序基于通过S4502计算出的I/O频度合计计算针对对象池的各层的分配I/O频度。具体地,层范围决定程序将通过S4502计算出的I/O频度合计分配给对象池的多个层。具体地,例如,层范围决定程序基于通过图30的S4401计算出的、多个层的性能潜力的比,来对该多个层分配I/O频度合计。由此,例如在性能潜力的比为层#01:层#02:层#03 = 4:2:1、并且I/O频度合计为7000的情况下,层#01的分配I/O频度成为4000 (7000 X (4/ (4+2+1))),层 #02 的分配 I/O 频度成为 2000 (7000 X (2/ (4+2+1))),层 #01的分配 I/o 频度成为 1000 (7000 X (I/(4+2+1)))。
[0545](S4504)
[0546]层范围决定程序基于对象池的各层的分配I/O频度来决定层边界值。例如,以S4503的例子而言,层(0-1)边界值成为2000,层(1_2)边界值成为1000。
[0547]根据以上的层范围决定处理,能够基于各层的性能潜力和对象池的度数分布针对每个层设定对应于对象池整体的I/o状况的合适的层范围。
[0548]以上是针对实施例1的说明。
[0549]而且,在实施例1中,例如针对VVOL,默认层可以必定是VVOL的分配层中I/O性能(例如I/O速度或者响应时间)最大的层(例如分配层中最上位的层)。这是为了尽量增大VVOL的I/O性能。该情况下,写入VVOL的数据要素可以配置在尽量上位的分配层。但是,控制为分配层的使用容量不超出该分配层的层阈值。
[0550]另外,例如,可以与各池、或者多个池共通地设置退避用的层。无论是依照来自主机的写入命令的写入,还是重新配置处理中的迀移处理,通常来讲,程序414以及415都不向退避用的层写入数据要素。但是,程序414或者415可以在例如数据要素写入目的地的层(以下,在该段落的说明中称作“对象层”)的使用比例超出该层的层阈值的情况下,将对象层内的任意实际页内的数据要素(或者分配给对象层的层范围内未纳入有I/O频度的虚拟页的、对象层中实际页内的数据要素)迀移到退避用的层,由此在对象层中增加自由的实际页。该情况下,程序414或者415对分配给对象层内的迀移源实际页的虚拟页分配退避用的层内的迀移目的地实际页来取代该迀移源实际页。然后,程序414或者415可以向设定为纳入有分配给退避用层内实际页的虚拟页的I/O频度的层范围的层迀移保存在该退避用层内的实际页中的数据要素。退避用层例如可以为由与最上位的层种类相同的RVOL构成的层。
[0551]另外,可以不设定默认层。针对VVOL的来自主机101的写入对象数据要素可以写入尽量上位的层中。在上位的层的使用比例超出了层阈值的情况下,数据要素可以写入比该上位的层低一级的下位的层中。
[0552]另外,监视表409B以及409A中,409A可以不存在。该情况下,可以通过合计监视表409B所具有的每个虚拟页的I/O频度来计算VVOL的I/O频度。
[0553]另外,页单位的迀移处理可以中断。例如,重新配置程序415能够在从管理者接受到中断指示的情况
当前第5页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1