存储系统和数据控制方法与流程

文档序号:13041703阅读:322来源:国知局
存储系统和数据控制方法与流程

本发明涉及存储系统和数据控制方法,特别优选应用于利用种类相同但特性不同的多个存储装置,在存储装置之间自动地重新配置数据的存储系统和数据控制方法。



背景技术:

近年来,因为hdd(harddiskdrive:硬盘驱动器)和ssd(solidstatedrive:固态硬盘)的普及,存储系统中搭载的存储装置的种类正在多样化。特别是关于ssd,存在slc(singlelevelcell:单层单元)、2bitmlc(multilevelcell:多层单元)或tlc(triplelevelcell:三层单元)等作为数据保存方式,具有即使是相同种类的存储装置、寿命(写入上限次数)和比特成本也不同这样的特性。

寿命一般而言是slc最长,按mlc、tlc的顺序变短。另外,比特成本是tlc最低,按mlc、slc的顺序提高。因此,搭载ssd的存储系统中,考虑该特性适当地配置数据是重要的。

专利文献1和2中,公开了管理或控制搭载了多个存储装置的存储系统的技术。具体而言,专利文献1中,公开了将多个存储装置作为池统一管理,对主机装置提供虚拟卷的技术。

另外,专利文献2中,公开了将hdd和ssd作为不同层级的存储装置进行管理,与来自主机装置的访问频度相应地自动地重新配置数据,提高高层级中的数据命中率,由此提高对主机装置的响应性能的技术。

现有技术文献

专利文献

专利文献1:美国专利第7447832号说明书

专利文献2:美国专利第8041682号说明书



技术实现要素:

发明要解决的课题

但是,专利文献1和2中记载的技术中,在对种类相同但特性(寿命和比特成本)不同的多个存储装置(例如ssd)混合的存储系统进行写入的情况下,没有考虑特性地对各存储装置写入数据。

不考虑ssd的特性进行写入时,因为写入上限次数少的ssd的寿命比写入上限次数多的ssd先耗尽,所以存在对寿命耗尽的ssd的更换次数增加、存储系统的应用管理成本提高的课题。

本发明是考虑以上方面得出的,提出一种能够延长种类相同但特性不同的存储装置的寿命、削减应用管理成本的存储系统和数据控制方法。

用于解决课题的技术方案

为了解决该课题,本发明中,包括:第一存储装置;与第一存储装置相比写入上限次数少但单位面积的存储容量多的第二存储装置;和处理器,其对提供给主机的虚拟卷从第一存储装置和第二存储装置分配存储区域;处理器对于从第二存储装置分配给虚拟卷的存储区域中的、主机的写入频度大于预先确定的写入阈值的存储区域,将保存在该存储区域中的数据重新配置在第一存储装置的存储区域。

另外,为了解决该课题,本发明中,一种包括第一存储装置、与第一存储装置相比写入上限次数少但单位面积的存储容量多的第二存储装置、和对提供给主机的虚拟卷从第一存储装置和第二存储装置分配存储区域的处理器的存储系统的数据控制方法,处理器执行:第一步骤,对于从第二存储装置分配给虚拟卷的存储区域中的、主机的写入频度多于预先确定的写入阈值的存储区域,将保存在该存储区域中的数据重新配置在第一存储装置的存储区域中;和第二步骤,对于从第一存储装置分配给虚拟卷的存储区域中的、主机的写入频度在写入阈值以下的存储区域,将保存在该存储区域中的数据重新配置在第二存储装置的存储区域。

发明效果

根据本发明,能够延长种类相同但特性不同的存储装置的寿命,削减应用管理成本。

附图说明

图1是第一实施方式中的计算机系统的整体结构图。

图2是存储系统的逻辑结构图。

图3是在tlc-mlc之间进行的页重新配置处理的概念结构图。

图4是在tlc-tlc之间进行的页重新配置处理的概念结构图。

图5是共享存储器的内部结构图。

图6是本地存储器的内部结构图。

图7是各页监视表的逻辑结构图。

图8是各奇偶校验组监视表的逻辑结构图。

图9是各奇偶校验组重新配置管理表的逻辑结构图。

图10是各池重新配置管理表的逻辑结构图。

图11是主机i/o处理的流程图。

图12是离台(destage)处理的流程图。

图13是寿命信息采集处理的流程图。

图14是阈值决定处理的流程图。

图15是重新配置处理的流程图。

图16是tlc-mlc间重新配置处理的流程图。

图17是写入再平衡处理的流程图。

图18是性能再平衡处理的流程图。

图19是新分配决定处理的流程图。

图20是推荐容量计算方法的概念图。

图21是参数设定画面的画面结构的一例。

图22是警告画面的画面结构的一例。

图23是第二实施方式中的计算机系统的整体结构图。

图24是存储系统的逻辑结构图。

图25是用写入降级(writedemotion)处理进行的页重新配置处理的概念结构图。

图26是各奇偶校验组重新配置管理表的逻辑结构图。

图27是各池重新配置管理表的逻辑结构图。

图28是重新配置处理的流程图。

图29是层间(层级间)重新配置处理的流程图。

图30是写入降级处理的流程图。

图31是新分配决定处理的流程图。

图32是写入可追加量和写入削减要求量的计算方法的概念图。

具体实施方式

以下参考附图说明本发明的一个实施方式。另外,以下说明的实施方式是用于实现本发明的一例,并不限定本发明的技术范围。另外,对于各图中共同的结构,附加相同的参考编号并省略其说明。另外,在各图中图示多个相同部件的情况下,像“201a”、“201b”这样附加字母来区别,另一方面,在总称的情况下像“201”这样省略字母。进而,本发明的实施方式可以实现为在通用计算机上运行的软件,也可以实现为专用硬件。另外,也可以实现为软件与硬件的组合。以下说明中,用表的形式说明管理用的信息,但管理用的信息也可以不用表的数据结构表达,有时也将“列表”、“db”、“队列”等简称为“信息”。另外,有时也将“程序”作为主语(动作主体)说明本发明的实施方式中的各处理。程序是通过由处理器执行而使用存储器和通信端口(通信控制装置)进行规定的处理,所以也可以用处理器作为主语说明。程序的一部分或全部可以用专用硬件实现,也可以模块化。各种程序也可以通过程序分发服务器或存储介质安装在各计算机中。

(1)第一实施方式

第一实施方式在仅搭载半导体存储器(ssd)作为存储装置的存储系统中,通过在特性不同的半导体存储器之间(例如tlc-mlc之间)重新配置数据,来实现半导体存储器的长寿命化并降低比特成本。进而,通过在相同种类的半导体存储器之间(例如tlc-tlc之间)重新配置数据,实现负荷分散而实现长寿命化。

(1-1)计算机系统的整体结构

图1表示第一实施方式中的计算机系统1的整体结构。计算机系统1由主机101、管理服务器102、网络103和存储系统104构成。主机101例如是一般的服务器,经由网络103与存储系统104的端口105连接。主机101对存储系统104发出读取请求或写入请求,执行数据的读写。

网络103例如是san(storageareanetwork:存储区域网络)或以太网(注册商标)等通信线路。管理服务器102经由网络103与存储系统104的维护i/f106或端口105连接。存储管理者操作管理服务器102,进行应用存储系统104所需的各种设定和管理。

接着说明存储系统104的内部结构。存储系统104具备端口105、维护i/f106、处理器封装体107、缓存存储器108、共享存储器109、驱动器111和驱动器112等。它们经由内部网络110相互可通信地连接。

缓存存储器108是为了提高存储系统104的i/o处理的吞吐率和响应性而将数据作为暂时的缓存保存用的能够高速访问的存储器。处理器封装体107具有本地存储器113和处理器114。其中,此处处理器封装体107图示了107a和107b这2个,但数量不限定于此。

处理器114为了处理来自主机101的读取请求和写入请求而执行驱动器111和112与缓存存储器108之间的数据传输处理。共享存储器109是存储处理器114处理读取请求或写入请求、或者执行存储系统104的功能(卷的复制功能等)所需的控制用的信息的存储器。共享存储器109保存由多个存储器封装体107(此处为107a和107b)的处理器114共享的信息。

本地存储器113是保存处理器114处理读取请求或写入请求、或者执行存储系统104的功能所需的控制用的信息的存储器。本地存储器113保存由各处理器114使用的信息。本地存储器113中例如保存由处理器114执行的程序。

驱动器111和112是由多个半导体存储器(ssd:solidstatedrive)构成的存储装置。此处的驱动器111是在1个单元中保存2比特信息的mlcssd(multilevelcellssd),驱动器112是在1个单元中保存3比特信息的tlc(triplelevelcellssd)。

mlcssd与tlcssd的不同,在如上所述每单元的信息量不同之外,寿命(写入上限次数)和比特成本也不同。寿命一般而言每单元的信息量越多则越短。因此mlcssd的寿命比tlcssd长。另外,比特成本是单位面积的信息量越多则被抑制为越低,所以mlcssd的比特成本比tlcssd高。

