存储系统的制作方法

文档序号:6408421阅读:123来源:国知局
专利名称:存储系统的制作方法
技术领域
本发明涉及存储系统,特别是涉及多个存储系统间的数据复制。
背景技术
近年来,经常由于要对顾客提供连续的服务,因此,既便是在第一存储系统中发生障碍的情况下,数据处理系统也能够提供服务的、有关存储系统间的数据复制的技术变得越来越重要。作为将第一存储系统内存储的信息复制到第二和第三存储系统的技术,存在以下的专利文献中所公开的技术。
美国专利No.5170480号公报中,公开了这样一种技术连接在第一存储系统上的第一计算机,通过第一计算机和第二计算机间的通信链路,将第一存储系统内存储的数据传送给第二计算机,第二计算机再将其传送给与第二计算机相连的第二存储系统。
在美国专利6209002号公报中公开了以下技术第一存储系统将第一存储系统内存储的数据传送给第二存储系统,而后,第二存储系统将其传送给第三存储系统。计算机和第一存储系统是通过通信链路而连接的,第一存储系统和第二存储系统是通过通信链路连接的,而且,第二存储系统和第三存储系统是通过通信链路连接的。第一存储系统保持复制对象的第一逻辑卷。第二存储系统,保存作为第一逻辑卷的副本(copy)的第二逻辑卷,以及作为第二逻辑卷的副本的第三逻辑卷。第三存储系统保存作为第三逻辑卷的副本的第四逻辑卷。在该专利文献中,第二逻辑系统排他地执行从第二逻辑卷到第三逻辑卷的数据复制处理,与从第三逻辑卷到第四逻辑卷的数据复制处理。
(专利文献1)美国专利No.5170480号公报(专利文献2)美国专利No.6209002号公报发明内容(发明目的)
美国专利No.5170480号公报中所公开的技术,为了数据复制而经常要使用第一计算机和第二计算机。第一计算机执行通常的业务,不能无视对于第一计算机所添加的数据复制处理的负荷。再有,用于复制的数据,由于使用第一计算机和第一存储系统间的通信链路,因此与通常业务所必需的数据传输发生冲突,存在通常业务所必需的数据参考、数据更新时间变长的问题。
美国专利No.6209002号公报中公开的技术,在第二存储系统和第三存储系统中,必须是执行复制的数据量的存储容量的2倍的存储容量。由于复制对象的数据量多,因此,数据复制处理所花费的时间变长,第三存储系统的数据会变旧。其结果,使用第三存储系统的数据再次执行业务的情况下,使第三存储系统的数据变为最新数据的时间变长,存在到再开始业务时的时间延长的问题。再者,在该文献中,第一存储系统,除了执行第一存储系统内的数据更新处理外,还在与第二存储系统之间的数据行进处理结束的时间点上,还对上一级计算机执行数据更新完毕报告。因此,来自于计算机的数据更新所耗费的时间长,如果第一存储系统和第二存储系统之间的距离越远,则数据更新所耗费的时间越长。其结果,如果按照该文献中所公开的技术,则存在不能把各存储系统间的距离设置得太远的问题。
本发明的目的是对于存储系统的上一级计算机不施加影响,而在多个存储系统间执行数据传输或数据复制。再者,本发明的目的还有对存储系统和计算机间的通信也不施加影响。
还有,本发明的目的是能够使多个存储系统内存储的数据存储区变少。另外,以不对多个存储系统的上一级计算机的业务施加影响的方式,高速有效地在多个存储系统之间执行数据传输或数据复制。
(发明概述)为了解决这些问题,在本发明中,第一存储系统,将有关第一存储系统内存储的数据之更新的信息作为日志(journal)进行存储。日志,具体而言是用更新中使用的数据的拷贝和更新时的写入命令等更新信息构成的。另外,第二存储系统通过第一存储系统和第二存储系统间的通信线,获取所述日志。第二存储系统保持第一存储系统所保持的数据的副本,并使用所述日志,按照第一存储系统中的数据更新顺序,更新与第一存储系统的数据相对应的数据。
在本发明中,第二存储系统保持第二存储区,用于存储第一存储系统执行存储的第一存储区内所存储的数据的副本;将有关第二存储区的数据的更新之信息作为日志,存储在日志专用的第三存储区内。第三存储区的存储容量,可以是比第二存储区少的存储容量。另外,第三存储系统,通过第二存储系统和第三存储系统之间的通信线,来获取所述日志,并将其存储在日志专用的第四存储区内。第四存储区的存储容量可以是比第二存储区少的存储容量。第三存储系统,保持用于存储被存储在第二存储区内的数据之副本的第五存储区,并使用所述日志,按照第二存储区中的数据更新顺序,对与第二存储区相对应的第五存储区的数据进行更新。


