计算机系统和数据保存方法与流程

文档序号:16595896发布日期:2019-01-14 19:38阅读:762来源:国知局
本发明涉及计算机系统。
背景技术
::作为数据的重复去除的方式,已知有后处理(postprocess,psp)和内联处理(inlineprocess,ilp)这两种方式。后处理方式与主机i/o异步地实施数据的重复去除,因此对写入性能的影响小。但是,后处理方式将数据暂时保存于磁盘,之后实施数据量削减,因此需要临时区域的磁盘容量。另一方面,内联处理方式以主机i/o为契机实施数据的重复去除,不需要如后处理方式那样将数据保存到临时区域。现有技术文献专利文献专利文献1:国际公开第2014/069617号技术实现要素:发明要解决的课题内联处理方式针对已经进行了重复去除的数据在接受了更新写入请求的情况下需要进行将该数据去除出重复去除的对象外的处理。因为该处理的负载大,所以内联处理方式的吞吐量性能低于后处理方式的吞吐量性能。用于解决课题的方法为了解决上述问题,本发明的一个方式的计算机系统包括存储器和与上述存储器连接的处理器。上述处理器,在第1逻辑区域不与数据存储区域内的物理区域相关联、且接收到请求将未保存于上述数据存储区域的第1数据写入到上述第1逻辑区域的第1写入请求的情况下,计算基于上述第1数据的第1识别信息,将上述第1数据写入到上述数据存储区域内的第1物理区域,将上述第1逻辑区域的地址、上述第1物理区域的地址和表示上述第1识别信息的第1现识别信息的关联登记至转换信息,将上述第1识别信息与上述第1逻辑区域的地址的关联登记至重复信息,上述处理器,在上述第1写入请求之后,第2逻辑区域不与上述数据存储区域内的物理区域相关联、且接收到请求将上述第1数据写入上述第2逻辑区域的第2写入请求的情况下,计算基于上述第1数据的第1识别信息,并将上述第2逻辑区域的地址、上述第1物理区域的地址和表示上述第1识别信息的第2现识别信息的关联登记至上述转换信息,将上述第1识别信息与上述第2逻辑区域的地址的关联登记至上述重复信息,上述处理器,在上述第1写入请求之后,接收到请求将未保存于上述数据存储区域的第2数据写入到上述第1逻辑区域的第3写入请求的情况下,计算基于上述第2数据的第2识别信息,将上述第2数据写入到上述数据存储区域内的第2物理区域,将上述第1逻辑区域的地址、上述第2物理区域的地址、表示上述第2识别信息的第1现识别信息和表示上述第1识别信息的第1旧识别信息的关联登记至上述转换信息,将上述第2识别信息与上述第1逻辑区域的地址的关联登记至上述重复信息,上述处理器在上述第1逻辑区域满足预先设定的脱离条件的情况下,从上述重复信息删除上述第1逻辑区域的地址,从上述转换信息中的与上述第1逻辑区域的地址相关联的信息删除上述第1旧识别信息。发明效果能够提高内联处理方式的吞吐量性能。附图说明图1表示计算机系统的结构。图2表示计算机系统的逻辑结构。图3表示逻辑-物理转换表160。图4表示fptvol330。图5表示内联处理。图6表示垃圾回收(garbagecollection)。图7表示fpt条目删除处理。具体实施方式以下,参照附图对本发明的实施方式进行说明。在以下的说明中,有时以“×××表”的表现方式对信息进行说明,不过信息以怎样的数据结构表现均可。即,为了表示信息不依赖于数据结构,能够将“×××表”称为“×××信息”。此外,在以下的说明中,各表的结构只是一个例子,既可以将1个表分割为2个以上的表,也可以2个以上个的表的全部或一部分在1个表表示。此外,在以下的说明中,使用id作为要素的识别信息,也可以代替或增加使用其它种类的识别信息。此外,在以下的说明中,在不对同种类的要素进行区别地说明的情况下,使用附图标记或附图标记的共同编号,在对同种类的要素进行区别说明的情况下,有时使用该要素的附图标记或代替附图标记使用分配给该要素的id。此外,在以下的说明中,i/o(input/output:输入/输出)请求是写入请求或读取请求,也可以称为访问请求。此外,在以下的说明中,有时将“程序”作为主语说明处理,不过,程序通过由处理器(例如cpu(centralprocessingunit:中央处理器))执行而适当地使用存储资源(例如存储器)和/或接口器件(例如通信端口)等进行确定的处理,因此处理的主语也可以为处理器。将程序作为主语说明的处理也可以为处理器或具有该处理器的装置进行的处理或系统。此外,处理器也可以包括进行处理的一部分或全部的硬件电路。程序也可以从程序源安装至计算机那样的装置。程序源例如也可以为程序发布服务器或计算机可读取的存储介质。在程序源为程序发布服务器的情况下,程序发布服务器也可以包括处理器(例如cpu)和存储资源,存储资源也可以进一步存储有发布程序和作为发布对象的程序。而且,通过程序发布服务器的处理器执行发布程序,程序发布服务器的处理器也可以向其它计算机发布发布对象的程序。此外,在以下的说明中,也可以作为1个程序实现2个以上的程序,也可以将1个程序作为2个以上的程序实现。图1表示计算机系统的结构。计算机系统包括主机30和存储系统40。存储系统40包括磁盘控制器(dkc)10和磁盘单元(dku)20。dku20经sas(serialattachedsmallcomputersysteminterface:串行连接小型计算机系统接口)及sata(serialadvancedtechnologyattachment:串行高级技术附件)等接口与磁盘控制器10连接。磁盘控制器10经san等网络50与主机30连接。磁盘控制器10包括2个簇100(cl1、cl2)。2个簇100相互进行通信,即使在一个簇产生障碍,也能够通过另一个簇进行动作而继续动作。簇100包括通道适配器110、高速缓冲存储器(cm)120、磁盘适配器(dka)130和微处理器(mp)140。通道适配器110与主机30连接,控制与主机30的通信。高速缓冲存储器120保存控制程序150等程序和逻辑-物理转换表160等数据。磁盘适配器130与磁盘单元20连接,控制与磁盘单元20的通信。微处理器140按照高速缓冲存储器120内的程序执行处理。磁盘单元20包括多个存储设备200。各存储设备200例如为ssd(solidstatedrive:固态硬盘)及hdd(harddiskdrive:硬盘驱动器),与多个簇100的磁盘适配器130连接。图2表示计算机系统的逻辑结构。磁盘控制器10使用磁盘单元20内的存储设备200制作thp(thinprovisioning:自动精简配置)池310。磁盘控制器10创建使用日志结构化(追记型)文件系统的卷即日志结构化(log-structured:ls)卷(volume)350,将thp池310内的存储区域分配给日志结构化卷350。磁盘控制器10制作thpvol(volume)320,将日志结构化卷350内的物理区域分配给thpvol320。日志结构化卷350内的物理区域也可以为与thp池310内的存储区域相关联的高速缓冲存储器120内的物理区域。磁盘控制器10对thpvol320进行重复去除的设定。thpvol320包含多个逻辑区域。逻辑区域也可以称为逻辑块。thpvol320内的逻辑区域由逻辑地址(la)表示。日志结构化卷350内的物理区域由物理地址(pa)表示。日志结构化卷350包含多个页(page)。页包含多个物理区域。物理区域也可以称为物理块。逻辑区域和物理区域的大小例如为8kb。在与某个逻辑区域相关联的物理区域保存有数据、且接收到请求向该逻辑区域写入更新数据的写入请求的情况下,控制程序150向与该物理区域不同的新物理区域写入更新数据,使新物理区域与该逻辑区域相关联。在多个逻辑区域的数据重复的情况下,控制程序150在这些逻辑区域分配相同的物理区域。进一步,磁盘控制器10制作管理fpk(fingerprintkey:指纹键)的fpt(fingerprinttable:指纹表)vol330。fpk是数据的哈希值。主机30制作lun340,将thpvol320分配给lun340。图3表示逻辑-物理转换表160。逻辑-物理转换表160具有每个逻辑区域的逻辑-物理转换条目。对一个逻辑区域的逻辑-物理转换条目赋予该逻辑区域的逻辑地址。一个逻辑区域的逻辑-物理转换条目作为数据场包括数据长度(dl)161、状态标记162、物理地址(pa)163、现fpt编号(#)164、旧fpt编号(#)165和lrc(longitudinalredundancycheck:纵向冗余检验)166。逻辑-物理转换条目具有预先设定的大小。逻辑-物理转换条目的各数据场具有预先设定的大小。dl161是保存于thp池310的数据的长度。在数据被压缩保存的情况下,dl161是被压缩的数据的长度。状态标记162是表示该逻辑-物理转换条目的状态的标记。物理地址163是日志结构化卷350内、该逻辑区域与相关联的物理区域的地址。现fpt编号164是从该逻辑区域的最新数据的fpk得到的fpt编号。fpt编号是fpk的位串内的规定位置的部分,用于从fptvol330搜索fpk。例如fpk的长度为8byte,现fpt编号164是fpk的上级4byte。旧fpt编号165是从该逻辑区域的最新数据的更新前数据得到的fpt编号。例如,旧fpt编号165既可以与现fpt编号164同样是fpk的上级4byte,也可以具有fpk的上级3byte等比现fpt编号164短的长度。lrc166是从该逻辑-物理转换条目计算出的校验码。旧fpt编号165的长度与现fpt编号164的长度即使相差1byte的程度,在旧fpt编号165的搜索与现fpt编号164的搜索之间也不会产生大的性能差。另外,现fpt编号164、旧fpt编号165也可以为fpk。根据该逻辑-物理转换表,控制程序150能够从逻辑地址确定对应的物理地址。控制程序150也可以进一步制作用于从物理地址确定对应的逻辑地址的物理-逻辑转换表,保存到高速缓冲存储器120。图4表示fptvol330。fptvol330保存fpml410、fpmd420、fptd(fptdirectory:fpt目录)430。fpml410是能够保存若干个重复列表411的块结构体。重复列表411包含一个fpk412和若干个fpt条目413。fpt条目413包含逻辑地址(la)。对fpml410赋予fpb编号。fpmd420是表示管理fpml410的目录的块结构体。fpmd420保存表示目录内的fpml410的fpb编号421。对fpmd420也赋予fpb编号。fptd430是表示管理fpml410和fpmd420的目录的块结构体。fptd410保存表示该目录内的fpml410或fpmd420的fpb编号421。对fptd430赋予属于该目录的fpt编号的位串的至少一部分。fpml410、fpmd420、fptd430各自的大小为预先设定的上限大小以下。上限大小例如为512kb。在fpml410的大小超过上限大小的情况下,制作新的fpml410,这些fpml410在fpmd420的目录来管理。控制程序150能够使用fpk之中的fpt编号,从fptvol330搜索该fpk,取得与该fpk对应的la。此外,根据fptvol330,控制程序150能够容易地将fpk追加至fptvol330。在fptvol330的容量大的情况下,由于不能将fptvol330全部保存于高速缓冲存储器120,所以控制程序150将fptvol330的一部分读出至高速缓冲存储器120而进行访问。因为fpk为哈希值,所以对fptvol330的访问几乎是随机访问。由此,fptvol330的搜索多为访问存储设备200的情况,处理时间大。在逻辑-物理转换条目不能将旧fpt编号165保存而仅保存现fpt编号164的情况下,在每次更新写入时解除现fpt编号与逻辑地址的关联,因此要从fptvol330搜索现fpt编号。由此,存储系统40的负载变高,存储系统40的吞吐量性能下降。本实施例的逻辑-物理转换表160通过使得逻辑-物理转换条目将旧fpt编号165保存,防止内联处理在每次更新写入时解除现fpt编号与逻辑地址的关联。以下,对控制程序150的动作进行说明。图5表示内联处理。在s110中,控制程序150在从主机30接收对对象逻辑地址的写入请求和写入数据时,通过按预先设定的每个长度进行写入数据的哈希运算,作为对象fpk计算出写入数据的fpk,作为对象fpt编号计算出对象fpk的位串的规定位置的部分。另外,控制程序150在将写入数据写入高速缓冲存储器120时,将响应发送至主机30。在s120中,控制程序150参照逻辑-物理转换表160。在s130中,控制程序150判断逻辑-物理转换表160是否包含与对象逻辑地址对应的对象逻辑-物理转换条目。在s130的结果是判断为逻辑-物理转换表160包含对象逻辑-物理转换条目的情况下(是(yes)),在s140控制程序150判断对象fpt编号是否与对象逻辑-物理转换条目的现fpt编号164一致。在s140的结果是判断为对象fpt编号与现fpt编号一致的情况下(是),在s150中,控制程序150对写入数据与保存于对象逻辑-物理转换条目的物理地址163的保存数据进行比较,在s160中控制程序150判断比较的结果是否是写入数据与保存数据一致。在s160的结果是判断为写入数据与保存数据一致的情况下(是),控制程序150结束该流程。即,在这种情况下,不需要将保存于对象逻辑地址的数据更新。在s160的结果是判断为写入数据与保存数据不一致的情况下(否(no)),在s210中,控制程序150判断对象逻辑-物理转换条目是否包含旧fpt编号165的值。在s210的结果是判断为对象逻辑-物理转换条目包含旧fpt编号165的值的情况下(是),在s220中,控制程序150进行解除旧fpt编号与对象逻辑地址的关联的fpt条目删除处理。关于fpt条目删除处理后述。在s220之后或s210的结果是判断为对象逻辑-物理转换条目不包含旧fpt编号165的值的情况下(否),在s230中,控制程序150在对象逻辑-物理转换条目将现fpt编号164的值移动至旧fpt编号165。在s230之后或s130的结果是判断为逻辑-物理转换表160不包含对象逻辑-物理转换条目的情况下(否),在s240中控制程序150判断写入数据是否满足重复条件。此处,控制程序150在fptvol330包含与对象fpt编号对应的重复列表、且对象数据与保存于该重复列表内的与逻辑地址对应的物理地址的数据一致的情况下判断为写入数据满足重复条件。在s240的结果是判断为写入数据不满足重复条件的情况下(否),在s250中控制程序150保存写入数据。在s250之后或s240的结果是判断为写入数据不满足重复条件的情况下(是),在s260中控制程序150将对象fpt编号登记至对象条目的现fpt编号164。在s270中,控制程序150将写入数据的写入目的地登记至对象逻辑-物理转换条目的物理地址163,结束该流程。根据以上的内联处理,控制程序150在接收到更新对象逻辑地址的逻辑区域的写入请求、对象逻辑-物理转换条目不包含旧fpt编号的值的情况下将更新前数据的fpt编号移动至旧fpt编号,由此不需要立即进行fpt条目删除处理。由此,能够提高存储系统40的吞吐量性能。旧fpt编号能够通过后述的垃圾回收而从逻辑-物理转换条目删除。在对同一逻辑地址的写入的时间间隔长的情况下,删除旧fpt编号,s210的结果为否的概率高。由此,能够抑制fpt条目删除处理的执行次数。另外,控制程序150在接收到更新对象逻辑地址的逻辑区域的写入请求、对象逻辑-物理转换条目包含旧fpt编号的值的情况下立即进行fpt条目删除处理。当在thpvol320的每次更新时在日志结构化卷350的空闲区域写入有效数据时,日志结构化卷350和thp池310的空闲区域就变少。控制程序150通过使页内的有效数据移动至其它页来进行制作空闲页的垃圾回收。由此,控制程序150能够增加日志结构化卷350的空闲区域。控制程序150在与来自主机30的写入请求非同步而存储系统40的空闲区域满足预先设定的执行条件的情况下进行垃圾回收。例如,控制程序150在thp池310的容量中分配给thpvol320的大小的比例即使用率超过预先设定的使用率阈值的情况下,判断为存储系统40的空闲区域满足执行条件。此外,例如,控制程序150在从thp池310分配给thpvol320的大小中作为无效率计算无效数据的比例,无效率超过预先设定的无效率阈值的情况下,判断为存储系统40的空闲区域满足执行条件。图6表示垃圾回收。在s310控制程序150从多个页中选择满足移动条件的对象页。此处控制程序150也可以将无效数据量超过预先设定的阈值的页作为对象页选择。此外,控制程序150也可以作为对象页从无效数据量大的页依次进行选择,直至存储系统40的空闲区域不再满足执行条件。无效数据量是无效率和无效数据大小。无效率是无效数据大小相对于页的大小的比例。在s320中,控制程序150从对象页按物理地址顺序选择一个物理区域作为对象物理区域,选择对象物理区域的物理地址作为对象物理地址。在s330中,控制程序150基于物理-逻辑转换表选择对象物理区域与相关联的逻辑区域作为对象逻辑区域,选择对象逻辑区域的逻辑地址作为对象逻辑地址。在s420中,控制程序150参照逻辑-物理转换表160。在s430中,控制程序150判断逻辑-物理转换表160中是否在与对象逻辑地址对应的对象逻辑-物理转换条目存在旧fpt编号165的值。在s430的结果是判断为在对象逻辑-物理转换条目存在旧fpt编号的值的情况下(是),在s440中,控制程序150进行解除旧fpt编号与对象逻辑地址的关联的fpt条目删除处理。在s450中,控制程序150判断与旧fpt编号对应的重复列表是否包含至少一个fpt条目。在s450的结果是判断为该重复列表包含至少一个fpt条目的情况下(是)、或者s430的结果是判断为不存在旧fpt编号的值的情况下(否),即,对象物理区域与逻辑地址相关联,且保存有有效数据,因此,在s460中控制程序150选择移动目的地页和作为移动目的地页内的物理区域的移动目的地物理区域和使对象物理区域内的数据移动至移动目的地物理区域。进一步,控制程序150在逻辑-物理转换表160内的与该逻辑地址对应的逻辑区域条目内的物理地址163登记移动目的地物理区域的物理地址。在s460后或s450的结果是判断为该重复列表不包含fpt条目的情况下(否),即,对象物理区域未保存有效数据,因此,在s480中,控制程序150判断是否作为对象物理区域选择对象页内的整个物理区域。在s480的结果是在对象页内存在未作为对象物理区域选择的物理区域的情况下(否),控制程序150使处理过渡至s320过渡,选择下一个对象物理区域。在s480的结果是作为对象物理区域选择对象页内的整个物理区域的情况下(是),在s490中,控制程序150废弃对象页,结束该流程。根据之后的写入请求,控制程序150向成为空闲页的对象页写入数据。根据以上的垃圾回收,控制程序150能够在垃圾回收的对象的逻辑区域的逻辑-物理转换条目存在旧fpt编号的情况下将与旧fpt编号所示的数据的关联解除。由此,控制程序150删除该逻辑-物理转换条目内的旧fpt编号,不需要在该逻辑区域的下一次更新时再进行fpt条目删除处理。通过控制程序150与写入请求非同步地进行垃圾回收,能够降低写入请求时的负载。控制程序150在对象逻辑地址的逻辑区域满足预先设定的脱离条件的情况下进行fpt条目删除处理。脱离条件例如为上述的向s220或s440过渡的条件。图7表示fpt条目删除处理。在上述的s220和s440,控制程序150指定旧fpt编号和对象逻辑地址,进行fpt条目删除处理。在s520中,控制程序150从fptvol330搜索与旧fpt编号对应的重复列表,将搜索的重复列表作为对象重复列表读出至高速缓冲存储器120。在s530中,控制程序150判断对象重复列表是否包含对象逻辑地址。在s530的结果是判断为对象重复列表不包含对象逻辑地址的情况下(否),控制程序150结束该流程。在s530的结果是判断为对象重复列表包含对象逻辑地址的情况下(是),在s540中控制程序150从对象重复列表删除对象逻辑地址的fpt条目,将对象重复列表内的fpt条目前移。在s550中,控制程序150从逻辑-物理转换表160中的对象逻辑地址的逻辑-物理转换条目删除旧fpt编号165的值。在s560中,控制程序150将所更新的对象重复列表反映至fptvol330,结束该流程。控制程序150也可以将fptvol330的更新非同步地从高速缓冲存储器120反映至thp池310。根据以上的fpt条目删除处理,控制程序150能够将旧fpt编号与对象逻辑地址的关联解除。以下,说明本实施例的效果。在写入特定的逻辑区域的写入请求为连续写入的情况下,与写入该逻辑区域的写入请求随机写入的情况相比,更新该逻辑区域的间隔更长。当更新该逻辑区域的间隔变长时,在更新期间执行垃圾回收,通过垃圾回收中的fpt条目删除处理删除旧fpt编号的值的概率变高。由此,不在写入中执行fpt条目删除处理的概率变高。即,即使通过该逻辑区域的更新而在旧fpt编号登记值,也不在下一次更新之前删除旧fpt编号的值,在下一次更新时不执行fpt条目删除处理。由此,能够提高存储系统40的吞吐量性能。作为连续写入的一例列举备份。在主机30将保存于主机30的数据的备份按规定的备份周期定期地写入存储系统40的情况下,在备份期间执行垃圾回收,删除旧fpt编号的值的概率高。例如,主机30在每周一将备份写入第1个thpvol,在每周二将备份写入第2个thpvol,在每周三将备份写入第3个thpvol,在每周四将备份写入第4个thpvol,在每周五将备份写入第5个thpvol。在这种情况下,各thpvol每1周更新1次。这样,通过按足够长的时间间隔执行备份而备份的期间执行垃圾回收,删除旧fpt编号的值的概率变高。还可以使用备份服务器等计算机代替磁盘控制器10。在这种情况下,备份服务器与和磁盘单元20同样的外部存储设备连接。该备份服务器包括保存与fptvol330同样的信息的存储设备,执行控制程序150。由此,备份服务器能够进行外部存储设备的重复去除。计算机系统对应于存储系统40、磁盘控制器10、备份服务器等。存储器对应于高速缓冲存储器120等。处理器对应于mp140等。数据存储区域对应于日志结构化卷350、thp池310等。重复信息对应于fptvol330等。识别信息对应于fpt编号等。转换信息对应于逻辑-物理转换表160和物理-逻辑转换表等。现识别信息对应于现fpt编号164的值等。旧识别信息对应于旧fpt编号165的值等。现识别信息区域对应于现fpt编号164的数据场等。旧识别信息区域对应于旧fpt编号165的数据场等。指纹对应于fpk等。以上,对本发明的实施方式进行了说明,不过这只是用于本发明的说明的例示,本发明的范围并不限定于上述结构。本发明还能够以其它各种方式实施。附图标记说明10磁盘控制器(diskcontroller)20磁盘单元(diskunit)30主机(hostcomputer)40存储系统(storagesystem)50网络100簇(cluster)110通道适配器(channeladapter)120高速缓冲存储器(cachememory)130磁盘适配器(diskadapter)140微处理器(microprocessor)150控制程序160逻辑-物理转换表。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1