即,mlcssd寿命长但比特成本高,tlcssd寿命短但比特成本低。另外,此处设为使用mlcssd和tlcssd构成驱动器111和112,但不限于此,也可以使用slcssd(singlelevelcellssd)。

对于驱动器111和112,此后在强调种类相同但特性不同的存储装置的情况下有时将驱动器111称为mlcssd,将驱动器112称为tlcssd。另外,有时将由多个mlcssd构成的奇偶校验组称为mlcpg,将由多个tlcssd构成的奇偶校验组称为tlcpg。

(1-2)存储系统的逻辑结构

图2表示存储系统104的逻辑结构。处理器114对主机101提供的虚拟卷202a和202b是被主机101识别的逻辑的存储区域,也是作为由主机101发出读取请求或写入请求的对象的存储区域。

池(pool)204由1个以上的池卷206a~206e构成。池卷206a~206e分别由mlcssd或tlcssd的某一方的存储区域构成。由一个或多个池卷206a~206e形成奇偶校验组(pg:paritygroup)205a或205b。

另外,此处的奇偶校验组205a仅由mlcssd构成,奇偶校验组205b仅由tlcssd构成,但不限于此,也可以由mlcssd和tlcssd混合构成1个奇偶校验组。池卷206切分出奇偶校验组205的一部分或全部区域使用。

处理器114在例如主机101对虚拟卷202a发出了写入请求的情况下,对于该虚拟卷202a中作为写入请求的对象的虚拟存储区域,从池204中分配规定单位(页)的未使用的实际存储区域。

另外,页是写入数据时的最小单位的存储区域。此处将对虚拟卷202a或202b分配的虚拟页图示为201a~201e,将对这些页201a~201e分配的池卷206a~206e中的实际页图示为207a~207f。

下次由主机101对同一页201a发出了读取请求或写入请求的情况下,处理器114对于已分配的池卷206a的存储区域207a执行i/o处理,由此能够像主机101对虚拟卷202a执行i/o处理一样进行处理。

即,使用虚拟卷202a或202b,仅对使用的部分分配卷206a~206e的存储区域(页)207a~207f,能够有效地使用有限的存储容量。

此处,在构成各虚拟卷202a或202b的每个页201,来自主机101的单位时间的写入次数(将其称为写入频度)不同。因此,例如通过将写入频度高的页201a配置在由特性上写入上限次数多的mlcssd构成的奇偶校验组205a中,能够延长tlcssd这样写入上限次数少的存储装置的寿命。

上述重新配置,具体而言通过将页207c中保存的数据复制至未使用的页207b,将虚拟卷202a的页201c与池卷206b的页207c的关联变更为虚拟卷202a的页201c与池卷206a的页207b的关联而执行。

(1-3)页配置处理的概念结构

图3表示在tlc-mlc之间进行的页重新配置处理的概念结构。此处在由mlcssd构成的奇偶校验组(以下称为mlcpg)205a与由tlcssd构成的奇偶校验组(以下称为tlcpg)205b之间重新配置页301。页301的重新配置目标基于对mlcpg205a和tlc205b中的每个页301采集的监视信息决定。

具体而言,对每个页301在一定期间中采集写入次数,周期结束后,基于根据监视信息计算出的mlcpg205a和tlcpg205b各自的写入频度、和tlc-mlc间写入阈值302决定页301的重新配置目标。

图3中,将tlc-mlc间写入阈值302为2000以上的写入负荷的页301重新配置在mlcpg205a中(箭头303a),将不足2000的写入负荷的页301重新配置在tlcpg中(箭头303b)。

这样,在由寿命不同的ssd构成的mlcpg205a与tlcpg205b之间,将写入频度高的页重新配置在由写入上限次数多的ssd构成的mlcpg205a中,将写入频度低的页重新配置在由写入上限次数少的ssd构成的tlcpg205b中。

结果,能够削减由写入上限次数少的ssd构成的tlcpg205b中的写入次数,能够延长写入上限次数少的ssd(此处为tlcssd)的寿命。

图4表示在相同特性的驱动器之间(tlc-tlc之间或mlc-mlc之间)进行的页重新配置处理的概念结构。在相同特性的驱动器之间进行的页重新配置处理,是以调整由写入上限次数程度相同的ssd构成的奇偶校验组之间的写入频度为目的而进行的。

实际上,进行调整奇偶校验组之间的写入频度的写入再平衡、和调整因写入再平衡而失衡的奇偶校验组之间的i/o频度的性能再平衡这2种再平衡处理。

此处,说明在tlcpg之间进行的写入再平衡和性能再平衡。首先,在写入再平衡中,对每个奇偶校验组计算为了保证寿命而需要削减的写入频度(将其称为写入削减要求量)或在能够保证寿命的范围内可追加的写入频度(将其称为写入可追加量)。

此时,将写入削减要求量为正值的奇偶校验组作为写入削减pg205b,将写入可追加量为正值的奇偶校验组作为写入追加pg205c。然后,使写入削减pg205b的写入负荷高的页401a与写入追加pg205c的写入负荷低的页401b相互移动(箭头403),调整奇偶校验组之间的写入频度。

作为写入再平衡时的移动对象的页,基于根据监视信息得到的阈值决定。阈值中存在决定写入负荷高的页的阈值(将其称为写入削减阈值)405、和决定写入负荷低的页的阈值(将其称为写入追加阈值)406。写入再平衡时,在写入削减pg205b中,将写入削减阈值405以上的写入频度的页401a作为移动对象,在写入追加pg205c中,将写入追加阈值406以下的写入频度的页401b作为移动对象。然后,通过移动各页而调整写入频度。

对于移动的页数,通过计算1次页移动中移动的写入频度、预先计算为了满足作为目标的写入削减要求量所需的移动页数(将其称为计划移动页数)而决定。然后,进行相当于该计算出的计划移动页数的页的移动(重新配置)。

接着,在性能再平衡中,通过使读取频度在与写入再平衡相反的方向上与因写入再平衡而移动的写入频度相应地移动,而在奇偶校验组之间对各奇偶校验组的读取频度和写入频度合计得到的i/o频度进行调整。具体而言,使写入削减pg205b的读取负荷低的页402b和写入追加pg205c的读取负荷高的页402a移动(箭头404),调整奇偶校验组之间的读取频度。

作为性能再平衡时的移动对象的页,基于根据监视信息得到的阈值决定。阈值中存在决定读取负荷高的页的阈值(将其称为读取削减阈值)407和决定读取负荷低的页的阈值(将其称为读取追加阈值)408。

性能再平衡时,在写入削减pg205b中,将读取追加阈值408以下的读取频度的页402b作为移动对象,在写入追加pg205c中,将读取削减阈值407以上的读取频度的页402a作为移动对象。然后,通过移动各页而调整读取频度。对于移动的页数,与写入再平衡同样地,通过预先计算计划移动页数而决定。然后,进行相当于该计划移动页数的页的移动(重新配置)。

(1-4)存储器的内部结构

图5表示共享存储器109的内部结构。在共享存储器109中,保存各页监视表501、各奇偶校验组监视表502、各奇偶校验组重新配置管理表503、各池重新配置管理表504、缓存管理表505、动态映射表506和逻辑物理地址变换表507。

各页监视表501是管理包括i/o次数的各页的监视信息的表,各奇偶校验组监视表502是管理包括i/o次数的各奇偶校验组的监视信息的表。另外,各奇偶校验组重新配置管理表503是管理关于每个奇偶校验组的页重新配置的控制信息的表。

各池重新配置管理表504是管理关于每个池的页重新配置的控制信息的表,缓存管理表505是保持在缓存存储器108中保存数据时缓存存储器108中存在的数据的脏/干净(dirty/clean)状态管理的表。

另外,各池重新配置管理表504是在对虚拟卷202缓存写入的数据的情况下,将缓存存储器108的地址与识别(确定)对应的虚拟卷202的页201的地址关联地管理的表。

动态映射表506是管理虚拟卷202的各页201、与对各页201分配的池卷206的页207、与各页201的监视信息的对应关系的表。

逻辑物理地址变换表507是管理奇偶校验组、与池卷、与对应于保存池卷的数据的物理盘的奇偶校验组的地址的对应关系的表。

图6表示本地存储器113的内部结构。在本地存储器113中,保存主机i/o处理程序601、离台(destage)处理程序602、寿命信息采集处理程序603、阈值决定处理程序604、重新配置处理程序604a和新分配决定处理程序605。该各种程序由处理器114执行。

主机i/o处理程序601是在接收了来自主机101的i/o请求的情况下处理对虚拟卷202的读取请求或写入请求的程序。离台处理程序602是将缓存存储器108中的未反映在物理盘中的数据保存在物理盘中的程序。该处理与对来自主机101的i/o请求的处理非同步地执行。

寿命信息采集处理程序603是对驱动器111和112按规定周期发出命令采集寿命信息,将采集的信息反映在共享存储器109中的程序。阈值决定处理程序604是基于按规定周期采集的监视信息和驱动器111和112的寿命信息,计算用于页重新配置的阈值的程序。

