用于在双向同步镜像环境中进行本地锁定的方法和计算机系统的制作方法_2

文档序号:8395677阅读:来源:国知局
放了主机和存储子系统来执行其它的任务。主机或存储子系统甚至可以继续进行以在背景处理期间或者在另一时间创建原始数据对象的实际的物理拷贝。
[0028]高速缓存116和高速缓存140可以包括单独的存储器设备或相同存储器设备的不同部分。高数缓存116和高速缓存140可以被用来对主机114、存储A 112和存储B 154之间传送的读和写数据进行缓冲。另外,高速缓存118和140可以被称作源和目标高速缓存以用于以拷贝关系来保存源或目标数据块,并且高速缓存118和140可以同时以不同拷贝关系来存储源和目标数据块。
[0029]在某些实施例中,(替代诸如存储B 154的远程存储或者除其之外)可以使用可移除存储来维护存储A 112的全部或其子集的备份拷贝,并且本发明的技术将数据传输至可移动存储而不是远程存储。该可移动存储可以驻留于控制单元100。
[0030]在某些实施例中,控制单元100可以包括本领域所知的任意控制单元。在某些实施例中,存储A 112和存储B 154耦合至能够互相通信的不同控制单元。
[0031]在某些实施例中,主机计算机114和控制单元100可以包括本领域已知的任意计算设备,诸如大型机、服务器、个人计算机、工作站、膝上计算机、手持计算机、电话设备、网络器件、虚拟化设备、存储控制器等。
[0032]在某些实施例中,数据被维护在卷对中。卷对包括第一存储设备(例如,存储A112)中的第一卷和第二存储设备(例如,存储B154)中的相对应的卷,该第二存储设备包括第一卷中所保存数据的一致的拷贝。例如,存储A 112处的卷112a可以对应于存储B 154处的卷154a。
[0033]对于存储112、154而言,m和η的值可以相同或不同。存储112、154均可以包括存储设备的阵列,诸如直接访问存储设备(DASD)、简单磁盘捆绑(JBOD)、独立磁盘冗余阵列(RAID)、虚拟化设备等。
[0034]为了便于参考,术语轨道和扇区在这里可以被用作数据块和数据子块的示例,但是使用这些术语并非意味着将本发明的技术局限于轨道和扇区。本发明的技术可应用于任意类型的存储、以任意方式所划分的存储块或数据块。
[0035]为了便于参考,源存储中的数据块可以被称作“源数据块”,而目标存储中的数据块可以被称作“目标数据块”。
[0036]当哪个存储要作为源而哪个存储要作为目标的指示发生对调时,为了便于参考,“原有源”可以被称作“新目标”,“原有目标”则可以被称作“新源”,“原有源数据块”可以被称作“新目标数据块”,而“原有目标数据块”可以被称作“新源数据块”。
[0037]在其中允许针对存储A 112和存储B 154 二者的变化的同步镜像环境中,应用程序115和存储系统需要了解要在存储A 112和存储B154 二者的卷上完成什么写入而使得相对应的卷同步。如果存在冲突,则应用程序115被通知以写处理104和复制处理106的组合而使得应用程序115能够如应用程序115所期望的那样重新驱动写入。在某些实施例中,写处理104与主机计算机114处的应用程序115进行交互,同时处理106则意识到该冲关。
[0038]图3图示了依据某些实施例的其中存储A 112和存储B 154同时进行更新的示例。在某些实施例中,两个应用程序115是相同的应用程序。在某些实施例中,两个应用程序115是不同的应用程序。利用实施例,每个应用程序115被通知以冲突,从而使得应用程序115能够应对处理,因为该应用程序被认为针对冲突而言是必需的。利用实施例,这在并不对卷上的锁进行协商的情况下完成(因此这将会导致大幅性能惩罚)。
[0039]图4A、4B和4C以流程图图示了依据某些实施例的用于检测冲突并且向应用程序通知冲突的操作。图4A、4B和4C参考第一卷和第二卷。当存储A 112的卷是第一卷时,则第二卷是指存储B 154的相对应的第二卷。当存储B 154的卷是第一卷时,则第二卷是指存储A 112的相对应的第二卷。在某些实施例中,第一卷是“本地”卷,而第二卷是“远程”卷。
[0040]此外,框404-408描述了在第一卷上写入数据块。框410-432描述了将该数据块传输至第二卷。特别地,框414-418描述了在第一卷上进行清空。
[0041]控制在框400开始,其中写处理104接收到针对第一卷上的数据块X(例如,轨道)的写操作。在框402,写处理104获得第一卷上的数据块X上的锁,以获得对第一卷上的该数据块X的独占访问。在框404,写处理104将针对数据块X的更新数据写入到第一卷的高速缓存。在框406,写处理104设置(例如,设置为真)活跃写指示符以指示在第一卷上存在活跃的写入。在框408,写处理104释放该锁,以去除对第一卷上的数据块X的独占访问。从框408 (图4A),处理继续进行至框410 (图4B)。
[0042]在框410,写处理104确定活跃写指示符是否被设置为指示第二卷上存在活跃的写入。如果是,则处理进行至框412 (图4C),否则处理继续进行至框422。
[0043]在框412,写处理104使得针对第一卷的写操作失效。在框414,写处理104获得第一卷上的数据块X上的锁,以获得对第一卷上的该数据块X的独占访问。在框416,写处理104重置(例如,设置为假)活跃写指示符以指示在第一卷上没有活跃的写入。在框418,写处理104释放该锁,以去除针对第一卷上的数据块X的独占访问。在这种情况下,在改变活跃写指示符的状态时需要锁。在框420,写处理104向主机114返回代码。可以在第二卷上的写入成果或者已经失败的情况下到达框420,并且该代码可以指示成功或失败。如果代码指示第二卷上的写入失败,则可以提供失败的原因,并且主机114可以基于该原因重新驱动该命令。
[0044]在框422,写处理104获得第二卷上的数据块X上的锁,以获得对第二卷上的数据块X的独占访问。在框424,写处理104确定活跃写指示符是否被设置为指示在第二卷上存在活跃的写入。如果是,则处理进行至框426 (图4C),否则处理继续进行至框428 (图4B)。
[0045]在框426,写处理104释放该锁,以去除针对第二卷上的数据块X的独占访问。从框426 (图4B),处理继续进行至框412 (图4C)。
[0046]在框428,写处理104将针对数据块X的更新数据写入到第二卷的高速缓存。在框430,写处理104释放该锁,以去除针对第二卷上的数据块X的独占访问。在框432,写处理104向第一卷发送传输完成消息。从框432,处理继续进行至框414。
[0047]在某些实施例中,锁定在接收到写入的本地卷上发生,但是写入直至在远程卷上尝试进行相对应的写入时才失败。在某些实施例中,对第一卷和第二卷二者的写入有可能失败,因为活跃写指示符可能在每个存储系统尝试进行该远程写入时被设置。在某些实施例中,这使得向第一卷进行写入的应用程序和向第二卷进行写入的应用程序能够理解他们正在同时尝试对相同区域进行写入。
[0048]利用实施例,实时监测到重叠数据的写入并且利用对第二存储上的写入进行排队或者拒绝该写入而对其进行处理,上述拒绝被发送回第一存储以便进行重试。
[0049]因此,针对具有可能出现写冲突的同步镜像的存储,实施例通过拒绝一个或两个写入而解决了任意的冲突。
[0050]另外的实施例细节
[0051]所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1