存储控制装置及其数据管理方法.pdf

上传人:b*** 文档编号:966034 上传时间:2018-03-21 格式:PDF 页数:52 大小:2.57MB
返回 下载 相关 举报
摘要
申请专利号:

CN200910148827.6

申请日:

2006.12.19

公开号:

CN101571822A

公开日:

2009.11.04

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效|||公开

IPC分类号:

G06F11/20

主分类号:

G06F11/20

申请人:

株式会社日立制作所

发明人:

茂木克雄; 永田幸司; 儿玉升司; 八木泽育哉

地址:

日本东京都

优先权:

2006.1.13 JP 2006-005580

专利代理机构:

北京银龙知识产权代理有限公司

代理人:

许 静

PDF下载: PDF下载
内容摘要

本发明提供一种存储控制装置,其可以有效防止存储器容量的增加,同时显著提高数据的转发效率。该存储控制装置提供用于存储从上位装置发送的数据的卷,并具备:管理部,其通过第1数据单位、或该第1数据单位内的比第1数据单位小的第2数据单位,来管理被写入卷的数据;快照取得部,其在规定时刻取得卷的快照;转发部,其将快照取得部通过快照所取得的卷的数据,通过第1数据单位或第2数据单位向外部设备转发。

权利要求书

1.  一种存储控制装置,提供用于存储从上位装置发送的数据的卷,所述存储控制装置特征在于,具有:
管理部,其通过第1数据单位、或通过该第1数据单位内的比所述第1数据单位小的第2数据单位,对写入所述卷的所述数据进行管理;
快照取得部,其在规定的时刻,取得所述卷的快照;和
转发部,其将所述快照取得部通过所述快照取得的所述卷的所述数据,通过所述第1数据单位或所述第2数据单位,向外部设备转发。

2.
  根据权利要求1所述的存储控制装置,其特征在于,
所述转发部,在不由所述管理部通过所述第2数据单位进行管理时,通过所述第1数据单位转发所述数据。

3.
  根据权利要求1所述的存储控制装置,其特征在于,
所述管理部,通过位图表来管理所述第1数据单位,通过所述第2数据单位的起始位置以及大小来管理所述第2数据单位。

4.
  根据权利要求3所述的存储控制装置,其特征在于,
所述管理部,通过与所述位图表的位位置相对应的地址,对所述第2数据单位进行哈希管理。

5.
  根据权利要求1所述的存储控制装置,其特征在于,
所述管理部,当所述数据的所述第2数据单位的区域,和已经被管理的数据的第2数据单位的区域重叠时,变更已经被管理的数据的第2数据单位,集中成1个第2数据单位的区域进行管理。

6.
  根据权利2所述的存储控制装置,其特征在于,
所述管理部,当所述第2数据单位的区域的合计值大于规定的阈值时,将正管理的所述第2数据单位的区域全部删除。

7.
  根据权利要求2所述的存储控制装置,其特征在于,
所述管理部,当所述第2数据单位的区域数大于规定数时,将正管理的所述第2数据单位的区域全部删除。

8.
  根据权利要求1所述的存储控制装置,其特征在于,
具有:执行基于从上位装置发送的命令的处理的控制部、以及用于存储特定命令的存储部,
所述控制部,优先执行所述存储部中存储的所述特定命令。

9.
  根据权利要求7所述的存储控制装置,其特征在于,
所述存储部,存储用于将所述数据转发至所述外部设备的数据转发命令,
所述控制部,优先执行所述数据转发命令。

10.
  根据权利要求8所述的存储控制装置,其特征在于,
所述控制部,将用于和所述外部设备通信的通信命令中同种的所述通信命令集中成1个集中命令,发送至所述外部设备,根据从所述外部设备发送的、所述外部设备中的处理结果,执行对应的处理。

11.
  一种存储控制装置的数据管理方法,是提供用于存储从上位装置发送的数据的卷的存储控制装置的数据管理方法,其特征在于,具有以下步骤:
通过第1数据单位、或者该第1数据单位内的比所述第1数据单位小的第2数据单位,对写入所述卷的所述数据进行管理的第1步骤;
在规定的时刻,取得所述卷的快照的第2步骤;和
将所述第2步骤中通过所述快照取得的所述卷的所述数据,通过所述第1数据单位或所述第2数据单位,向外部设备转发的第3步骤。

12.
  根据权利要求11所述的存储控制装置的数据管理方法,其特征在于,
在所述第3步骤中,
当在所述第1步骤中,不通过所述第2数据单位进行管理时,通过所述第1数据单位转发所述数据。

13.
  根据权利要求11所述的存储控制装置的数据管理方法,其特征在于,
在所述第1步骤中,
通过位图表管理所述第1数据单位,通过所述第2数据单位的起始位置以及大小,管理所述第2数据单位。

14.
  根据权利要求13所述的存储控制装置的数据管理方法,其特征在于,
在所述第1步骤中,
通过与所述位图表的位位置相对应的地址,对所述第2数据单位进行哈希管理。

15.
  根据权利要求11所述的存储控制装置的数据管理方法,其特征在于,
在所述第1步骤中,
当所述数据的所述第2数据单位的区域,和已经被管理的数据的第2数据单位的区域重叠时,变更已经被管理的数据的第2数据单位的区域,集中成1个第2数据单位的区域进行管理。

16.
  根据权利12所述的存储控制装置的数据管理方法,其特征在于,
在所述第1步骤中,
当所述第2数据单位的区域的合计值比规定的阈值大时,将正管理的所述第2数据单位的区域全部删除。

17.
  根据权利要求12所述的存储控制装置的数据管理方法,其特征在于,
在所述第1步骤中,
当所述第2数据单位的区域数大于规定数时,将正管理的所述第2数据单位的区域全部删除。

说明书