重新配置处理程序604a是被阈值决定处理程序604调用的程序,是基于由阈值决定处理程序604决定的各种阈值重新配置页的程序。新分配决定处理程序605是与主机i/o处理程序601同步地执行、对于虚拟卷202中的新的虚拟页基于阈值决定实际页的分配目标的奇偶校验组205的程序。

(1-5)表结构

图7表示各页监视表501的逻辑结构。各页监视表501由页编号栏701、写入i/o计数栏702、读取i/o计数栏703、合计i/o计数栏704和新写入标志栏705构成。

在页编号栏701中保存识别页201的页编号,在写入i/o计数栏702中保存一定周期的写入次数。另外,在读取i/o计数栏703中保存一定周期的读取次数,在合计i/o计数栏704中保存一定周期的读取次数和写入次数的合计i/o次数。

周期与上述阈值决定处理程序604采集监视信息的周期相同,阈值决定处理程序604将该一定期间的监视信息作为处理对象。另外,在新写入标志栏705中保存表示页是否是新分配页的标志。

图8表示各奇偶校验组监视表502的逻辑结构。各奇偶校验组监视表502由奇偶校验组编号栏801、最大写入频度栏802、最小写入频度栏803、最大读取频度栏804、最小读取频度栏805、读取/写入比率栏806、写入可追加量栏807、写入削减要求量栏808、新写入i/o计数栏809、新写入比率栏810、平均i/o频度栏811和分配页数栏812构成。

在奇偶校验组编号栏801中保存识别奇偶校验组205的奇偶校验组编号,在最大写入频度栏802中保存奇偶校验组内的页的最大写入频度。另外,在最小写入频度栏803中保存奇偶校验组内的页的最小写入频度。

在最大读取频度栏804中保存奇偶校验组内的页的最大读取频度,在最小读取频度栏805中保存奇偶校验组内的页的最小读取频度。另外,在读取/写入比率栏806中保存对奇偶校验组的读取次数与写入次数的比率。

在写入可追加量栏807中保存在能够保证寿命的范围内对奇偶校验组可追加的写入频度,在写入削减要求量栏808中保存为了保证寿命而需要从奇偶校验组中削减的写入频度。在写入可追加量栏807和写入削减要求量栏808中保存基于奇偶校验组的写入频度和ssd的寿命信息计算出的值,它们都是正值。

写入可追加量栏807和写入削减要求量808中保存的值,在能够从ssd采集的寿命信息是写入可追加率和写入削减要求率的情况下,能够对下式1和2计算而算出。

其中,写入可追加率是以当前的写入频度为100%的可追加的写入频度的比例,写入削减要求率是以当前的写入频度为100%的为了维持寿命而应当削减的写入频度的比例。

[式1]

