存储装置和命令执行控制方法

文档序号:6383609阅读:214来源:国知局
专利名称:存储装置和命令执行控制方法
存储装置和命令执行控制方法技术领域
这里讨论的实施例涉及一种存储装置和命令执行控制方法。
背景技术
诸如廉价盘冗余阵列(RAID)装置的存储装置例如包括通道适配器(channeladapter,CA)作为连接到主计算机的通信接口。CA例如经由通道交换机连接到主计算机的主机总线适配器(HBA)。主计算机通过HBA与CA进行通信,以取得对存储在存储装置中的数据的访问。存储装置的CA不仅可以用于与主计算机进行通信,还可以用于与另一存储装置进行通信。例如,提出了用于在存储单元之间复制数据的灵活数据复制机制。
U.S.专利申请公布第2003/0187945号
然而,在对两种类型的访问操作、即由主计算机进行的对存储装置的访问操作和与另一存储装置进行的访问操作使用单个CA的情况下,如果一种类型的访问操作的数量增加,则另一种类型的访问操作变慢。例如,有时是将主计算机写入存储装置的数据复制到不同的存储装置,以提高数据的可靠性的情况。在这种情况下,如果主计算机对复制目的地存储装置进行许多访问操作,则暂停存储装置之间的复制处理。随后,从主计算机向复制源存储装置发出的写入命令的完成也延迟,这降低了系统的总体性能。因此,在使用存储装置的单个通信接口用于多个目的的情况下,一个用途应用中的数据访问的增加可能使另一用途应用的数据访问效率降低。如果由于这种依赖关系而导致的数据访问效率的降低随机地发生,则系统的总体处理效率降低。发明内容
目的是提供一种能够防止处理类型的处理增加而引起的处理效率降低的存储装置、命令执行控制方法和程序。
根据一方面,提供一种存储装置,包括:存储器设备;通信接口,用于接收指示对存储器设备的数据访问的命令;判断单元,用于判断经由通信接口接收到的命令的类型;计数单元,用于对经由通信接口接收到的命令中的、当前正在执行的命令的数量进行计数;以及控制单元,用于进行控制,以在当前正在执行的命令的数量小于或等于与经由通信接口新接收到的命令的类型相对应的限值时,对存储器设备进行根据新接收到的命令的数据访问,并且在当前正在执行的命令的数量超过与接收到的命令的类型相对应的限值时,禁止根据接收到的命令的数据访问。