存储控制装置及其数据管理方法
本申请为2006年12月19日递交的、申请号为200610168703.0、发明名称为“存储控制装置及其数据管理方法”的专利申请的分案申请。
技术领域
本发明涉及存储控制装置及其数据管理方法,例如适用于将存储有从主机系统发送的数据的存储控制装置的卷,复制到其它存储控制装置的存储系统中。
背景技术
目前,作为针对存储系统的灾难恢复(disaster recovery),公知如下技术:将在某场所中运用的、存储主机系统发送数据的存储控制装置(以下称为正存储控制装置)的卷的备份,在位于与其远离场所的存储控制装置(以下称为副存储控制装置)的卷中进行管理(以下将该技术称为“远程复制”)。并且提出了与之相关的各种技术。
例如,在特开平11-259348号公报中,正存储控制装置具有至少1个卷,并向副存储控制装置发送取得该卷至少一部分的快照(snapshot)的请求,副存储控制装置响应取得快照的请求,并具有作为正存储控制装置的卷的复制拷贝的卷,通过取得对应部分的快照、将正存储控制装置的卷复制到副存储控制装置的卷中。
还例如在特开2005-267569号公报中,存储控制装置控制向第1卷的数据读写,控制成将新存储在该卷中的数据作为每代的差分数据、写入到第2卷中,通过在存储器的区域中设置对该第2卷中存储的每代差分数据的关系进行管理的快照管理表,来管理差分数据。并且,存储控制装置通过快照管理表生成特定代的虚拟卷,使用该虚拟卷进行远程复制。
再例如特开2005-275494号公报中,副存储控制装置从正存储控制装置接收差分关联信息,根据该接收到的差分关联信息生成代管理信息,根据所生成的代管理信息以及副存储控制装置的卷,恢复指定代的存储内容。
【专利文献1】特开平11-259348号公报
【专利文献2】特开2005-267569号公报
【专利文献3】特开2005-275494号公报
发明内容
在这种存储系统中,为了使正存储控制装置中管理通过快照取得的卷数据的管理位(bit)不至于不足,以比从主系统(host system)向正存储控制装置转发的数据足够大的差分管理单位的数据大小,对该管理位进行管理。
但在这种存储系统中,与差分管理单位的数据大小相比,从主系统向正存储控制装置转发的数据的数据大小更小,所以,在将从主系统转发的数据、从正存储控制装置向副存储控制装置转发时,即使从主系统向正存储控制装置转发的数据的数据大小较小,也必须以差分管理单位的数据大小来转发。
因此,在这种存储系统中,与从主系统向正存储控制装置的数据转发相比,从正存储控制装置向副存储控制装置的数据转发更慢,在正存储控制装置中,从正存储控制装置向副存储控制装置的等待转发的差分数据,有可能累积。
另一方面,在这种存储系统中,在减小了差分管理单位的数据大小时,必须增加用来管理差分数据的管理位数,为了保持该管理位,需要很大的存储器容量。
本发明是考虑了以上问题点而作出的发明,因此提出了可以有效防止存储器容量的增加、并且可以显著提高数据转发效率的存储控制装置以及数据管理方法。
为了解决上述问题,在本发明中,作为提供用于存储从上位装置发送的数据的卷的存储控制装置,具备:通过第1数据单位、或该第1数据单位内的比第1数据单位小的第2数据单位,来管理写入卷的数据的管理部;在规定的时刻,取得卷的快照的快照取得部;将通过快照取得部的快照所取得的卷的数据,通过第1数据单位或第2数据单位向外部设备转发的转发部。
因此,在第1数据单位内的、向外部设备转发的数据较少的情况下,通过以第2数据单位转发数据,可以减少数据的转发量,在第1数据单位内的、向外部设备转发的数据较多的情况下,通过以第1数据单位转发数据,可以减少第2数据单位的管理数量。
另外,在本发明中,作为提供用于存储从上位装置发送的数据的卷的存储控制装置的数据管理方法,具备以下步骤:通过第1数据单位、或该第1数据单位内的比第1数据单位小的第2数据单位,管理写入卷的数据的第1步骤;在规定的时刻,取得卷的快照的第2步骤;通过第1数据单位或第2数据单位,将通过第2步骤中的快照所取得的卷的数据,向外部设备转发的第3步骤。
因此,在第1数据单位内的、向外部设备转发的数据较少的情况下,通过以第2数据单位转发数据,可以减少数据的转发量,在第1数据单位内的、向外部设备转发的数据较多的情况下,通过以第1数据单位转发数据,可以减少第2数据单位的管理数量。
根据本发明,作为提供用于存储从上位装置发送的数据的卷的存储控制装置,通过第1数据单位、或者该第1数据单位内的比第1数据单位小的第2数据单位管理写入卷的数据;在规定的时刻,取得卷的快照;通过以第1数据单位或第2数据单位,将通过快照而取得的卷的数据向外部设备转发,在向外部设备转发的数据少的情况下,通过以第2数据单位转发数据,可以减少数据的转发量,在第1数据单位内的向外部设备转发的数据多的情况下,通过以第1数据单位转发数据,可以减少第2数据单位的管理数量,并且能够实现可以有效防止存储器容量的增加、且可以显著提高数据的转发效率的存储控制装置以及数据管理方法。
附图说明
图1是表示本实施方式的存储系统的结构的概略图。
图2是表示本地存储器的结构的概略图。
图3是用于说明卷管理表的概念图。
图4是用于说明非同步远程复制的处理概要的概念图。
图5是用于说明非同步远程复制的处理顺序的概念图。
图6是用于说明快照更新处理的概要的概念图。
图7是用于说明哈希管理表的概念图。
图8是用于说明管理信息的概念图。
图9是用于说明写数据的管理处理步骤的流程图。
图10是用于说明写数据的管理处理步骤的流程图。
图11是用于说明管理信息的概念图。
图12是用于说明管理信息的集中的概念图。
图13是用于说明管理信息的集中的概念图。
图14是用于说明写数据的转发处理步骤的流程图。
图15是用于说明写数据的转发处理步骤的流程图。
图16是用于说明命令作业(command job)的优先执行处理的概念图。
图17是用于说明命令作业的存储处理步骤的流程图。
图18是用于说明命令作业的优先执行处理步骤的流程图。
图19是用于说明集中通信命令的收发处理步骤的流程图。
图20是用于说明通信命令集中处理的概念图。
图21是用于说明通信命令集中处理的概念图。
图22是用于说明通信命令集中处理的概念图。
具体实施方式
以下,参照附图,对本发明的一个实施方式进行详细描述。
(1)本实施方式中的存储系统的结构
图1表示基于本实施方式的存储系统10的系统结构。存储系统10具有第1存储控制装置20和第2存储控制装置50。第1存储控制装置20、第2存储控制装置50、正主系统100和副主系统110,通过SAN(Storage AreaNetwork)120相互连接。
正主系统100是常规的主系统,主要当系统正常时,向第1存储控制装置20请求I/O处理。副主系统110是备用主系统,主要当系统中发生故障时,向第2存储控制装置50请求I/O处理,继续正主系统100在故障发生时正进行的处理。正主系统100以及副主系统110,例如是个人计算机、工作站、大型计算机等。
存储系统10被构成为:将写入第1存储控制装置20的数据远程复制到第2存储控制装置50中。第2存储控制装置50保留与第1存储控制装置20在过去所保留的数据图像相同的数据图像。
由此,即使在第1存储控制装置20中发生了故障的情况下,也可以使用第2存储控制装置50来使系统运行。
作为远程复制,可以是如下的同步复制:以在第1存储控制装置20和第2存储控制装置50的双方中写入了数据为条件,向正主系统100报告写完成;或者也可以是如下的非同步复制:在向第1存储控制装置20写入了数据的阶段,向正主系统100报告写完成、并在适当的时间向第2存储控制装置50转发该数据。
在以下的说明中,表示了将第1存储控制装置20作为工作的正存储控制装置来运用,将第2存储控制装置50作为备用的副存储控制装置来运用的例子。
第1存储控制装置20,主要具备:控制器30和存储装置40。为提高可靠性,控制器30由控制器30A、30B这两个控制器构成。
控制器30A具备:LAN(Local Area Network)接口21A、前端接口22A、CPU23A、数据转发控制器24A、高速缓冲存储器(cache memory)25A、本地存储器26A以及后端接口27A。控制器30B的详细结构和上述的控制器30A的详细结构相同。此外,在不添加尾标“A”和“B”来表述的情况下,表示可以是控制器30A、30B中任意一个,表示一个控制器。
控制器30,能够以所谓的RAID方式中规定的RAID电平(例如,0、1、5)控制多个磁盘驱动器41。在RAID方式中,将多个磁盘驱动器41作为1个RAID组来管理。在RAID组中,定义了作为从正主系统100的存取单位的多个逻辑卷42。对于各个逻辑卷42,分配了LUN(Logical Unit Number)。
CPU23是,响应来自正主系统100的数据输入输出请求,对于向多个磁盘驱动器41的I/O命令(写命令或读命令)的处理进行控制的处理器。
在本地存储器26中,存储有各种微程序、卷管理表、以及哈希(hash)管理表等。对于各种微程序、卷管理表以及哈希管理表,在后面进行详细描述。本地存储器26,作为对于读/写可以高速存取的易失性存储器而构成。
高速缓冲存储器25,是对用于写入磁盘驱动器41的写数据、或从磁盘驱动器41读出的读数据进行暂时存储的缓冲存储器。高速缓冲存储器25,具有备用电源,作为即使在第2存储控制装置20中发生电源故障的情况下,也能防止高速缓冲数据丢失的非易失性存储器而构成。
数据转发控制器24,将高速缓冲存储器25、前端接口22、后端接口27、以及CPU23相互连接,控制正主系统100和磁盘驱动器41之间的数据转发。
另外,数据转发控制器24,与另一方的数据转发控制器24可通信地连接,在和此另一方数据转发控制器24之间,转发写命名、读命令、写数据以及读数据。
当从正主系统100进行写命令发送请求时,数据转发控制器24,将通过前端接口22从正主系统100接收的数据写入高速缓冲存储器25,然后,为了将该写数据非同步地写入磁盘驱动器41,将该写数据转发至后端接口27。
另外,数据转发控制器24,将通过前端接口22从正主系统100接收的数据,向另一方的数据转发控制器24转发。然后,另一方的数据转发控制器24,将接收的数据写入该控制器的高速缓冲存储器25中。
如此,在接收到来自正主系统100的写命令时,将从正主系统100接收的写数据双重写入高速缓冲存储器25中,由此,即使在控制器30中的一方控制器中发生故障时,也可以由另一方控制器继续进行处理。
另外,当接收到来自正主系统100的读命令时,将通过后端接口27从磁盘驱动器41读取的读数据,写入高速缓冲存储器25中,同时,将该读数据转发至前端接口22。
前端接口22是对与正主系统100的接口进行控制的控制器,例如,具有接收基于光纤通道协议的、来自正主系统100的块存取请求的功能。
后端接口27是对与磁盘驱动器41的接口进行控制的控制器,例如,具有对基于控制磁盘驱动器41的协议的、向磁盘驱动器41的数据输入输出请求进行控制的功能。
LAN接口21是与LAN90相连的接口,根据TCP/IP,在与管理终端80之间控制数据和控制信号的收发。
存储装置40具有多个磁盘驱动器41。磁盘驱动器41是FC(Fibre Channel)磁盘驱动器、SATA(Serial Advanced Technology Attachment)磁盘驱动器、PATA(Parallel Advanced Technology Attachment)磁盘驱动器、FATA(FibreAttached Technology Adapted)磁盘驱动器、SAS(Serial Attached SCSI)磁盘驱动器或SCSI(Small Computer System Inferface)磁盘驱动器等存储设备。
第1存储控制装置20,通过LAN(Local Area Network)90与管理终端80相连。管理终端80是具有例如,CPU、存储器以及显示器等硬件资源的计算机系统。系统管理员,通过对管理终端80进行输入操作,将用于管理第1存储控制装置20的命令发送至第1存储控制装置20。
作为用于管理第1存储控制装置20的命令,包括:例如,用于指示存储设备41的增设或削减、或RAID结构的变更的命令;用于设定正主系统100和第1存储控制装置20之间的通信路径的命令;用于在存储器26中安装CPU23的微程序的命令;用于确认第1存储控制装置20的动作状态、或指定故障部位的命令等。
第2存储控制装置50主要具有控制器60和存储装置70。控制器60的详细结构和上述控制器30的详细结构相同。为提高可靠性,控制器60由控制器60A、60B这两个控制器构成。
控制器60A具备:LAN接口61A、前端接口62A、CPU63A、数据转发控制器64A、高速缓冲存储器65A、本地存储器66A以及后端接口67A。控制器30B的详细结构和上述控制器60A的详细结构相同。此外,在不添加尾标“A”和“B”来进行表述的情况下,表示可以是控制器60A、60B中任意一个,表示一个控制器。存储装置70具有多个磁盘驱动器71。
控制器60,能够以所谓的RAID方式中规定的RAID电平(例如0、1、5)控制多个磁盘驱动器71。在RAID方式中,将多个磁盘驱动器71作为一个RAID组来管理。在RAID组中,定义了作为从副主系统110的存取单位的多个逻辑卷72。对于各个逻辑卷72分配了LUN。
图2表示各种微程序、卷管理表以及哈希管理表。本地存储器26存储:内部复制执行程序200、远程复制执行程序210、控制程序220、卷管理表230、哈希管理表240、命令作业(command job)优先执行程序250、以及集中通信执行程序260。此外,在本地存储器66中不存储哈希管理表240、以及命令作业优先执行程序250。
内部复制执行程序220执行内部复制处理、以及快照更新处理。远程复制执行程序210执行远程复制。控制程序220控制内部复制执行程序200、远程复制执行程序210。卷管理表230存储与多个逻辑卷42相关的信息。此外,对于哈希管理表240、命令作业优先执行程序250以及集中通信执行程序260,在后面进行描述。
图3表示卷管理表230的表结构。卷管理表230中,对于多个逻辑卷42的每一个,用于识别逻辑卷(以下,有时简写为“VOL”)的VOL-ID、表示对该逻辑卷的存取路径的信息、该逻辑卷的种类(以下,记为“VOL种类”)、表示该逻辑卷是否为池VOL(Pool VOL)的标志(以下,记为“池VOL”标志)相对应地存储。在卷管理表中230中存储的信息中的至少一个信息要素(例如,VOL-ID、VOL种类、池VOL标志),可以从管理终端80或正主系统100等输入。
作为VOL的类型,例如,有“主”、“副”、“池”。“主”类型的VOL(以下,记为“主VOL”或“PVOL”),在复制处理(例如,远程复制处理)中,是作为复制源的VOL。“副”类型的VOL(以下记为“副VOL”或“SVOL”),在复制处理(例如,远程复制处理)中,是作为复制目的地的VOL。
副VOL至少具有主VOL以上容量的存储容量。在主VOL和副VOL中都定义了路径信息。但是,“池”类型的VOL(以下记为“池VOL”),未定义路径信息。对于池VOL,在后面进行详细描述。
池VOL标志表示其对应的逻辑卷是否为池VOL。具体而言,例如,若池VOL标志为“1”,则其对应的逻辑卷是池VOL,若池VOL标志为“0”,则其对应的逻辑卷不是池VOL。
对信息(ペア情報)中含有例如对伙伴信息(ペア相手情報)和对状态(ペア状態)。在对伙伴信息中,例如,作为与成为对伙伴的逻辑卷(以下,记为对伙伴VOL)相关的信息,包括:具有对伙伴VOL的存储控制装置的ID、对伙伴VOL的VOL-ID、以及路径信息等。例如,有“SMPL”、“COPY”、“PAIR”、“PSUS”、“SPLIT”、“SSWS”等。
所谓“SMPL”,表示在对生成前的,没有主副关系的状态。
“COPY”,表示将主VOL的数据复制到副VOL的形成拷贝中的状态。在“COPY”中,禁止向副VOL写数据。
“PAIR”表示正从主VOL向副VOL进行非同步复制的状态。在“PAIR”中,禁止向副VOL写数据。
“PSUS”,表示停止从主VOL向副VOL非同步复制的状态。在“PSUS”中,禁止向副VOL读/写数据。
“SPLIT”表示,将主VOL和副VOL逻辑上分离,仅将主VOL更新前后的差分数据复制到副VOL的状态。
“SSWS”表示可向副VOL读/写数据的状态。在“SSWS”中,副VOL的数据被恢复为上次的确定内容,主VOL改变为“PSUS”。
CPU23,通过参照卷管理表230,可以指定应该存取的逻辑卷42的种类以及对信息。另外,在将池VOL分配至后述的虚拟VOL中的情况下,CPU23可以定义表示到该虚拟VOL的路径的信息,将所定义的路径信息记录到卷管理表230中。
另外,CPU23,通过删除对于未分配的VOL的路径信息,可以使池VOL成为未使用状态。CPU23,对于各池VOL,根据是否登录了路径信息,可以判断各池VOL是在使用中,还是在未使用状态。
图4表示第1存储控制装置20所执行的非同步远程复制的处理概要。第1存储控制装置20具备:CPU23、高速缓冲存储器25、主VOL600、虚拟VOL610、多个池VOL620、快照管理信息300以及转发差分位图表510。
池VOL620是,在主VOL600和虚拟VOL610的对状态为分离的时刻以后,在更新了主VOL600的数据图像时,用于保存更新前后的差分数据的逻辑卷。
虚拟VOL610是,用于根据某时刻在主VOL600中存储的数据,和某时刻以后从主VOL600保存到池卷620中的数据,恢复某时刻的主VOL600的数据图像的虚拟的逻辑卷。
虚拟VOL610,可以逻辑地保存主VOL600的快照。虚拟VOL610可以和主VOL600或副VOL700形成对。
在本实施方式中,举例表示了在高速缓冲存储器25的存储区域中形成虚拟VOL610的情况,但也可以在磁盘驱动器41的存储区域中形成虚拟VOL610。为了便于说明,有时将虚拟VOL610简称为P_VVOL。
CPU23,可以从多个池VOL620中将一个以上的池VOL620(例如,与任何VOL都不对应的未使用的池VOL)选择到虚拟VOL610中,将所选择的一个以上的池VOL620分配至虚拟VOL610。CPU23,可以根据存储资源的消耗状况,适宜地增减分配到虚拟VOL610中的池VOL620的数量。
快照管理信息300,是用于通过使用快照,来恢复某时刻的主VOL600的数据图像的信息。CPU23,通过参照快照管理信息300,来判断构成某时刻的主VOL600的数据图像的各数据是存在于池VOL620中,还是存在于主VOL600中,通过从判断出的一方取得数据,可以在虚拟VOL610中,恢复某时刻的主VOL600的数据图像。快照管理信息300,包含表示主VOL600的数据更新位置的差分位图表310。
转发差分位图表510表示,在主VOL600的数据被初始复制到副VOL以后,当更新主VOL600的数据时,应该被远程复制到副VOL700的差分数据的位置(换句话说,主VOL600的数据更新位置)。
CPU23,可以使主VOL600和虚拟VOL610之间的对状态成为复制状态。当主VOL600和虚拟VOL610之间的对状态成为复制状态时,若将数据写入主VOL600,则CPU23将该数据写入虚拟VOL610或池VOL620。
CPU23,可以使主VOL600和虚拟VOL610之间的对状态成为分离状态。当主VOL600和虚拟VOL610之间的对状态成为分离状态时,若将数据写入主VOL600,则CPU23使内部复制程序200运行,执行内部复制处理以及快照更新处理。
第2存储控制装置50具备:CPU63、高速缓冲存储器65、副VOL700、多个虚拟VOL710A、710B、多个池VOL720、快照管理信息400以及转发差分位图表520。
池VOL720是,在副VOL700和虚拟VOL710A或和虚拟VOL710B的对状态为分离的时刻以后,当更新副VOL700的数据图像时,用于保存更新前后的差分数据的逻辑卷。
虚拟VOL710A、710B是,用于根据某时刻存储在副VOL700中的数据,和某时刻以后从副VOL700保存到虚拟VOL710A、710B中的数据,恢复某时刻的副VOL700的数据图像的虚拟的逻辑卷。虚拟VOL710A、710B,可以逻辑地保存副VOL700的快照。
在本实施方式中,举例表示了在高速缓冲存储器65的存储区域中形成虚拟VOL710A、710B的情况,但也可以在磁盘驱动器71的存储区域中形成虚拟VOL710A、710B。为了便于说明,有时将虚拟VOL710A、710B简称为S_VVOL。
快照管理信息400是,用于通过使用快照,来恢复某时刻的副VOL700的数据图像的信息。CPU63,通过参照快照管理信息400,判断构成某时刻的副VOL700的数据图像的各数据,是存在于池VOL720中,还是存在于副VOL700中,通过从判断出的一方取得数据,可以在虚拟VOL710A、710B中恢复某时刻的副VOL700的数据图像。快照管理信息400包含表示副VOL700的数据更新位置的差分位图表410A、410B。
转发差分位图表520表示,在主VOL600的数据被初始复制到副VOL以后,当更新主VOL600的数据时,通过远程复制,更新副VOL700的数据的位置。
接下来,对内部复制处理、快照更新处理以及远程复制处理进行详细说明。在以后的说明中,以主VOL600和虚拟VOL610之间的对状态为分离状态为前提。
第1存储控制装置20,当从正主系统100接收写命令时(S101),将写数据存储在高速缓冲存储器25中(S102),向正主系统100报告写完成(S103)。
CPU23,读出被写入高速缓冲存储器25的写数据,写入主VOL600(S104)。此时,CPU23,使更新前数据(根据写数据,更新(覆写)前的数据,且在主VOL600中写入的过去的数据),从主VOL600向池VOL620转移(S105)。在本说明书中,将使更新前数据向池VOL移动的处理,称为“快照更新处理”。
当主VOL600和虚拟VOL610之间的对状态为分离状态时,若执行内部复制,则构成某时刻的主VOL600的数据图像的各数据分散于主VOL600和池VOL620中。
接着,CPU23,根据在主VOL600和虚拟VOL610之间的对状态为分离的时刻(以下,成为“分离时刻”)存储在主VOL600中的数据,和在该分离时刻以后从主VOL600向池VOL620转移的数据,将快照管理信息300更新为,用于恢复该分离时刻的主VOL600的数据图像的信息(S106)。通过该快照更新处理,虚拟VOL610可以逻辑地保存主VOL600的快照。
当主VOL600和虚拟VOL610之间的对状态成为分离状态时,CPU23每当从正主系统100接收到写命令的时,重复执行上述S102~S106的处理。
CPU23,从分离时刻起经过规定时间后,使远程复制执行程序210运行,执行远程复制处理。远程复制执行程序210,将差分位图表310并入转发差分位图表510。
然后,远程复制执行程序210,根据转发差分位图表510,判断用于恢复分离时刻的主VOL600的数据图像的各数据存在于主VOL600中,还是存在于池VOL620中,从判断出的一方取得数据,将该数据转发至第2存储控制装置50(S107)。通过该远程复制处理,分离时刻的主VOL600的数据图像,在副VOL700中再现。
第2存储控制装置50,当从第1存储控制装置20接收数据时,向第1存储控制装置20报告写完成(S108)。
此外,在第1存储控制装置20中,通过将虚拟VOL610、快照管理信息300、以及转发差分位图表510双重写入高速缓冲存储器25A、25B中,即使在控制器30中一方的控制器中发生了故障的情况下,另一方的控制器的CPU也可以继续执行内部复制处理、快照更新处理以及远程复制处理。
以后,CPU63,当将从第1存储控制装置20接收到的数据写入副VOL700时,使更新前数据(作为根据写数据而更新(覆写)前的数据,且作为写入副VOL700的过去的数据),从副VOL700向池VOL720转移(S109)。
而且,CPU63,根据分离时刻的副VOL700中存储的数据,和分离时刻以后从副VOL700向池VOL720转移的数据,将快照管理信息400更新为,用于恢复分离时刻的副VOL700的数据图像的信息(S110)。
此外,CPU63交互地切换并使用虚拟VOL710A、710B。由此,例如,CPU63可以在虚拟VOL710A中逻辑地生成副VOL700的快照,同时清除差分位图表410B。清除差分位图表410A、410B需要较长时间。通过交互地切换并使用虚拟VOL710A、710B,可以并行处理快照的生成和差分位图表410A、410B的清除,因此效率更高。
此外,在第2存储控制装置50中,通过将虚拟VOL710A、710B、快照管理信息400以及转发差分位图表520双重写入高速缓冲存储器65A、65B中,即使在控制器60中一方的控制器中发生了故障的情况下,也可以由另一方的控制器的CPU继续执行内部复制处理、快照更新处理以及远程复制处理。
图5表示第1存储控制装置20中执行的非同步远程复制的处理程序。时刻t0表示,主VOL600和虚拟VOL610之间的对状态为分离的分离时刻。将该时刻t0的主VOL600的数据图像称为“图像T0”。图像T0成为,在主VOL600的第1块区域中存储了数据块A的数据图像。在该时刻t0,池VOL620中不存储更新前数据。快照管理信息300成为用于恢复图像T0的信息。
在时刻t1(即,在分离状态期间),当在主VOL600的第1块区域中,覆盖数据块B时,主VOL600的数据图像从图像T0改变为图像T1。此时,内部复制执行程序200,将数据块A(更新前数据)从主VOL600写入虚拟VOL620,将快照管理信息300更新为,表示主VOL600的第1块区域中存在更新,且该第1块区域中存在的数据块A(更新前数据)被存储在虚拟VOL620中的信息。
另外,在时刻t1,控制程序220命令远程复制执行程序210执行远程复制处理。远程复制执行程序210,通过参照转发差分位图表510,指定构成图像T0的数据块A存在于虚拟VOL610中,从虚拟VOL610取得数据块A,将数据块A发送至第2存储控制装置50。
时刻t2是远程复制处理完成的时刻。其结果,在时刻t0在主VOL600中形成的图像T0,被复制到副VOL700中。
另外,在时刻t2(即,在分离状态期间),当在主VOL600的第二块区域中覆写入数据块C时,主VOL600的数据图像从图像T1变化为图像T2。此时,内部复制执行程序200,将快照管理信息300更新为,表示主VOL600的第二块区域已被更新的信息。
例如,在时刻t2以后、时刻t3以前,当在主VOL600的第二块区域中覆写入数据块D时,主VOL600的数据图像从图像T2变化为图像T3(第一块区域中存在数据块B,在第二块区域中存在数据块D的数据图像)。
此时,内部复制执行程序200,使数据块C(更新前数据)从主VOL600向池VOL620转移,将快照管理信息300更新为,表示在主VOL600的第二块区域已被更新,在该第二块区域中存在的数据块C被存储在池VOL620中的信息。
然后,在进行主VOL600的更新之前,在时刻t3,主VOL600和虚拟VOL610再次成为分离状态。
在该时刻t3,换句话说,在成为分离状态的情况下,CPU23,为了将该时刻t3的主VOL600的图像T3逻辑保存在虚拟VOL610中,删除池VOL620中存储的全部的更新前数据。
另外,CPU23,将快照管理信息300从用于恢复图像T0的信息,更新为用于恢复图像T3的信息。具体而言,例如,在时刻t3,在主VOL600中,由于是还未进行更新的状态,因此,CPU23将快照管理信息300更新为,表示在主VOL600中未进行更新的信息。
在时刻t4,当在主VOL600的第二块区域中覆写入数据块E时,主VOL600的数据图像从图像T3变化为图像T4。此时,内部复制执行程序200,将数据块D(更新前数据)从主VOL600写入虚拟VOL610,将快照管理信息300更新为,表示主VOL600的第二块区域已更新,且在该第二块区域中存在的数据块D已向池VOL620转移的信息。
在时刻t4进行远程复制处理。远程复制执行程序210,通过参照转发差分位图表510,由于主VOL600的第一块区域没有被更新,所以掌握了构成图像T3的数据块B存在于主VOL600中,而且由于主VOL600的第二块区域被更新,所以掌握了构成图像T3的其它数据块D存在于池VOL620中。远程复制执行程序210,从主VOL600取得数据块B,而且从池VOL620取得数据块D,将数据块B和数据块D转发至第2存储控制装置50。
时刻t5是远程复制处理结束的时刻。其结果,副VOL700中的图像T0被更新为时刻t3的主VOL600的图像T3。即,在副VOL700的第一块区域的数据块A上覆写数据块B,而且在副VOL700的第二块区域中写入数据块D。
另外,此后,第2存储控制装置50,在直到接收到构成下一分离时刻t6的图像T6的数据的期间,保存图像T3。
以后,重复进行从时刻t3到时刻t5所执行的上述处理。
即,在第1存储控制装置20中,定期或不定期地,主VOL600和虚拟VOL610成为分离状态。在成为该分离状态的期间,直到成为下一个分离状态的时刻(换句话说,内部复制处理以及快照更新处理并行),执行远程复制处理。该远程复制处理结束的时刻以后,主VOL600和虚拟VOL610再次成为分离状态,从池VOL620中删除更新前数据。
通过重复这种处理,可以将定期或不定期的分离时刻的主VOL600的数据图像(在图5的例子中,是时刻t0的图像T0、时刻t3的图像T3、时刻t6的图像T6)在虚拟VOL610上逻辑保存,将该数据图像复制到副VOL700。
图6表示本实施方式的快照更新处理的概要,更详细地表示主VOL600的数据图像从图像T3变化为图像T4,通过虚拟VOL610逻辑地保存图像T3的情况。
快照管理信息300包含:差分位图表310、地址表320以及差分数据控制块(Differnetial Data Control Block)330。
差分位图表310具有与主VOL600内的多个块区域(例如,1个块区域为64K字节)分别对应的多个位。例如,在从图像T3改变为T4的情况下,如图6所示,由于主VOL600的第一块区域未更新,所以对应于该第一块区域的位保持“0”,由于在第二块区域的数据块D上覆写了数据块E,所以对应于该第二块区域的位由“0”更新为“1”。
地址表320具有分别对应于主VOL600的多个块区域的地址区域。若存在对应于某块区域的更新前数据,则在对应于该某块区域的地址区域中,作为对应于该地址区域的地址,存储有差分数据控制块330上的地址。
差分数据控制块330具有,例如,分别对应于池VOL620内的多个块区域的管理区域。在各管理区域中记录有,对应于池VOL620内的块区域的位置中所存储的更新前数据,是哪一代快照数据。CPU23,通过存取管理区域,可以取得多代的更新前数据。
此外,不被差分数据控制块330使用的区域,作为空闲队列被管理。空闲队列通过空闲队列计数器340被管理。
通过上述结构,可以将快照生成时的主VOL600的数据图像,逻辑地复制到虚拟VOL610中。并且,虚拟VOL610内的数据是哪一代的更新前数据,可以通过差分数据控制块330被管理。
(2)基于本实施方式的写数据的处理
(2-1)使用基于本实施方式的差分位图表310以及哈希管理表240的写数据的管理处理
接下来说明,使用了基于本实施方式的存储系统10中的差分位图表310以及哈希管理表240的写数据的管理处理。基于本实施方式的存储系统10,特征之一在于,通过块区域(第1数据管理单位)和比该块区域小的区域(第2数据管理单位)来管理写数据。
图7表示哈希管理表240的表结构。在比块区域小的区域(以下将其称为小块区域)(例如,1个小块区域的最小单位为512字节)中,管理写数据的管理信息241,根据用于检索该管理信息241的起始地址部242的起始地址,顺次关联而构成哈希管理表240。
图8表示管理信息241的结构。管理信息241中存储有:表示主VOL600的LUN的PLUN2411、表示虚拟VOL610的LUN的P_VLUN2412、表示差分位图表310中的位的位置的差分位位置2413、表示下个关联的管理信息241的块区域内的小块区域的起始LBA(Logical Brock Address)的下一管理信息起始LBA2414、表示主VOL600的一致性组(Consistency Group)的CTG2415、表示哈希管理表240的差分管理ID(Identification)的差分管理ID2416、表示区域内的小块区域的起始LBA的起始LBA2417、以及表示来自起始LBA2417的小块区域的大小的小块区域长度2418。
在该哈希管理表240中,通过使起始地址部242的起始地址与差分位图表310的位位置的号码对应,构成起始地址部242的起始地址。
另外,哈希管理表240,当关联管理信息241时,从管理信息241的差分位位置2413,检索与该管理信息相关联的起始地址部242的起始地址。
并且,哈希管理表240,通过将管理信息241与,从管理信息241的差分位位置2413检索到的起始地址部242的起始地址相关联,来管理该管理信息241。
此外,哈希管理表240,在管理信息241与起始地址部242的起始地址相关联的状态下,从管理信息241的差分位位置2413检索相同起始地址部242的起始地址的情况下,通过在与起始地址部242的起始地址相关联的管理信息241上关联该管理信息241,来管理该管理信息241。
另外,哈希管理表240,此后,从管理信息241的差分位位置2413,检索到相同起始地址部242的起始地址的情况下,通过将该管理信息241与最后关联的管理信息241关联,来管理该管理信息241。
如此,在哈希管理表240中,通过使起始地址部242的起始地址与差分位图表310的位位置的号码对应,能够以差分位图表310的位位置的号码,对管理信息241进行哈希管理,其结果,可以高效地对管理信息241进行负荷分散,可以进行检索性更好的哈希管理。
另外,在哈希管理表240中,通过以起始LBA2417以及小块区域长度2418来管理小块区域,与以小块区域的位图表来进行管理的情况相比,能够以更少的存储器容量管理写数据。
在此,图9和图10是表示与该存储系统10中的、使用差分位图表310和哈希管理表240的写数据的管理处理相关的第1存储控制装置20的具体的处理步骤的流程图。
CPU23,在初期根据图9和图10所示的写数据管理处理步骤RT1,以待机模式等待从正主系统100接收写数据(S201)。
马上,CPU23,当从正主系统100接收写数据时(S201:YES),将接收到的写数据写入主VOL600,将与写入的写数据的块区域相对应的差分位图表310的位从“0”更新为“1”(S202)。
接着,CPU23,调查哈希管理表240的容量,检查哈希管理表240中是否有存储新写入的写数据的管理信息241的容量(S203)。
然后,CPU23,在哈希管理表240中没有存储新写入的写数据的管理信息241的容量的情况下(S203:NO),通过与写入的写数据的块区域相对应的差分位图310的位,来管理写入的写数据(S204),此后,再次返回等待从正主系统100接收写数据的待机模式(S201)。
与此相对,CPU23,在有存储新管理信息241的容量的情况下(S203:YES),生成写入的写数据的管理信息241(以下,将其称为写管理信息241)(S205)。
在这种情况下,例如,写管理信息241,如图11所示,PLUN2411为“3”、P_VLUN2412为“3”、差分位位置2413为“4”、下一管理信息起始LBA2414为“0x00”、CTG2415为“5”、差分管理ID2416为“15”、起始LBA2417为“64”(从先头起32K字节的位置)、小块区域长度2418为“32”(16K字节)。
此外,写管理信息241的下一管理信息起始LBA2414中的“0x00”,是与哈希管理表240中的起始地址部242的起始地址相关联的最后的管理信息241,表示还未与下一管理信息241关联。
接着,CPU23,从该写管理信息241的差分位位置2413,检索与写管理信息241关联的起始地址部242的起始地址(S206)。
接着,CPU23,检查根据写管理信息241的差分位位置2413检索到的起始地址部242的起始地址,是否已经与其它管理信息241相关联(S207)。
并且,CPU23,在起始地址部242的起始地址未与其它管理信息241相关联的情况下(S207:NO),将该写管理信息241与起始地址部242的起始地址相关联,通过哈希管理表240中的写管理信息241的起始地址2417和小块区域长度2418,管理写入的写数据(S208)。此后,再次返回等待从正主系统100接收写数据的待机模式(S201)。
与之相对,CPU23,在起始地址部242的起始地址已经与其它管理信息241相关联的情况下(S207:YES),调查其它管理信息241的起始LBA2417、以及小块区域长度2418,检查已写入的写数据是否与通过其它管理信息241所管理的写数据重叠(S209)。
并且,CPU23,在写入的写数据和通过其它管理信息241所管理的写数据重叠的情况下(S209:YES),调查所关联的其它管理信息241的起始LBA2417、和小块区域长度2418,将写管理信息241和其它管理信息241集中为1条管理信息241来变更,通过哈希管理表240中的写管理信息241的起始地址2417和小块区域长度2418,来继续管理写入的写数据(S210)。
例如,在已经与起始地址部242的起始地址相关联的其它管理信息241的起始LBA2417为“32”,小块区域长度2418为“48”的情况下,如图12所示,写入的写数据重叠在该管理信息241所管理的写数据上。
此时,CPU23,如图13所示,通过将已经与起始地址部242的起始地址相关联的其它管理信息241的小块区域长度2418,从“48”变更为“64”,可以将已经与起始地址部242的起始地址关联的其它管理信息241和写管理信息241集中,作为1个管理信息241来管理。
如此,通过CPU23,在哈希管理表240中,写入的写数据和通过其它管理信息241所管理的写数据重叠的情况下,不通过各自管理信息241管理重复的写数据,而通过1个管理信息管理,由此,能够以更少的哈希管理表240的存储器容量来管理写数据,其结果,可以有效使用哈希管理表240的存储器容量,提高写数据的转发效率。
与之相对,CPU23,在写入的写数据和通过其它管理信息241所管理的写数据不重叠的情况下(S209:NO),调查已经与起始地址部242的起始地址相关联的其它管理信息241的数量,检查起始地址部242的起始地址,是否已经关联了4个其它管理信息241(S211)。
并且,当已经与起始地址部242的起始地址关联的其它管理信息241少于4个的情况下(S211:NO),CPU23调查已经与起始地址部242的起始地址相关联的其它管理信息241、以及写管理信息241的小块区域长度2418的合计值,检查该合计值是否大于规定的阈值(例如,阈值为48K字节)(S212)。
并且,在小块区域长度2418的合计值大于阈值的情况下(S212:YES),或已经和起始地址部242的起始地址相关联的其它管理信息241为4个的情况下(S211:YES),CPU23将已经与起始地址部242的起始地址相关联的管理信息241全部删除,通过与写入的写数据的块区域相对应的差分位图310的位,管理写入的写数据(S204),此后,再次返回等待从正主系统100接收写数据的待机模式(S201)。
如此,通过CPU23,通过不管理,并全部删除写数据的管理信息241,能够以更少的哈希管理表240的存储器容量来管理写数据,其中,所述写数据即使在块区域中向第2存储控制装置50转发写数据,转发效率也几乎不发生变化,其结果,可以有效地利用哈希管理表240的存储器容量,提高写数据的转发效率。
与之相对,在小块区域长度2418的合计值在阈值以下的情况下(S212:NO),CPU23在与起始地址部242的起始地址相关联的最后的管理信息241上,关联写管理信息241,通过哈希管理表240中的写管理信息241的起始地址2417以及小块区域长度2418,管理写入的写数据(S214)。
在这种情况下,例如,CPU23,通过将与起始地址部242的起始地址相关联的最后的管理信息241的下一管理信息起始LBA2414,从“0x00”改变为作为写管理信息241的起始LBA2417的“16”,在与起始地址部242的起始地址相关联的最后的管理信息241上,关联写管理信息241。
并且,CPU23,此后,再次返回等待从正主系统100接收数据的待机模式(S201)。
(2-2)基于本实施方式的、使用差分位图表310以及哈希管理表240的写数据的转发处理
接下来,对于基于本实施方式的、使用存储系统10中的差分位图表310以及哈希管理表240的写数据的转发处理进行说明。本实施方式的存储系统10,通过块区域(第1数据管理单位),或比该块区域小的区域(第2数据管理单位),将写数据向第2存储控制装置50转发。
在此,图14和图15是表示,与使用该存储系统10中的差分位图表310和哈希管理表240的写数据的转发处理相关的、第1存储控制装置20以及第2存储控制装置50的具体的处理步骤的流程图。
CPU23,在初期按照图14所示的写数据转发处理步骤RT2,以待机模式,等待从分离时刻经过规定时间(S301)。
最终,当从分离时刻经过规定时间时(S301:YES),CPU23使远程复制执行程序210运行,将差分位图表310并入转发差分位图表510(S302)。
接着,CPU23,通过对转发差分位图表510的位更新为“1”的位进行检索,检索与更新为“1”的位相对应的应该转发的块区域(S303)。
接着,CPU23,作为对转发差分位图表510的位被更新为“1”的位进行检索的检索结果,检查是否存在与被更新为“1”的位相对应的应该转发的块区域(S304)。
然后,CPU23,在不存在与被更新为“1”的位对应的应该转发的块区域的情况下(S304:NO),此后,再次返回等待从分离时刻经过规定时间的待机模式(S301)。
与之相对,在存在与被更新为“1”的位对应的应该转发的块区域的情况下(S304:YES),CPU23通过检索与转发差分位图表510的位被更新为“1”的位位置相对应的、哈希管理表240的起始地址部的起始地址相关联的管理信息241,检索与被更新为“1”的位对应的应该转发的块区域内的应该转发的块区域(S305)。
接下来,CPU23,作为对管理信息241进行检索的检索结果,检查是否存在应该转发的块区域内的应该转发的小块区域(S306),所述关联信息241与转发差分位图表510的位被更新为“1”的位位置相对应的、哈希管理表240的起始地址部的起始地址相关联。
然后,CPU23,在存在应该转发的块区域内的应该转发的小块区域的情况下(S306:YES),在应该转发的块区域内的应该转发的小块区域中,执行上述远程复制处理,当对应该转发的块区域内的应该转发的小块区域进行转发时,删除与转发的小块区域对应的管理信息241(S307)。
在这种情况下,例如,CPU23,通过将与所删除的管理信息241的前一个管理信息相关联的下一管理信息起始LBA2414,变更为与所删除的管理信息241的后一个管理信息相关联的下一管理信息起始LBA2414,在与所删除的管理信息241的前一个管理信息相关联的管理信息241上,关联与已删除的管理信息241的后一个管理信息相关联的管理信息241。
接下来,CPU23,通过对与转发差分位图表510的位被更新为“1”的位位置相对应的哈希管理表240的起始地址部的起始地址相连的管理信息241进行检索,检查是否将应该转发的块区域内的应该转发的小块区域全部转发(S308)。
然后,在没有全部转发应该转发的块区域内的应该转发的小块区域的情况下(S308:NO),CPU23在应该转发的块区域内的应该转发的小块区域中,执行上述远程复制处理,当转发应该转发的块区域内的应该转发的小块区域时,删除与已转发的小块区域相对应的管理信息241(S307)。
与之相对,在不存在应该转发的块区域内的应该转发的小块区域的情况下(S306:NO),CPU23在应该转发的块区域中,执行上述远程复制处理(S309)。
然后,CPU23,在全部转发了应该转发的块区域内的应该转发的小块区域的情况下(S308:YES),或者在应该转发的块区域中执行了上述的远程复制处理的情况下,将与已转发的块区域对应的转发差分位图表510的位从“1”更新为“0”(S310)。
接下来,CPU23通过对与被更新为“1”的位相对应的应该转发的块区域内的应该转发的块区域进行检索,检查是否全部转发了应该转发的块区域(S311)。
然后,CPU23在没有全部转发应该转发的块区域的情况下(S311:NO),检查是否存在应该转发的块区域内的应该转发的小块区域(S306)。
与之相对,CPU23在全部转发了应该转发的块区域的情况下(S311:YES),此后,再次返回等待从分离时刻经过规定时间的待机模式(S301)。
此后,CPU63通过上述的远程复制处理,在副VOL700中再现分离时刻的主VOL600的数据图像,向CPU23报告写完成。
另外,当将从CPU接收到的数据写入副VOL700时,CPU63使更新前数据(作为根据写数据而更新(覆写)前的数据,且作为向副VOL700写入的过去的数据),从副VOL700向池VOL720转移。
并且,CPU63根据在分离时刻存储在副VOL700中的数据,和在分离时刻以后从副VOL700向池VOL720转移的数据,将快照管理信息400更新为,用于恢复分离时刻的副VOL700的数据图像的信息。
此外,通过第1存储控制装置20,将虚拟VOL610、快照管理信息300以及转发差分位图表510,双重写入高速缓冲存储器25A、25B中,但是对于哈希管理表240,由于存储在本地存储器26中,所以不进行双重写入。
因此,通过第1存储控制装置20,在远程复制处理时,一方的控制器中发生了故障的情况下,另一方的控制器的CPU继续执行远程复制处理,但在这种情况下,另一方的控制器的CPU中,不参照哈希管理表240,仅通过参照转发差分位图表310,在转发的块区域中执行上述远程复制处理。
另外,通过第1存储控制装置20,当远程复制处理时,在一方的控制器中发生了故障的情况下,在另一方的控制器的CPU重新从正主系统100接收到写数据的情况下,在哈希管理表240中存储了管理信息241的情况下,删除全部的管理信息241,从此时刻开始,另一方的控制器的CPU,执行使用了差分位图表310以及哈希管理表240的管理处理以及转发处理。
另一方面,通过第1存储控制装置20,此后,在一方的控制器的故障恢复了的情况下,为了防止故障发生后到恢复的矛盾,在一方的控制器的CPU中,不参照哈希管理表240,仅通过参照转发差分位图表310,在转发的块区域中执行上述远程复制处理。
另外,通过第1存储控制装置20,在一方的控制器的故障恢复了的情况下,在该控制器的CPU重新从正主系统100接收了写数据的情况下,在哈希管理表240中存储了管理信息241的情况下,删除全部的管理信息241,从此时刻开始,一方的控制器的CPU,执行使用了差分位图表310和哈希管理表240的管理处理以及转发处理。
如此,在存储系统10中,通过差分位图表310的位,来管理块区域的写数据,同时,通过哈希管理表240的管理信息241,来管理比块区域小的区域的写数据。
因此,在存储系统10中,在块区域内的、向第2存储控制装置50转发的写数据较少的情况下,通过在小块区域中执行远程复制处理,可以减少写数据的转发量,在块区域内的向第2存储控制装置50转发的写数据较多的情况下,通过在块区域中执行远程复制处理,可以减少哈希管理表240的存储器容量,于是,在可以有效地防止存储器容量的增加的同时,可以显著地使数据的转发效率提高。
此外,在本实施方式中,对于通过块区域(第1数据管理单位),和比该块区域小的区域(第2数据管理单位)来管理写数据的情况进行了描述,但本发明不限于此,例如,也可以通过3个以上的数据管理单位来管理写数据。
另外,在本实施方式中,对于1个块区域为“64K字节”,1个小块区域的最小单位为“512字节”的情况进行了描述,但本发明不限于此,例如,也可以1个块区域为“64K字节”,1个小块区域的最小单位为“8K字节”,能够以其它各种大小的块区域以及小块区域进行管理。
而且,在本实施方式中,对于,将已与起始地址部242的起始地址相关联的管理信息241全部删除,通过与写入的写数据的块区域对应的差分位图310的位,管理写入的写数据的阈值为“48K字节”的情况进行了描述,但本发明不限于此,例如,阈值也可以为“32K字节”,可以成为其它各种大小的阈值。
而且,在本实施方式中,对于在已与起始地址部242的起始地址相关联的其它的管理信息241为4个的情况下,全部删除已与起始地址部242的起始地址相关联的管理信息241,通过与写入的写数据的块区域相对应的差分位图310的位,来管理写入的写数据的情况进行了描述,但本发明不限于此,例如,其它管理信息241也可以在4个以下,或者也可以是比4大的数量,可以是其它各种数量。
(3)本实施方式的命令作业的优先执行处理
接下来,对于本实施方式的存储系统10中的命令作业的优先执行处理进行说明。本实施方式的存储系统10的特征之一在于,设定命令作业的优先度,根据该优先度排列并存储命令作业,根据基于优先度的设定,以所排列的顺序执行命令作业。
图16是表示,通过由CPU23执行命令作业优先执行程序250,来进行的命令作业优先执行处理的概略图。CPU23,通过执行命令作业优先执行程序250,在本地存储器26中展开:作业生成部2501、高优先存储部2502、普通存储部2503、命令作业调度部2504、命令作业执行部2505、命令作业分配信息2506以及命令作业执行设定信息2507。
在此,图17是表示与该存储系统10中的命令作业的存储处理相关的第1存储控制装置20的具体的处理步骤的流程图。
CPU23,在初期,按照图17所示的命令作业的存储处理步骤RT3,根据来自正主系统100的读命令或写命令、远程复制处理的执行请求、内部复制处理的执行请求等,检查作业命令生成部2501是否接收到,作为用于CPU23执行这些动作的作业的、命令作业的生成请求(S401)。
然后,CPU23,在作业命令生成部2501没有接收到命令作业的生成请求的情况下(S401:NO),以待机模式,等待在作业命令生成部2501接收命令作业的生成请求。
与之相对,CPU23,在作业命令生成部2501接收到命令作业的生成请求的情况下(S401:YES),在作业命令生成部2501中,生成与上述的存取或请求等相对应的命令作业(S402)。
接着,CPU23,在作业命令生成部2501中,通过参照命令作业分配信息2506,检查所生成的命令作业,是否被存储在高优先存储部2502中(S403)。
在这种情况下,高优先存储部2502,存储命令作业中优先度“高”的命令作业,按照从旧至新的顺序排列并存储命令作业。
另外,普通存储部2503,存储命令作业中优先度“中”的命令作业,按照从旧至新的顺序排列并存储命令作业。
具体而言,高优先存储部2502和普通存储部2503,作为以从旧至新的顺序将存储的命令作业取出的方式,最新存储的命令作业最后被取出,具有FIFO(First In First Out)型缓冲器那样的功能。
而且,命令作业分配信息2506设定了命令作业的优先度,是表示将命令作业中的哪个命令作业分配至高优先存储部2502并存储,将哪个命令作业分配至普通存储部2503并存储的信息。
具体而言,使命令作业分配信息2506表示,例如,在命令作业中,用于进行远程复制处理的“数据转发作业(转发作业)”以及数据转发作业的“升级作业(STG作业)”,是优先度“高”的命令作业的信息,除此以外的命令作业,是优先度“中”的命令作业。
并且,CPU23,在作业命令生成部2501中,通过参照命令作业分配信息2506,将生成的命令作业存储在高优先存储部2502中的情况下(S403:YES),将生成的命令作业,排列在已经在高优先存储部2502中按从旧至新的顺序排列的命令作业的最后,存储在高优先存储部2502中(S404)。
与之相对,CPU23,在作业命令生成部2501中,通过参照命令作业分配信息2506,将生成的命令作业存储在普通存储部2503中的情况下(S403:NO),将生成的命令作业,排列在已经在普通优先存储存储部2503中按从旧至新的顺序排列的命令作业的最后,存储在普通存储部2503中(S405)。
例如,CPU23,在所生成的命令作业是“数据转发作业”的情况下,将“数据转发作业”,排列在已经在高优先存储部2502中按从旧至新的顺序排列的命令作业的最后,存储在高优先存储部2502中,在所生成的命令作业是“集中作业”的情况下,将“集中作业”排列在已经在普通存储部2503中按照从旧至新的顺序排列的命令作业的最后,存储在普通存储部2503中。
最终,CPU23,此后再次检查是否在作业命令生成部2501接收到了命令作业的生成请求(S401)。
另外,图18是表示,与该存储系统10中的命令作业的优先执行处理相关的第1存储控制装置20的具体的处理步骤的流程图。
CPU23,在初期,根据图18所示的命令作业的优先执行处理步骤RT4,在命令作业调度部2504中,检查命令作业是否存储在高优先存储部2502或普通存储部2503中(S501)。
并且,CPU23,在高优先存储部2502或普通存储部2503中没有存储命令作业的情况下(S501:NO),以待机模式等待在高优先存储部2502或普通存储部2503中存储命令作业。
与之相对,CPU23,在高优先存储部2502或普通存储部2503中存储有命令作业的情况下(S501:YES),在命令作业调度部2504中,通过参照命令作业执行设定信息2507,选择从高优先存储部2502、或普通存储部2503的哪个中取出命令作业,将所存储的最早的命令作业,送至命令作业执行部2505(S502)。
在这种情况下,命令作业调度部2504,选择从高优先存储部2502或普通存储部2503中的哪个中取出命令作业,将所选择的存储部中存储的最早的命令作业,送至命令作业执行部2505。
另外,命令作业分调度部2504,每当命令作业执行部2505中的命令作业的执行结束时,和上述同样地,选择高优先存储部2502、或普通存储部2503,将命令作业发送至命令作业执行部2505。
命令作业执行设定信息2507表示,是取出高优先存储部2502中存储的命令作业,并送至命令作业执行部2505,还是取出普通存储部2503中存储的命令作业,并送至命令作业执行部2505。
具体而言,命令作业执行设定信息2507表示,例如,以“2∶1”的比例执行以下处理:取出高优先存储部2502中存储的命令作业,并送至命令作业执行部2505;取出普通存储部2503中存储的命令作业,并送至命令作业执行部。
即,CPU23,在命令作业调度部2504中,当按照从旧至新的顺序发送两条高优先存储部2502中存储的命令作业时,发送1条普通存储部2503中存储的最早的命令作业。
接着,CPU23,在命令作业执行部2505中,执行从命令作业调度部2504发送的命令作业(S503)。
接着,CPU23,在命令作业调度部2504中,检查高优先存储部2502、或普通存储部2503中是否仍存储有未执行的命令作业(S504)。
并且,CPU23,在高优先存储部2502或普通存储部2503中仍存储有未执行的命令作业的情况下(S504:YES),此后,通过再次在命令作业调度部2504中,参照命令作业执行设定信息2507,来从高优先存储部2502、或普通存储部2503选择命令作业,并送至命令作业执行部2505(S502)。
与之相对,CPU23,在高优先存储部2502、或普通存储部2503中没存储有未执行的命令作业的情况下(S504:NO),此后,结束该命令作业的优先执行处理步骤RT4(S505)。
此外,在命令作业调度部2504中,在高优先存储部2502中没有存储命令作业的情况下,CPU23取出普通存储部2503的命令作业,并送至命令作业执行部2505,直到将命令作业新存储在高优先存储部2502中,在普通存储部2503中没有存储命令作业的情况下,CPU23取出高优先存储部2502的命令作业,并送至命令作业执行部2505,直到将命令作业新存储在普通存储部2503中。
并且,CPU23,在高优先存储部2502以及普通存储部2503中存储有命令作业的情况下,在命令作业调度部2504中,参照命令作业执行设定信息2507。
如此,在存储系统10中,设有高优先存储部2502,设定命令作业的优先度,将优先度“高”的命令作业存储在高优先存储部2502中,根据命令作业执行设定信息2507,优先执行优先度“高”的命令作业,由此,即使CPU23处于过负荷状态,也可以提前有效防止,为了维持第1存储控制装置20的处理性能而必须优先执行的命令作业没有被执行等事态,其结果,可以平衡良好地维持第1存储控制装置20的处理性能。
另外,在存储系统10中,在高优先存储部2502中存储“数据转发作业”及其“升级作业”,根据命令作业执行设定信息2507,优先地执行“数据转发作业”及其“升级作业”,由此,即使CPU23为过负荷状态,也可以平衡良好地维持来自正主系统100的存取处理性能和向第2存储控制装置50的数据转发性能。
此外,在本实施方式中,令命令作业分配信息2506为,将“数据转发作业(转发作业)”以及数据转发作业的“升级作业(STG作业)”,作为优先度“高”的命令作业,将除此以外的命令作业作为优先度“中”的命令作业的情况进行了描述,但本发明不限于此,例如,可以将“复制作业”作为优先度“高”的命令作业等,可以自由设定或变更其它各种命令作业的优先度。
另外,在本实施方式中,对于通过命令作业分配信息2506,将优先度“高”的命令作业、或优先度“中”的命令作业这两个命令作业,分配至对应的存储部的情况进行了描述,但本发明不限于此,也可以将优先度“高”的命令作业、优先度“中”的命令作业、或优先度“低”的命令作业这3个命令作业,分配至对应的存储部,另外,在优先分配后,可以将对应的存储部的数量设置在3个以上,将所述的作业分配至各自对应的存储部。
而且,在本实施方式中,对于通过参照命令作业执行设定信息2507,以“2∶1”的比例,执行取出高优先存储部2502中存储的命令作业,并发送至命令作业执行部2505,和取出普通存储部2503中存储的命令作业,并发送至命令作业执行部2505的处理的情况进行了描述,但本发明不限于此,例如,也能以“3∶1”或“5∶2”等“2∶1”以外的比例执行,另外,除了比例以外,可以通过各种方法,选择从高优先存储部2502或普通存储部2503中的哪一个取出命令作业。
如此,在存储系统10中,通过自由地设定或变更命令分配信息2506以及命令作业执行设定信息2507,可以更平衡良好地维持第1存储控制装置20的处理性能。
(4)基于本实施方式的集中通信命令的收发处理
接着,对于本实施方式的存储系统10中的集中通信命令的收发处理进行说明。本实施方式的存储系统10,特征之一在于,在通信源的存储控制装置中,将同种的通信命令集中为1个集中通信命令,向通信目的地的存储控制装置发送,在通信目的地的存储控制装置中,将集中通信命令分割为单个通信命令,执行对单个通信命令的处理,将集中通信命令的处理结果向通信源的存储控制装置发送,在通信源的存储控制装置中,执行对于所发送的处理结果的处理。
在此,图19是表示第1存储控制装置20和第2存储控制装置50的具体的处理步骤的流程图,所述第1存储控制装置20和第2存储控制装置50,与由CPU23和CPU63执行集中通信执行程序260,而进行的集中通信命令的收发处理相关。
CPU23,在初期,按照图19所示的集中通信命令的收发处理RT5,从正主系统100接收和第2存储控制装置50的通信控制相关的多个通信命令(S601)。
接下来,CPU23,在多个通信命令中,通信命令A、通信命令B、通信命令C和通信命令D为同种通信命令的情况下,如图20所示,通过将这些单个通信命令A、通信命令B、通信命令C和通信命令D排列为一个列表,将同种通信命令A~D集中为1个集中通信命令M(S602)。
在这种情况下,例如,通信命令A~D是4个分离命令,用于使和主VOL600为对状态的4个副VOL700全部成为分离状态。
接下来,CPU23,生成用于发送集中通信命令M的通知命令,将该通知命令向第2存储控制装置50发送(S603)。
接下来,CPU63,当从第1存储控制装置20接收通知命令时,识别出下一接收的通信命令为集中通信命令,生成识别出下一接收的通信命令是集中通信命令的应答命令,将该应答命令向第2存储控制装置50发送(S604)。
接下来,CPU23,当从第2存储控制装置50接收应答命令时,将集中通信命令M向第2存储控制装置50发送(S605)。
接下来,CPU63,当从第1存储控制装置20接收集中通信命令M时,将集中通信命令M分割为单个通信命令A~D,执行对于这些单个通信命令A~D的处理,得到该各处理的处理结果,发送对于集中通信命令M的处理结果(S606)。
在这种情况下,如图21所示,例如,在该各处理的处理结果A~D全部正常结束的情况下,作为对于集中通信命令M的处理结果,CPU63将“正常结束”的处理结果D向第2存储控制装置50发送,该处理结果D是对于集中通信命令M中最后的通信命令的通信命令D的处理结果。
另外,如图22所示,例如,在作为对于通信命令C的处理结果的处理结果C异常结束的情况下,CPU63放弃未执行的通信命令D的处理,作为对于集中通信命令M的处理结果,将“异常结束”的处理结果C向第2存储控制装置50发送。
接下来,CPU63,当从第2存储控制装置50接收到对于集中通信命令M的处理结果时,执行对于接收到的处理结果的处理(S607)。
在这种情况下,例如,在该各处理的处理结果A~D全部正常结束,作为对于集中通信命令M的处理结果,CPU63接收到“正常结束”的处理结果D的情况下,CPU63确认集中通信命令M中最后的通信命令,根据该通信命令是通信命令D,判断出集中通信命令M正常结束,例如,执行下一集中通信命令的收发处理。
另外,例如,在作为对于通信命令C的处理结果的处理结果C异常结束,作为对于集中通信命令M的处理结果,CPU63接收到“异常结束”的处理结果C的情况下,CPU63确认集中通信命令M中最后的通信命令,根据该通信命令是通信命令D,判断出集中通信命令M以通信命令C异常结束,例如,对于通信命令C以及通信命令D,再次执行集中通信命令的收发处理。
如此,在存储系统10中,在第1存储控制装置20中,将同种通信命令A~D集中为1个集中通信命令M,发送至第2存储控制装置50,在第2存储控制装置50中,将集中通信命令M分割为单个通信命令A~D,分别执行对于通信命令A~D的处理,将对于集中通信命令M的处理结果向第1存储控制装置20发送,在第1存储控制装置20中,通过执行对于所发送的处理结果的处理,可以提前有效地防止每次对同种通信命令进行通信所导致的数据转发性能的降低,于是,可以提高数据转发性能。
另外,例如,在作为对通信命令C的处理结果的处理结果C异常结束的情况下,通过放弃未执行的通信命令D的处理,作为对于集中通信命令M的处理结果,将“异常结束”的处理结果C向第2存储控制装置50发送,从而在发生故障时,可以即时报告故障的发生,执行对于故障的处理,于是,可以提高存储系统10的处理性能。
此外,在本实施方式中描述了如下情况,即,作为通信命令A~D,列举出用于使和主VOL600为对状态的4个副VOL700全部成为分离状态的4个分离命令,但本发明不限于此,例如,也可以是:对于与主VOL600为对状态的4个副VOL700的对状态进行确认的4个对状态确认命令;以规定时间间隔,从主VOL600向副VOL700更新复制时的4个更新复制通信命令;以规定时间间隔,从主VOL600向副VOL700更新复制时,结束复制处理的4个更新复制通信命令等,也可以应用其它各种通信命令。
另外,在本实施方式中,对于多个通信命令中,通信命令A、通信命令B、通信命令C、以及通信命令D为同种通信命令的情况进行了描述,但本发明不限于此,例如,若是同种通信命令,则可以将4个以下的通信命令集中为1个集中通信命令,或者也可以将多于4个的通信命令,集中为1个集中通信命令。
产业上的可利用性
本发明,除了在磁盘阵列装置间管理数据的存储系统以外,也可以应用于数据转发的管理中所使用的各种其它设备。

存储控制装置及其数据管理方法.pdf_第1页
第1页 / 共52页
存储控制装置及其数据管理方法.pdf_第2页
第2页 / 共52页
存储控制装置及其数据管理方法.pdf_第3页
第3页 / 共52页
点击查看更多>>
资源描述

《存储控制装置及其数据管理方法.pdf》由会员分享,可在线阅读,更多相关《存储控制装置及其数据管理方法.pdf(52页珍藏版)》请在专利查询网上搜索。

本发明提供一种存储控制装置,其可以有效防止存储器容量的增加,同时显著提高数据的转发效率。该存储控制装置提供用于存储从上位装置发送的数据的卷,并具备:管理部,其通过第1数据单位、或该第1数据单位内的比第1数据单位小的第2数据单位,来管理被写入卷的数据;快照取得部,其在规定时刻取得卷的快照;转发部,其将快照取得部通过快照所取得的卷的数据,通过第1数据单位或第2数据单位向外部设备转发。 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1