写入可追加量[ioph(inputoutputperhour]

=min(构成奇偶校验组的全部ssd的写入可追加率[%])

×奇偶校验组的写入频度[ioph]

……(1)

[式2]

写入削减要求量[ioph]

=max(构成奇偶校验组的全部ssd的写入削减要求率[%])

×奇偶校验组的写入频度[ioph]

……(2)

在新写入i/o计数栏809中保存对奇偶校验组的新写入次数,在新写入比率栏810中保存奇偶校验组中的写入处理中更新写入与新写入的比率。另外,在平均i/o频度栏811中保存奇偶校验组中的各页的平均i/o频度,在分配页数栏812中保存对奇偶校验组分配的页数。

图9表示各奇偶校验组重新配置管理表503的逻辑结构。各奇偶校验组重新配置管理表503由奇偶校验组编号栏901、介质类型栏902、移动源pg种类栏903、移动目标(目的地)pg栏904、写入削减阈值栏905、写入追加阈值栏906、读取削减阈值栏907、读取追加阈值栏908、计划移动页数栏909a和909b、实际移动页数栏910a和910b以及可新写入量栏911构成。

在奇偶校验组编号栏901中保存识别奇偶校验组的奇偶校验组编号,在介质类型栏902中保存构成奇偶校验组的ssd的特性的信息。另外,在移动源pg种类栏903中保存表示写入削减pg或者写入追加pg中的某一方的信息。移动源pg种类基于各奇偶校验组监视表502的写入可追加量807或写入削减要求量808中保存的信息决定。

具体而言,在写入可追加量栏807中保存了正值的情况下,在该奇偶校验组的移动源pg种类栏903中保存表示写入追加pg的信息。另外,在写入削减要求量栏808保存了正值的情况下,在该奇偶校验组的移动源pg种类903中保存表示写入削减pg的信息。

在移动目标pg栏904中保存页重新配置执行时的移动目标的奇偶校验组编号。对于移动目标的奇偶校验组编号,可以将重新配置进度最低的奇偶校验组决定为移动目标。重新配置进度能够使用计划移动页数栏909a和909b、和实际移动页数栏910a和910b,对下式3计算而算出。

[式3]

重新配置进度=实际移动页数/计划移动页数……(3)

在写入削减阈值栏905中保存用于决定写入削减pg中的写入再平衡时的移动对象页的阈值,在写入追加阈值栏906中保存用于决定写入追加pg中的写入再平衡时的移动对象页的阈值。

在读取削减阈值栏907中保存用于决定写入追加pg中的性能再平衡时的移动对象页的阈值,在读取追加阈值栏908中保存用于决定写入削减pg中的性能再平衡时的移动对象页的阈值。写入削减阈值、写入追加阈值、读取削减阈值和读取追加阈值能够对下式4计算而算出。

[式4]

写入削减阈值[ioph]=最大写入频度[ioph]×0.7

写入追加阈值[ioph]=最小写入频度[ioph]×1.3

读取削减阈值[ioph]=最大读取频度[ioph]×0.7

读取追加阈值[ioph]=最小读取频度[ioph]×1.3

……(4)

在计划移动页数(写入再平衡)栏909a中保存在由相同特性的ssd构成的奇偶校验组之间调整写入频度所需的页的移动数量,在计划移动页数(性能再平衡)栏909b中保存在由相同特性的ssd构成的奇偶校验组之间调整包括读取频度的i/o频度所需的页的移动数量。写入再平衡用的计划移动页数能够对下式5计算而算出。

[式5]

写入再平衡用的计划移动页数[页]

=目标移动量[ioph]÷因1次页移动而变化的i/o频度[ioph/页]

目标移动量[ioph]

=min(写入可追加量[ioph],写入削减要求量[ioph])

因1次页移动而变化的i/o频度[ioph/页]

=(写入追加pg的移动对象页的平均i/o频度[ioph]

-写入削减pg的移动对象页的平均i/o频度[ioph])÷2

……(5)

另外,性能再平衡用的计划移动页数能够对下式6计算而算出。

[式6]

性能再平衡用的计划移动页数[页]

=目标移动量[ioph]÷因1次页移动而变化的i/o频度[ioph/页]

目标移动量[ioph]

=((写入再平衡中移动的写入频度[ioph]×2)+

(写入追加pg的平均i/o频度[ioph]

-写入削减pg的平均i/o频度[ioph]))÷2

因1次页移动而变化的i/o频度[ioph]

=(写入追加pg的移动对象页的平均i/o频度[ioph]

-写入削减pg的移动对象页的平均i/o频度[ioph])÷2

……(6)

在实际移动页数(写入再平衡)栏910a中保存为了写入再平衡而移动至其他奇偶校验组的页数,在实际移动页数(性能再平衡)栏910b中保存为了性能再平衡而移动至其他奇偶校验组的页数。在可新写入量栏912中保存能够在奇偶校验组中处理的新写入次数。可新写入量能够对下式7计算而算出。

[式7]

可新写入量[i/o]

=奇偶校验组移动后的写入频度[ioph]

×新分配比率[%]×重新配置周期[h]

……(7)

图10表示各池重新配置管理表504的逻辑结构。各池重新配置管理表504由池编号栏1001、寿命控制重新配置周期栏1002、tlc-mlc间写入阈值栏1003、新写入阈值栏1004、工作负荷类型栏1005、同类驱动器间新分配策略栏1006、新分配缓冲栏1007和重新配置缓冲栏1008构成。

在池编号栏1001中保存识别池的池编号,在寿命控制重新配置周期栏1002中保存在池中执行寿命控制进行的页重新配置的周期。另外,在tlc-mlc间写入阈值栏1003中保存用于决定在tlcpg与mlcpg之间重新配置页时在哪一种奇偶校验组中配置页的阈值。tlc-mlc间写入阈值能够对下式8计算而算出。

[式8]

tlc-mlc间写入阈值[ioph]

=ave(全部tlcpg的极限写入阈值[ioph])

tlcpg的极限写入阈值[ioph]

=if(该奇偶校验组的移动源pg种类是写入追加pg?)

该奇偶校验组的写入频度[ioph]+写入可追加量[ioph]

elseif(该奇偶校验组的移动源pg种类是写入削减pg?)

该pg的写入频度[ioph]-写入削减要求量[ioph]

……(8)

在新写入阈值栏1004中保存在池中进行对新页的分配处理时用于决定从tlcpg和mlcpg中的哪一方进行对新页的实际页分配的阈值。新写入阈值可以由存储系统104按页移动时的惩罚(penalty)(=1页的数据大小)指定。

在工作负荷类型栏1005中保存从主机101对与池关联的虚拟卷发出的i/o请求的特性的信息。工作负荷类型中例如有writeintensive、readintensive、unknown等。

writeintensive指的是来自主机101的i/o请求中写入比率高,readintensive指的是来自主机101的i/o请求中读取比率高,unknown指的是来自主机101的i/o请求中读取/写入比率不明。工作负荷类型可以由用户指定,也可以由存储系统104自动决定。

在同类驱动器间新分配策略栏1006中保存用于决定在新分配处理中在tlcpg内或mlcpg内从哪个奇偶校验组进行对新页的实际页分配的信息。新分配策略中例如有在奇偶校验组之间顺序分配的轮询(round-robin)、从容量多的奇偶校验组分配的容量优先或从写入可追加量多的奇偶校验组分配的寿命优先。新分配策略可以由用户指定,也可以由存储系统104自动决定。

在新分配缓冲栏1007中保存在池中为了新分配处理而使用的缓冲相对于池容量的比率。在重新配置缓冲栏1008中保存在池中为了页重新配置处理而使用的缓冲相对于池容量的比率。另外,在该每池重新配置管理表504中,存在1个保存重新配置的控制信息的缺省值的条目,在没有用户指定的控制信息中保存缺省值。

(1-6)流程图

图11表示主机i/o处理的流程图。该主机i/o处理响应存储系统104接收来自主机101的i/o请求,通过处理器114与主机i/o处理程序601的协作而执行。为了便于说明,将处理主体视为主机i/o处理程序601进行说明。

首先,主机i/o处理程序601接收来自主机101的i/o处理请求时,判断接收的i/o处理请求是否是对虚拟卷202写入数据的写入请求(s1101)。

是写入请求的情况下(s1101:是),主机i/o处理程序601参考动态映射表506,判断是否已对写入对象的虚拟页分配了实际页。然后,未分配的情况下,执行分配未使用的实际页的新分配决定处理(s1109)。新分配决定处理的详情在后文中叙述(图19)。

执行新分配决定处理之后,接着主机i/o处理程序601确认虚拟卷202中的与写入对象的地址对应的区域是否已在缓存存储器108中获取,未获取的情况下获取缓存存储器108中的区域(s1110)。

接着,主机i/o处理程序601对主机101通知发送写入用的数据。主机i/o处理程序601在从主机101发送数据时,将该数据写入缓存存储器108中获取的区域(s1111)。然后,主机i/o处理程序601在缓存管理表505中将表示是对驱动器111或112的写入未完成的区域的脏标志设定为on。

此处,脏标志是表示仅在缓存存储器108中保存了数据、在驱动器111或112中尚未保存的状态的信息。脏标志在管理缓存存储器108的区域的缓存管理表505中被设定为on或of。缓存管理表505在后述的离台处理(图12)中被参考。

然后,在脏标志为on的情况下,在缓存存储器108中的区域中保存的数据被写入驱动器111或112。写入驱动器111或112之后,将脏标志设定为off,包括与读取处理对应地将从驱动器111或112读取的数据保存在缓存存储器108中的情况,在缓存管理表505中将干净标志设定为on。

这样,缓存管理表505至少管理与缓存存储器108中的地址对应的虚拟卷202的地址、和缓存存储器108中的数据的状态。其中,与缓存存储器108的地址对应的虚拟卷202的地址,仅在为了放置虚拟卷202的数据而获取缓存存储器108中的区域的情况下,保存有效值即虚拟卷202的地址。

进行以上处理之后,主机i/o处理程序601对主机101通知i/o处理(写入处理)已完成(s1112),结束本处理。

返回步骤s1101,主机i/o处理程序601在从主机101接收的i/o请求是从虚拟卷202读取数据的读取请求的情况下(s1101:否),参考缓存管理表505,判断与读取请求对应的虚拟卷202中的地址对应的数据是否被保存在缓存存储器108中(s1102)。

与读取请求对应的虚拟卷202中的地址对应的数据被保存在缓存存储器108中的情况称为缓存命中。缓存命中的情况下(s1102:是),主机i/o处理程序601对主机101传输缓存存储器108中的数据(s1108),对主机101通知i/o处理(读取处理)完成,结束本处理。

与此相对,缓存未命中的情况下(s1102:否),主机i/o处理程序601在缓存存储器108中确保用于保存与读取对象的虚拟卷202的地址对应的数据的区域(s1103)。接着,主机i/o处理程序601参考动态映射表506,确认是否从池204对读取对象的虚拟卷202的地址分配了实际页。

对虚拟卷202未分配实际页的情况下,主机i/o处理程序601参考动态映射表506,使用保存缺省值的页计算缺省值的保存页的驱动器111或112的地址,从驱动器111或112对缓存存储器108的区域传输缺省值(s1105)。

此处,在缺省值的情况下,对于动态映射表506的与虚拟卷202和逻辑地址对应的池卷编号和逻辑地址,设定存在缺省值保存页的池卷编号和逻辑地址。缺省值保存页在池204中存在1个以上即可。如果考虑容量效率,则池204中存在1或2个缺省值页。

与缺省值保存页的地址关联的虚拟卷202的逻辑地址,在从主机101新写入数据时,与写入主机101的数据用的页中尚未与任何虚拟卷202的地址关联的未使用的页重新关联。

与此相对,对虚拟卷202已分配实际页的情况下,主机i/o处理程序601参考动态映射表506,取得池卷编号和逻辑地址,进而参考逻辑物理地址变换表507,计算物理驱动器编号和物理起始地址,由此计算保存了与读取对象的虚拟卷202的地址对应的数据的驱动器111或112的地址(s1104)。

接着,主机i/o处理程序601从计算出的地址对缓存存储器108中的区域传输数据(s1105)。然后,在读取时参考各页监视表501,使读取i/o计数的数值增加(s1106)。

然后,主机i/o处理程序601对主机101传输从驱动器111或112保存至缓存存储器108中的数据(s1107),并且对主机101通知i/o处理(读取处理)已完成,结束本处理。

通过以上处理,能够进行主机i/o处理,并且采集必要的监视信息。

图12表示离台处理的流程图。该离台处理与主机i/o处理(图11)非同步地、通过处理器114与离台处理程序602的协作适当地执行。为了便于说明,将处理主体视为离台处理程序602进行说明。

首先,离台处理程序602参考缓存管理表505,确认脏标志的on或off,判断缓存存储器108中是否存在尚未写入驱动器111或112的未反映数据(s1201)。

离台处理程序602在缓存存储器108中存在未反映数据的情况下,从缓存管理表505取得虚拟卷编号和逻辑地址。然后,基于该虚拟卷编号和逻辑地址参考动态映射表506,取得池卷编号和逻辑地址。

此时,池卷编号和逻辑地址是缺省值保存页的地址的情况下,离台处理程序602为了写入新数据而从动态映射表506新分配空白页。然后,将该分配页的池卷编号和逻辑地址与动态映射表506的对应的虚拟卷编号和逻辑地址关联地保存。

已分配了页的情况下,将与缺省值的池卷编号和逻辑地址不同的池卷编号和逻辑地址的值与虚拟卷的逻辑地址关联地保存。离台处理程序602取得池卷编号和逻辑地址之后,参考逻辑物理地址变换表507,计算出驱动器111或112的地址(s1202)。

接着,离台处理程序602对计算出的驱动器111或112的地址写入缓存存储器108中的未反映数据(s1203)。然后,参考与动态映射表506的页编号对应的各页监视表501,使写入i/o计数的数值增加(s1204)。

接着,离台处理程序602参考各页监视表501的新写入标志栏705,判断离台处理对象的页是否是新分配页(s1205)。是新分配页的情况下(s1205:是),离台处理程序602参考与该页的保存目标的奇偶校验组对应的各奇偶校验组监视表502,使新写入i/o计数的数值增加(s1206)。

与此相对,离台处理程序602在离台处理对象的页不是新分配页的情况下(s1205:否),转移至步骤s1201。在步骤s1201中离台处理程序602判断缓存存储器108中是否进而存在未反映数据。然后,不存在未反映数据的情况下(s1201:否),结束本处理。

通过以上处理,能够将缓存存储器108中的数据非同步地保存在驱动器111或112中,并且采集必要的监视信息。

图13是寿命信息采集处理的流程图。该寿命信息采集处理通过处理器114与寿命信息采集处理程序603的协作按一定周期执行。为了便于说明,将处理主体视为寿命信息采集处理程序603进行说明。

首先,寿命信息采集处理程序603对驱动器111或112发出寿命采集的命令(s1301)。接着,寿命信息采集处理程序603接收写入可追加率或写入削减要求率作为寿命信息(s1302)。然后,将接收到的寿命信息保存在本地存储器113中(s1303),结束本处理。

通过以上处理,能够从驱动器111或112采集寿命信息。

图14是阈值决定处理的流程图。该阈值决定处理通过处理器114与阈值决定处理程序604的协作按一定周期执行。一定周期的信息被保存在各池重新配置管理表504的寿命控制重新配置周期栏1002中。为了便于说明,将处理主体视为阈值决定处理程序604进行说明。

首先,阈值决定处理程序604判断对于全部奇偶校验组,每页的监视信息的统计是否已完成(s1401)。即判断在各奇偶校验组监视表502的各栏中是否保存了信息。

统计未完成的情况下(s1401:否),阈值决定处理程序604调用寿命信息采集处理程序603从驱动器111或112采集寿命信息(s1402),对每个奇偶校验组统计每页的监视信息(s1403)。统计已完成的情况下(s1401:是),阈值决定处理程序604计算用于页重新配置的各种阈值(s1404)。

此处计算出的各种阈值被保存在各奇偶校验组监视表502、各奇偶校验组重新配置管理表503和各池重新配置管理表504的各栏中。然后,阈值决定处理程序604调用重新配置处理程序604a执行重新配置处理之后(s1405),结束本处理。

通过以上处理,能够对每个奇偶校验组统计监视信息,基于统计的监视信息计算出各种阈值。然后,能够使用计算出的阈值执行重新配置处理。

图15是重新配置处理的流程图。该重新配置处理通过处理器114与被阈值决定处理程序604调用的重新配置处理程序604a的协作而执行。为了便于说明,将处理主体视为重新配置处理程序604a进行说明。

首先,重新配置处理程序604a基于用阈值决定处理程序604计算出的tlc-mlc间写入阈值,执行在tlcpg与mlcpg之间重新配置页的tlc-mlc间重新配置处理(s1501)。

通过该tlc-mlc间重新配置处理,能够延长tlcssd(驱动器112)的寿命。另外,能够削减比特成本。

接着,重新配置处理程序604a参考各奇偶校验组重新配置管理表503,基于写入再平衡用的计划移动页数,执行在由相同特性的ssd构成的奇偶校验组之间(tlcpg之间或者mlcpg之间)重新配置页的写入再平衡处理(s1502)。

通过该写入再平衡处理,能够在由相同特性的ssd构成的奇偶校验组之间分散写入负荷,使寿命平准化。

接着,重新配置处理程序604a参考各奇偶校验组重新配置管理表503,判断写入削减pg的写入再平衡用的计划移动页数是否在0以下(s1503)。写入削减pg的写入再平衡用的计划移动页数在0以下的情况下(s1503:是),重新配置处理程序604a判断写入频度的调整已完成,接着执行性能再平衡处理(s1504)。

与此相对,写入削减pg的写入再平衡用的计划移动页数大于0的情况下(s1503:否),重新配置处理程序604a在当前的奇偶校验组的结构中不能调整写入频度,不能维持寿命,所以显示警告画面,对用户通知为了保证寿命而应当追加的tlcssd或mlcssd的容量(s1505)。

通过以上处理,能够调整奇偶校验组之间的写入频度和读取频度。另外,在不能调整写入频度和读取频度的情况下能够对用户通知维持寿命所需的tlcssd或mlcssd的容量。

图16是tlc-mlc间重新配置处理的流程图。该tlc-mlc间重新配置处理通过处理器114与重新配置处理程序604a的协作而执行。为了便于说明,将处理主体视为重新配置处理程序604a进行说明。

首先,重新配置处理程序604a基于用阈值决定处理程序604计算出的tlc-mlc间写入阈值,将全部奇偶校验组内的各页重新配置在tlcpg或mlcpg中。此时,判断是否存在对于重新配置未判定的页(s1601)。

存在未判定的页的情况下(s1601:是),重新配置处理程序604a参考各奇偶校验组重新配置管理表503,判断该未判定的对象页所属的奇偶校验组的介质类型是否是tlc(s1602)。介质类型是tlc的情况下(s1602:是),重新配置处理程序604a判断对象页的写入频度是否在tlc-mlc间写入阈值以上(s1603)。

对象页的写入频度在tlc-mlc间写入阈值以上的情况下(s1603:是),重新配置处理程序604a将该页从tlcpg移动至mlcpg(s1604)。与此相对,对象页的写入频度不足tlc-mlc间写入阈值的情况下(s1603:否),重新配置处理程序604a不进行任何处理就转移至步骤s1601。

返回步骤s1602,介质类型是mlc的情况下(s1602:否),判断对象页的写入频度是否不足tlc-mlc间写入阈值(s1605)。对象页的写入频度不足tlc-mlc间写入阈值的情况下(s1605:是),重新配置处理程序604a将该页从mlcpg移动至tlcpg(s1606)。

与此相对,对象页的写入频度在tlc-mlc间写入阈值以上的情况下(s1605:否),重新配置处理程序604a不进行任何处理就转移至步骤s1601。重新配置处理程序604a在对于全部奇偶校验组内的各页结束判定时,结束本处理。通过以上处理,能够在tlc-mlc之间重新配置页,延长tlcssd(驱动器112)的寿命,并且削减比特成本。

图17是写入再平衡处理的流程图。该写入再平衡处理通过处理器114与重新配置处理604a的协作而执行。为了便于说明,将处理主体视为重新配置处理程序604a进行说明。

首先,重新配置处理程序604a基于用阈值决定处理程序604计算出的写入再平衡用计划移动页数、写入削减阈值和写入追加阈值,在由相同特性的ssd构成的奇偶校验组之间(tlcpg之间或者mlcpg之间)重新配置页。此时,判断是否存在对于重新配置未判定的页(s1701)。

不存在未判定的页的情况下(s1701:否),重新配置处理程序604a结束本处理。与此相对,存在未判定的页的情况下(s1701:是),重新配置处理程序604a参考各奇偶校验组重新配置管理表503,判断该未判定的对象页所属的奇偶校验组的移动源pg种类是否写入削减pg(s1702)。

对象页所属的奇偶校验组的移动源pg种类是写入削减pg的情况下(s1702:是),重新配置处理程序604a参考各页监视表501的写入i/o计数,取得该对象页的写入频度。然后,判断取得的写入频度是否在写入削减阈值以上(s1703)。

对象页的写入频度不足写入削减阈值的情况下(s1703:否),重新配置处理程序604a转移至步骤s1701。与此相对,对象页的写入频度在写入削减阈值以上的情况下(s1703:是),重新配置处理程序604a决定该对象页的移动目标的奇偶校验组。

决定移动目标的奇偶校验组时,重新配置处理程序604a参考各奇偶校验组重新配置管理表503,判断写入追加pg中是否存在写入再平衡用的实际移动页数不足写入再平衡用的计划移动页数的奇偶校验组(s1704)。

写入追加pg中存在写入再平衡用的实际移动页数不足写入再平衡用的计划移动页数的奇偶校验组的情况下(s1704:是),重新配置处理程序604a判断即使将写入负荷高的对象页移动至该奇偶校验组也能够维持寿命,将该奇偶校验组作为移动目标pg登记在各奇偶校验组重新配置管理表503中,将对象页移动至该奇偶校验组(s1705)。

与此相对,写入追加pg中不存在写入再平衡用的实际移动页数不足写入再平衡用的计划移动页数的奇偶校验组的情况下(s1704:否),重新配置处理程序604a对该对象页结束判定,转移至步骤s1701。

返回步骤s1702,对象页所属的奇偶校验组的移动源pg种类不是写入削减pg的情况下(s1702:否),即对象页所属的奇偶校验组的移动源pg种类是写入追加pg的情况下,重新配置处理程序604a参考各页监视表501的写入i/o计数栏702,取得该对象页的写入频度。然后,判断取得的写入频度是否不足写入追加阈值(s1706)。

对象页的写入频度在写入追加阈值以上的情况下(s1706:否),重新配置处理程序604a转移至步骤s1701。与此相对,对象页的写入频度不足写入追加阈值的情况下(s1706:是),重新配置处理程序604a决定该对象页的移动目标的奇偶校验组。

决定移动目标的奇偶校验组时的处理与以上步骤s1704和s1705相同所以省略说明。通过以上处理,能够在由相同特性的ssd构成的不同奇偶校验组之间重新配置页而分散写入负荷,使寿命平准化。

图18是性能再平衡处理的流程图。该性能再平衡处理通过处理器114与重新配置处理程序604a的协作而执行。为了便于说明,将处理主体视为重新配置处理程序604a进行说明。

另外,性能再平衡处理在使写入再平衡处理(图17)中调整的写入频度相同程度的读取频度的页在与写入再平衡处理中移动的方向相反的方向上移动这一点上不同于写入再平衡处理,其他基本的处理内容相同。

首先,重新配置处理程序604a基于用阈值决定处理程序604计算出的性能再平衡用的计划移动页数、写入削减阈值和写入追加阈值,在由相同特性的ssd构成的奇偶校验组之间(tlcpg之间或者mlcpg之间)重新配置页。此时,判断是否存在对于重新配置未判定的页(s1801)。

不存在未判定的页的情况下(s1801:否),重新配置处理程序604a结束本处理。与此相对,存在未判定的页的情况下(s1801:是),重新配置处理程序604a参考各奇偶校验组重新配置管理表503,判断该未判定的对象页所属的奇偶校验组的移动源pg种类是否写入削减pg(s1802)。

对象页所属的奇偶校验组的移动源pg种类是写入削减pg的情况下(s1802:是),重新配置处理程序604a参考各页监视表501的读取i/o计数,取得该对象页的读取频度。然后,判断取得的读取频度是否不足读取追加阈值(s1803)。

对象页的读取频度在读取追加阈值以上的情况下(s1803:否),重新配置处理程序604a转移至步骤s1801。与此相对,对象页的读取频度不足读取追加阈值的情况下(s1803:是),重新配置处理程序604a决定该对象页的移动目标的奇偶校验组。

决定移动目标的奇偶校验组时,重新配置处理程序604a参考各奇偶校验组重新配置管理表503,判断写入追加pg中是否存在性能再平衡用的实际移动页数不足性能再平衡用的计划移动页数的奇偶校验组(s1804)。

写入追加pg中存在性能再平衡用的实际移动页数不足性能再平衡用的计划移动页数的奇偶校验组的情况下(s1804:是),重新配置处理程序604a判断为即使将读取负荷低的对象页移动至该奇偶校验组也不会达到高负荷,将该奇偶校验组作为移动目标pg登记在各奇偶校验组重新配置管理表503中,将对象页移动至该奇偶校验组(s1805)。

与此相对,写入追加pg中不存在性能再平衡用的实际移动页数不足性能再平衡用的计划移动页数的奇偶校验组的情况下(s1804:否),重新配置处理程序604a对于该对象页结束判定,转移至步骤s1801。

返回步骤s1802,对象页所属的奇偶校验组的移动源pg种类不是写入削减pg的情况下(s1802:否),即对象页所属的奇偶校验组的移动源pg种类是写入追加pg的情况下,重新配置处理程序604a参考各页监视表501的读取i/o计数栏703,取得该对象页的读取频度。然后,判断取得的读取频度是否在读取削减阈值以上(s1806)。

对象页的读取频度不足读取削减阈值的情况下(s1806:否),重新配置处理程序604a转移至步骤s1801。与此相对,对象页的读取频度在读取削减阈值以上的情况下(s1806:是),重新配置处理程序604a决定该对象页的移动目标的奇偶校验组。

决定移动目标的奇偶校验组时的处理与上述步骤s1804和s1805相同所以省略说明。通过以上处理,能够在由相同特性的ssd构成的不同奇偶校验组之间重新配置页而分散读取负荷,使i/o频度平准化。

图19表示新分配决定处理的流程图。该新分配决定处理响应从主机101接收了对新虚拟页的写入请求,通过处理器114与新分配决定处理程序605的协作而执行。为了便于说明,将处理主体视为新分配决定处理程序605进行说明。

首先,新分配决定处理程序605参考各池重新配置管理表504,判断对新页的分配对象的虚拟卷202提供存储区域的池204的工作负荷类型是否是“unknown”(s1901)。

池204的工作负荷类型不是“unknown”的情况下(s1901:否),新分配决定处理程序605进而判断是否是“writeintensive”(s1906)。工作负荷类型是“writeintensive”的情况下(1906:是),新分配决定处理程序605预测对新页的写入频度多,将写入上限次数比较多的mlcpg设定为对新页的实际页的分配目标的奇偶校验组(s1907)。

与此相对,工作负荷类型是“readintensive”的情况下(s1906:否),新分配决定处理程序605预测对新页的写入频度少,将写入上限次数少的tlcpg设定为对新页的实际页的分配目标的奇偶校验组(s1904)。

返回步骤s1901,工作负荷类型是“unknown”的情况下(s1901:是),新分配决定处理程序605不知道来自主机101的i/o特性,所以预测对新页的将来的写入频度,决定分配目标。首先,计算新页的预测写入频度(s1902)。

例如新分配决定处理程序605通过采集来自主机101的每页的平均写入频度作为监视信息进行估算,计算出预测写入频度。

接着,新分配决定处理程序605参考各池重新配置管理表504,判断预测写入频度是否不足新写入阈值(s1903)。预测写入频度不足新写入阈值的情况下(s1903:是),新分配决定处理程序605将写入上限次数少的tlcpg设定为分配目标的奇偶校验组(s1904)。

与此相对,预测写入频度在新写入阈值以上的情况下(s1903:否),新分配决定处理程序605将写入上限次数多的mlcpg设定为分配目标的奇偶校验组(s1907)。

接着,新分配决定处理程序605对于设定为分配目标的特性的奇偶校验组,为了判断是否能够分配新页,而参考各奇偶校验组监视表502和各奇偶校验组重新配置管理表503,对设定为分配目标的特性的每个奇偶校验组判断可新写入量是否大于新写入i/o计数(s1905)。

存在可新写入量大于新写入i/o计数的奇偶校验组的情况下(s1905:是),新分配决定处理程序605为了从该奇偶校验组分配新页,而参考各页监视表501,对于该奇偶校验组中的某些页设定新写入标志(s1909),结束本处理。

与此相对,不存在可新写入量大于新写入i/o计数的奇偶校验组的情况下(s1905:否),新分配决定处理程序605因为超过了为了维持寿命能够新允许的写入频度,所以对用户通知推荐容量(s1908)。

然后,新分配决定处理程序605,为了从判断对象的奇偶校验组分配新页,而对于某些奇偶校验组中的某些页设定新写入标志(s1909),结束本处理。

通过以上处理,在从主机101接收了对新页写入数据的写入请求的情况下,能够考虑对新页的写入频度地,从由符合寿命特性的ssd构成的奇偶校验组对新页分配实际页。

(1-7)推荐容量计算方法的概念结构

图20表示对于来自主机101的写入频度为了保证寿命而推荐的写入上限次数不同的存储装置的容量比率的计算方法的原理。图20表示池204内的各页207(或者虚拟卷202中的各页201)的写入频度的分布。曲线图2007表示按左侧写入频度多的顺序将全部页207排列时的各页207的写入频度。纵轴是写入频度,横轴是页数。

tlc-mlc间写入阈值2005是决定在tlcpg和mlcpg中的哪一方配置页的阈值,tlc-mlc间写入阈值2005与曲线图2007的交点是tlc与mlc的推荐容量比率(2006)。tlc-mlc间写入阈值2005可以由用户指定,也可以由存储系统104计算。

由存储系统104计算的情况下,推荐容量比率能够使用客户需求的写入频度(=whost)、池204(或者虚拟卷202)容量(=c)和为了保证各ssd的寿命能够允许的写入频度的关系曲线图2001、2002,对下式9计算而算出。

此处,曲线图2001表示以为了保证寿命能够对单位容量允许的写入频度(=wtlc)为斜率的tlcssd的容量与能够允许的写入频度的关系。另外,曲线图2002表示以为了保证寿命能够对单位容量允许的写入频度(=wmlc)为斜率的mlcssd的容量与能够允许的写入频度的关系。

[式9]

tlcssd推荐容量

=(((wmlc×c)-whost)÷(wmlc-wtlc))÷c)