图1是本发明一实施例的逻辑结构框图。
图2是本发明一实施例的存储系统的框图。
图3是用于说明本发明一实施例的更新信息和写入数据的关系的图。
图4是用于说明本发明一实施例的卷信息的例子的图。
图5是用于说明本发明一实施例的对(pair)信息的例子的图。
图6是用于说明本发明一实施例组信息的例子的图。
图7是用于说明本发明一实施例的指针信息的例子的图。
图8是用于说明本发明一实施例的日志逻辑卷的结构的图。
图9是用于说明本发明一实施例的开始数据复制的顺序的流程图。
图10是用于说明本发明一实施例的初期拷贝处理的流程图。
图11是用于说明本发明一实施例的命令接收处理的图。
图12是用于说明本发明一实施例的命令接收处理的流程图。
图13是本发明一实施例的日志生成处理的流程图。
图14是用于说明本发明一实施例的日志读接收处理的图。
图15是用于说明本发明一实施例的日志读接收处理的流程图。
图16是用于说明本发明一实施例的日志读命令处理的图。
图17是用于说明本发明一实施例的日志读命令处理的流程图。
图18是用于说明本发明一实施例的日志存储处理的流程图。
图19是用于说明本发明一实施例的重新启动处理的图。
图20是用于说明本发明一实施例的重新启动处理的流程图。
图21是用于说明本发明一实施例的更新信息的例子的图。
图22是用于说明本发明一实施例的日志生成处理时的更新信息的例子的图。
图23是显示本发明第2实施例的图。
图24是显示本发明第3实施例的图。
具体实施例方式
以下,将利用附图,详细地说明按照本发明的数据处理系统的实施例。
图1是显示本发明第一实施例的逻辑结构的框图。
本发明的一个实施例是这样构成的主机180和存储系统100A通过连接总线190相连,存储系统100A和用于保持存储系统100A中所保存的数据之副本的存储系统100B通过连接总线200相连。在以下的说明中,为了容易区分保持复制对象的数据的存储系统100,和保持复制数据的存储系统100,我们决定将保持复制对象的数据的存储系统100称为正存储系统100A,将保持复制数据的存储系统100称为副存储系统100B。
对存储系统100的存储区进行分割管理,分割后的存储区叫做逻辑卷230。逻辑卷230的容量和存储系统100内的物理存储位置(物理地址),能够使用连接在存储系统100上的计算机等维修终端或主机180来指定。各逻辑卷230的物理地址,保存在后述的卷信息400内。物理地址,例如是用于识别存储系统100内的存储装置150的编号(存储装置编号),和唯一地显示存储装置内的存储区的数值,例如是从存储装置的存储区的开头开始的位置。在以下的说明中,设物理地址是存储装置编码和从存储装置的存储区的开头开始的位置的组。在以下的说明中,逻辑卷是一个存储装置的存储区,但是,通过逻辑地址和物理地址的变换,1个逻辑卷可能对应多个存储装置的存储区。
存储系统100保存的数据的参照、更新,能够利用识别逻辑卷的编号(逻辑卷编号)和唯一显示存储区的数值,例如是从逻辑卷的存储区开头开始的位置,来唯一指定。以下,将逻辑卷编号和从逻辑卷的存储区开头开始的位置(逻辑地址内位置)的组称为逻辑地址。
在以下说明中,为了容易区分复制对象的数据和复制数据,我们决定将复制对象的逻辑卷230称为正逻辑卷,而将作为复制数据的逻辑卷230称为副逻辑卷。一对正逻辑卷和副逻辑卷称为对(pair)。正逻辑卷和副逻辑卷的关系和状态等保存在后述的对信息500内。
为了遵守逻辑卷间的数据的更新顺序,设置了所谓组管理单元。例如,主机180,更新正逻辑卷1的数据1,之后,读出数据1,使用数据1的数值,来执行更新正逻辑卷2的数据2的处理。在从正逻辑卷1到副逻辑卷1的数据复制处理,以及从正逻辑卷2到副逻辑卷2的数据复制处理是独立执行的情况下,存在在复制到副逻辑卷1的数据1的复制处理之前,执行复制到副逻辑卷2的数据2的复制处理的情况。在复制到副逻辑卷2的数据2的复制处理和复制到副逻辑卷1的数据1的复制处理之间,在由于故障等发生复制到副逻辑卷1的数据1的复制处理停止的情况下,则缺少副逻辑卷1和副逻辑卷2的数据的一致性。为了在这种情况下也保持副逻辑卷1和副逻辑卷2的数据的一致性,遵守数据更新顺序所必要的某个逻辑卷,在同一组中进行登录,每当有数据更新时,就分配后述的组信息600的更新编号,并按照更新编号的顺序,在副逻辑卷中执行复制处理。例如,在图1中,正存储系统100A的逻辑卷(DATA1)和逻辑卷(DATA2)构成了组1。作为逻辑卷(DATA1)之副本的逻辑卷(COPY1)和逻辑卷(DATA2)之副本的逻辑卷(COPY2),构成了副存储系统内的组1。
在更新作为数据复制对象的正逻辑卷的数据的情况下,为了更新副逻辑卷的数据,生成了后述的日志,并将器保存在正存储系统100A内的逻辑卷内。在本实施例的说明中,为每组分配仅保存日志的逻辑卷(以下称为日志逻辑卷)。图1中,为组1分配了逻辑卷(JNL1)。
还为副存储系统100B的组,分配了日志逻辑卷。日志逻辑卷,是为了保存从正存储系统100A传送到副存储系统100B的日志而使用的。通过将日志保存于日志逻辑卷内,例如,在副存储系统100B的负荷高的情况下,在日志接收时不执行副逻辑卷的数据更新,稍后,能够在副存储系统100B的负荷低的时侯,更新副逻辑卷的数据。又,在连接线200有多条的情况下,多路(日文多重に)执行从正存储系统100A到副存储系统100B的日志的传输,从而能够有效利用连接线200的传输能力。存在为了轮流进行更新,而在副存储系统100B中积压了许多日志的可能性,由于不能立刻用于副逻辑卷的数据更新的日志,退避到日志逻辑卷内,因此能够释放高速缓冲存储器。图1中,对副存储系统内的组1分配了逻辑卷(JNL2)。
日志由写入数据和更新信息构成。更新信息是用于管理写入数据的信息,由接收写入命令的时刻、组编号、后述的组信息600的更新编号、写入命令的逻辑地址、写入数据的数据大小、存储写入数据的日志的逻辑卷的逻辑地址等构成。更新信息也可以仅仅保持接收写入命令的时刻和更新编号中的任何一方。当在来自主机180的写入命令中存在写入命令之产生时刻的情况下,也可以使用该写入命令内的产生时刻,而不是接收写入命令的时刻。使用图3和图21,来说明日志的更新信息的例子。更新信息310,存储了在1999年3月17日的22时20分10秒时所接收的写入命令。该写入命令,是将写入数据存储在从逻辑卷编号1的存储区开头开始700的位置上的命令,数据大小是300。日志的写入数据,是从逻辑卷编号4(日志逻辑卷)的存储区开头开始1500的位置开始存储的。我们明白,逻辑卷编号1的逻辑卷属于组1,是从组1的数据复制开始的第4个数据更新。
例如如图3所示,将日志逻辑卷分割为存储更新信息的存储区(更新信息区域)和存储写入数据的存储区(写入数据区)来使用。更新信息区域,从更新信息区域的开头开始,按照更新编号的顺序执行存储,在到达更新信息区域的终端后,就从更新信息区域的开头开始执行存储。写入数据区,从写入数据区的开头开始存储写入数据,如果到达写入数据区的终端,就从写入数据区的开头开始执行存储。更新信息区域和写入数据区的比可以是固定值,也可以是由维修终端或主机180设定的。这些信息保持在后述的指针信息700内。在以下的说明中,将日志逻辑卷分割为更新信息和写入数据的区域,并使用日志逻辑卷,但也可以采用从逻辑卷的开头开始,连续存储日志即更新信息和写信息的方式。
将使用图1,将传给存储系统100A的正逻辑卷之数据更新,反映给副存储系统100B的副逻辑卷的操作,进行简要说明。
(1)存储系统100A,在接收了来自主机180的、针对正逻辑卷内的数据的写入命后,利用后述的命令接收处理210以及写处理220,执行正逻辑卷(DATA1)内的数据更新,以及在日志逻辑卷(JNL1)内执行日志的保存(图1的270)。
(2)存储系统100B,利用后述的日志读处理240,从存储系统100A中读出日志,通过读写处理220,在日志逻辑卷(JNL2)内保存日志(图1的280)。
(3)存储系统100A,在接收了读取来自存储系统100B的日志之命令后,通过后述的命令接收处理210和读写处理220,从日志逻辑卷(JNL1)读出日志,并将其传送给存储系统100B(图1的280)。
(4)存储系统100B,通过后述的重新启动处理250和读写处理220,使用指针信息700,按照更新编号的升序,从日志逻辑卷(JNL2)中读出日志,并更新副逻辑卷(COPY1)的数据(图1的290)。
在图2中显示了存储系统100的内部结构。存储系统100是这样构成的,它具有一个以上的主适配器110、一个以上的盘适配器120、一个以上的高速缓冲存储器130、一个以上的公用存储器140、一个以上的存储装置150、一个以上的公共总线160、以及一个以上的连接线170。主适配器110、盘适配器120、高速缓冲存储器130、公用存储器140通过公共总线160而相互连接。公共总线160也可以因公共总线160发生障碍时而被2路复用。盘适配器120和存储装置150通过连接线170进行连接。尽管图中未示,但是,用于执行存储系统100的设定、监视、维修等的维修终端,利用专用线,与所有的主适配器110和盘适配器120相连接。
主适配器110,控制主机180和高速缓冲存储器130间的数据传输。主适配器110,利用连接线190和连接线200,与主机180或其他存储系统100相连接。盘适配器120控制高速缓冲存储器130和存储装置150之间的数据传输。高速缓冲存储器130,是用于临时保存将所接收的来自于主机180的数据,或将从存储装置150读出的数据的存储器。公用存储器140是存储系统100内的所有主适配器110和盘适配器120共用的存储器。
卷信息400是管理逻辑卷的信息,它保持了卷状态、格式形式、容量、对编号以及物理地址。图4中显示了卷信息400的一个例子。卷信息400被保存在可由主适配器110和盘适配器120进行查找的存储器,例如是管理存储器140内。卷状态保持“正常”、“正”、“副”、“异常”、“未使用”中的任何一个。卷状态为“正常”或“正”的逻辑卷230,显示其是可从主机180正常进行访问的逻辑卷230。卷状态为“副”的逻辑卷230也可以许可来自主机180的访问。卷状态为“正”的逻辑卷230显示其是执行数据复制的逻辑卷230。卷状态为“副”的逻辑卷230显示其是复制中使用的逻辑卷230。卷状态为“异常”的逻辑卷230显示其是由于故障而不能正常进行访问的逻辑卷230。所谓故障例如是保持逻辑卷230的存储装置150的故障。卷状态为“未使用”的逻辑卷230显示其是没有使用的逻辑卷230。对编号,在卷状态为“正”或“副”的情况下是有效的,保持用于指定后述的对信息500的对编号。在图4所示的例子中,逻辑卷1从格式形式为OPEN3、容量为3GB、存储装置编号1的存储装置150的存储区的开头开始存储数据,其显示为可以进行访问,并且是数据复制对象。
对信息500是管理对的信息,保持由对状态、正存储系统编号、正逻辑卷编号、副存储系统编号、副逻辑卷编号、组编号、以及拷贝结束地址。图5中,显示了对信息500的一个例子。对信息500保存在可从主适配器110和盘适配器120进行查找的存储器例如是管理存储器140内。对状态保存“正常”、“异常”、“未使用”、“为复制”、“复制中”中的任何一个。对状态为“正常”的情况,显示正逻辑卷230的数据复制正在正常执行。对状态为“异常”的情况显示了由于故障而没有执行正逻辑卷230的复制。所谓障碍,例如是连接总线200的断线等。对状态为“未使用”的情况下,显示该对编号的信息不是有效的。对状态为“复制中”的情况显示是后述的初期复制处理中。对状态是“未复制”的情况显示还没有执行后述的初期复制处理。正存储系统编号,保持用于指定保持正逻辑卷230的正存储系统100A的编号。副存储系统编号,保持指定保持副逻辑卷230的副存储系统100B的编号。组编号在正存储系统的情况下,保持正逻辑卷所属的组编号。在副存储系统的情况下,保持副逻辑卷所属的组编号。拷贝结束地址将在后述的初期拷贝处理中进行说明。图5的对信息1,显示执行了数据复制对象是正存储系统1的正逻辑卷1、数据复制接受者是副存储系统2的副逻辑卷1的、正常的数据复制处理。
组信息600保持组状态、对集合、日志逻辑卷编号以及更新编号。图6中显示了组信息600的一个例子。组信息600保存在可从主适配器110和盘适配器120进行查找的存储器例如是管理存储器140内。组状态保持“正常”、“异常”、“未使用”中的任何一个。组状态为“正常”的情况,显示了对集合的至少一个对状态为“正常”。组状态为“异常”的情况,显示了对集合的所有对状态都为“异常”。组状态为“未使用”的情况,显示了该组编号的信息不是有效的。对集合,在正存储系统的情况下,保持组编号所示的组所属的所有正逻辑卷的对编号。在副存储系统的情况下,保持组编号所示的组所属的所有副逻辑卷的对编号。日志逻辑卷编号显示该组编号的组所属的日志逻辑卷编号。更新编号初始值为1,在对组内的正逻辑卷执行了数据写入后,加1。更新编号存储在日志的更新信息内,是为了在副存储系统100B中遵守数据的更新顺序而使用的。例如,图6的组信息1,根据对信息1,2,由正逻辑卷1,2以及日志逻辑卷4构成,它显示正常地执行数据的复制处理。
指针信息700为每一组进行保持,它是用于管理该组的日志逻辑卷的信息,它保持了更新信息区域起始地址、写入数据区起始地址、更新信息最新地址、更新信息最旧地址、写入数据最新地址、写入数据最旧地址、读开始地址、重试开始地址。。图7和图8中显示了指针信息700的一个例子。更新信息区域起始地址保持用于存储日志逻辑卷的更新信息之存储区(更新信息区域)的起始逻辑地址。写入数据区起始地址,保持用于存储日志逻辑卷的写入数据之存储区(写入数据区)的起始逻辑地址。更新信息最新地址,在存储下一个日志的情况下,保持更新信息的保存中所使用的起始逻辑地址。更新信息最旧地址,保持用于保存最老的(更新编号小的)日志的更新信息之起始逻辑地址。写入数据最新地址,在存储下一个日志的情况下,保持写入数据的保存中所使用的起始逻辑地址。写入数据最旧地址,保持用于保存最旧的(更新编号小的)日志的写入数据之起始逻辑地址。写起始地址和重试起始地址,仅仅在正存储系统100A中使用,在后述的日志读接收处理中使用。在图7和图8的指针信息700的例子中,保存日志的管理信息的区域(更新信息区域),从逻辑卷4的存储区开头到699的位置为止;保存日志的写入数据之区域(写入数据区)是逻辑卷4的存储区的从700的位置到2699的位置为止。日志的管理信息被保存在逻辑卷4的存储区的从200的位置到499的位置中,下一个日志的管理信息是从逻辑卷4的存储区的500的位置开始保存。日志的写入数据被保存在逻辑卷4的存储区的从1300的位置到2199的位置中;下一个日志的写入数据从逻辑卷4的存储区2200的位置开始保存。
在下述说明中,尽管是在为1个组分配了一个日志逻辑卷的状态下进行的说明,但是,也可以为1个组分配多个日志逻辑卷。例如,为一个组分配2个日志逻辑卷,并为每个日志逻辑卷设置指针信息700,以交替存储日志。由此,能够分散对于日志的存储装置150的写入,预计能够提高性能。另外,也提高了日志的读性能。作为另一个例子,为一个组分配2个日志逻辑卷,通常,仅仅使用1个日志逻辑卷。另一个日志逻辑卷是在正在使用的日志逻辑卷的性能低下的情况下使用的。性能低下的例子是这样一种情况日志逻辑卷由多个存储装置150构成,按RAID5的方式正在保持数据的、所构成的存储装置150的一台处于故障中。
上述卷信息400、对信息500、组信息600、以及指针信息700等,最好是存储在公用存储器140内。但是,本实施例并不仅限于这种情况,也可以将这些信息集中存储或分散存储在高速缓冲存储器130、主适配器110、盘适配器120、其他其他存储装置150内,来执行存储。
接下来,将使用图9、图10,从正存储系统100A对副存储系统100B开始数据复制的顺序进行说明。
(1)就组生成进行说明(步骤900)。用户使用维修终端或主机180,对照正存储系统100A的组信息600,来获取组状态为“未使用”之组编号。用户使用维修终端或主机180,来指定组编号A,并对正存储系统100A执行组生成指示。
正存储系统100A接受组生成指示,并将指定的组编号A的组状态改变为“正常”。
同样,用户对照副存储系统100B的组信息600,来获取组状态为“未使用”之组编号B。用户使用维修终端或主机180,来指定副存储系统100B和组编号B,并在正存储系统100A上执行组生成指示。正存储系统100A,将所接收的组生成指示传送到副存储系统100B。副存储系统100B,将所指定的组编号B的组状态改变为“正常”。
用户也可以使用副存储系统100B的维修终端,或连接于副存储系统100B上的主机180,来指定组编号B,并对副存储系统100B执行组生成指示。
(2)就对登录进行说明(步骤910)。用户使用维修终端或主机180,来指定显示数据复制对象之信息和显示数据复制接受者之信息,并在正存储系统100A上执行对登录指示。显示数据复制对象的信息,是数据复制对象的组编号A和正逻辑卷的编号。显示数据接受者的信息是保存复制数据之副记录系统100B和组编号B、副逻辑卷编号。
接受所述对登录指示,正存储系统100A,从对信息500中获取对信息为“未使用”之对编号,将对状态设定为“未拷贝”,将显示正存储系统100A的正存储系统编号设定为正存储系统编号,将被指示的正逻辑卷编号设定为正逻辑卷编号,将被指示的副存储系统编号设定为副存储系统编号,将被指示的副逻辑卷编号设定为副逻辑卷编号,将被指示的组编号A设定为组编号。正存储系统100A,将所获取的对编号追加到被指示的组编号A的组信息600的对集合中,并将正逻辑卷编号的卷状态修改为“正”。
正存储系统100A向副存储系统100B指示显示正存储系统100A之正存储系统编号、由用户指定的组编号B、正逻辑卷编号、以及副逻辑卷编号。副存储系统100B从对信息500中获取未使用的对编号,将对状态设定为“未拷贝”,将显示存储系统100A的正存储系统编号设定为正存储系统编号,将被指示的正逻辑卷编号设定为正逻辑卷编号,将显示副存储系统B的副存储系统编号设定为副存储系统编号,将被指示的副逻辑卷编号设定为副逻辑卷编号,将被指示的组编号B设定为组编号。
副存储系统100B向所指示的组编号B的组信息600的对集合中,追加了所述获取到的对编号,并将副逻辑卷编号的卷状态改变为“副”。
以上操作是针对所有的数据复制对象的对执行的。
在所述说明中,尽管说明了通知执行对于逻辑卷的组的登录,以及逻辑卷的对的设置,但是,它们也可以分别执行。
(3)就日志逻辑卷登录进行说明(步骤920)。用户使用维修终端或主机180,对正存储系统100A执行将把日志保存中所使用的逻辑卷(日志逻辑卷)登录到组内之指示(日志逻辑卷登录指示)。日志逻辑卷登录指示,由组编号和逻辑卷编号构成。
正存储系统100A,将被指示的逻辑卷编号登录为所指示的组编号之组信息600的日志逻辑卷编号。将该逻辑卷的卷信息400的卷状态设定为“正常”。
同样,用户使用维修终端或主机180,对照副存储系统100B的卷信息400,来指定副存储系统100B、组编号B、作为日志逻辑卷使用的逻辑卷编号,并对正存储系统100A执行日志逻辑卷登录。正存储系统100A将日志逻辑卷登录指示传送给副存储系统100B。副存储系统100B,将被指示的逻辑卷编号登录为所指示的组编号B之组信息600的日志逻辑卷编号。将该逻辑卷的卷信息400的卷状态设定为“正常”。
也可以是用户使用副存储系统100B的维修终端或连接于副存储系统100B上的主机180,来指定组编号、作为日志逻辑卷使用的逻辑卷编号,并对副存储系统100B执行日志逻辑卷登录指示。
以上的操作是针对作为全体日志逻辑卷而使用的逻辑卷执行的。步骤910和步骤920的顺序没有不同。
(4)对数据复制处理的开始进行说明(步骤930)。用户使用维修终端或主机180,来指定开始数据复制处理的组编号,并将数据复制处理的开始指示给正存储系统100A。正存储系统100A将所指示的组所属的所有对信息400的拷贝结束地址设定为“0”。
正存储系统100A向副存储系统100B指示了后述日志读处理和重新启动处理的开始。
正存储系统100A开始后述的初期拷贝处理。
(5)就初期拷贝技术进行说明(步骤940)。
当初期复制结束后,正存储系统100A将初期拷贝处理的结束通知给副存储系统100B。副存储系统100B将所指示的组所属的所有副逻辑卷的对装置改变为“正常”。
图10是初期拷贝处理的流程图。初期拷贝处理,对于数据复制对象的正逻辑卷的所有存储区,使用对信息500的拷贝完毕地址,从存储区开头开始顺序执行以下操作每单位大小就产生一个日志。拷贝完毕地址,其初始值为0,每做成一个日志就加上所做成的数据量。从逻辑卷的存储区开头开始到拷贝结束地址的前一个,是利用初期拷贝处理做成的日志。由于执行了初期拷贝处理,因此,可能将正逻辑卷中未更新的数据传送给副逻辑卷。在以下说明中,记载的是正存储系统100A内的主适配器A执行处理,但是也可以是盘适配器120来执行处理。
(1)正存储系统100A的主适配器A,得到了处理对象的组所属的对中其对状态为“未拷贝”的正逻辑卷A,并将对的状态修改为“拷贝中”,并反复执行以下操作(步骤1010,1020)。在正逻辑卷A不存在的情况下,结束处理(步骤1030)。
(2)在步骤1020中,在逻辑卷A不存在的情况下,主适配器A以单位大小(例如是1MB)的数据为对象,作成日志。日志作成处理将在后面进行说明(步骤1040)。
(3)主适配器A将作成的日志的数据大小加到拷贝结束地址上。
(4)拷贝结束地址在到达正逻辑卷A的容量之前,一直重复执行上述处理(步骤1060)。在拷贝结束地址变为与正逻辑卷A的容量相等的情况下,由于针对逻辑卷A的所有存储区作成了日志,因此,将对状态更新为“正常”,并开始另一个正逻辑卷的处理(步骤1070)。
所述流程图中,是平均以一个逻辑卷为对象来进行说明的,但也可以同时处理多个逻辑卷。
图11是说明命令接收处理210的处理的图,图12是命令接收处理210的流程图,图13是日志作成处理的流程图。以下,将使用这些图,就正存储系统100A在接收了来自主机180的、对数据复制对象的逻辑卷230之写入命令的情况下的操作进行说明。
(1)存储系统100A内的主适配器A接收来自于主机的访问命令。访问命令,含有读、写、后述的日志读等的命令、命令对象的逻辑地址、数据量等。以下,令访问命令内的逻辑地址为逻辑地址A,逻辑卷编号为逻辑卷A,逻辑卷内位置为逻辑卷内位置A,数据量为数据量A(步骤1200)。
(2)主适配器A调查访问命令(步骤1210、1215)。在步骤1215的调查中,在访问命令为日志读命令的情况下,执行后述的日志接收处理(步骤1220)。访问命令除了是日志读命令和写命外,例如读命令的情况下,以与已有技术相同的方式执行读处理(步骤1230)。
(3)在步骤1210的调查中,在访问明令为写入命令的情况下,参照逻辑卷A的卷信息400来调查卷状态(步骤1240)。在步骤1240的调查中,在逻辑卷A的卷状态为“正常”或“正”以外的情况下,由于不可能对逻辑卷A进行访问,因此,将主机180报告异常结束(步骤1245)。
(4)在步骤1240的调查中,在逻辑卷A的卷状态为“正常”、“正”的任何一种情况下,主适配器A确保高速缓冲存储器130,并将已作好数据接收准备之事通知主机180。主机180接受该通知,并将写入数据传送给正存储系统100A。主适配器A接收写入数据,并将器保存在该高速缓冲存储器130内(步骤1250、图11的1100)。
(5)主适配器A参照逻辑卷A的卷状态,调查逻辑卷A是否是数据复制对象(步骤1260)。在步骤1260的调查中,在卷状态为“正”的情况下,由于逻辑卷A是数据复制对象,因此执行后述的日志作成处理(步骤1265)。
(6)在步骤1260的调查中,在卷状态为“正常”的情况下,或者在步骤1265的日志作成处理结束后,主适配器A,对数据适配器120发出命令,令其将写入数据写入存储装置150(图11)的1140,并向主机180进行结束报告(步骤1270、1280)。之后,该盘适配器120,通过读些处理,将写入数据保存在存储装置150内(图11的1110)。
接下来,将就日志作成处理进行说明。
(1)主适配器A调查日志逻辑卷的卷状态(步骤1310)。在步骤1310的调查中,在日志逻辑卷的卷状态为“异常”的情况下,由于不能向日志逻辑卷存储日志,因此组状态变更为“异常”,并结束处理(步骤1315)。这种情况下,执行将日志逻辑卷变更为正常的逻辑卷等。
(2)在步骤1310的调查中,在日志逻辑卷为正常的情况下,继续执行日志作成处理。日志作成处理,根据是初期拷贝处理内的处理,还是命令接收处理内的处理,其处理不同(步骤1320)。在日志作成处理是命令接收处理内的处理的情况下,执行从步骤1330开始的处理。在日志作成处理是初期拷贝处理内的情况下,执行从步骤1370开始的处理。
(3)在日志作成处理是命令接收处理内的处理的情况下,主适配器A调查写入对象的逻辑地址A是否已成为初期拷贝处理的处理对象(步骤1330)。在逻辑卷A的对状态为“未拷贝”的情况下,由于后面要执行初期拷贝处理中的日志作成处理,因此在这里不产生日志而是结束处理(步骤1335)。逻辑卷A的对装置为“拷贝中”的情况下,当拷贝结束地址等于或小于逻辑地址内位置A时,由于在后面会执行初期拷贝处理中的日志作成处理,因此,在这里不产生日志而是结束处理(步骤1335)。除上述情况外,即当逻辑卷A的对状态为“拷贝中”,且拷贝结束地址为逻辑地址内位置A以上的情况时,由于初期拷贝处理已经结束,因此继续执行日志作成处理。
(4)接下来,主适配器A调查日志可能存储在日志逻辑卷内。使用指针信息700,来调查是否有更新信息区域的未使用区域(步骤1340)。在指针信息700的更新信息最新地址与更新信息最旧地址相等的情况下,由于更新信息区域中不存在未使用区域,因此结束处理,作为日志作成失败(步骤1390)。
在步骤1340的调查中,在更新信息区域中存在未使用区域的情况下,使用指针信息700,来调查能否在写入数据区内存储写入数据(步骤1345)。在写入数据最新地址和数据量A的和,等于或大于写入数据最老地址的情况下,由于不能存储在写入数据区内,因此结束处理,作为日志作成失败(步骤1390)。
(5)在可能存储日志的情况下,主适配器A获取用来存储更新编号和更新信息之逻辑地址,以及用于存储写入数据之逻辑地址,并在高速缓冲存储器130内作成更新信息。更新编号是从对象组的组信息600中获取到的,并将加1后的数值设定为组信息600的更新编号。存储更新信息的逻辑地址,是指针信息700的更新信息最新地址,将加上了更新信息大小后的数值设定为指针信息700的更新信息最新地址。存储写入数据的逻辑地址是指针信息700的写入数据最新地址,将写入数据最新地址加上了数据量A后的数值,设定为指针信息700的写入数据最新地址。
主适配器A将上述获取的数值和组编号、接收写命令的时刻、写命令内的逻辑地址A、数据量A设定为更新信息(步骤1350、图11的1120)。例如,在图6所示的组信息600、图7所示的指针信息700的状态下,在从组1所属的正逻辑卷1的存储区开头开始的800的位置处接收到数据大小100的写命令的情况下,作成图22所示的更新信息。组信息的更新编号变为5,指针信息的更新信息最近地址变为600(设最近信息的大小为100),写入数据最新地址变为2300。
(6)主适配器A对盘适配器120发出命令,令其将日志的更新信息和写入数据写入存储装置150内,并正常结束(步骤1360、图11的1130、1140、1150)。
(7)日志作成处理,在是初期拷贝处理内的处理的情况下,执行从步骤1370开始的处理。主适配器A调查日志是可以作成的。使用指针信息700,来调查有无更新信息区域的未使用区域(步骤1370)。在指针信息700的更新信息最新地址和更新信息最旧地址相等的情况下,由于在更新信息区域内不存在未使用区域,因此结束处理,作为日志作成失败(步骤1390)。在本实施例中,在所示的初期拷贝处理的情况下,日志的写入数据是从正逻辑卷中读出的,由于没有使用写入数据区,因此不需要确认写入数据区的未使用区域。
(8)在步骤1370的调查中,在可以作成日志的情况下,主适配器A获取在更新信息内设定的数值,并在高速缓冲存储器130内作成更新信息。更新编号是从对象组的组信息600中获取的,并将加1后的数值设定为组信息600的更新编号。存储更新信息的逻辑地址,是指针信息700的更新信息最新地址的位置,将加上更新信息大小后的数值设定为指针700的更新信息最新地址。
主适配器A将初期拷贝处理对象的逻辑地址,设定为存储上述获取的数值、以及组编号、本处理的开始时刻、处理拷贝处理对象的逻辑地址、初期拷贝一次的处理量、以及写入数据的日志逻辑卷的逻辑地址(步骤1380,图11的1120)。
(9)主适配器A对盘适配器120发出命令,令其将更新信息写入存储装置150内,并正常结束(步骤1385、图11的1140、1160)。
在上述说明中,尽管是以更新信息存在于高速缓冲存储器130内的方式进行记载的,但是也可以将其存储于公共存储器140内。
将写入数据写入存储装置150的写入操作也可以是非同步的,即也可以不必紧跟着步骤1360和步骤1385。但是,在主机180再次对逻辑地址A执行写命令的情况下,由于没有写上日志的写入数据,因此,在从主机接收写入数据之前,日志的写入数据,必须要写入与更新信息的日志逻辑卷的逻辑地址相对应的存储装置150中。或者是,也可以退避到别的高速缓冲存储器内,之后,执行写入到与更新信息的日志逻辑卷的逻辑地址对应的存储装置150内。
在所述日志作成处理中,将日志保存在存储装置150内,但是,由于为日志用途准备了预定量的高速缓冲存储器130,因而使用了所有的高速缓冲存储器,因此,也可以将日志保存在存储装置150内。日志用的高速缓冲存储器的量例如可以从维修端进行指定。
读写处理220是盘适配器120实施接受来自于主适配器110或盘适配器120的命令的处理。实施的处理是将被指定的高速缓冲存储器130的数据写入与被指定的逻辑地址相对应的存储装置150内的存储区之处理、从与被指定的逻辑地址对应的存储装置150内的存储区中读出数据至高速缓冲存储器130的处理等。
图14是说明接收了日志读命令的正存储系统100A的主适配器的操作(日志读接收处理)的图,图15是流程图。以下,使用这些图,来说明正存储系统100A接收了来自于副存储系统100B的日志读命令情况下之操作。
(1)正存储系统100A内的主适配器A接收来自于副存储系统100B的访问命令。访问命令包含显示为日志读命令的标识符、命令对象的组编号、有无重试指示。以下,设访问命令内的组编号为组编号A(步骤1220、图14的1410)。
(2)主适配器A调查组编号A的组状态是否为“正常”(步骤1510)。在步骤1510的调查中,组状态为“正常”之外例如为“故障”的情况下,将组状态通知副存储系统100B,并结束处理。副存储系统100B根据所接收的组状态来执行处理。例如,在组状态为“故障”的情况下,结束日志读处理(步骤1515)。
(3)在步骤1510的调查中,在组编号A的组状态为“正常”的情况下,主适配器A调查日志逻辑卷的状态(步骤1520)。在步骤1520的调查中,在日志逻辑卷的逻辑状态不是“正常”的情况下,例如在“故障”的情况下,组状态变更为“故障”,将给组状态通知给副存储系统100B,并结束处理。副存储系统100B根据所接收的组状态来执行处理。例如,在组状态为“故障”的情况下,结束日志读处理(步骤1525)。
(4)在步骤1520的调查中,在日志逻辑卷的逻辑状态为“正常”的情况下,调查日志读命令是否是重试指示(步骤1530)。
(5)在步骤1530的调查中,在调查日志读命令是重试指示的情况下,主适配器A将前一次发送的日志再次传送给副存储系统100B。主适配器A,确保高速缓冲存储器130,并命令盘适配器从指针信息700的重试开始地址开始,将更新信息之大小的信息读入高速缓冲存储器内(图14的1430)。
盘适配器的读写处理,从存储装置150中读出更新信息,将其保存在高速缓冲存储器130内,并通知给主适配器A(图14的1430)。
主适配器A接受更新信息的读结束的通知,并从更新信息中获取写入数据的逻辑地址以及写入数据,确保高速缓冲存储器130,并命令盘适配器将写入数据读入高速缓冲存储器内(步骤1540,图14的1440)。
盘适配器的读写处理,从存储装置150中读出写入数据,将其保存于高速缓冲存储器内,并通知给主适配器A(图14的1450)。
主适配器A接受写入数据的写入结束通知,将更新信息和写入数据传送到副存储系统100B,释放保持日志的高速缓冲存储器130,并结束处理(步骤1545,图14的1460)。
(6)在步骤1530的调查中,在不是重试指示的情况下,主适配器A调查是否存在没有发送的日志,如果存在,则将日志传送给副存储系统100B。主适配器A对指针信息700的读开始地址和更新信息最新地址进行比较(步骤1550)。
在读开始地址与更新信息最新地址相等的情况下,由于将所有的日志都传送给了副存储系统100B,因此,向副存储系统100B传送“无日志”(步骤1560),并释放前一次的日志命令时,传送给副存储系统100B的日志的存储区(步骤1590)。
日志的存储区的释放处理,是将重试开始地址设定为指针信息700的更新信息最旧地址。在更新信息最旧地址变为写入数据区开始地址的情况下,令更新信息最旧地址为零。指针信息700的写入数据最旧地址,变更为加上了根据前一次的读日志命令所发送的写入数据之大小后的数值。在写入数据最旧地址变为日志逻辑卷的容量以上的逻辑地址的情况下,减去写入数据区开始地址来进行修正。
(7)在步骤1550的调查中,在存在未发送的日志的情况下,主适配器A确保高速缓冲存储器130,并命令盘适配器将从指针信息700的读出开始地址开始的、更新信息之大小的信息读入高速缓冲存储器内(图14的1420)。
主适配器A的读写处理是从存储装置150中读出更新信息,并将其保存于高速缓冲存储器130内,并通知给主适配器(图4的1430)。
主适配器A接受更新信息的读结束通知,并从更新信息中获取写入数据的逻辑地址以及写入数据的大小,确保高速缓冲存储器130,并命令盘适配器将写入数据读入高速缓冲存储器内(步骤1570,图14的1440)。
主适配器A的读写处理是从存储装置150中读出写入数据,并将其保存于高速缓冲存储器130内,并通知给主适配器(图4的1450)。
主适配器A接受写入数据的读结束通知,将更新信息以及写入数据传送到副存储系统100B内(步骤1580),并释放保持日志的高速缓冲存储器130(图14的1460)。于是,将读开始地址设定为指针信息700的重试开始地址,并将加上了发送的日志之更新信息大小后的数值设定为读开始地址。
(8)主适配器A释放在前一次日志读命令的处理时,发送给副存储系统100B的日志的存储区(步骤1590)。
在前述日志读接收处理中,正存储系统100A,是将日志发送给平均一个副存储系统100B,但是,也可以将其同时发送给多个副存储系统100B。在一个日志读命令中,发送的日志数目也可以由副存储系统100B在日志读命令中进行指定,在组登录时等情况中,也可以由用户指定给正存储系统100A和副存储系统100B。另外,也可以根据正存储系统100A和副存储系统100B的连接总线200的传输能力或负荷等,动态地利用一个日志读命令来改变发送的日志数。也可以不考虑日志数而是考虑日志的写入数据的大小,来指定日志的传输量。
在所述日志读接收处理中,将日志从存储装置150中读入到高速缓冲存储器130内,但是,在存在于高速缓冲存储器130内的情况下,就不需要该处理。
前述日志读接收处理内的日志的存储区的释放处理,是在下一个日志读命令的处理时刻进行的,但是,也可以直接在将日志发送给副存储系统100B后就释放。副存储系统100B设定也可以在日志读命令内进行释放的更新编号,正存储系统100A也可以根据其指示,释放日志的存储区。
图16是说明日志读命令处理240的图,图17是流程图,图18是日志存储处理的流程图。以下,将使用这些流程图,对副存储系统100B的主适配器B从正存储系统100A中读出日志,并将其存储于日志逻辑卷内的操作进行说明。
(1)副存储系统100B内的主适配器B,确保存储日志的高速缓冲存储器130,并向正存储系统100A发送包含显示是日志读命令之标识符、命令对象的正存储系统100A的组编号、以及有无重试指示的访问命令。以下,设访问命令内的组编号为组编号A(步骤1700,图16的1610)。
(2)主适配器B接收正存储系统100A的应答以及日志(图16的1620)。主适配器调查应答,当来自正存储系统100A的应答为“无日志”的情况下,由于在正存储系统100A中不存在指定组的日志,因此,在一定时间后,将读日志命令发送给正存储系统100A(步骤1720、1725)。
(4)当正存储系统100A的应答为“组状态故障”或者是“组状态未使用”的情况下,副存储系统100B的组状态改变为接收状态,并结束日志读处理(步骤1730、1735)。
(5)当正存储系统100A的应答为上述情况之外,即正常结束的情况下,调查日志逻辑卷的卷状态(步骤1740)。在日志逻辑卷的卷状态为“异常”的情况下,由于不可能在日志逻辑卷中存储日志,因此,组状态改变为“异常”,并结束处理(步骤1745)。这种情况,执行将日志逻辑卷变更为正常逻辑卷等,并正常返回组的状态。
(6)在步骤1740的调查中,在日志逻辑卷的卷状态为“正常”的情况下,执行后述的日志存储处理1800。在日志存储处理1800正常结束的情况下,发送下一个日志读命令。或者是在经过一定时间后,发送下一个日志读命令(步骤1760)。发送下一个日志命令的定时,可以以一定的时间间隔定期发送,也可以由接收的日志的个数,或者是,连接线200的通信量、副存储系统100B保持的日志的存储容量,副存储系统100B的负荷等来决定。此外,也可以从副存储系统100B中,读出存储系统100A保持的日志的存储容量,或者正存储系统100A的指针信息,从而根据该数值来作决定。上述信息的传输,也可以用专用的指令来执行,也可以包含于日志读命令的应答内。此后的处理,与步骤1710后的相同。
(7)在步骤1800的日志存储处理没有正常结束的情况下,由于不足日志逻辑卷的未使用区域,因此舍弃接收的日志,并在一定时间后发送重试指示的日志读命令(步骤1755)。或者是,将日志保持在高速缓冲存储器内,并在一定时间后,再次执行日志存储处理。这是因为,由于执行后述的重新启动处理250,因此,在一定时间后,存在日志逻辑卷内的未使用区域增加的可能性。在这种方式的情况下,就不需要日志读命令内的重试指示的有无。
接下来,就图18所示的日志存储处理1800进行说明。
(1)主适配器B调查日志是否可能存储在日志逻辑卷内。使用指针信息700,来调查更新信息区域内的未使用区域的有无(步骤1810)。在指针信息700的更新信息最新地址和更新信息最旧地址相等的情况下,由于在更新信息区域内不存在未使用区域,因此以日志作成失败而结束了处理(步骤1820)。
(2)在步骤1810的调查中,当更新信息区域内存在未使用区域的情况下,使用指针信息700,来调查是否能够在写入数据区内存储写入数据(步骤1830)。在写入数据最新地址和接收的日志的写入数据的数据量的和,等于或大于写入数据最旧地址的情况下,由于不能在写入数据区内存储写入数据,因此以日志作成失败而结束了处理(步骤1820)。
(3)在日志可存储的情况下,主适配器B改变接收的更新信息的组编号,和日志逻辑卷的逻辑地址。组编号变更为副存储系统100B的组编号,日志逻辑卷的逻辑地址变更为指针信息700的写入数据最新地址。主适配器B,将指针信息700的更新信息最新地址变更为在更新信息最新地址上加上了更新信息之大小后的数值。主适配器B,将指针信息700的写入数据最新地址,变更为在写入数据最新地址上加上了写入数据之大小后的数值(步骤1840)。
(4)主适配器B,命令盘适配器120将跟新信息和写入数据读入存储装置150内,并以日志作成成功而结束该处理(步骤1850,图16的1630)。之后,盘适配器120通过读写处理,将更新信息和写入数据写入存储装置150,并释放高速缓冲存储器130(图16的1640)。
在前述的日志存储处理中,是将日志保存于存储装置150内的,但是由于为日志用途准备了一定量的高速缓冲存储器130,因而使用了所有的高速缓冲存储器,因此,也可以将日志保存于存储装置150内。日志用的日志存储器量例如从维修终端进行指定。
图19是说明重新启动处理250的图。图20是流程图。以下,使用这些附图,对副存储系统100B的主适配器B利用日志,来执行数据更新之操作进行说明。重新启动处理250也可以是副存储系统100B的盘适配器120执行处理。
(1)主适配器B,调查组编号B的组状态是否为“正常”(步骤2010)。在步骤2010的调查中,在组状态为“正常”以外,例如“故障”的情况下,结束重新启动处理(步骤2015)。
(2)在步骤2010的调查中,当组状态为“正常”的情况下,调查日志逻辑卷的卷状态(步骤2020)。在步骤2020的调查中,在日志逻辑卷的卷状态为“异常”的情况下,由于不可能进行访问,组状态改变为“异常”,并结束处理(步骤2025)。
(3)在步骤2020的调查中,在日志逻辑卷的卷状态为“正常”的情况下,调查是否存在重新启动对象的日志。主适配器B获取指针信息700的更新信息最旧地址和更新信息最新地址。当更新信息最旧地址和更新信息最新地址相等的情况下,由于不存在日志,因此一旦重新启动处理结束,则会在一定时间后,再次开始重新启动处理(步骤2030)。
(4)在步骤2030的调查中,在存在重新启动对象的日志的情况下,针对持有最旧(最小)的更新编号之日志执行下一个处理。持有最旧(最小)的更新编号之日志的更新信息,从指针信息700的更新信息最旧地址开始被保存。主适配器B,确保高速缓冲存储器130,命令盘适配器从更新信息最旧地址开始,将更新信息之大小信息读入高速缓冲存储器130内(图19的1910)。
盘适配器的读写处理,从存储装置150中读出更新信息,保存于高速缓冲存储器130内,并通知给主适配器B(图19的1920)。
主适配器B接受更新信息的读结束通知,并从更新信息中获取写入数据的逻辑地址以及写入数据的大小,确保高速缓冲存储器130,并命令盘适配器将写入数据读入高速缓冲存储器内(图19的1930)。
主适配器B的读写处理是从存储装置150中读出写入数据,并将其保存于高速缓冲存储器130内,并通知给主适配器(步骤2040、图19的1940)。
(5)主适配器B从更新信息中求出更新的副逻辑卷的逻辑地址,并命令盘适配器将写入数据写入副逻辑卷内(步骤2050,图19的1950)。盘适配器的读写处理,将数据写入与副逻辑卷的逻辑地址对应的存储装置150内,并释放高速缓冲存储器130,之后,通知给主适配器(图19的1960)。
(6)主适配器B接受盘适配器的写入处理结束的通知,释放日志的存储区。日志的存储区的释放处理,将指针信息700的更新信息最旧地址变更为加上了更新信息之大小后的数值。在最新信息最旧地址变为写入数据区开始地址的情况下,写入数据区开始地址为0。指针信息700的写入数据最旧地址,变更为加上了写入数据之大小后的数值。当写入数据最旧地址变成日志逻辑卷的容量以上的逻辑地址的情况下,减去写入数据区开始地址而进行修正。之后,主适配器B开始下一个重新启动处理(步骤2060)。
前述重新启动处理250,将日志从存储装置150读入到高速缓冲存储器130内,但是,当其存在与高速缓冲存储器130内的情况下,则不需要该处理。
在所述日志读接收处理和日志读命令处理240中,是利用指针信息700来决定正存储系统100A发送的日志的,但是,也可以决定副存储系统100B发送的日志。例如,将更新编号追加到日志读命令上。在这种情况下,在日志读接收处理中,为了求出副存储系统100B指定的更新编号的更新信息的逻辑地址,而在正存储系统100A的共用存储器140内,设置了表或检索方法,用于从更新编号中求出存储了更新信息之逻辑地址。
在前述日志读接收处理和日志读命令处理240中,尽管使用了日志读命令,但是也可以使用通常的读命令。例如,将正存储系统100A的组信息600和指针信息700预先传送到副存储系统100B内,副存储系统100B读出正存储系统100A的日志逻辑卷的数据(即日志)。
在前述的日志读接收处理中,是以按照更新编号的顺序,将日志从正存储系统100A发送到副存储系统100B内的情况为例进行说明,但是,也可以不按更新编号的顺序发送。也可以将多个日志读命令从正存储系统100A发送到副存储系统100B内。这种情况下,为了在重新启动处理中按照更新编码顺序处理日志,因此,在副存储系统100B中,设置了从更新编号中求出存储了更新信息之逻辑地址的表或检索方法。
在前述本发明的数据处理系统中,正存储系统获取了日志,副存储系统执行数据的复制。由此,与正存储系统相连的主机,不承担与数据复制相关的负荷。此外,由于在正存储系统和副存储系统之间传输日志,因此,没有使用正存储系统和与正存储系统相连的主机的通信线。
图23是显示本发明第二实施例的逻辑结构的图。
主机180和存储系统100C通过连接总线190相连,存储系统100C和正存储系统100A通过连接总线200相连,正存储系统100A和副存储系统100B通过连接总线200而连接构成。存储系统100C,在对存储系统100C的逻辑卷(ORG1)执行数据更新时,执行逻辑卷(ORG1)的数据更新和正存储系统100A内的逻辑卷(DATA1)的数据更新。
正存储系统100A,如第一实施中所说明的那样,在对正逻辑卷(DATA1)进行数据更新时,还利用前述的命令接收处理210和读写处理220,而在日志逻辑卷(JNL1)内执行日志的保存(2310)。
副存储系统100B,利用前述的日志读处理240,从正存储系统100A中读出日志,利用读写处理220,将日志保存到日志逻辑卷(JNL2)内(2320)。
正存储系统100A在接收到从副存储系统100B中读出日志的命令后,利用命令接收处理210和读写处理220,从日志逻辑卷(JNL1)中读出日志,并将其传送给副存储系统100B(2320)。
副存储系统100B利用前述的重新启动处理250和读写处理220,按照更新编号,从日志逻辑卷(JNL2)中读出日志,并更新作为正逻辑卷(DATA1)之副本的副逻辑卷(COPY1)的数据(2330)。如此,由于按照更新编号的顺序来更新数据,因此能够确保逻辑卷之间的数据的一致性。
在前述的本发明的数据处理系统中,正存储系统获取日志,并将其存储于日志专用的存储区内。另外,副存储系统将从正存储系统中接收的日志存储在日志专用的存储区内。日志专用的存储区可能比数据复制对象的存储区更少,但利用这更少的存储容量,能够在副存储系统中,实现正存储系统的数据的复制。
图24是显示第三实施例的逻辑结构的图。
主机180和存储系统100C通过连接总线190进行连接,存储系统100C和正存储系统100A通过连接总线200进行连接,正存储系统100A和副存储系统100B通过连接总线200连接而构成。存储系统100C就像是在已有技术中说明的那样,在执行对存储系统100C的逻辑卷(ORG1)的数据更新时,执行逻辑卷(ORG1)的数据更新和正存储系统100A的逻辑卷(DATA1)的数据更新。
正存储系统100A是以相对于存储系统100C的、具有正逻辑卷(DATA1)的方式显现的,但是实际的存储区,即存储装置150并没有分割。例如,在卷信息400的物理地址中,设定了显示没有分割存储装置150的数值。正存储系统100A,在从存储系统100C到正逻辑卷(DATA1)的数据的写入命令接收时,不执行前述的命令接收处理210内的步骤1270的处理,而仅仅在日志逻辑卷(JNL1)中执行日志的保存(2410)。
副存储系统100B通过所述日志读处理240,从正存储系统100A中读出日志,并利用读写处理220,将日志保存于日志逻辑卷(JNL2)内(2420)。
正存储系统100A,在从副存储系统100B接收了读出如之的命令之后,利用命令接收处理210和读写处理220,从日志逻辑卷(JNL1)中读出日志,并将其发送到存储系统100B内(2420)。
副存储系统100B,利用所述重新启动处理250和读写处理220,根据更新编号,从日志逻辑卷(JNL2)中读出日志,并更新作为逻辑卷(ORG1)之副本的副逻辑卷(COPY1)的数据(2430)。这样,由于按照跟新编号的顺序来更新数据,因此,可能保持逻辑卷间的数据的一致性。
在前述的本发明的数据处理系统中,在存储系统100C,或者与存储系统100C相连的主机180中产生故障的情况下,由于对副存储系统100B的逻辑卷(COPY1),反映了正存储系统100A内的日志(JNL1),因此,利用与存储系统100B相连的主机,可以执行最新数据的对照、更新。此外,通过在正存储系统100A内不保持数据副本,而仅仅存储日志,从而可使数据复制中所需的存储容量减少。
以上,是基于实施例的形式来具体说明本发明的发明人所作出的发明,但是,本发明并不仅仅限于实施例例,在不脱离其主旨的范围内,也可以有各种改变。
(发明效果)根据本发明,能够提供这样一种存储系统不对存储系统的上一级计算机施加影响,而可以在多个存储系统间执行数据传输或数据复制。此外,能够提供对存储系统和计算机之间的通信也不施加影响的存储系统。
此外,根据本发明,能够减少在多个存储系统内保持的数据存储区。又,能够以不对多个存储系统的上一级计算机的业务施加影响的方式,高速且有效地在多个存储系统之间执行数据传输或数据的复制。
权利要求
1.一种存储系统群,具有连接于上一级装置上、并与所述上一级装置之间执行数据的收发的第一存储系统;以及连接于所述第一存储系统上、并从所述第一存储系统接收数据的第二存储系统,其特征在于,所述第一存储系统具有第一存储区,写入从所述上一级装置传送来的数据;第二存储区,写入被写入进所述第一存储区的数据以及有关所述数据之更新信息;所述第二存储系统具有第三存储区,存储从所述第二存储区读出的数据,以及有关所述数据的更新信息;存储于所述第三存储区内的数据及更新信息,是每隔规定的时间间隔,从所述第一存储系统中读出的。
2.如权利要求1所述的存储系统群,其中,所述第二存储系统是这样一种存储系统它执行控制,以便根据从所述第二存储区读出的数据的个数,来决定所述规定的时间间隔。
3.如权利要求1所述的存储系统群,其中,所述第二存储系统是这样一种存储系统它执行控制,以便根据所述第一存储系统与所述第二存储系统之间收发之数据的通信量,来决定所述规定的时间间隔。
4.如权利要求1所述的存储系统群,其中,所述第二存储系统是这样一种存储系统执行控制,以便根据所述第三存储区保持的存储容量,来决定所述规定的时间间隔。
5.如权利要求1所述的存储系统群,其中,所述第二存储系统是这样一种存储系统执行控制,以便根据所述第二存储系统自身的处理负荷,来决定所述规定的时间间隔。
6.如权利要求1所述的存储系统群,其中,所述第二存储系统执行控制,以便从所述第一存储系统中读出有关所述第一存储系统内的所述第二存储区所保持的存储容量的信息,并根据所述读出的信息,来决定所述规定的时间间隔。
7.如权利要求1所述的存储系统群,其中,写入所述第二存储区内的更新信息,与写入所述第一存储区的数据的更新顺序有关。
8.如权利要求7所述的存储系统群,其中,所述第一存储系统,是拥有有关所述第二存储区的管理信息之存储系统,所述第二存储系统执行控制,以便从所述第一存储系统中读出所述第一存储系统所拥有的、有关所述第二存储区的管理信息,并根据所读出的管理信息,来决定所述规定的时间间隔。
9.如权利要求1所述的存储系统群,其中,所述第一存储区存在多个,写入所述第二存储区的更新信息,是以写入所述多个第一存储区内的数据为对象而作成的。
10.如权利要求9所述的存储系统群,其中,写入所述第二存储区的更新信息,是与写入所述多个第一存储区的数据的更新顺序有关的更新信息。
11.如权利要求9所述的存储系统群,其中,所述第一存储系统是这样一种存储系统分配所述第二存储区,作为写入所述多个第一存储区的数据之更新信息的存储区,并拥有有关所述第二存储区的管理信息;所述第二存储系统是这样一种存储系统执行控制,以便从所述第一存储系统中读出所述第一存储系统所拥有的、有关所述第二存储区的管理信息,并根据所述读出的管理信息,来决定所述规定的时间间隔。
12.如权利要求1所述的存储系统群,其中,所述第二存储系统是这样一种存储系统每隔所述规定的时间间隔,就向所述第一存储系统发送请求传送所述第二存储区内存储的数据,以及有关所述数据之更新信息的命令;所述第一存储系统是这样的一种存储系统根据所示指令,向所述第二存储系统,发送所述第二存储区内存储的数据,以及有关所述数据之更新信息。
13.如权利要求1所述的存储系统群,其中,所述第二存储系统,具有与所述第一存储系统内的所述第二存储区对应的第四存储区,并基于所述第三存储区内存储的数据以及更新信息,对所述第四存储区存储数据。
14.如权利要求13所述的存储系统群,其中,所述第二存储系统,根据所述第二存储系统自身的处理负荷,来控制对所述第四存储区的数据存储处理的定时。
15.如权利要求1所述的存储系统群,其中,所述第一存储系统,具有上一级适配器,用于与上一级装置之间收发数据;高速缓冲存储器,用于保存由所述上一级适配器接受的数据;盘适配器,用于传输存储在所述高速缓冲存储器内的数据;以及多个盘驱动器,用于根据所述盘适配器的控制存储数据;所述第一存储区和所述第二存储区,是从所述多个盘驱动器内的存储区中分配出的区域。
16.如权利要求1所述的存储系统群,其中,所述第二存储系统,具有上一级适配器,用于与上一级装置之间收发数据;高速缓冲存储器,用于保存由所述上一级适配器接受的数据;盘适配器,用于传输存储在所述高速缓冲存储器内的数据;以及多个盘驱动器,用于根据所述盘适配器的控制存储数据;所述第三存储区,是从所述多个盘驱动器内的存储区中分配出的区域。
17.一种存储系统群,其特征在于,具有第一存储系统,连接在上一级装置上,用于执行与所述上一级装置之间的数据的收发;第二存储系统,连接在所述第一存储系统上,用于从所述第一存储系统接受数据;以及第三存储系统,连接在所述第二存储系统上,用于从所述第二存储系统接受数据;所述第一存储系统具有第一存储区,被写入从所述上一级装置送来的数据;所述第二存储系统具有第二存储区,被写入所述第一存储系统内的所述第一存储区内写入了的数据,以及与所述数据有关的更新信息;所述第三存储系统是这样一个存储系统,它具有一个第三存储区,存储有从所述第一存储系统内的所述第二存储区读出的数据,以及与所述数据相关的更新信息;所述第三存储区内存储的数据以及更新信息,是每隔规定的时间间隔从所述第二存储系统中读出的。
18.如权利要求17所述的一种存储系统群,其中,所述第三存储系统是这样一种存储系统它执行控制,以便根据从所述第二存储区中读出的数据的个数,来决定所述规定的时间间隔。
19.如权利要求17所述的一种存储系统群,其中,所述第三存储系统是这样一种存储系统它执行控制,以便根据所述第二存储系统与所述第三存储系统之间收发之数据的通信量,来决定所述规定的时间间隔。
20.如权利要求17所述的一种存储系统群,其中,所述第三存储系统是这样一种存储系统它执行控制,以便根据所述第三存储区保持的存储容量,来决定所述规定的时间间隔。
21.如权利要求17所述的存储系统群,其中,所述第三存储系统是这样一种存储系统它执行控制,以便根据所述第三存储系统自身的处理负荷,来决定所述规定的时间间隔。
22.如权利要求17所述的存储系统群,其中,所述第三存储系统是这样一种存储系统它执行控制,以便从所述第二存储系统中读出所述第二存储系统内的所述第二存储区保持的有关存储容量的信息,并根据所述读出的信息,来决定所述规定的时间间隔。
23.如权利要求17所述的存储系统群,其中,写入所述第二存储区内的更新信息,是与写入所述第二存储区的数据的更新顺序有关的信息。
24.如权利要求23所述的存储系统群,其中,所述第二存储系统,是拥有有关所述第二存储区的管理信息之存储系统,所述第三存储系统是这样一种存储系统它执行控制,以便从所述第二存储系统中读出所述第二存储系统所拥有的、有关所述第二存储区的管理信息,并根据所读出的管理信息,来决定所述规定的时间间隔。
25.如权利要求17所述的存储系统群,其中,所述第三存储系统是这样一种存储系统每隔所述规定的时间间隔,就向所述第二存储系统发送请求传送所述第二存储区内存储的数据以及有关所述数据之更新信息的命令;所述第二存储系统是这样的一种存储系统根据所示指令,对所述第三存储系统,发送所述第二存储区内存储的数据,以及有关所述数据之更新信息。
26.如权利要求17所述的存储系统群,其中,所述第三存储系统,具有与所述第一存储系统内的所述第一存储区对应的第四存储区,并基于所述第三存储区内存储的数据以及更新信息,对所述第四存储区存储数据。
27.如权利要求26所述的存储系统群,其中,所述第三存储系统,根据所述第三存储系统自身的处理负荷,来控制对所述第四存储区的数据存储处理的定时。
28.如权利要求17所述的存储系统群,其中,所述第一存储系统是这样一种存储系统在将从所述上一级装置传送来的数据写入到所述第一存储区内的情况下,对所述第二存储系统发送被写入所述第一存储区的数据;所述第二存储系统是这样一种存储系统将被写入所述第一存储系统内的所述第一存储区的数据以及有关所述数据的更新信息,写入到所述第二存储区内。
29.一种存储系统群,其特征在于,具有第一存储系统,连接在上一级装置上,用于执行与所述上一级装置之间的数据的收发;以及第二存储系统,连接在所述第一存储系统上,用于从所述第一存储系统接受数据;第三存储系统,连接在所述第二存储系统上,用于从所述第二存储系统接受数据;所述第一存储系统具有第一存储区,被写入从所述上一级装置送来的数据;所述第二存储系统具有第二存储区和第三存储区,其中,第二存储区被写入从所述第一存储系统传送来的数据,第三存储区被写入所述第二存储区中已被写入的数据以及与所述数据有关的更新信息;所述第三存储系统是这样一个存储系统它具有第四存储区,存储有从所述第二存储系统内的所述第三存储区读出的数据,以及与所述数据相关的更新信息;所述第四存储区内存储的数据以及更新信息,是每隔规定的时间间隔从所述第三存储系统中读出的。
30.如权利要求29所述的一种存储系统群,其中,所述第三存储系统是这样一种存储系统它执行控制,以便根据从所述第三存储区中读出的数据的个数,来决定所述规定的时间间隔。
31.如权利要求29所述的一种存储系统群,其中,所述第三存储系统是这样一种存储系统它执行控制,以便根据所述第二存储系统与所述第三存储系统之间收发的数据的通信量,来决定所述规定的时间间隔。
32.如权利要求29所述的一种存储系统群,其中,所述第三存储系统是这样一种存储系统它执行控制,以便根据所述第四存储区保持的存储容量,来决定所述规定的时间间隔。
33.如权利要求29所述的存储系统群,其中,所述第三存储系统是这样一种存储系统它执行控制,以便根据所述第三存储系统自身的处理负荷,来决定所述规定的时间间隔。
34.如权利要求29所述的存储系统群,其中,所述第三存储系统是这样一种存储系统它执行控制,以便从所述第二存储系统中读出所述第二存储系统内的所述第三存储区保持的有关存储容量的信息,并根据所述读出的信息,来决定所述规定的时间间隔。
35.如权利要求29所述的存储系统群,其中,写入所述第三存储区内的更新信息,是与写入所述第二存储区的数据的更新顺序有关的信息。
36.如权利要求35所述的存储系统群,其中,所述第二存储系统,是拥有有关所述第三存储区的管理信息之存储系统,所述第三存储系统是这样一种存储系统它执行控制,以便从所述第二存储系统中读出所述第二存储系统所拥有的、有关所述第三存储区的管理信息,并根据所读出的管理信息,来决定所述规定的时间间隔。
37.如权利要求29所述的存储系统群,其中,所述第三存储系统是这样一种存储系统每隔所述规定的时间间隔,就向所述第二存储系统发送请求传送所述第二存储区内存储的数据以及有关所述数据之更新信息的命令;所述第二存储系统是这样的一种存储系统根据所示指令,对所述第三存储系统,发送所述第三存储区内存储的数据,以及有关所述数据之更新信息。
38.如权利要求29所述的存储系统群,其中,所述第三存储系统,具有与所述第二存储系统内的所述第二存储区对应的第五存储区,并基于所述第四存储区内存储的数据以及更新信息,对所述第五存储区存储数据。
39.如权利要求38所述的存储系统群,其中,所述第三存储系统,根据所述第三存储系统自身的处理负荷,来控制对所述第五存储区的数据存储处理的定时。
全文摘要
第一存储系统,将与第一存储系统中被存储数据的更新有关之信息作为日志进行存储。日志,具体来说,是由更新中使用的数据的拷贝和更新时的写入命令等的更新信息而构成的。另外,第二存储系统,通过第一存储系统和第二存储系统间的通信线,获取所述日志。第二存储系统,保持第一存储系统保持的数据的副本,使用所述日志,按照第一存储系统中的数据更新顺序,更新与第一存储系统的数据对应的数据。
文档编号G06F12/08GK1591345SQ20041005002
公开日2005年3月9日 申请日期2004年6月24日 优先权日2003年6月27日
发明者平川裕介, 荒川敬史, 武田贵彦, 佐藤孝夫 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1