图1示出了根据第一实施例的装置的功能配置的示例;
图2示出了根据第二实施例的系统配置的示例;
图3示出了在第二实施例中使用的存储装置的硬件配置的示例;
图4示出了根据第二实施例的命令流控制状况的示例;
图5示出了根据第二实施例的RA目的地存储装置中的命令限制实现的状态;
图6示出了命令的数据格式的示例;
图7示出了命令管理表的示例;
图8是示出根据第二实施例的命令执行处理的过程的流程图9示出了根据第三实施例的命令流控制状况的示例;
图10示出了根据第三实施例的会话管理表的示例;
图11是示出根据第三实施例的命令执行处理的过程的流程图12示出了根据第四实施例的命令流控制状况的示例;
图13示出了根据第四实施例的命令管理表的示例;
图14是示出根据第四实施例的命令管理表更新处理的过程的流程图15是示出根据第四实施例的命令执行处理的过程的示例的流程图16示出了根据第五实施例的命令流控制状况的示例;
图17示出了 RA源命令管理表的示例;
图18示出了 RA目的地命令管理表的示例;
图19是示出存储装置之间的信息交换过程的示例的序列图20是示出RA源中的命令执行状况通知处理的过程的示例的流程图21示出了根据第五实施例的RA源存储装置中的命令执行处理的过程的示例;
图22示出了 RA目的地中的命令限值确定处理的过程的示例;
图23示出了根据第六实施例的命令流控制状况的示例;
图24示出了根据第六实施例的RA源命令管理表的示例;
图25示出了根据第六实施例的RA目的地命令管理表的示例;
图26是示出根据第六实施例的RA源命令执行处理的过程的示例的流程图27是示出根据第六实施例的RA源中的命令执行状况通知处理的过程的示例的流程图28是示出根据第六实施例的RA目的地中的命令限值确定处理的过程的流程图;以及
图29是示出应用技术确定处理的过程的示例的流程图。
具体实施方式
下面,参考附图描述几个实施例,其中,相似的附图标记在全篇中指代相似的元素。注意,可以组合下面的实施例中的两个或更多个,以不产生矛盾的方式来进行实施。
(a)第一实施例
第一实施例涉及使用在各自指示命令用途的类型之间变化的限值的、对输入到通信接口的命令的命令流控制。每个限值是指示当前正在执行的命令的数量的阈值,在该点处禁止执行对应类型的命令。例如,对与在降低系统的总体处理效率上有较大影响的用途相对应的命令的类型,设置较高的限值。这样,即使当与在降低系统的总体处理效率上有较小影响的用途相对应的命令的数量增加时,也优选地禁止执行该命令。相应地,这防止与在降低系统的总体处理效率上有大的影响的用途相对应的命令的处理效率的降低。
图1示出了根据第一实施例的装置的功能配置的示例。存储装置I经由网络2上的交换机3连接到存储装置5和计算机6。根据图1的示例,存储装置5被安装为远离存储装置I。计算机6仅经由交换机3连接到存储装置I。计算机4连接到存储装置5。例如,当根据从计算机4发出的、用于数据写入的命令7 (类型:写入命令),针对存储装置5的预定存储区域进行数据写入时,存储装置5进行冗余地存储写入的数据的处理。例如,存储装置5向存储装置I的存储器设备1-1输出用于复制写入的数据的命令8 (类型:复制命令)。在这种情况下,命令7是来自存储装置5的复制命令的输出的触发。例如,为了取得对存储装置I的存储器设备1-1的访问,计算机6输出与从存储装置5输出的命令8不同类型的命令9 (类型:非复制命令)。
存储装置I包括存储器设备1-1、通信接口 1-2和管理单元1-3。通信接口 1_2接收指示对存储器设备1-1进行数据访问的命令。注意,输入到通信接口 1-2的命令是多种类型的。管理单元1-3包括存储器单元l_3a、判断单元l_3b、计数单元l_3c和控制单元l-3d。存储器单元l_3a例如存储针对各个命令类型的限值。每个限值是用来判断是否执行相应类型的命令的、当前正在执行的命令的数量的阈值。例如,使用设置在管理单元1-3中的存储器,作为存储器单元l_3a。判断单元l_3b判断经由通信接口 1-2接收到的命令的类型。例如,判断单元l_3b判断接收到的命令是从存储装置5发出的、指示进行数据复制的复制命令,还是作为复制命令之外的命令的非复制命令。计数单元l_3c对经由通信接口 1-2接收到的命令中的、当前正在执行的命令的数量进行计数。例如,每次经由通信接口1-2接收到命令时,计数单元l_3c使指示当前正在执行的命令的数量的计数器递增,并且每次发送对接收到的命令的响应时,计数单元l_3c使计数器递减。控制单元l-3d参考存储器单元l_3a,以判断当前正在执行的命令的数量是否小于或等于与经由通信接口 1-2接收到的命令的类型相对应的限值。随后,如果当前正在执行的命令的数量小于或等于该限值,则控制单元l-3d执行根据接收到的命令对存储器设备1-1的数据访问。另一方面,如果当前正在执行的命令的数量超过与接收到的命令的类型相对应的限值,则控制单元l-3d禁止根据命令的数据访问。例如,在执行根据命令的数据访问的情况下,控制单元l-3d在访问完成之后返回对命令的响应。另一方面,在禁止根据命令的数据访问的情况下,控制单元l-3d在确定禁止数据访问之后,返回指示不可访问的响应。
在该系统中,假设在存储器单元l_3a中,将“1024”设置为与复制命令相对应的限值,并且将“768”设置为与非复制命令相对应的限值。还假设计算机4输出数据写入命令7,然后在存储装置5中进行与命令7相对应的数据写入。在这种情况下,从存储装置5向存储装置I发送指示复制所写入的数据的命令8。由存储装置I的通信接口 1-2接收命令8。随后,管理单元1-3的判断单元l-3b判断接收到的命令8的类型是复制命令。另外,由于该命令接收,计数单元l_3c使当前正在执行的命令的数量递增。这里假设当前正在执行的命令的数量达到了 “800”。控制单元l-3d将与接收到的命令8的类型“复制命令”相对应的限值“1024”,与当前正在执行的命令的数量“800”进行比较。在该示例中,当前正在执行的命令的数量小于或等于该限值。相应地,控制单元l-3d根据接收到的命令8将数据写入存储器设备1-1。当写入完成时,控制单元l-3d向存储装置5发送完成响应。随后,计数单元l_3c使当前正在执行的命令的数量递减。
还假设从计算机6向存储装置I发送指示向存储器设备1-1写入数据的命令9。命令9的类型是非复制命令,其是复制命令之外的命令。由存储装置I的通信接口 1-2接收命令9。随后,管理单元1-3的判断单元l_3b判断接收到的命令9的类型是非复制命令。另外,由于该命令接收,计数单元l_3c使当前正在执行的命令的数量递增。这里假设当前正在执行的命令的数量达到了“800”。控制单元l-3d将与接收到的命令9的类型“非复制命令”相对应的限值“768”,与当前正在执行的命令的数量“800”进行比较。在该示例中,当前正在执行的命令的数量超过了该限值。相应地,控制单元l-3d禁止命令9的执行。例如,控制单元l-3d不执行根据命令9的数据访问,并且向计算机6发送指示不能执行命令(下文中称为“命令不可执行”)的响应。随后,计数单元l_3c使当前正在执行的命令的数量递减。
如上所述,在存储装置I中,应用根据命令的类型的不同的限值,来判断是否执行接收到的命令。这防止在使用通信接口 1-2用于多个应用的情况下,系统的总体处理效率降低。
例如,在图1中,存储装置5被安装为远离存储装置1,然而,计算机6被安装为靠近存储装置I。在这种情况下,与存储装置I和计算机6之间的通信相比,存储装置I和5之间的通信需要更多时间。这里,考虑不应用第一实施例的技术,而针对所有命令类型使用相同的限值的情况。在这种情况下,当当前正在执行的命令的数量超过限值时,存储装置I既不能执行从存储装置5发出的命令,也不能执行从计算机6发出的命令。由于被定位为靠近存储装置1,因此计算机6快速地接收指示命令不可执行的响应,因此能够重新发送命令。另一方面,存储装置5花费比计算机6更长的时间来接收指示命令不可执行的响应,因此在命令重新发送上落在后面。此外,与从计算机6发送的命令相比,从存储装置5重新发送的命令花费更长的时间到达存储装置I。其结果是,在存储装置I中,首先执行从计算机6发送的命令,而从存储装置5发出的复制命令的执行暂停。如果不完成从存储装置5发出的复制命令,则也不完成作为复制命令的输出的触发的写入命令。相应地,计算机4也经历处理延迟。另一方面,考虑应用第一实施例的技术,并且例如,将针对复制命令的限值设置为高于针对非复制命令的限值的情况。在这种情况下,如果存储装置I中的当前正在执行的命令的数量逐渐增加,则在复制命令变得不可执行之前,禁止从计算机6输出的非复制命令的执行。例如,在图1的示例中,在当前正在执行的命令的数量超过768之后,仅执行从存储装置5发出的复制命令。这使得能够对由于命令传输的延迟时间而处于不利地位的、从存储装置5发出的复制命令进行高效的处理。其结果是,能够防止从计算机6向存储装置I发出的命令的数量的增加对计算机4产生不利影响。
注意,可以由存储装置I的中央处理器(CPU)来实现判断单元l_3b、计数单元l-3c和控制单元l-3d。例如,设置在管理单元1-3内部的CPU执行存储在管理单元1-3的诸如随机存取存储器(RAM)的存储器中的程序,由此来实现判断单元l_3b、计数单元l-3c和控制单元l-3d。另外,可以由包含在存储装置I中的RAM、硬盘驱动(HDD)等来实现存储器单元l_3a。注意,在图1中,连接各个部件的每个线表示通信路径的一部分,还可以配置图1所示的通信路径之外的通信路径。
(b)第二实施例
接下来描述第二实施例。第二实施例涉及通过针对从主计算机发出的主机命令的数量设置限值并且请求对存储装置中的数据进行访问,来实现高效的存储装置之间的数据复制。
图2示出了根据第二实施例的系统配置的示例。交换机11和12经由网络10彼此连接。交换机11和12例如是光纤通道交换机。主计算机21和存储装置100连接到交换机11。主计算机22和存储装置200连接到交换机12。
例如,主计算机21和存储装置100安装在同一设施中。相应地,通过较少的延迟时间实现从主计算机21对存储装置100进行的用于数据写入或者数据读取的访问。另外,主计算机22和存储装置200安装在同一设施中。相应地,通过较少的延迟时间实现从主计算机22对存储装置200进行的用于数据写入或者数据读取的访问。安装主计算机21和存储装置100的设施与安装主计算机22和存储装置200的设施在地理上是分离的。因此,例如,与从主计算机22对存储装置200的访问相比,从存储装置100到存储装置200的数据复制需要更多时间。在这种状况下,如果从主计算机22对存储装置200发生大量访问,则从存储装置100到存储装置200的数据复制可能停止。鉴于此,第二实施例采用比用来判断是否执行复制命令的标准更严格的标准,来作为用于判断是否执行主机命令的标准。这防止从存储装置100到存储装置200的数据复制的处理效率降低。注意,将从存储装置100到存储装置200进行数据复制的访问称为远程访问(RA)。另外,将从主计算机向存储装置发出的、指示进行数据访问的命令称为主机命令。将用来在存储装置100和200之间进行数据复制的命令称为复制命令。
图3示出了在第二实施例中使用的存储装置的硬件配置的示例。存储装置100包括多个HDD 111、112等、多个通信接口(I/F)121、122等以及控制器模块(CMU30OHDD 111、112等是存储器设备的示例。注意,对于存储装置100,可以使用固态驱动(SSD)来代替HDD111、112等。多个通信I/F 121、122等是用来与主计算机21进行通信的CA,注意,还可以使用通信I/F 121、122等来与存储装置200进行通信。另外,还可以使用通信I/F 121,122等进行与主计算机21的通信和与存储装置200的通信两者。下文中,将仅用来与主计算机进行通信的通信I/F(主连接)称为“CA端口”。另一方面,将用于与主计算机的通信和与另一存储装置进行的数据复制两者的通信I/F称为“CARA端口”。CM 130是存储装置100的内置计算机,其对存储装置100的诸如HDD的资源进行管理。例如,HDD 111、112等连接到CM 130。CM 130对由连接的HDD 111、112等提供的资源(存储器功能)进行管理。CM130能够通过在其控制下组合多个HDD来生成RAID组,并且作为单个卷逻辑地使用所生成的RAID组。
CM 130包括CPU 131、存储器132、高速缓存133和多个设备适配器(DA) 134、135等。CM 130的各个部件通过内部总线139彼此连接。CPU 131在CM 130上实施总体控制。例如,CPU 131对从各个通信I/F121、122等输入的命令的数量进行控制。注意,CM 130可以包括多个CPU。在这种情况下,多个CPU彼此协作地在CM 130上实施总体控制。存储器132存储CM 130施加控制所使用的各种类型的信息。存储器132还存储描述要由CPU 131执行的处理的程序。可以使用诸如闪存的非易失性存储器作为存储器132。高速缓存133是用来临时存储从HDD 111、112等输入和输出到HDD 111、112等的数据的存储器。DA 134、135等分别连接到HDD 111、112等,并且从连接到其的HDD输入数据和向连接到其的HDD输出数据。
存储装置200包括多个HDD 211、212等、多个通信I/F 221、222等以及CM 230。CM 230包括CPU 231、存储器232、高速缓存233以及多个DA 234、235等。CM 230的各个部件通过内部总线239彼此连接。存储装置200的各个部件中的每个具备与存储装置100的具有相同名称的部件相同的功能。注意,存储装置200的CM 230是图1的管理单元1-3的示例。也就是说,由CM 230来实现第一实施例的存储器单元l-3a、判断单元l-3b、计数单元l-3c和控制单元l-3d的功能。
使用上述硬件配置,能够实现第二实施例的处理功能。注意,也可以使用与图3所示的存储装置100和200相同的硬件,来实现第一实施例的存储装置I。注意,在图3中,连接各个部件的每个线表示通信路径的一部分,还可以配置图3所示的通信路径之外的通信路径。
下面描述根据第二实施例的对命令的数量的限制。图4示出了根据第二实施例的命令流控制状况的示例。存储装置100包括CARA端口 151和CA端口 152。CARA端口 151是例如由图3的通信I/F 121实现的通信端口。另外,存储装置100包括多个卷141、142和143。卷141、142和143例如是设置在RAID组中的逻辑卷。可选地,卷141、142和143中的每个可以是单个HDD。存储装置200包括CARA端口 251和CA端口 252。CARA端口 251是例如由图3的通信I/F 221实现的通信端口。另外,存储装置200包括多个卷241、242和243。卷241、242和243例如是设置在RAID组中的逻辑卷。可选地,卷241、242和243中的每个可以是单个HDD。
在图4的示例中,在存储装置100的卷143和存储装置200的卷241之间建立了RA会话。RA会话是复制命令32的发送所使用的通信路径,复制命令32指示从存储装置100到存储装置200的远程访问以及将在卷143中写入的数据复制到卷241。根据该RA会话,定义用于存储装置间复制(即两个存储装置之间的复制)的目标卷。主计算机21经由交换机11连接到CARA端口 151。在访问存储装置100的卷141、142和143中的数据的情况下,主计算机21输出主机命令31。将主机命令31经由交换机11输入到存储装置100的CARA端口 151。在存储装置100中,CM 130接收输入到CARA端口 151的主机命令31。随后,CM 130对卷141、142和143中的任意一个进行由主机命令31指示的数据访问处理。
注意,在主机命令中,特别地将到建立了 RA会话的卷的命令称为“RA命令”。另外,特别地将到未建立RA会话的卷的命令称为“CA命令”。在根据RA命令更新卷143的数据的情况下,除了初始复制的时间之外,发出复制命令32,以使作为建立了 RA会话的另一框架(chassis)的卷241进入与卷143的状况等同的状况。也就是说,只要在建立了 RA会话的卷143中没有发生数据更新,则不发出复制命令32。注意,初始复制是在建立RA会话时使两个卷的盘进入等同状况的复制操作。例如,在主机命令31指示将数据写入卷143的情况下,CM 130将数据写入卷143,并且还生成复制命令32,复制命令32指示将写入的数据复制到存储装置200的卷241。随后,CM 130从CARA端口 151输出生成的复制命令32。经由交换机11和12将复制命令32输入到存储装置200的CARA端口 251。在存储装置200中,由CM 230接收输入到CARA端口 251的复制命令32。CM 230根据复制命令32将数据写入卷241。
注意,卷241用来存储设置在存储装置100中的卷143的数据的副本,这里假设在正常操作期间不从主计算机22进行访问。主计算机22经由交换机12连接到CARA端口251。在访问存储装置200的卷242和243中的数据的情况下,主计算机22输出主机命令33。经由交换机12将主机命令33输入到存储装置200的CARA端口 251。在存储装置200中,CM230接收输入到CARA端口 251的主机命令33。随后,CM 230对卷242和243中的任意一个进行由主机命令33指示的数据访问处理。
在图4的示例中假设存储装置100和200中的每个针对每个通信端口(CARA端口151/251和CA端口 152/252),不管命令的类型,能够同时对总共多达1024个命令进行处理。例如,CM 130将从CARA端口 151输入的、当前正在执行的命令的数量(下文中有时也称为“命令执行计数”)限制为多达1024。虽然也使用CARA端口 151来发送复制命令32,但是CM 130不对要发送的命令的数量进行管理,要发送的命令的数量对接收到的命令的数量没有影响。CM 230将从CARA端口 251输入的、当前正在执行的命令的数量限制为多达1024。另外,如果从CARA端口 251输入的、当前正在执行的命令的数量多于或等于预定阈值,则CM 230禁止主机命令的执行。例如,当命令的数量多于或等于768时,CM 230禁止主机命令的执行。注意,当命令执行计数尚未达到1024时,即使命令执行计数多于或等于768,CM 230也执行复制命令。
图5示出了根据第二实施例的RA目的地存储装置中的命令限制实现的状态。每次在RA源存储装置100中向建立了 RA会话的卷143写入数据时,从存储装置100向RA目的地存储装置200发送复制命令。另外,从主计算机22向存储装置200发送指示对存储装置200的卷242和243进行数据访问的主机命令。
在存储装置200中,对经由CARA端口 251输入的命令中的、当前正在执行的命令的数量(命令执行计数)进行计数。这里假设针对主机命令的命令限值是“768”。在这种情况下,在命令执行计数小于“768”的时间段期间,根据新输入的命令,与命令是复制命令、还是主机命令无关地,在存储装置200中进行数据访问。当以正常方式完成根据命令进行的数据访问时,存储装置200向命令的源发送正常响应。如果在短时间段上向存储装置200输入了大量复制命令和主机命令,则命令执行计数可能多于或等于“768”。在命令执行计数多于或等于“768”的情况下,对于从存储装置100输入的复制命令,存储装置200执行根据复制命令的数据访问。另一方面,对从主计算机22输入的主机命令,存储装置200不根据主机命令执行数据访问,而向主计算机22发送队列满(QFULL)响应。QFULL响应是用来向命令源通知由于过量命令执行计数导致命令不可执行的消息。在接收到QFULL响应之后,主计算机22例如能够在经过预定时间段之后,重新发送主机命令。以这种方式,禁止主机命令的执行。随后,如果在短时间段上向存储装置200输入了大量复制命令,则命令执行计数可能达到“1024”。当命令执行计数达到“1024”时,存储装置200与命令的类型无关地、不根据新输入的命令执行数据访问,并且向命令的源发送QFULL响应。也就是说,即使新输入的命令是从存储装置100输入的复制命令,存储装置200也不执行根据复制命令的数据访问,而向存储装置100发送QFULL响应。在接收到QFULL响应之后,存储装置100例如能够在经过预定时间段之后,重新发送复制命令。以这种方式,禁止任意命令的执行。
每次在存储装置200中执行的数据访问完成时,使命令执行计数递减。当命令执行计数变得小于或等于1024、然后输入了复制命令时,存储装置200执行根据复制命令的数据访问。此外,当命令执行计数变得小于或等于768、然后输入了主机命令时,存储装置200执行根据主机命令的数据访问。如图5所示,存储装置200是否执行根据输入的命令的数据访问,取决于命令的类型,即复制命令或者主机命令。因此,当向存储装置200输入命令时,判断输入的命令是复制命令、还是主机命令。基于包含在命令中的操作代码来判断命令的类型。
图6示出了命令的数据格式的示例。例如,存储装置100和200接收符合小型计算机系统接口(SCSI)标准的称为命令描述符块(CDB)的命令。对于CDB命令,有6字节、10字节、12字节和16字节命令。在命令40的开头,设置一字节操作代码41。在操作代码41中,设置用于识别命令的大小和类型的代码。通常使用的代码包括指示命令是读取请求、还是写入请求的代码以及用于识别命令的大小的代码。例如,代码“08”指示命令是6字节的读取请求;代码“0A”指示命令是6字节的写入请求;代码“28”指示命令是10字节的读取请求;代码“2A”指示命令是10字节的写入请求;代码“AS”指示命令是12字节的读取请求;代码“AA”指示命令是12字节的写入请求;代码“88”指示命令是16字节的读取请求;代码“8A”指示命令是16字节的写入请求。当发送请求进行数据读取或者数据写入的主机命令时,主计算机21和22将通常使用的代码中的一个设置为操作代码41。用作操作代码41的从“D0”继续的代码可用于卖主特有命令。在第二实施例中,例如,使用代码“D9”指示命令40是复制命令。另外,使用代码“DD”指示命令40是路径监视命令。注意,在路径监视命令的情况下,例如在第十至第十三字节中存储附加信息42。附加信息42例如是命令的执行状态和命令限值。存储装置100在要发送的复制命令的操作代码41中设置“D9”,并且在另一区域中设置要复制的数据。另外,主计算机21和22在要发送的主机命令的操作代码41中,设置诸如“08”和“0A”的、指示读取请求或者写入请求的值。CM 230例如使用命令管理表,对针对输入的命令的命令限值和当前正在执行的命令的数量(命令执行计数)进行管理。
图7示出了命令管理表的示例。在命令管理表50中,设置命令限值和命令执行计数。注意,命令管理表50例如存储在CM 230的存储器232中。命令限值是用作用来判断是否执行输入的命令的标准的、命令执行计数的阈值。在命令执行计数达到了命令限值的情况下,禁止输入的命令的执行。对于命令限值,每次CM 230接收到命令时,设置与接收到的命令的类型相对应的值。例如,在接收到复制命令的情况下,CM 230设置“1024”作为命令限值。在接收到主机命令的情况下,CM 230设置“768”作为命令限值。命令执行计数是当前正在执行的命令的数量。当前正在执行的命令是输入到了存储装置200、但是针对其每个还未向其发送源返回响应的命令。当CM 230接收到命令时,使命令执行计数递增1,当CM 230发送了响应时,使命令执行计数递减I。
接下来,描述由存储装置200的CM 230进行的命令执行处理的过程。图8是示出根据第二实施例的命令执行处理的过程的流程图。接下来,根据流程图中的步骤编号,描述图8的命令执行处理。
[步骤S101]CM230接收命令。
[步骤S102]CM 230使命令管理表50的命令执行计数递增I。
[步骤S103]CM230判断接收到的命令的类型是主机命令、还是复制命令。例如,CM 230参考接收到的命令的操作代码,如果操作代码是“08”、“0A”、“28”、“2A”、“A8”、“AA”、“88”和“8A”中的任意一个,则判断为接收到的命令的类型是主机命令。另一方面,如果接收到的命令的操作代码是“D9”,则CM 230判断为接收到的命令的类型是复制命令。当接收到的命令是复制命令时,CM 230使处理前进到步骤S104。当接收到的命令是主机命令时,CM 230使处理前进到步骤S111。
[步骤S104]在接收到复制命令的情况下,CM230在命令管理表50中将“1024”设置为命令限值。
[步骤S105]通过参考命令管理表50,CM230判断命令执行计数是否小于或等于命令限值。如果命令执行计数小于或等于命令限值,则CM 230使处理前进到步骤S108。另一方面,当命令执行计数超过命令限值时,CM 230使处理前进到步骤S106。
[步骤S106]在命令执行计数超过命令限值的情况下,CM230使命令执行计数递减I。
[步骤S107]CM230向存储装置100发送QFULL响应。随后,该命令执行处理结束。
[步骤S108]当命令执行计数小于或等于命令限值时,CM230执行根据复制命令的处理。例如,CM 230将包含在复制命令中的数据写入卷241中。
[步骤S109]CM 230使命令执行计数递减I。
[步骤SI10] CM 230向存储装置100发送正常响应,正常响应指示以正常方式完成了根据复制命令的数据写入。随后,该命令执行处理结束。
[步骤S111]在接收到主机命令的情况下,CM230在命令管理表50中将“768”设置为命令限值。
[步骤SI12]通过参考命令管理表50,CM 230判断命令执行计数是否小于或等于命令限值。如果命令执行计数小于或等于命令限值,则CM 230使处理前进到步骤S115。另一方面,当命令执行计数超过命令限值时,CM 230使处理前进到步骤S113。
[步骤S113]在命令执行计数超过命令限值的情况下,CM230使命令执行计数递减I。
[步骤S114]CM230向主计算机22发送QFULL响应。随后,该命令执行处理结束。
[步骤S115]当命令执行计数小于或等于命令限值时,CM230执行根据主机命令的处理。例如,如果主机命令是读取请求,则CM 230从卷242或243中读取由主机命令指示的数据。如果主机命令是写入请求,则CM 230将由主机命令指示的数据写入卷242或243。
[步骤SI16] CM 230使命令执行计数递减I。
[步骤SI17]CM 230向主计算机22发送正常响应,正常响应指示以正常方式完成了根据主机命令的数据访问。注意,在主机命令是读取请求的情况下,正常响应包括读取的数据。随后,该命令执行处理结束。
如上所述,在根据第二实施例的RA目的地存储装置200中,对于每个端口的针对复制命令的命令限值是1024,而对于每个端口针对主机命令的命令限值是768。利用这一点,即使当主机命令导致的负荷高时,也针对复制命令分配至少256个命令时隙(co_andslot)。这防止存储装置100和200之间的复制处理操作暂停。也就是说,防止复制处理操作的处理效率降低。注意,在主机命令的数量小于768的情况下,可以执行256或更多个复制命令。
(C)第三实施例
第三实施例涉及主机命令和复制命令的动态流控制。注意,第三实施例的系统配置与图2和3所示的第二实施例的系统配置相同。另外,根据第三实施例的存储装置200中的CM 230的存储器232存储图7的命令管理表50。根据上述第二实施例,在每单位时间接收到的复制命令的数量小的情况下,即使产生了大量主机命令,命令执行计数总共也小于1024。相应地,与将针对主机命令的命令限值设置为与针对复制命令的命令限值(例如1024)相同的情况相比,在存在少量复制命令的情况下,每个端口的性能降低。例如,假设将针对主机命令的命令限值设置为768。在这种情况下,虽然对于每个端口提供了总共执行1024个命令的能力,但是当复制命令的执行计数小于256时,不能执行1024个命令。鉴于上述情况,根据第三实施例,在没有复制命令立即发出的情况下,不将针对主机命令的限值设置为768,而设置为1024。没有复制命令立即发出的情况,是尚未进行事先进行的发送复制命令的处理的情况。例如,为了发送复制命令,事先进行用于复制命令的通信路径的建立,例如用于存储装置之间的复制操作的RA会话的建立。相应地,在尚未进行诸如RA会话的通信路径的建立的情况下,可以判断为没有复制命令立即发出。
图9示出了根据第三实施例的命令流控制状况的示例。在图9中,上半部分示出了未建立RA会话时的命令流控制状况,下半部分示出了建立了 RA会话时的命令流控制状况。在未建立RA会话的情况下,各个存储装置100和200应用1024作为针对经由CARA端口 151和251输入的所有命令类型的命令限值。在建立了 RA会话的情况下,存储装置200仅将针对主机命令的命令限值设置为768。针对主机命令之外的命令的命令限值是1024。例如,由会话管理表对是否建立了 RA会话进行管理。
图10示出了根据第三实施例的会话管理表的示例。在会话管理表60中,设置RA源卷编号列、RA目的地卷编号列和会话类型列。在RA源卷编号列的每一域中,设置复制操作中的RA源卷的识别编号(卷编号)。具体地,分配识别编号,以识别卷所属的RA源存储装置中的卷。在RA目的地卷编号列的每一域中,设置复制操作中的RA目的地卷的识别编号(卷编号)。具体地,分配识别编号,以识别卷所属的RA目的地存储装置中的该卷。在会话类型列的每一域中,设置会话的类型。在用于不同存储装置的卷之间的数据复制(远程复制)的会话的情况下,在会话类型列的相应域中设置术语“远程复制会话”。在用于单个存储装置的不同卷之间的数据复制(本地复制)的会话的情况下,在会话类型列的相应域中设置术语“本地复制会话”。注意,在远程复制会话的情况下,还设置作为复制目的地的装置的标识符(装置ID)。如图10所示的会话管理表存储在例如存储装置200中的CM 230的存储器232中。
接下来,描述在存储装置200中进行的命令执行处理。图11是示出根据第三实施例的命令执行处理的过程的流程图。接下来,根据流程图中的步骤编号,描述图11的命令执行处理。在图11所示的步骤中,步骤S201至S210和步骤S214至S219的操作分别与图8中的第二实施例的步骤SlOl至SI 10和步骤SI 12至SI 17的操作相同。相应地,下面给出对作为与第二实施例不同的操作的步骤S211至S213的描述。
[步骤S211]在接收到的命令是主机命令的情况下,存储装置200的CM230判断是否存在RA会话。例如,通过参考会话管理表60,如果建立了至少一个RA会话,则CM 230判断为存在RA会话。在判断为存在RA会话的情况下,CM 230使处理前进到步骤S212。另一方面,如果判断为不存在RA会话,则CM 230使处理前进到步骤S213。
[步骤S212]当建立了RA会话时,CM 230将针对主机命令的命令限值设置为768。随后,CM 230使处理前进到步骤S214。
[步骤S213]当未建立RA会话时,CM230将针对主机命令的命令限值设置为1024。
随后,由于步骤S214的操作,根据命令执行计数是否小于或等于所设置的命令限值,来判断是否执行接收到的主机命令。其结果是,当没有RA会话时,将与针对复制命令的命令限值相同的值,应用于针对主机命令的命令限值。通过以上述方式进行命令流控制,在没有立即接收到复制命令的情况下,也对针对主机命令的命令限值应用1024。这提高了处理效率。
(d)第四实施例
接下来,描述第四实施例。第四实施例涉及考虑到复制命令与主机命令的比率的动态流控制。注意,第四实施例的系统配置与图2和3所示的第二实施例的系统配置相同。根据第二和第三实施例,在向RA目的地存储装置200发出的主机命令的数量变得极其大的情况下,防止复制命令的处理效率降低。然而,第二和第三实施例没有考虑复制命令的数量变得极其大的情况。其结果是,存在如下可能性:在RA目的地存储装置200中,由命令限值指示的全部1024个命令时隙由复制命令专用,因此不能执行甚至一个主机命令。鉴于上述,根据第四实施例,基于由存储装置200接收到的复制命令的数量与主机命令的数量的比率,设置针对复制命令和主机命令的各个命令限值。这防止在复制命令的数量增加的情况下,复制命令的处理效率和主机命令的处理效率之间的不平衡增加。
图12示出了根据第四实施例的命令流控制状况的示例。根据第四实施例,在RA目的地存储装置200中,在预定时间段(例如10秒)内,对RA目的地主机命令的累积数量tc和RA目的地复制命令的累积数量tr进行计数。注意,RA目的地主机命令的累积数量tc是在预定时间段内由存储装置200接收到的主机命令的数量,其包括未执行和针对其每个返回了 QFULL响应的主机命令。类似地,RA目的地复制命令的累积数量tr是在预定时间段内由存储装置200接收到的复制命令的数量,其包括未执行和针对其每个返回了 QFULL响应的复制命令。
这里假设在RA源存储装置100中,将针对从CARA端口 151接收到的命令的命令限值设置为1024。在从主计算机21输入到CARA端口 151的主机命令31是指示向卷143进行数据写入的命令的情况下,发生对应于主机命令31的数据复制操作。在这种情况下,在存储装置100从存储装置200接收到对相应的复制命令32的响应之后,输出对主机命令31的响应。因此,执行输入的主机命令31,直到数据复制处理完成为止。基于RA目的地主机命令的累积数量tc与RA目的地复`制命令的累积数量tr的比率,存储装置200的CM 230确定RA目的地主机命令限值tcs与RA目的地复制命令限值trs的比率。下面是计算公式。
tcs=(tc/(tc+tr))X1024...(I)
trs=1024 -tcs...(2)
例如,假设RA目的地主机命令的累积数量tc是“2000”,并且RA目的地复制命令的累积数量tr是“1024”。在这种情况下,RA目的地主机命令限值tcs和RA目的地复制命令限值trs分别取下面的值。
tcs=677
trs=347
通过以这种方式施加控制,即使接收到大量复制命令,也能够实现复制命令和主机命令之间的平衡的处理。在命令管理表中设置考虑复制命令与主机命令的比率的动态流控制使用的信息。
图13示出了根据第四实施例的命令管理表的示例。在命令管理表51中,设置了以下项:主机命令执行计数-M目的地主机命令的累积数量tc ;RA目的地主机命令限值tcs ;复制命令执行计数;RA目的地复制命令的累积数量tr;以及RA目的地复制命令限值trs。注意命令管理表51存储在例如CM 230的存储器232中。主机命令执行计数是当前正在执行的主机命令的数量。RA目的地主机命令的累积数量tc是在预定时间段内接收到的主机命令的数量。RA目的地主机命令限值tcs是指示存储装置200中的主机命令执行计数的上限的值。如果主机命令执行计数达到了 RA目的地主机命令限值tcs,则禁止输入的主机命令的执行。复制命令执行计数是当前正在执行的复制命令的数量。RA目的地复制命令的累积数量tr是在预定时间段内接收到的复制命令的数量。RA目的地复制命令限值trs是指示存储装置200中的复制命令执行计数的上限的值。如果复制命令执行计数达到了 RA目的地复制命令限值trs,则禁止输入的复制命令的执行。
以例如10秒的间隔更新图13的命令管理表51的RA目的地主机命令限值tcs和RA目的地复制命令限值trs。接下来,描述命令管理表51的更新处理。图14是示出根据第四实施例的命令管理表更新处理的过程的流程图。接下来,根据流程图中的步骤编号,描述图14的命令管理表更新处理。
[步骤S301]CM230将计时器复位,并且开始时间计数。
[步骤S302]CM230判断计时器是否计数了 10秒。如果尚未经过10秒,则CM 230使处理前进到步骤S301。如果经过了 10秒,则CM 230使处理前进到步骤S303。
[步骤S303]CM230更新RA目的地主机命令限值tcs。例如,通过参考命令管理表51,CM 230获取RA目的地主机命令的累积数量tc和RA目的地复制命令的累积数量tr。随后,CM 230基于方程式(I)计算RA目的地主机命令限值tcs。然后,CM 230用算出的RA目的地主机命令限值tcs,更新存储在命令管理表51中的RA目的地主机命令限值tcs。
[步骤S304]CM230更新RA目的地复制命令限值trs。例如,通过参考命令管理表51,CM 230获取RA目的地主机命令限值tcs。随后,CM230基于方程式(2)计算RA目的地复制命令限值trs。然后,CM 230用算出的RA目的地复制命令限值trs,更新存储在命令管理表51中的RA目的地复制命令限值trs。
[步骤S305]CM230将命令管理表51的RA目的地主机命令的累积数量tc和RA目的地复制命令的累积数量tr初始化为零。随后,CM 230使处理前进到步骤S301。
以上述方式,以10秒的间隔,重复进行基于在紧接在前面的10秒期间获得的RA目的地主机命令的累积数量tc和RA目的地复制命令的累积数量tr的、RA目的地主机命令限值tcs和RA目的地复制命令限值trs的更新。
接下来描述根据第四实施例的在存储装置200中进行的命令执行处理。图15是示出根据第四实施例的命令执行处理的过程的示例的流程图。接下来,根据流程图中的步骤编号,描述图15的命令执行处理。
[步骤S311]CM230接收命令。
[步骤S312]CM230判断接收到的命令的类型是主机命令、还是复制命令。可以基于例如接收到的命令的操作代码判断命令类型。当接收到的命令是复制命令时,CM 230使处理前进到步骤S313。当接收到的命令是主机命令时,CM 230使处理前进到步骤S320。
[步骤S313]在接收到复制命令的情况下,CM230使命令管理表51的复制命令执行计数的值递增I。另外,CM 230使RA目的地复制命令的累积数量tr的值递增I。
[步骤S314]通过参考命令管理表51,CM230判断复制命令执行计数是否小于或等于RA目的地复制命令限值trs。当复制命令执行计数小于或等于RA目的地复制命令限值trs时,CM 230使处理前进到步骤S317。另一方面,当复制命令执行计数超过RA目的地复制命令限值trs时,CM230使处理前进到步骤S315。
[步骤S315]当复制命令执行计数超过RA目的地复制命令限值trs时,CM230使复制命令执行计数递减I。
[步骤S316]CM 230向存储装置100发送QFULL响应。随后,该命令执行处理结束。
[步骤S317]当复制命令执行计数小于或等于RA目的地复制命令限值trs时,CM230执行根据复制命令的处理。
[步骤S318]CM230使复制命令执行计数递减I。
[步骤S319]CM230向存储装置100发送正常响应,正常响应指示以正常方式完成了根据复制命令的数据写入。随后,该命令执行处理结束。
[步骤S320]在接收到主机命令的情况下,CM230使命令管理表51的主机命令执行计数的值递增I。另外,CM 230使RA目的地主机命令的累积数量tc的值递增I。
[步骤S321]通过参考命令管理表51,CM230判断主机命令执行计数是否小于或等于RA目的地主机命令限值tcs。如果主机命令执行计数小于或等于RA目的地主机命令限值tcs JUCM 230使处理前进到步骤S324。另一方面,当主机命令执行计数超过RA目的地主机命令限值tcs时,CM 230使处理前进到步骤S322。
[步骤S322]当主机命令执行计数超过RA目的地主机命令限值tcs时,CM230使主机命令执行计数递减I。
[步骤S323]CM230向主计算机22发送QFULL响应。随后,该命令执行处理结束。
[步骤S324]当主机命令执行计数小于或等于RA目的地主机命令限值tcs时,CM230执行根据主机命令的处理。
[步骤S325]CM 230使主机命令执行计数递减I。
[步骤S326]CM230向主计算机22发送正常响应,正常响应指示以正常方式完成了根据主机命令的数据访问。随后,该命令执行处理结束。
通过以这种方式施加控制,即使接收到大量复制命令,也能够实现复制命令和主机命令之间的平衡的处理。
(e)第五实施例
接下来描述第五实施例。第五实施例涉及考虑RA源侧的命令的累积数量的动态流控制。注意,第五实施例的系统配置与图2和3所示的第二实施例的系统配置相同。第四实施例在计算RA目的地存储装置200的RA目的地复制命令限值trs和RA目的地主机命令限值tcs时,不考虑RA源命令的累积数量。在针对RA源CARA端口 151设置了命令限值1024之后,获得RA目的地复制命令的累积数量tr,在计算存储装置200的RA目的地复制命令限值trs和RA目的地主机命令限值tcs时,考虑RA目的地复制命令的累积数量tr。另一方面,关于输入到存储装置200的主机命令的RA目的地主机命令的累积数量tc,包括针对其每个返回了 QFULL响应以及不受命令限制影响的主机命令。相应地,当输入到存储装置100的主机命令的数量达到或者超过1024,并且在强加命令限值的情况下对RA目的地复制命令的累积数量tr进行计数、且然后输入到存储装置200的主机命令的数量多于或等于1024时,不会实现平衡的命令执行。也就是说,在存储装置200中,优先于复制命令执行主机命令。为了解决该问题,第五实施例使用RA源主机命令的累积数量,来计算RA目的地存储装置200的RA目的地复制命令限值trs和RA目的地主机命令限值tcs。
图16示出了根据第五实施例的命令流控制状况的示例。根据第五实施例,RA源存储装置100向RA目的地存储装置200通知指示RA命令计数的信息。例如,存储装置100的CM 130以规则时间间隔(例如10秒)对输入到存储装置100的主机命令的数量(RA源主机命令的累积数量ic)进行计数。另外,CM 130确定主机命令31的访问目的地,通过主机命令31执行了对卷141至143中的一个的访问。如果访问目的地是未建立RA会话的卷141或者142,则CM 130确定所执行的主机命令31是CA命令34。另一方面,如果访问目的地是建立了 RA会话的卷143,则CM130确定所执行的主机命令31是RA命令35。随后,CM130计算RA命令35与在预定时间段(例如10秒)内执行的主机命令31的总数的比例。将该比率称为RA命令比率P。注意,当执行RA命令35时,如果RA命令35是请求进行数据写入的写入命令,则CM 130将数据写入卷143。随后,CM 130发出复制命令32。发出的复制命令32经由交换机11和12等向存储装置200发送。然后,CM 130向存储装置200发送包括RA源主机命令的累积数量ic和RA命令比率P的路径监视命令36。例如,CM 130以规则时间间隔(例如10秒)发送添加了附加信息42 (参见图6)的路径监视命令36。附加信息42包括RA源主机命令的累积数量ic和RA命令比率P。
通过包括RA源主机命令的累积数量ic和RA命令比率p的路径监视命令36,RA目的地存储装置200侧能够知道RA源命令的输入状况。在RA目的地存储装置200中,CM230基于输入到CARA端口 251的命令,对RA目的地主机命令的累积数量tc进行计数。随后,CM 230基于RA目的地主机命令的累积数量tc和由路径监视命令36指示的信息,计算RA目的地主机命令限值tcs和RA目的地复制命令限值trs。下面是计算公式。
icXp:tc=trs:tcs …(3)
tcs+trs=1024...(4)
从这两个公式获得下面的结果。
tcs=(tc/(tc+icXp)) X 1024...(5)
trs=1024 -tcs
=(icXp/(tc+icXp)) X 1024...(6)
此外,该信息的使用还使得RA源存储装置100的RA源主机命令限值ics成为反映RA目的地存储装置200的状况的值。例如,可以使用下面的计算公式来计算存储装置100的RA源主机命令限值ics。
ics=trs/p...(7)
例如,存储装置200计算RA源主机命令限值ics,并且向存储装置100发送路径监视命令37,路径监视命令37作为附加信息包括所计算的RA源主机命令限值ics。在接收到路径监视命令37之后,存储装置100应用由路径监视命令37指示的RA源主机命令限值ics,以限制从CARA端口 151输入的主机命令的执行。由此,通过考虑RA源的命令输入状况,即使当多于1024个命令被输入到存储装置100和200中的每个时,在存储装置100和200中也以等同的措施对主机命令进行处理。
接下来,使用具体示例来描述根据第五实施例的各个存储装置100和200的主机命令执行性能。第一示例示出了 “icX (1-P)彡tc”的情况。“icX(l-p)”是在预定时间段内输入到RA源存储装置100的CA命令的数量(CA命令的累积数量)。也就是说,“icX (1-p) ( tc”指示输入到存储装置100的CA命令的累积数量小于或等于输入到存储装置200的RA目的地主机命令的累积数量tc的情况。这里假设各个测量值如下。
RA源主机命令的累积数量ic:3000
RA 命令比率 P:0.5
RA目的地主机命令的累积数量tc:2000
然后,RA目的地主机命令限值tcs、RA目的地复制命令限值trs和RA源主机命令限值ics如下。
tcs=(2000/(2000+3000 X 0.5))X1024=585
trs=1024 - 585=439
ics=439/0.5=878
在这种情况下,如果每单位时间从主计算机21输出的主机命令的数量基本恒定,则由:ic-1cs=2122得到超过RA源主机命令限值ics的输入到存储装置100的主机命令的数量。类似地,如果每单位时间从主计算机22输出的主机命令的数量基本恒定,则由:tc-tcs=1415得到超过RA目的地主机命令限值tcs的输入到存储装置200的主机命令的数量。在这种情况下, 向发送了主机命令的主计算机21和22中的每个返回QFULL响应的概率(QFULL比率)如下,并且可以看出,存储装置100和200展示了相同的主机命令执行性倉泛。
2122/3000=0.707=70.7%
1415/2000=0.707=70.7%
第二示例示出了 “icX (1-p) He”的情况。“icX (1-p) He”指示输入到存储装置100的CA命令的数量多于输入到存储装置200的RA目的地主机命令的累积数量tc的情况。这里假设各个测量值如下。
RA源主机命令的累积数量ic:2000
RA 命令比率 P:0.4
RA目的地主机命令的累积数量tc:1000
然后,RA目的地主机命令限值tcs、RA目的地复制命令限值trs和RA源主机命令限值ics如下。
tcs= (1000/(1000+2000X 0.4))X1024=568
trs=1024 - 568=456
ics=456/0.4=1140>1024
因此,ics超过了 1024。相应地,在“icX (I _ P) He”的情况下,在将ics设置为1024的情况下,使用下面的计算公式。
ics=1024 …(8)
trs=icsXp …(9)
tcs=(tc/ic)X1024...(10)
然后,RA目的地复制命令限值trs和RA目的地主机命令限值tcs的值改变如下。
trs=1024X0.4=409
tcs=1000/2000X1024=512
在这种情况下,ic -1cs=976并且tc - tcs=488。存储装置100和200中的每个的QFULL比率如下,并且存储装置100和200展示了相同的主机命令执行性能。
976/2000=0.488=4
488/1000=0.488=48.8%
注意,在第五实施例中,主机命令31被输入到RA源存储装置100的CARA端口 151,并且由存储装置200的CARA端口 251接收从CARA端口 151输出的复制命令32。因此,这些经由CARA端口输入和输出的命令是针对存储装置100和200中的每个的命令状况的监视目标。主机命令31可以不输入到CARA端口 151,而输入到CA端口 152。根据第五实施例,输入到CA端口 152的主机命令不是监视目标。另外,复制命令32可以不从存储装置100的CARA端口 151,而从RA端口输出。根据第五实施例,从RA端口输出的复制命令不是监视目标。此外,在RA目的地存储装置200中,可以不由CARA端口 251、而由RA端口接收复制命令32。根据第五实施例,由RA端口接收的复制命令不是监视目标。因此,根据第五实施例,经由专用端口输入和输出的命令不是用来确定每个存储装置的命令输入和输出状况的监视目标。
下面描述为了实现第五实施例的功能而由RA源存储装置100和RA目的地存储装置200分别保持的命令管理表。图17示出了 RA源命令管理表的示例。存储装置100包括RA源命令管理表52。RA源命令管理表52例如存储在CM 130的存储器中。在RA源命令管理表52中,设置了下面的项:主机命令执行计数;RA源主机命令的累积数量ic ;RA源主机命令限值ics ;RA命令计数;以及RA命令比率P。主机命令执行计数是在RA源存储装置100中当前正在执行的主机命令的数量。RA源主机命令的累积数量ic是在预定时间段内输入到RA源存储装置100的主机命令的数量。RA源主机命令限值ics是指示RA源存储装置100的主机命令执行计数的上限的值。RA命令计数是RA命令的数量,RA命令是在预定时间段内输入到RA源存储装置100的主机命令中的、针对对其建立了 RA会话的卷的访问的请求。RA命令比率P是RA命令与在预定时间段内输入到RA源存储装置100的主机命令的比例。
图18示出了 RA目的地命令管理表的示例。存储装置200包括RA目的地命令管理表53。RA目的地命令管理表53例如存储在CM 230的存储器中。在RA目的地命令管理表53中,设置了下面的项:主机命令执行计数;RA目的地主机命令的累积数量tc ;RA目的地主机命令限值tcs ;复制命令执行计数;RA目的地复制命令的累积数量tr ;RA目的地复制命令限值trs ;RA源主机命令的累积数量ic ;以及RA命令比率p。主机命令执行计数是在存储装置200中当前正在执行的主机命令的数量。RA目的地主机命令的累积数量tc是在预定时间段内存储装置200接收到的主机命令的数量。RA目的地主机命令限值tcs是指示存储装置200的主机命令执行计数的上限的值。复制命令执行计数是在存储装置200中当前正在执行的复制命令的数量。RA目的地复制命令的累积数量tr是在预定时间段内存储装置200接收到的复制命令的数量。RA目的地复制命令限值trs是指示存储装置200的复制命令执行计数的上限的值。如果复制命令执行计数达到了 RA目的地复制命令限值trs,则禁止输入的复制命令的执行。RA源主机命令的累积数量ic是在预定时间段内输入到RA源存储装置100的主机命令的数量。RA命令比率P是RA命令与输入到存储装置100的主机命令的比例。
接下来,描述使用路径监视命令的存储装置之间的信息交换过程。图19是示出存储装置之间的信息交换过程的示例的序列图。接下来,根据序列图中的步骤编号,描述图19的信息交换过程。
[步骤S401]RA源存储装置100使用路径监视命令,向存储装置200通知RA源主机命令的累积数量ic和RA命令比率P。例如,当在最后通知RA源主机命令的累积数量ic和RA命令比率P之后经过了 10秒时,存储装置100进行步骤S401的操作。
[步骤S402]存储装置200使用获取的RA源主机命令的累积数量ic和RA命令比率P,更新RA目的地命令管理表53的RA源主机命令的累积数量ic和RA命令比率p的值。
[步骤S403]存储装置200进行RA目的地命令限值确定处理。例如,当在最后的RA目的地命令限值确定处理之后经过了 10秒时,存储装置200计算RA目的地主机命令限值tcs和RA目的地复制命令限值trs。
[步骤S404]存储装置200基于更新后的RA目的地复制命令限值trs,确定RA源主机命令限值ics。
[步骤S405]存储装置200使用路径监视命令,向存储装置100通知确定的RA源主机命令限值ics。
[步骤S406]存储装置100使用获取的RA源主机命令限值ics,更新RA源命令管理表52的RA源主机命令限值ics的值。
之后,以10秒的间隔重复进行与步骤S401至S406相同的操作(步骤S407至S412)。以这种方式,两个存储装置100和200交换信息,这使得进行公平的命令执行,从而防止仅某一类型的命令的例外优先执行。
接下来,详细描述RA源存储装置100中的命令执行状况通知处理(步骤S401的操作)。图20是示出RA源中的命令执行状况通知处理的过程的示例的流程图。接下来,根据流程图中的步骤编号,描述图20的命令执行状况通知处理。
[步骤S421]存储装置100的CM130将计时器复位,并且开始时间计数。
[步骤S422]CM130判断计时器是否计数了 10秒。如果尚未经过10秒,则CM 130使处理前进到步骤S421。如果经过了 10秒,CM 130使处理前进到步骤S423。
[步骤S423]CM130向存储装置200通知RA源主机命令的累积数量ic和RA命令比率P。例如,CM 130从RA源命令管理表52获取RA源主机命令的累积数量ic和RA命令比率P。接下来,CM 130生成在其头中包括所获取的RA源主机命令的累积数量ic和RA命令比率P的控制包。然后,CM 130经由CARA端口 151向存储装置200发送生成的控制包。
[步骤S424]CM130将RA命令计数、RA命令比率p和RA源主机命令的累积数量ic的所有值初始化为O。随后,CM 130使处理前进到步骤S421。
以这种方式,以10秒的间隔从存储装置100向存储装置200发送信息。
接下来描述在RA源存储装置中进行的命令执行处理。图21示出了根据第五实施例的RA源存储装置中的命令执行处理的过程的示例。接下来,根据步骤编号描述图21的命令执行处理。
[步骤S431]CM130接收主机命令。
[步骤S432]CM130使主机命令执行计数和RA源主机命令的累积数量ic中的每个递增I。例如,CM 130向RA源命令管理表52的主机命令执行计数的值加I。另外,CM130向RA源命令管理表52的RA源主机命令的累积数量ic的值加I。
[步骤S433]CM130判断接收到的主机命令的类型是否是RA命令。例如,如果主机命令是访问对其建立了 RA会话的卷143的请求,则CM130判断为该主机命令是RA命令。当主机命令是RA命令时,CM 130使处理前进到步骤S434。另一方面,当主机命令是CA命令时,CM 130使处理前进到步骤S441。
[步骤S434]CM130使RA命令计数递增I。另外,基于递增之后的RA命令计数,CM 130计算RA命令比率p。例如,CM 130向RA源命令管理表52的RA命令计数的值加I。接下来,CM 130从RA源命令管理表52获取RA命令计数和RA源主机命令的累积数量ic。然后,CM 130将RA命令计数除以RA源主机命令的累积数量ic,由此获得RA命令比率p。CM 130使用所计算的RA命令比率p,更新RA源命令管理表52的RA命令比率P。
[步骤S435]CM130判断主机命令执行计数是否小于或等于RA源主机命令限值ics。例如,CM 130从RA源命令管理表52获取主机命令执行计数和RA源主机命令限值ics,并且将这些获取的值进行比较。当主机命令执行计数小于或等于RA源主机命令限值ics时,CM 130使处理前进到步骤S436。另一方面,当主机命令执行计数超过RA源主机命令限值ics时,CM 130使处理前进到步骤S445,
[步骤S436]CM130执行根据接收到的主机命令的处理。例如,CM130将数据写入卷 143。
[步骤S437]CM130向存储装置200发送用于将在步骤S436中写入的数据复制到存储装置200的复制命令32。
[步骤S438]CM130判断来自存储装置200的响应是正常响应,还是QFULL响应。当从存储装置200接收到正常响应时,CM 130使处理前进到步骤S439。另一方面,当从存储装置200接收到QFULL响应时,CM 130使处理前进到步骤S437,并且重新发送复制命令32。
[步骤S439]CM130使RA源命令管理表52的主机命令执行计数的值递减I。
[步骤S440]CM130向主计算机21发送正常响应。随后,该命令执行处理结束。
[步骤S441]当接收到的主机命令是CA命令时,CM130判断主机命令执行计数是否小于或等于RA源主机命令限值ics。当主机命令执行计数小于或等于RA源主机命令限值ics时,CM 130使处理前进到步骤S442。另一方面,当主机命令执行计数超过RA源主机命令限值ics时,CM 130使处理前进到步骤S445。
[步骤S442]CM130执行根据接收到的主机命令的处理。例如,CM130将数据写入卷 141 或 142。
[步骤S443]CM 130使RA源命令管理表52的主机命令执行计数的值递减I。
[步骤S444]CM130向主计算机21发送正常响应。随后,该命令执行处理结束。
[步骤S445]当主机命令执行计数超过RA源主机命令限值ics时,CM130使RA源命令管理表52的主机命令执行计数的值递减I。
[步骤S446]CM130向主计算机21发送QFULL响应。随后,该命令执行处理结束。
以这种方式,同样在RA源存储装置100中,通过根据RA目的地复制命令限值trs动态地改变的RA源主机命令限值ics适当地对主机命令执行计数进行控制。
接下来描述在RA目的地存储装置200中进行的处理。图22示出了 RA目的地中的命令限值确定处理的过程的示例。接下来,根据步骤编号,描述图22的命令限值确定处理。
[步骤S451]存储装置200的CM230将计时器复位,并且开始时间计数。
[步骤S452]CM230判断计时器是否计数了 10秒。如果尚未经过10秒,则CM 230使处理前进到步骤S451。如果经过了 10秒,CM 230使处理前进到步骤S453。
[步骤S453]CM230判断RA源存储装置100的CA命令计数是否大于RA目的地主机命令的累积数量tc。通过将RA源主机命令的累积数量ic乘以“ 1-RA命令比率p”,来计算RA源CA命令计数。例如,CM 230从RA目的地命令管理表53获得RA目的地主机命令的累积数量tc、RA源主机命令的累积数量ic和RA命令比率P。随后,CM 230将通过将RA源主机命令的累积数量ic乘以“ 1-RA命令比率p”获得的值,与RA目的地主机命令的累积数量tc进行比较,由此判断CA命令计数是否大于RA目的地主机命令的累积数量tc。当CA命令计数大于RA目的地主机命令的累积数量tc时,CM 230使处理前进到步骤S456。另一方面,当CA命令计数小于或等于RA目的地主机命令的累积数量tc时,CM 230使处理前进到步骤S454。
[步骤S454]当CA命令计数小于或等于RA目的地主机命令的累积数量tc时,CM230计算RA目的地主机命令限值tcs和RA目的地复制命令限值trs。例如,CM 230从RA目的地命令管理表53获取RA源主机命令的累积数量ic、RA命令比率P和RA目的地主机命令的累积数量tc。随后,CM 230根据上面的方程式(5)和(6),计算RA目的地主机命令限值tcs和RA目的地复制命令限值trs。此外,CM 230用所计算的RA目的地主机命令限值tcs和RA目的地复制命令限值trs,更新RA目的地命令管理表53的RA目的地主机命令限值tcs和RA目的地复制命令限值trs。
[步骤S455]CM230计算RA源主机命令限值ics。例如,CM 230从RA目的地命令管理表53获取RA目的地复制命令限值trs和RA命令比率p。然后,CM 230根据上面的方程式(7),计算RA源主机命令限值ics。随后,CM 230使处理前进到步骤S458。
[步骤S456]当CA命令计数大于RA目的地主机命令的累积数量tc时,CM230确定RA源主机命令限值ics是“1024”。
[步骤S457]CM230计算RA目的地主机命令限值tcs和RA目的地复制命令限值trs。例如,CM 230从RA目的地命令管理表53获取RA源主机命令的累积数量ic、RA命令比率P和RA目的地主机命令的累积数量tc。随后,CM 230使用所获取的值和在步骤S456中确定的RA源主机命令限值“ics=1024”,根据上面的方程式(9)和(10),计算RA目的地主机命令限值tcs和RA目的地复制命令限值trs。此外,CM 230使用所计算的RA目的地主机命令限值tcs和RA目的地复制命令限值trs,更新RA目的地命令管理表53的RA目的地主机命令限值tcs和RA目的地复制命令限值trs的值。
[步骤S458]CM 230将RA目的地命令管理表53的RA目的地主机命令的累积数量tc和RA目的地复制命令的累积数量tr初始化为O。
[步骤S459]CM230向RA源存储装置100通知在步骤S455中计算的RA源主机命令限值ics或者在步骤S456中确定的RA源主机命令限值ics。例如,CM 230向存储装置100发送在其头中包括RA源主机命令限值ics的路径监视命令37。随后,CM 230使处理前进到步骤S451。
以上述方式,在存储装置200中计算RA源和RA目的地命令限值两者。注意,根据第五实施例的RA目的地存储装置200的命令执行处理,与图15所示的根据第四实施例的命令执行处理相同。以上述方式,对各个存储装置100和200应用在RA目的地存储装置200中确定的命令限值。其结果是,即使当输入到存储装置100的主机命令的数量超过RA源主机命令限值ics时,也能够使得存储装置100和200具有等同的主机命令处理效率。也就是说,同样考虑输入到RA源存储装置100的过量的主机命令,使得由于RA会话中的数据复制而导致的主机命令处理效率的降低在RA源和RA目的地之间可比较,由此实现RA源和RA目的地之间的公平。注意,第五实施例示出了存储装置一对一彼此连接的示例,然而,第五实施例可以应用于一个存储装置连接到多个存储装置的情况,或者多个存储装置连接到多个存储装置的情况。此外,代替相同地处置从主计算机21和22中的每个输出的主机命令,可以根据从各个主计算机21和22发出的主机命令的优先级,对它们的执行进行加权。通过进行加权,能够对返回到主计算机21和22的QFULL响应的概率进行控制。
(f)第六实施例
接下来描述第六实施例。第六实施例考虑RA源存储装置100中对CA命令和RA命令的处理时间的差。注意,第六实施例的系统配置与图2和3所示的第二实施例的系统配置相同。对于RA命令,在作为对卷143的数据写入处理的扩展而发起的远程复制结束之后,向主计算机21发送响应。相应地,与CA命令相比,RA命令需要更长的时间来完成处理。然而,第五实施例没有考虑CA命令和RA命令之间的处理时间的差。其结果是,在数量增加的RA命令的处理尚未完成时,在RA源存储装置100中仅可以对CA命令进行处理。这可能导致甚至不能接收CA命令。鉴于此,在第六实施例中,应用根据命令处理时间的差的加权,并且以不累积对RA命令的未完成处理的方式来改变命令限值。
图23示出了根据第六实施例的命令流控制状况的示例。根据第六实施例,在RA源存储装置100中,测量CA命令处理时间CT和RA命令处理时间rT。通过路径监视命令38将测量的CA命令处理时间cT和RA命令处理时间rT,与RA源主机命令的累积数量ic和RA命令比率P —起发送到RA目的地存储装置200。在存储装置200中,使用CA命令处理时间cT和RA命令处理时间rT来确定命令限值。例如,进行下面的计算。
icXpXcT/rT:tc=trs:tcs...(11)
tcs+trs=1024...(12)
从这两个方程式获得下面的结果。
tcs=(tc/(tc+icXpXcT/rT)) X 1024...(13)
trs=1024 - tcs
= ((ic Xp X cT/rT) / ( tc+icXp X cT/rT)) X 1024 …(14)
此外,使用下面的计算公式,计算存储装置100的RA源主机命令限值ics。
ics=trs/p...(15)
接下来,使用具体示例来描述根据第六实施例的各个存储装置100和200的主机命令执行性能。这里假设各个测量值如下:
RA源主机命令的累积数量ic:3000
RA 命令比率 P:0.5
RA目的地主机命令的累积数量tc:2000
CA命令处理时间cT:lms
RA命令处理时间rT:4ms
在这种情况下,RA目的地主机命令限值tcs、RA目的地复制命令限值trs和RA源主机命令限值ics如下。
tcs= (2000/ (2000+3000 X0.5 X 1/4)) X 1024=862
trs=1024 - 862=162
ics=162/0.5=324
RA源主机命令限值ics落在1024下面很多。然而,即使接收到324个命令或更多,RA源存储装置100也无法跟上对RA命令的处理,最终导致累积。因为RA源主机命令限值ics保持低,因此能够对更多RA目的地主机命令进行处理。因此,保持RA源主机命令限值ics低至324,使得整个系统的效率提高。另外,根据第六实施例,考虑到获得的RA源主机命令限值ics和CARA端口 151的上限、S卩1024之间的差,RA命令比率p降低。这使得CA命令能够增加,这使RA源主机命令限值ics接近1024。以这种方式,能够提高RA源存储装置100的性能。
接下来,描述为了实现第六实施例的功能而由RA源存储装置100和RA目的地存储装置200分别保持的命令管理表。图24示出了根据第六实施例的RA源命令管理表的示例。根据第六实施例,图24的RA源命令管理表55例如存储在CM 130的存储器中。在RA源命令管理表55中,设置了下面的项:主机命令执行计数;RA源主机命令的累积数量ic ;RA源主机命令限值ics ;RA命令计数;RA命令比率p 'Ck命令处理时间cT ;以及RA命令处理时间rT。图25示出了第六实施例的RA目的地命令管理表的示例。根据第六实施例,图25的RA目的地命令管理表56例如存储在CM 230的存储器中。在RA目的地命令管理表56中,设置了下面的项:主机命令执行计数;RA目的地主机命令的累积数量tc;RA目的地主机命令限值tcs ;复制命令执行计数;RA目的地复制命令的累积数量tr ;RA目的地复制命令限值trs ;RA源主机命令的累积数量ic ;RA命令比率P ;CA命令处理时间cT ;以及RA命令处理时间rT。在这些项中,每次使用路径监视命令38从存储装置100通知了相应的信息时,由CM 230更新RA源主机命令的累积数量ic、RA命令比率P、CA命令处理时间cT和RA命令处理时间rT。
接下来,描述第六实施例的RA源存储装置100中的命令执行处理。根据第六实施例,RA源存储装置100在进行命令执行时,测量CA命令处理时间cT和RA命令处理时间rT。图26是示出根据第六实施例的RA源命令执行处理的过程的示例的流程图。在图26所示的步骤中,步骤S501、S503至S508、S510至S513以及S515至S518的操作,分别与图21的第五实施例的步骤S431、S433至S446的操作相同。相应地,下面给出对与第五实施例的操作不同的步骤S502、S509和S514的描述。
[步骤S502]CM 130使主机命令执行计数和RA源主机命令的累积数量ic中的每个递增I。另外,CM 130将计时器复位,并且开始时间计数。
[步骤S509]当接收到的主机命令是RA命令时,CM130在从存储装置200接收到正常响应之后,使计时器停止。接下来,CM 130计算RA命令处理时间平均值。所计算的RA命令处理时间平均值是RA命令处理时间rT。
例如,CM 130在存储器中具有执行RA命令计数,并且每次执行了 RA命令时,使执行RA命令计数递增。另外,CM 130在存储器中具有RA命令总执行时间,并且每次执行了RA命令时,将由计时器测量的执行时间与执行的RA命令总执行时间相加。然后,CM 130通过将RA命令总执行时间除以执行RA命令计数,来计算RA命令处理时间平均值。CM 130使用所计算的RA命令处理时间平均值,更新RA源命令管理表55的RA命令处理时间rT。
[步骤S514]当接收到的主机命令是CA命令时,CM130在主机命令处理完成之后,使计时器停止。接下来,CM 130计算CA命令处理时间平均值。所计算的CA命令处理时间平均值是CA命令处理时间cT。
例如,CM 130在存储器中具有执行CA命令计数,并且每次执行了 CA命令时,使执行CA命令计数递增。另外,CM 130在存储器中具有CA命令总执行时间,并且每次执行了CA命令时,将由计时器测量的执行时间与执行的CA命令总执行时间相加。然后,CM 130通过将CA命令总执行时间除以执行CA命令计数,来计算CA命令处理时间平均值。CM 130使用所计算的CA命令处理时间平均值,更新RA源命令管理表55的CA命令处理时间cT。
如上所述,在存储装置100中,针对每个命令执行计算CA命令处理时间cT和RA命令处理时间rT。然后,使用路径监视命令向RA目的地存储装置200通知所计算的CA命令处理时间cT或者RA命令处理时间rT。
接下来,描述在RA源存储装置100中进行的命令执行状况通知处理。图27是示出根据第六实施例的RA源中的命令执行状况通知处理的过程的示例的流程图。接下来,根据流程图中的步骤编号,描述图27的命令执行状况通知处理。
[步骤S521]存储装置100的CM130将计时器复位,并且开始时间计数。
[步骤S522]CM130判断计时器是否计数了 10秒。如果尚未经过10秒,则CM 130使处理前进到步骤S521。如果经过了 10秒,则CM 130使处理前进到步骤S523。
[步骤S523]CM130向存储装置200通知RA源主机命令的累积数量ic、RA命令比率p、CA命令处理时间cT和RA命令处理时间rT。例如,CM 130从RA源命令管理表55,获取RA源主机命令的累积数量ic、RA命令比率P、CA命令处理时间cT和RA命令处理时间rT。接下来,CM130生成在其头中包括所获取的RA源主机命令的累积数量ic、RA命令比率p、CA命令处理时间cT和RA命令处理时间rT的控制包。然后,CM 130经由CARA端口 151向存储装置200发送所生成的控制包。
[步骤S524]CM130将RA源命令管理表55的RA命令计数、RA命令比率P、RA源主机命令的累积数量ic、CA命令处理时间cT和RA命令处理时间rT的每个值初始化为O。随后,CM 130使处理前进到步骤S521。
以这种方式,以10秒的间隔从存储装置100向存储装置200,发送包括CA命令处理时间cT和RA命令处理时间rT的信息。
接下来,描述在RA目的地存储装置200中进行的命令限值确定处理的过程。图28是示出根据第六实施例的RA目的地中的命令限值确定处理的过程的流程图。接下来,根据流程图中的步骤编号,描述图28的命令限值确定处理。
[步骤S531]CM230将计时器复位,并且开始时间计数。
[步骤S532]CM230判断计时器是否计数了 10秒。如果尚未经过10秒,则CM 230使处理前进到步骤S531。如果经过了 10秒,则CM 230使处理前进到步骤S533。
[步骤S533]CM 230计算RA目的地主机命令限值tcs和RA目的地复制命令限值trs。例如,CM 230从RA目的地命令管理表53,获取RA源主机命令的累积数量ic、RA命令比率p、RA目的地主机命令的累积数量tc、CA命令处理时间cT和RA命令处理时间rT。随后,CM 230根据上面的方程式(13)和(14),计算RA目的地主机命令限值tcs和RA目的地复制命令限值trs。此外,CM 230用算出的RA目的地主机命令限值tcs和RA目的地复制命令限值trs,更新RA目的地命令管理表56的RA目的地主机命令限值tcs和RA目的地复制命令限值trs。
[步骤S534]CM230计算RA源主机命令限值ics。例如,CM 230从RA目的地命令管理表53,获取RA目的地复制命令限值trs和RA命令比率P。随后,CM 230根据上面的方程式(15),计算RA源主机命令限值ics。
[步骤S535]CM 230将RA目的地命令管理表53的RA目的地主机命令的累积数量tc和RA目的地复制命令的累积数量tr初始化为O。
[步骤S536]CM230向RA源存储装置100通知在步骤S534中计算的RA源主机命令限值ics。随后,CM 230使处理前进到步骤S531。
以上述方式,能够考虑RA源存储装置100的CA命令处理时间cT和RA命令处理时间rT之间的差,来设置适当的命令限值。其结果是,能够防止每个需要长的处理时间的RA命令的处理保持未完成并且累积。继而,这防止存储装置100的处理效率降低。
(g)第七实施例
接下来描述第七实施例。第七实施例涉及根据命令输入状况,动态地改变命令流控制技术,从而防止对存储装置施加用于命令流控制的处理负荷。注意,第七实施例的系统配置与图2和3所示的第二实施例的系统配置相同。例如,根据第七实施例,在命令处理效率以及RA源和RA目的地之间的主机命令的平衡执行方面,不需要给予优先级的情况下,使用对存储装置施加最小处理负荷的技术,进行命令流控制。注意,从一种命令流控制技术切换为另一种命令流控制技术,需要掌握存储装置100和200处的命令执行状况。因此,假设在应用任意命令流控制技术的情况下,与在第六实施例中相同,使用路径监视命令在存储装置之间进行信息交换。
当就处理负荷方面对上述第二至第六实施例进行比较时,第二实施例对存储装置施加最低的处理负荷。然而,注意,在第二实施例中不监视命令执行状况,因此,第二实施例不能适应根据命令输入状况对命令流控制技术的改变。例如,在存储装置之间未建立RA会话的情况下,根据第三实施例的命令流控制技术的应用,简化了 RA目的地的命令执行处理,如图8所示。此外,如图7所示,该命令流控制仅需要少量信息,并且与第四至第六实施例相比,对存储装置施加较少的处理负荷。在存储装置之间建立了 RA会话的情况下,第三实施例的命令流控制技术在命令处理效率方面不足。如果建立了 RA会话,并且对RA源存储装置100施加的处理负荷低(例如RA源主机命令的累积数量ic小于或等于1024),则在不发送QFULL响应的情况下,执行输入到RA源存储装置100的主机命令。因此,通过第四实施例的命令流控制技术执行适当的命令处理。与第五和第六实施例的命令流控制技术相t匕,第四实施例的命令流控制技术对存储装置100和200施加较少的负荷。因此,如果建立了 RA会话,并且对RA源存储装置100施加的处理负荷低,则第四实施例的命令流控制技术是适当的。当对RA源存储装置100施加高处理负荷(例如RA源主机命令的累积数量ic超过1024)时,第四实施例的命令流控制技术不足以实现从各个主计算机21和22输出的主机命令的平衡执行。在这种情况下,第五或者第六实施例的命令流控制技术是适当的。例如,如果RA源存储装置100中的CA命令执行时间和RA命令执行时间几乎相同,则第五实施例的命令流控制技术是适当的。另一方面,如果CA命令执行时间和RA命令执行时间之间存在差,则第六实施例的命令流控制技术是适当的。然而,注意,判断第五实施例或者第六实施例的命令流控制技术是否适当,需要CA命令处理时间cT和RA命令处理时间rT的测量以及对测量值进行比较的处理。在这种情况下,对存储装置100和200施加的处理负荷,变得与应用第六实施例的命令流控制技术的情况下相同。相应地,在第七实施例中,当对RA源存储装置100施加的处理负荷高时,应用第六实施例的命令流控制技术。
通过例如存储装置200确定要应用的命令流控制技术。接下来,描述在存储装置200中进行的应用技术确定处理。图29是示出应用技术确定处理的过程的示例的流程图。接下来,根据流程图中的步骤编号,描述图29的应用技术确定处理。
[步骤S601]存储装置200的CM230将计时器复位,并且开始时间计数。
[步骤S602]CM230判断计时器是否计数了预定时间(例如10秒)。如果尚未经过预定时间,则CM 230使处理前进到步骤S601。如果经过了预定时间,则CM 230使处理前进到步骤S603。
[步骤S603]CM230判断是否在存储装置100和200之间建立了 RA会话。如果建立了 RA会话,则CM 230使处理前进到步骤S605。另一方面,如果未建立RA会话,则CM230使处理前进到步骤S604。
[步骤S604]CM230确定应用在第三实施例中描述的命令流控制技术。随后,CM230使处理前进到步骤S608。
[步骤S605]CM230判断RA源主机命令的累积数量ic是否小于或等于1024。如果RA源主机命令的累积数量ic小于或等于1024,则CM 230使处理前进到步骤S606。另一方面,如果RA源主机命令的累积数量ic超过了 1024,则CM 230使处理前进到步骤S607。
[步骤S606]CM230确定应用在第四实施例中描述的命令流控制技术。随后,CM230使处理前进到步骤S608。
[步骤S607]CM230确定应用在第六实施例中描述的命令流控制技术。
[步骤S608]CM230向RA源存储装置100通知要应用的命令流控制技术。
[步骤S609]CM230根据确定要应用的技术,开始命令流控制。随后,CM 230使处理前进到步骤S601。
以上述方式,能够根据命令输入状况,应用适当的命令流控制技术。这降低了对存储装置100和200施加的处理负荷,继而降低了功率消耗。
(h)其它实施例
可以由计算机来实现上面在各个实施例中描述的处理功能。在这种情况下,提供描述存储装置的CM所具有的功能的处理内容的程序。通过在计算机上执行该程序,在计算机上实现上述处理功能。可以将描述处理内容的程序记录在计算机可读记录介质中。该计算机可读记录介质包括磁存储设备、光盘、磁光介质和半导体存储器。磁存储设备的示例是硬盘驱动(HDD)、软盘(FD)和磁带。光盘的示例是数字通用盘(DVD)、数字通用盘随机存取存储器(DVD-RAM)、光盘只读存储器(CD-ROM)和可重写CD (CD-RW)。磁光介质的示例是磁光盘(MO)。注意,用于记录程序的记录媒介不包括瞬时的传播信号本身。
在分发程序的情况下,销售记录了程序的诸如DVD和⑶-ROM的便携式记录媒介。另外,可以将程序存储在服务器计算机的存储器设备中,然后经由网络从服务器计算机传送到另一计算机。
执行程序的计算机将原本记录在便携式记录介质中或者从服务器计算机传送的程序,存储在其自己的存储器设备中。随后,计算机从其自己的存储器设备中读取程序,并且根据程序进行处理。注意,计算机也能够直接从便携式记录介质中读取程序,并且根据程序进行处理。另外,计算机能够在每次从服务器计算机传送了程序时,根据接收到的程序按顺序进行处理。另外,可以由诸如数字信号处理器(DSP)、专用集成电路(ASIC)和可编程逻辑器件(PLD)的电子电路,来实现上述处理功能的至少一部分。
根据一个方面,能够防止由于根据处理类型的处理增加而引起的处理效率的降低。
权利要求
1.一种存储装置,包括: 存储器设备; 通信接口,用于接收指示对所述存储器设备的数据访问的命令; 判断部件,用于判断经由所述通信接口接收到的所述命令的类型; 计数部件,用于对经由所述通信接口接收到的命令中的、当前正在执行的命令的数量进行计数;以及 控制部件,用于进行控制,以在所述当前正在执行的命令的数量小于或等于与经由所述通信接口新接收到的命令的类型相对应的限值时,执行根据所述新接收到的命令的对所述存储器设备的数据访问,并且在所述当前正在执行的命令的数量超过所述限值时,禁止所述数据访问。
2.根据权利要求1所述的存储装置,其中, 所述判断部件判断经由所述通信接口接收到的所述命令的类型是从不同的存储装置发送的复制命令,还是其类型是所述复制命令之外的类型的非复制命令,以及 所述控制部件将与非复制命令相对应的限值设置为低于与复制命令相对应的限值。
3.根据权利要求2所述的存储装置,其中, 设置第一限值和第二限值作为所述与非复制命令相对应的限值,当在所述存储装置和所述不同的存储装置之间建立了用于数据复制的通信路径时应用所述第一限值,所述第二限值具有高于所述第一限值的值,并且当未建立所述通信路径时应用所述第二限值, 当建立了所述通信路径时,在所述当前正在执行的命令的数量小于或等于所述第一限值时,所述控制部件执行根据经由所述通信接口接收到的非复制命令的对所述存储器设备的数据访问,并且在所述当前正在执行的命令的数量超过所述第一限值时,禁止根据非复制命令的数据访问,以及 当未建立所述通信路径时,在所述当前正在执行的命令的数量小于或等于所述第二限值时,所述控制部件执行根据经由所述通信接口接收到的非复制命令的对所述存储器设备的数据访问,并且在所述当前正在执行的命令的数量超过所述第二限值时,禁止根据非复制命令的数据访问。
4.根据权利要求1所述的存储装置,其中, 所述计数部件还针对每种类型的命令对在预定时间段内接收到的命令的数量进行计数,以及 所述控制部件根据在所述预定时间段内接收到的所述命令的命令类型特定比率,确定与每种类型的命令相对应的限值。
5.根据权利要求1所述的存储装置,其中, 所述判断部件判断经由所述通信接口接收到的所述命令的类型是从不同的存储装置发送的复制命令,还是其类型是所述复制命令之外的类型的非复制命令, 所述计数部件还对在预定时间段内接收到的非复制命令的数量进行计数,以及 所述控制部件 从所述不同的存储装置获取指示在所述预定时间段内接收到的触发命令的数量的信息,所述触发命令中的每个是来自所述不同的存储装置的复制命令的输出的触发,并且根据由所述不同的存储装置接收到的触发命令的数量与非复制命令的数量的比率,来确定分别与复制命令和非复制命令相对应的限值。
6.根据权利要求1所述的存储装置,其中, 所述判断部件判断经由所述通信接口接收到的所述命令的类型是从不同的存储装置发送的复制命令,还是其类型是所述复制命令之外的类型的非复制命令, 所述计数部件还对在预定时间段内接收到的非复制命令的数量进行计数,以及 所述控制部件 从所述不同的存储装置获取触发命令信息、第一时间信息和第二时间信息,所述触发命令信息指示在预定时间段接收到的触发命令的数量,所述触发命令中的每个是来自所述不同的存储装置的复制命令的输出的触发,所述第一时间信息指示所述不同的存储装置执行所述触发命令中的每个所需的时间,以及所述第二时间信息指示所述不同的存储装置执行所述触发命令之外的命令中的每个所需的时间,并且 根据相乘结果与 非复制命令的数量的比率,确定分别与复制命令和非复制命令相对应的限值,所述相乘结果通过将由所述不同的存储装置接收到的所述触发命令的数量乘以校正值而获得,所述校正值通过将在所述第二时间信息中指示的时间除以在所述第一时间信息中指示的时间而获得。
7.根据权利要求5和6中的任一项所述的存储装置,其中,所述触发命令中的每个是指示将数据写入设置在所述不同的存储装置内部并且与所述存储器设备一起冗余地存储数据的卷的命令。
8.根据权利要求5所述的存储装置,其中,所述控制部件指示所述不同的存储装置将由所述不同的存储装置执行的命令的数量限制到根据所确定的与复制命令相对应的限值的值。
9.一种由存储装置执行的命令执行控制方法,包括: 判断经由通信接口接收到的命令的类型,并且指示对存储器设备的数据访问; 对经由所述通信接口接收到的命令中的、当前正在执行的命令的数量进行计数; 在所述当前正在执行的命令的数量小于或等于与经由所述通信接口新接收到的命令的类型相对应的限值时,执行根据所述新接收到的命令的对所述存储器设备的数据访问;以及 在所述当前正在执行的命令的数量超过所述限值时,禁止所述数据访问。
全文摘要
本公开涉及一种存储装置和命令执行控制方法。在所述存储装置中,判断单元判断经由通信接口接收到的命令的类型。计数单元对经由通信接口接收到的命令中的、当前正在执行的命令的数量进行计数。在当前正在执行的命令的数量小于或等于与经由通信接口接收到的命令的类型相对应的限值时,控制单元根据接收到的命令对存储器设备进行数据访问。另外,在当前正在执行的命令的数量超过与接收到的命令的类型相对应的限值时,控制单元禁止根据接收到的命令的数据访问。
文档编号G06F3/06GK103164171SQ20121052659
公开日2013年6月19日 申请日期2012年12月7日 优先权日2011年12月19日
发明者水卷正严 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1