mlcssd推荐容量

=((c-tlc推荐容量)÷c)

……(9)

通过以上所述,能够计算出满足客户需求写入频度和池容量的tlcssd与mlcssd的容量比率。

(1-8)画面结构

图21表示对每个池设定参数时的画面结构的一例。池单位的gui画面2101由显示能够识别设定对象的池204的池编号的区域2102、设定寿命控制重新配置on/off的区域2103、设定将寿命控制重新配置设为on的情况下的详细设定on/off的区域2104、和设定详细设定的内容的区域2105构成。用本画面设定的信息被保存在各池重新配置管理表504的各栏中。

寿命控制重新配置区域2103的设定是off的情况下,阈值决定处理程序604不执行阈值决定处理,因此重新配置处理程序604a不执行页重新配置,但为了防止寿命控制的精度降低,与寿命控制重新配置on/off无关地采集监视信息。

寿命控制重新配置区域2103的设定是on的情况下,如上述说明所述进行页的重新配置。该情况下,详细设定区域2104的项目设定区域2105显示为可输入。详细设定区域2104的设定是off的情况下,对项目设定区域2105的各种参数设定缺省值或在存储系统104中自动计算出的值。

在重新配置周期区域2106中设定执行用于寿命控制的重新配置的周期。该周期能够由用户指定。例如用户指定为“7days”时,以7天周期执行页的重新配置。

在工作负荷类型区域2107中设定来自主机101的i/o特性。该i/o特性能够由用户指定。预先得知来自主机101的i/o特性的情况下,通过由用户指定i/o特性,能够明确地指定新分配目标的ssd的特性。

具体而言,指定了“writeintensive”的情况下,主机101的i/o特性是写入负荷高,所以从写入上限次数比较多的mlcpg对新页进行实际页的分配。

另外,指定了“readintensive”的情况下,主机101的i/o特性是写入负荷低,所以从写入上限次数少的tlcpg对新页进行实际页的分配。

另外,用户未得知主机101的i/o特性的情况下,用户指定“unknown”。该情况下,存储系统104对新页自动地决定实际页的分配目标的奇偶校验组。

在同类驱动器间新分配策略区域2108中,设定决定在对新页分配实际页时从tlcpg或mlcpg中的哪一种特性的奇偶校验组分配页的策略。

例如,用户指定了“轮询”的情况下,从各奇偶校验组均等地分配页。另外,指定了“容量优先”的情况下,优先从容量少的奇偶校验组分配页。另外,指定了“寿命优先”的情况下,优先从寿命长的奇偶校验组分配页。

在缓冲大小区域2109和2110中设定缓冲相对于特性是mlcpg的奇偶校验组的容量的比例。在新分配用区域2109中设定从特性是mlcpg的奇偶校验组分配新页时使用的缓冲。这具有防止在新分配时应当从mlcpg分配的写入负荷高的页因为mlcpg的剩余容量不足而从tlcpg分配的效果。

新分配缓冲每隔重新配置周期地重新获取。因此,新分配缓冲能够基于在周期内预计从主机101对新页写入的数据量估算最佳大小。

在重新配置缓冲用区域2110中设定页重新配置时使用的缓冲。用重新配置缓冲调整重新配置时单位时间能够移动的数据大小。因此,通过增加重新配置缓冲,具有增加重新配置时的吞吐率的效果。

图22表示存储系统104对用户通知的警告画面的画面结构的一例。警告画面能够对用户通知来自主机101的写入频度多、在当前的结构下ssd的寿命与目标期间相比变短或者搭载了对于保证寿命过剩的ssd。

显示画面的契机可以是在周期性执行的页重新配置处理完成后由存储系统104自动地显示,也可以通过用户对存储系统104的操作而在任意时刻显示。后者的情况下,基于进行任意操作时的监视信息计算出推荐容量。

池单位的gui画面2201由显示能够识别设定对象的池204的池编号的区域2202、和通知警告内容的区域2203构成。通知警告内容的区域2203由通知从当前的驱动器结构需要追加或能够削减的tlc或mlc的容量的区域2204和通知根据当前的来自主机101的i/o请求的信息推荐的mlc和tlc的容量的区域2205构成。其中,通知的容量的信息也可以用tlc与mlc的容量的比率表达。

(1-9)第一实施方式的效果

如上所述,根据第一实施方式中的存储系统104,通过在tlc-mlc之间重新配置页,能够在由寿命不同的ssd构成的奇偶校验组之间调整写入频度。另外,通过进行写入再平衡处理,能够在由相同特性的ssd构成的奇偶校验组之间调整写入频度。由此,能够将对寿命劣化严重的ssd的写入频度的页移动至寿命劣化轻微的ssd,削减ssd的维护更换次数。另外,能够削减存储系统104的成本。

(2)第二实施方式

第二实施方式在不仅搭载半导体存储器(ssd)、也搭载硬盘驱动器(hdd)作为存储装置的存储系统中,将存储装置(ssd和hdd)分类为与性能相应的层级,进行与来自主机的访问频度相应地将数据配置在适当层级的存储装置中的层级控制,在这一点上与第一实施方式不同。

(2-1)计算机系统的整体结构

图23表示第二实施方式中的计算机系统1a的整体结构。计算机系统1a在搭载了sas(serialattachedscsi:串行scsi)规格的hdd(驱动器2301)这一点和将ssd(驱动器111和112)设定为层1、将sas规格的hdd(驱动器2301)设定为层2、并且与各页的i/o频度相应地在层间重新配置数据这一点上与第一实施方式不同。

例如设定为从层1分配i/o频度为100[iops]的页,且设定为从层2分配i/o频度为10[iops]的页。另一方面,i/o频度为50[iops]的页从层2分配,i/o频度为20[iops]的页从层1分配。

该情况下,存储系统104a整体上仅能够发挥10(层2的上限ioph)+20=30[iops]的性能。于是,将i/o频度为50[ioph]的页从层2移动(重新配置)至层1时,变为存储系统104a整体上能够发挥50+20=70[iops]的性能。

(2-2)存储系统的逻辑结构

图24表示存储系统104a的逻辑结构。存储系统104a中,池卷206a~206c由mlcssd或tlcssd构成,池卷206d和206e由sashdd构成,各池卷206a~206e被分类为层1或2,这一点与第一实施方式不同。

然后,第二实施方式的存储系统104a在第一实施方式中说明的页的重新配置之外,还在由ssd构成的层1中来自主机101的写入负荷变高、不能保证ssd的寿命的情况下,执行将写入负荷高的例如页207d移动至层2的写入降级处理。由此能够防止ssd的寿命劣化。

(2-3)页配置处理的概念结构

图25表示用写入降级处理进行的页重新配置处理的概念结构。此处,在由mlcpg205a或tlcpg205b构成的层1、与由sashdd构成的奇偶校验组(以下称为saspg)205c构成的层2之间重新配置页301。写入降级处理在阈值决定处理时判断仅用层1内的页重新配置不能维持ssd的寿命的情况下执行。

具体而言,在阈值决定处理中计算出写入再平衡的计划移动页数之后,不能移动满足写入削减pg的写入削减要求量的页的情况下,基于不能移动的部分的写入频度,计算出写入降级处理的计划移动页数。然后,在执行写入再平衡时,从mlcpg205a或tlcpg205b将相当于写入降级处理的计划移动页数的写入频度在写入降级阈值2501以上的页移动至saspg205c。

(2-4)表结构

图26表示第二实施方式中的各奇偶校验组重新配置管理表503a的逻辑结构。各奇偶校验组重新配置管理表503a由各奇偶校验组重新配置管理表503(图9)的各栏、以及写入降级阈值栏2601、写入降级用计划移动页数栏2602、写入降级用实际移动页数栏2603和层级栏2604构成。

在写入降级阈值栏2601中保存用于决定写入降级处理对象的页的阈值,在写入降级用计划移动页数栏2602中保存因写入降级处理而要移动的页数。另外,在写入降级用实际移动页数栏2603中,保存因写入降级处理而已移动的页数。在层级栏2604中保存奇偶校验组所属的层级顺序(例如层1、层2、层3)。其中,此处层级顺序值越小的层由越高性能的驱动器构成。

图27表示第二实施方式中的各池重新配置管理表504a的逻辑结构。各池重新配置管理表504a由各池重新配置管理表504(图10)的各栏、以及层级间i/o阈值栏2701构成。在层级间i/o阈值栏2701中保存用于决定将页配置在哪一层的阈值。

(2-5)流程图

图28表示第二实施方式中的重新配置处理的流程图。该重新配置处理通过处理器114与被阈值决定处理程序604调用的重新配置处理程序604a的协作而执行。为了便于说明,将处理主体视为重新配置处理程序604a进行说明。

另外,作为前提,阈值决定处理程序604在阈值决定处理(图14)中计算出层级间i/o阈值和写入降级用计划移动页数,将各种阈值分别保存在各奇偶校验组重新配置管理表503a和各池重新配置管理表504a中。

首先,重新配置处理程序604a执行层间重新配置处理(s2801)。此处,重新配置处理程序604a参考各池重新配置管理表504a的层级间i/o阈值栏2701,决定配置对象页的层。

之后,重新配置处理程序604a与第一实施方式中的重新配置处理(图15)同样地执行tlc-mlc间重新配置处理(s1501),接着执行写入再平衡处理(s1502)。执行写入再平衡处理之后,重新配置处理程序604a参考各奇偶校验组重新配置管理表503a,判断写入降级用计划移动页数是否为0(s2802)。

写入降级用计划移动页数不是0的情况下(s2802:否),重新配置处理程序604a仅执行写入再平衡处理不能完全调整写入频度,所以执行写入降级处理(s2803)。之后,重新配置处理程序604a执行性能再平衡(s1504),结束本处理。

与此相对,写入降级用计划移动页数是0的情况下(s2802:是),重新配置处理程序604a不需要执行写入降级处理,所以执行性能再平衡(s1504),结束本处理。通过以上处理,在因为来自主机101的写入频度过多所以不能维持构成层1的ssd的寿命的情况下,能够将写入负荷高的页移动至层2,维持层1中的ssd的寿命。

图29表示层间重新配置处理的流程图。该层间重新配置处理通过处理器114与重新配置处理程序604a的协作而执行。为了便于说明,将处理主体视为重新配置处理程序604a进行说明。

首先,重新配置处理程序604a基于用阈值决定处理程序604计算出的层级间i/o阈值,将全部奇偶校验组中的各页重新配置在层1或2中。此时判断是否存在对于重新配置未判定的页(s2901)。

存在未判定的页的情况下(s2901:是),重新配置处理程序604a参考各奇偶校验组重新配置管理表503a,判断该未判定的对象页所述的层是否层2(s2902)。

对象页所属的层是层2的情况下(s2902:是),重新配置处理程序604a参考各池重新配置管理表504a,判断对象页的i/o频度是否在层级间i/o阈值以上(s2903)。

对象页的i/o频度在层级间i/o阈值以上的情况下(s2903:是),重新配置处理程序604a将对象页从层2移动至层1(s2904)。与此相对,对象页的i/o频度不足层级间i/o频度的情况下(s2903:否),重新配置处理程序604a不进行任何处理就转移至步骤s2901。

返回步骤s2902,对象页所属的层是层1的情况下(s2902:否),重新配置处理程序604a参考各池重新配置管理表504a,判断对象页的i/o频度是否不足层级间i/o阈值(s2905)。

对象页的i/o频度不足层级间i/o阈值的情况下(s2905:是),重新配置处理程序604a将对象页从层1移动至层2(s2906)。与此相对,对象页的i/o频度在层级间i/o频度以上的情况下(s2905:否),重新配置处理程序604a不进行任何处理就转移至步骤s2901。

重新配置处理程序604在对于全部奇偶校验组中的各页结束判定时,结束本处理。通过以上处理,能够与来自主机101的i/o频度和各层的性能相应地在各层中重新配置页。

图30表示写入降级处理的流程图。该写入降级处理通过处理器114与重新配置处理程序604a的协作而执行。为了便于说明,将处理主体视为重新配置处理程序604a进行说明。

首先,重新配置处理程序604a基于用阈值决定处理程序604计算出的写入降级用计划移动页数、写入削减阈值和写入降级阈值,在不同的层之间重新配置页。此时,判断是否存在对于重新配置未判定的页(s3001)。

不存在未判定的页的情况下(s3001:否),重新配置处理程序604a结束本处理。与此相对,存在未判定的页的情况下(s3001:是),重新配置处理程序604a参考各奇偶校验组重新配置管理表503a,判断该未判定的对象页所属的奇偶校验组的移动源pg种类是否是写入削减pg(s3002)。

对象页所属的奇偶校验组的移动源pg种类不是写入削减pg的情况下(s3002:否),即是写入追加pg的情况下,重新配置处理程序604a判断不需要对对象页执行写入降级处理,转移至步骤s3001。

与此相对,对象页所属的奇偶校验组的移动源pg种类是写入削减pg的情况下(s3002:是),重新配置处理程序604a参考各页监视表501的写入i/o计数栏702,取得该对象页的写入频度。

然后,重新配置处理程序604a参考各奇偶校验组重新配置管理表503a的写入削减阈值栏905和写入降级阈值栏2601,取得写入削减阈值和写入降级阈值。

然后,判断取得的对象页的写入频度是否在写入降级阈值以上、并且不足写入削减阈值(s3003)。对象页的写入频度不是在写入降级阈值以上、并且不足写入削减阈值的情况下(s3003:否),重新配置处理程序604a转移至步骤s3001。

与此相对,对象页的写入频度在写入降级阈值以上、并且不足写入削减阈值的情况下(s3003:是),重新配置处理程序604a判断对象页所属的奇偶校验组的写入降级用实际移动页数是否不足写入降级用计划移动页数(s3004)。

对象页所属的奇偶校验组的写入降级用实际移动页数不是不足写入降级用计划移动页数的情况下(s3004:否),重新配置处理程序604a转移至步骤s3001。

与此相对,对象页所属的奇偶校验组的写入降级用实际移动页数不足写入降级用计划移动页数的情况下(s3004:是),重新配置处理程序604a将对象页从层1移动至层2(s3005)。重新配置处理程序604a在对于未判定的全部页结束判定时,结束本处理。

图31表示新分配决定处理的流程图。该新分配决定处理响应从主机101接收了对新页的写入请求,通过处理器114与新分配决定处理程序605的协作而执行。为了便于说明,将处理主体视为新分配决定处理程序605进行说明。

步骤s1901~s1905与第一实施方式中的新分配决定处理(图19)相同,所以省略此处的说明。在步骤s1905中,新分配决定处理程序605对于设定为分配目标的特性的层1的奇偶校验组,判断可新写入量是否大于新写入i/o计数(s1905)。

不存在可新写入量大于新写入i/o计数的奇偶校验组的情况下(s1905:否),重新配置处理程序604a判断从层1进一步分配页时不能维持ssd的寿命,将对新页的实际页的分配目标设定为层2(s3101)。

步骤s1909与第一实施方式中的新分配决定处理(图19)相同所以省略说明。通过以上处理,能够从层1削减维持寿命所需的写入频度。另外,新分配时来自主机101的写入请求是顺序写入的情况下,也可以不执行新分配决定处理程序,而是从层2分配页。

(2-6)第二实施方式的效果

如上所述,根据第二实施方式中的存储系统104a,通过将从主机101对层1的写入频度移动至层2,能够缓和超过一定期间能够允许的写入频度的ssd的寿命劣化。由此能够削减ssd的维护更换次数,能够削减存储系统104a的成本。

(3)第三实施方式

在第三实施方式中,说明计算第一实施方式中说明的写入可追加量和写入削减要求量(图8)的方法。第一实施方式中,从ssd采集写入可追加率和写入削减要求率,使用它们对上述式1和2计算从而计算出写入可追加量和写入削减要求量,但不能从ssd直接采集写入可追加率和写入削减要求率的情况下,能够用以下方法计算出写入可追加量和写入削减请求量。

图32表示取得损耗指标(wearoutindicator)作为ssd的寿命信息、根据损耗指标计算写入可追加量和写入削减请求量的原理。曲线图的纵轴是ssd的损耗指标(寿命率)3201,横轴是从开始使用ssd起的经过年数(经过时间率)3202。

寿命率3201表示根据ssd的消去次数计算出的损耗指标,已知一般而言能够作为s.m.a.r.t.信息取得。损耗指标在值达到100(=le)时,表示ssd达到寿命,需要维护更换。经过时间率表示以目标寿命期间(例如3年或5年)为100%(=te)的经过时间的比例。

直线3215表示区间δt1(=t1-t0)的寿命率的变化δl1(=l1-l0),直线的斜率表示区间δt1的写入频度(=w0)。直线3215的写入频度持续时,ssd的寿命在达到目标寿命期间之前耗尽。

因此,将写入频度削减至用直线3216表示的写入频度(=w1),调整寿命劣化的速度以使区间δt2(=te-t1)中的寿命率的增加量成为δl(=le-l1)。另外,已知一般而言对ssd的写入频度因为wa(writeamplification:写入放大),对ssd内部的闪存芯片的写入次数大于主机101对ssd发出的写入请求的次数。ssd的wa值通过(对闪存芯片的写入次数÷来自主机101的写入请求的次数)计算出。

存储系统104使用以上数值计算出维持寿命所需的写入削减要求量。写入削减要求量能够对下式10计算而算出。

[式10]

写入削减要求量[ioph]

=w0×wa×(1-((δt1÷δl1)×(δl2÷δt2)))

……(10)

另外,写入频度对于达到目标寿命期间具有余量的情况下,存储系统104计算出写入可追加量。写入可追加量能够对下式11计算而算出。

[式11]

写入可追加量[ioph]

=w0×wa×(((δt1÷δl1)×(δl2÷δt2))-1)

……(11)

通过以上所述,能够根据一般能够取得的ssd的寿命信息计算出对ssdpg的写入可追加量和写入削减要求量(图8)。然后,通过基于计算出的写入可追加量和写入削减要求量重新配置页,能够削减存储系统104的成本。

另外,上述说明的实施方式中,说明了以削减“写入”上限次数少的ssd的写入次数的方式重新配置页,从而延长写入上限次数少的ssd的寿命的结构,对于“改写”上限次数少的ssd也能够通过采用上述结构而同样地延长寿命。ssd中的改写是将由多页构成的块先消去,之后对块内的各页写入数据的一系列处理。因此,进行1次改写时,会进行消去和写入双方。即,通过对改写上限次数少的ssd与写入上限次数少的ssd同样地处理,能够延长改写上限次数少的ssd的寿命。

另外,上述说明的实施方式中,说明了以削减写入上限次数少的ssd的“写入频度”(写入次数)的方式重新配置页,从而延长写入上限次数少的ssd的寿命的结构,但通过以削减写入的“数据量”的方式重新配置页,也能够同样地延长写入上限次数少的ssd的寿命。这是因为写入的数据量大的情况下需要对多页写入数据,因此写入次数也增加。

附图标记说明

1、1a计算机系统

104、104a存储系统

114处理器

111mlcssd

112tlcssd

2301sashdd

202虚拟卷

201、301、401、207页

206池卷

205奇偶校验组

302tlc-mlc间写入阈值。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1