买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】用于锁定存储系统中的存储区域的方法和系统_伊姆西IP控股有限责任公司_201610459979.8 

申请/专利权人:伊姆西IP控股有限责任公司

申请日:2016-06-22

公开(公告)日:2020-03-20

公开(公告)号:CN107526537B

主分类号:G06F3/06(20060101)

分类号:G06F3/06(20060101)

优先权:

专利状态码:有效-授权

法律状态:2020.03.20#授权;2018.01.26#实质审查的生效;2017.12.29#公开

摘要:本发明的实施方式提供了用于锁定存储系统中的存储区域的方法和系统。提供了一种用于锁定存储系统中的存储区域的方法,该存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,该方法包括:响应于在第一控制器处接收到针对存储区域的数据访问请求,向第一通信区写入与存储区域相关联的第一锁定标记,第一通信区对于第一控制器可读写并且对于第二控制器可读;以及从第二通信区读取与存储区域相关联的第二锁定标记,第二通信区对于第一控制器可读并且对于第二控制器可读写;以及响应于第二锁定标记指示存储区域未被第二控制器锁定,由第一控制器锁定存储区域。在本发明的一个实施方式中,还提供了相应的系统和装置。

主权项:1.一种用于锁定存储系统中的存储区域的方法,所述存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,所述方法包括:响应于在第一控制器处接收到针对所述存储区域的数据访问请求,向所述第一通信区写入与所述存储区域相关联的第一锁定标记,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读;以及从所述第二通信区读取与所述存储区域相关联的第二锁定标记,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写;响应于所述第二锁定标记指示所述存储区域未被所述第二控制器锁定,由所述第一控制器锁定所述存储区域;响应于所述第二锁定标记指示所述存储区域已被所述第二控制器锁定,从所述第一通信区中读取与所述第一锁定标记相关联的第一优先级,以及从所述第二通信区中读取与所述第二锁定标记相关联的第二优先级;以及基于比较所述第一优先级和所述第二优先级来锁定所述存储区域。

全文数据:用于锁定存储系统中的存储区域的方法和系统技术领域[0001]本发明的各实施方式涉及存储管理,更具体地,涉及在存储系统(例如,独立磁盘冗余阵列(RedundantArrayofIndependentDisks,RAID中锁定存储区域方法和系统。背景技术[0002]随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。在提高数据存储能力的同时,用户对于数据可靠性和存储系统的响应时间也提出了越来越高的需求。目前,已经开发出了基于冗余磁盘阵列的多种数据存储系统来提高数据的可靠性。当存储系统中的一个或者多个磁盘出现故障时,可以从其他正常操作的磁盘上的数据来恢复出故障磁盘中的数据。[0003]存储系统可以经由存储控制节点来被访问。在典型的激活-激活Active-Active,也称为双激活类型的存储系统中,两个存储控制控制节点一起工作以便处理针对存储系统执行数据访问操作,进而提供更高的可用性和更好的性能。每个存储控制节点具有自身的存储器例如,高速缓存),并且两个存储控制器中的存储器以镜像方式操作。两个存储控制节点可以并行地接收来自外界的数据访问指令,因而可能产生两个存储控制节点同时对相同的存储区域进行操作的问题。此时,如何提供安全可靠的锁定机制来避免两个存储控制节点的操作的冲突,成为一个研究热点。发明内容[0004]因而,期望能够开发并实现用于在存储系统中锁定存储区域的技术方案。期望该技术方案能够与现有的存储系统相兼容,并且在无需针对现有存储系统增加额外硬件设备的情况下以更为安全可靠的方式管理存储系统。[0005]在本发明的一个实施方式中,提供了一种用于锁定存储系统中的存储区域的方法,所述存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,所述方法包括:响应于在第一控制器处接收到针对所述存储区域的数据访问请求,向所述第一通信区写入与所述存储区域相关联的第一锁定标记,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读;以及从所述第二通信区读取与所述存储区域相关联的第二锁定标记,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写;以及响应于所述第二锁定标记指示所述存储区域未被所述第二控制器锁定,由所述第一控制器锁定所述存储区域。[0006]在本发明的一个实施方式中,提供了一种用于锁定存储系统中的存储区域的系统,包括:一个或者多个处理器;耦合至一个或者多个处理器中的至少一个处理器的存储器;在存储器中存储的计算机程序指令,当由至少一个处理器执行计算机程序指令时,使得系统执行一种用于锁定存储系统中的存储区域的方法,该方法包括:在包括第一控制器、第二控制器、第一通信区以及第二通信区的存储系统中,响应于在第一控制器处接收到针对存储区域的数据访问请求,向第一通信区写入与存储区域相关联的第一锁定标记,第一通信区对于第一控制器可读写并且对于第二控制器可读;以及从第二通信区读取与存储区域相关联的第二锁定标记,第二通信区对于第一控制器可读并且对于第二控制器可读写;以及响应于第二锁定标记指示存储区域未被第二控制器锁定,由第一控制器锁定存储区域。[0007]采用本发明的技术方案,可以以更为安全的方式在存储系统中提供锁定机制,进而提高更加稳定和可靠的存储系统。附图说明[0008]结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:[0009]图1示意性示出了适于实现本发明实施方式的示例性计算系统的框图;[0010]图2A示意性示出了根据一个技术方案的独立磁盘冗余阵列的结构的示意图,图2B示意性示出了根据一个技术方案的独立磁盘冗余阵列的重建过程的示意图;[0011]图3示意性示出了根据一个技术方案的用于在存储系统中实现锁定的方法的示意图;[0012]图4示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的技术方案的架构图;[0013]图5示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的方法的流程图;[0014]图6示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的技术方案的架构图;[0015]图7示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的方法的流程图;[0016]图8示意性示出了根据本发明一个实施方式的锁定元数据与第一通信区之间的关系的不意图;[0017]图9示意性示出了根据本发明一个实施方式的跨越多个存储设备部署的第一通信区的示意图;以及[0018]图10示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的装置的框图。具体实施方式[0019]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。[0020]图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU中央处理单元)101、RAM随机存取存储器)102、R0M只读存储器103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和触摸屏显示器114。在这些设备中,与系统总线104耦合的有CPU101、RAM102、R0M103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及触摸屏显示器114与显示控制器109耦合。应当理解,图1所示的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。[0021]所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模±夬”或“系统”。此外,在一些实施方式中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。[0022]可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一一但不限于一一电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子非穷举的列表包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器RAM、只读存储器R0M、可擦式可编程只读存储器EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。[0023]计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一一但不限于一一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。[0024]计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一一但不限于一一无线、电线、光缆、RF等等,或者上述的任意合适的组合。[0025]可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言一诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言一诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一一包括局域网(LAN或广域网WAN—连接到用户计算机,或者,可以连接到外部计算机例如利用因特网服务提供者来通过因特网连接)。[0026]下面将参照本发明实施方式的方法、装置系统)和计算机程序产品的流程图和或框图描述本发明。应当理解,流程图和或框图的每个方框以及流程图和或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和或框图中的方框中规定的功能操作的装置。[0027]也可以把这些计算机程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和或框图中的方框中规定的功能操作的指令装置(instructionmeans的制造品(manufacture〇[0028]也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图和或框图中的方框中规定的功能操作的过程。[0029]独立磁盘冗余阵列(RedundantArrayofIndependentDisks,RAID可以将多个存储设备组合起来,成为一个磁盘阵列。通过提供冗余的存储设备,可以使得整个磁盘组的可靠性大大超过单一的存储设备。RAID可以提供优于单一的存储设备的各种优势,例如,增强数据整合度,增强容错功能,增加吞吐量或容量,等等。RAID存在多个标准,例如RAID-I,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,RAID-10,RAID-50等等。关于RAID级别的更多细节,本领域技术人员例如可以参见https:en.wikipedia.orgwikiStandard_RAID_levels、以及https:en.wikipedia·orgwikiNested_RAID_levels等。操作系统可以把由多个存储设备构成的磁盘阵列视为单一的逻辑存储单元或磁盘。通过将磁盘阵列划分为多个条带strip,可以将数据分布到多个存储设备,从而实现低延迟、高带宽,并且其中的部分磁盘毁坏后可以在一定程度上恢复数据。[0030]图2A示意性示出了根据一个技术方案的独立磁盘冗余阵列的结构的示意图220A。在图2A中,以包括五个独立存储设备21^、2124、2144、2164以及218六的1^10-5阵列为示例,来说明RAID的工作原理。应当注意,尽管图2A中示意性示出了五个存储设备,在其他的实施方式中,根据RAID的版本不同,还可以包括更多或者更少的存储设备。尽管图2A中示出了条带220A、222A和224A,在其他的示例中,RAID系统还可以包括不同数量的条带。[0031]在RAID中,条带跨越多个物理存储设备(例如,条带220A跨越了存储设备210A、212A、214A、216A以及218A。可以简单地将条带理解为多个存储设备中的满足一定地址范围的存储区域。在条带220中存储的数据包括多个部分:存储在存储设备210A上的数据块Dl1、存储在存储设备212A上的数据块Dl2、存储在存储设备214A上的数据块Dl3、存储在存储设备216A上的数据块DU、以及存储在存储设备218A上的数据块P1。在此示例中,数据块DIi、D12、D13、以及Dl4是被存储的数据,而数据块Pl是被存储数据的校验值。[0032]在其他条带中存储数据的方式也类似于条带220A,不同之处在于,有关其他数据块的校验值可以存储在不同于存储设备218A的存储设备上。以此方式,当多个存储设备21^、2124、2144、2164以及218六中的一个存储设备出现故障时,可以从其他的正常的存储设备中恢复出故障设备中的数据。[0033]图2B示意性示出了根据一个技术方案的独立磁盘冗余阵列的重建过程的示意图220B。如图2B所示,当一个存储设备(例如,以阴影示出的存储设备218A出现故障时,可以从其余的正常操作的多个存储设备21^、2124、2144、216六中恢复数据。此时,可以向1^10中加入新的后备存储设备218B来替代存储设备218A,以此方式,可以将恢复的数据写入218B并实现系统的重建。[0034]图3示意性示出了根据一个技术方案的用于在存储系统中实现锁定的方法的示意图。如图3所示,存储系统300可以通过一个或者多个存储控制节点来向外界提供数据访问服务。在此示例中,存储系统300可以包括存储控制节点310和320。在存储系统300的操作期间,两个存储控制节点310和320可以并行地向外界提供服务。如果其中一个节点出现故障,则另一个节点可以继续工作。[0035]存储控制节点310可以包括控制器312和存储器314例如,高速缓存)。当存储控制节点310接收到来自外界主机的访问请求例如,读写请求时,控制器312处理该请求。类似地,另一存储控制节点320包括控制器322和相对应的存储器324,并且以类似于存储控制器310的方式操作。两个存储控制器310、320可以并行地操作,用来处理不同的访问请求。[0036]在存储系统中设置了内部通信通道330,用于在两个存储控制节点310和320之间传输消息(例如,锁定消息)。具体而言,当一个控制器312接收到针对相同存储区域的访问时,需要通过通信通道330来向另一控制器322传递锁定消息,以告知被访问的存储区域已经被控制器312锁定,并且在锁定期间禁止控制器322来访问被锁定的存储区域。然而,一旦内部通信通道330出现故障,则两个存储控制节点310和320之间不能彼此传递锁定消息,进而导致存储系统300中的数据冲突。[0037]目前已经开发出通过设置专用的可靠通信通道或者通过额外设置第三方实体来提供更为可靠的锁定机制的技术方案,然而这这些技术方案需要额外的硬件和或软件配置,因而不利于在已有的存储系统中推广。[0038]针对现有技术中的上述不足,本发明的各个实施方式提供了用于锁定存储系统中的存储区域的技术方案。具体地,提供了一种在存储系统中用于锁定存储区域的方法,所述存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,所述方法包括:响应于在第一控制器处接收到针对所述存储区域的数据访问请求,向所述第一通信区写入与所述存储区域相关联的第一锁定标记,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读;以及从所述第二通信区读取与所述存储区域相关联的第二锁定标记,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写;以及响应于所述第二锁定标记指示所述存储区域未被所述第二控制器锁定,由所述第一控制器锁定所述存储区域。[0039]图4示意性示出了根据本发明一个实施方式的用于锁定存储系统400中的存储区域的技术方案的架构图。如图4所示,存储系统包括两个控制器,S卩,控制器312和控制器322。并且在存储系统中设置了两个通信区:第一通信区410和第二通信区420。这两个通信区对于两个控制器312和322可访问,区别在于访问权限不同。以实线示出了可读并且可写的访问权限,例如,控制器312对于第一通信区410可读写,控制器322对于第二通信区420可读写。虚线示出了可读的访问权限,例如,控制器312对于第二通信区420可读,控制器322对于第一通信区410可读。[0040]如图4所示,通过在存储系统中设置对于两个控制器具有不同访问权限的第一通信区和第二通信区,通过两个通信区来传递消息,进而避免在两个控制器之间建立额外的通信通道来传递锁定消息的需要。响应于控制器312接收到针对一个存储区域进行访问的访问请求,可以向第一通信区410中写入锁定标记412,以指示该控制器312期望锁定与数据访问请求相关联的存储区域。在另一控制器322处,响应于接收到针对该存储区域进行访问的访问请求时,可以向第二通信区410中写入锁定标记412,以指示自己期望锁定与数据访问请求相关联的存储区域。[0041]此时,控制器312可以通过读取第二通信区420中的锁定标记422,来确定期望访问的存储区域是否已经被控制器322锁定。如果锁定标记422指示该存储区域未被控制器322锁定,则控制器312可以锁定该存储区域,并且执行相应的数据访问操作。[0042]在下文中将参见图5详细描述本发明的方法的具体步骤。图5示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的方法的流程图500。首先,在步骤S510中,响应于在第一控制器处接收到针对所述存储区域的数据访问请求,向所述第一通信区写入与所述存储区域相关联的第一锁定标记,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读。在此实施方式中,通过在存储系统中分配对于第一和第二两个控制器均可访问的共享通信区,来作为消息传递的中介,进而避免了在两个控制器之间设立额外的通信通道来传输锁定消息的开销。[0043]在步骤S520中,从所述第二通信区读取与所述存储区域相关联的第二锁定标记,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写。在此实施方式中,两个控制器都可以向与自身相关联的通信区中写入锁定标记,以指示自己期望锁定该存储区域。同时,两个控制器可以分别从由另一控制器可读写的通信区中读取描述另一控制器对于存储区域的锁定状态的锁定标记。以此方式,可以确定在两个控制器之间是否出现了需要同时锁定和访问同一存储区域的“冲突”,进而可以确定哪个控制器获得访问权限。[0044]在步骤S530中,响应于所述第二锁定标记指示所述存储区域未被所述第二控制器锁定,由所述第一控制器锁定所述存储区域。在此步骤中,第一控制器锁定存储区域是通过第一通信区中的第一锁定标记来指示的。例如,第一锁定标记被设置为“锁定”。[0045]在此示例中,通过向第一、第二通信区中写入锁定标记,期望锁定存储区域的控制器可以通过读取对方控制器所写入的锁定标记来确定期望访问的存储区域是否已经被对方锁定。以此方式,不必在第一控制器和第二控制器之间建立专用的通信通道,而是可以基于在存储系统中现有的通信通道例如,控制器与存储设备如盘设备之间的数据传输通道)来完成锁定消息的传送。[0046]在本发明的一个实施方式中,为了避免存储区域长期被一个控制器锁定导致另一控制器不能访问的情况,在还可以针对存储系统中的存储区域设置优先级,并且规定具有较高优先级的控制器具有优先的访问权限。[0047]图6示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的技术方案的架构图600。图6所示的架构类似于图4的内容,不同之处在于图6进一步包括优先级。具体地,在第一通信区410中包括优先级612,以指示控制器412对于存储区域的访问优先级;以及在第二通信区420中包括优先级622以指示控制器412对于存储区域的访问优先级。[0048]在本发明的一个实施方式中,响应于所述第二锁定标记指示所述存储区域已被所述第二控制器锁定,从所述第一通信区中读取与所述第一锁定标记相关联的第一优先级,以及从所述第二通信区中读取与所述第二锁定标记相关联的第二优先级;以及基于比较所述第一优先级和所述第二优先级来锁定所述存储区域。[0049]在本发明的一个实施方式中,基于比较所述第一优先级和所述第二优先级来锁定所述存储区域包括:响应于所述第一优先级低于所述第二优先级,由所述第一控制器对所述存储区域解锁;以及将所述第一锁定标记更新为“未锁定”。[0050]继续上文的示例,可以在初始时或者响应于其他的条件而触发,来设置优先级的具体数值。例如,在存储系统启动时,可以将第一优先级设置为1000,而将第二优先级设置为1001。在此情况下,由于第一控制器具有较低的优先级(10001000,因而此时第一控制器可以访问期望访问的存储区域。换言之,第二控制器抢锁失败,并且需要将所述第二锁定标记更新为“未锁定”。[0052]图7示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的方法的流程图700。在步骤S710中,比较第一优先级与第二优先级的大小。响应于第一优先级小于第二优先级,操作流程前进至步骤S720,并且在此步骤中,由第一控制器对存储区域解锁并将第一锁定标记更新为“未锁定”。继而,在步骤S722中,由于第二控制器具有优先访问权限,因而可以由第二控制器对存储区域进行访问。[0053]此外,响应于第一优先级大于第二优先级,操作流程前进至步骤S730,并且在此步骤中,由第二控制器对存储区域解锁并将第二锁定标记更新为“未锁定”。继而,在步骤S722中,由于第一控制器具有优先访问权限,因而可以由第一控制器对存储区域进行访问。在本发明的上下文中,对于特定存储区域而言,具有较高优先级的控制器可以优先地访问该特定存储区域:并且具有较低优先级的控制器需要等待具有较高优先级的控制器对存储区域解锁后,才能访问该存储区域。[0054]在本发明的一个实施方式中,向所述第一通信区写入第一锁定标记包括:基于所述存储系统中包括的锁定元数据确定与所述存储区域相关联的锁定标记的地址;以及向所述地址处写入所述第一锁定标记以指示所述存储区域已被所述第一控制器锁定。[0055]在此实施方式中,在存储系统中可以设置锁定元数据,以用于描述将与存储区域相关联的锁定标记存储在什么位置。本领域技术人员例如可以采用查找表的方式来实现。可以在第一通信区中分配专用的存储空间,来用于存储与特定存储区域相关联的第一、第二锁定标记和第一、第二优先级。图8示意性示出了根据本发明一个实施方式的锁定元数据与第一通信区之间的关系的示意图800。[0056]如图8所示,可以基于存储区域的ID来在锁定元数据810中查找相对应的地址。该地址指向第一通信区410中的存储锁定标记的空间(例如锁定标记412所在的地址)。具体地,可以采用如下文表1所示的数据结构来表示锁定元数据。[0057]表1锁定元数据的数据结构[0058][0059][0060]如上文表1所示,在接收到针对存储区域1的访问时,可以经由表1来向第一通信区中的地址“Address-flag-Ι”处写入第一锁定标记,并且从地址“Address-flag-2”中读取第二锁定标记。本领域技术人员应当理解,在上文的表1中仅仅示意性示出了用于保存锁定元数据的一个具体数据结构的示例。[0061]在其他实施方式中,本领域技术人员可以根据具体应用环境的需求来定义以何种方式存储锁定元数据,只要该方式能够定义存储区域的ID和具体地址映射关系即可。例如,可以采用哈希算法的方式来实现。哈希表Hashtable,也叫散列表是根据关键码值Keyvalue而直接进行访问的数据结构,该算法通过把关键码值映射到表中一个位置来访问,以加快查找的速度。本领域技术人员可以基于哈希算法的一般原理来在本发明的上下文中实现描述存储区域ID和地址之间的关系的哈希算法。在此不再赘述。另外,尽管表1中仅示出了两个地址字段,在其他的实施方式中,还可以在表1中包括指向第一优先级和第二优先级的地址的字段。[0062]在本发明的一个实施方式中,进一步包括:响应于所述第一控制器针对所述存储区域的数据访问请求已经被完成,将所述第一优先级更新为低于所述第二优先级。在本发明的一个实施方式中,进一步包括:响应于所述第二控制器针对所述存储区域的数据访问请求已经被完成,将所述第二优先级更新为低于所述第一优先级。[0063]在此更新具有较高优先级的控制器的优先级的目的在于,防止具有较高优先级的控制器长期锁定存储区域。因而,当一个控制器成功锁定并且访问存储区域之后,可以降低优先级的数值并使得对方控制器具有较高的优先级。以此方式,针对存储区域的后续访问中,该对方控制器则具有较高的优先级并且具有优先访问权限。继而,当对方控制器在成功访问存储区域之后,也会将优先级降低。在此实施方式中,通过交替地更新优先级,两个控制器可以交替地获得对于存储区域的访问权限。[0064]继续上文示例,假设第一优先级为1001并且第二优先级为1000。当第一控制器成功执行了锁定、数据存取并且释放了锁定之后,可以将第一优先级从1001降低至999。以此方式,在之后的访问中,第二控制器则具有较高优先级并且将优先地获得访问权限。[0065]在其他实施方式中,还可以设置其他的优先级更新策略,例如,假设第一控制器被配置用于处理多个紧急的优先访问请求,则此时可以在第一控制器已经处理该多个优先访问请求之后,再将第一优先级更新为低于第二优先级。[0066]在本发明的一个实施方式中,所述存储系统包括多个存储设备,以及所述第一通信区域跨越所述多个存储设备而部署。在本发明的一个实施方式中,所述存储系统包括多个存储设备,以及所述第二通信区域跨越所述多个存储设备而部署。在此实施方式中,存储系统可以包括多个存储设备,并且该多个存储设备可以是普通的盘设备并且以阵列的方式提供更大的存储空间。具体地,第一通信区可以跨越多个存储设备来提供更大的通信区以便容纳针对更多存储区域的锁定标记和优先级数据。[0067]在本发明的一个实施方式中,所述存储系统是独立磁盘冗余阵列,以及所述方法进一步包括:响应于所述多个存储设备中的一个存储设备出现故障,从所述多个存储设备中的其他存储设备恢复所述第一通信区中的数据。[0068]具体地,图9示意性示出了根据本发明一个实施方式的跨越多个存储设备部署的第一通信区的示意图900。如图9所示,第一通信区410跨越RAID阵列而部署。由于存储设备21^、2124、2144、2164以及218六中包括冗余的存储设备,因而当存储系统中的一个存储设备出现故障时,可以通过其他存储设备中的数据来恢复第一通信区410中的有关各个存储区域的锁定标记和优先级数据。以此方式,当一个存储设备例如218A出现故障时,还可以从其他四个存储设备中恢复出第一通信区410中的数据例如参见图2B所示的恢复过程)。在此实施方式中,可以以更加安全可靠的方式来在两个控制器之间传递锁定信息。[0069]应当注意,尽管在上文中参见图9仅示意性示出了第一通信区410跨越RAID阵列中的多个存储设备存储,并且可以从正常运行的存储设备中恢复第一通信区410中的数据的情况。在其他实施方式中,第二通信区也可以以类似于第一通信区类似的方式部署。[0070]在本发明的一个实施方式中,所述存储区域是所述存储系统中的一个或者多个条带。应当注意,在本发明中并不限定与数据访问操作相关联的存储区域的大小。而是,在不同的实施方式中,存储区域的大小可以是相同的或者不同的。本领域技术人员可以根据具体应用环境的需要,来设置不同粒度的锁定机制。[0071]图10示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的装置的框图1000。具体地,提供了一种用于锁定存储系统中的存储区域的装置,存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,该装置包括:写入模块1010,配置用于响应于在第一控制器处接收到针对存储区域的数据访问请求,向第一通信区写入与存储区域相关联的第一锁定标记,第一通信区对于第一控制器可读写并且对于第二控制器可读;以及读取模块1020,配置用于从第二通信区读取与存储区域相关联的第二锁定标记,第二通信区对于第一控制器可读并且对于第二控制器可读写;以及锁定模块1030,配置用于响应于第二锁定标记指示存储区域未被第二控制器锁定,由第一控制器锁定存储区域。[0072]在本发明的一个实施方式中,进一步包括:优先级模块,配置用于响应于第二锁定标记指示存储区域已被第二控制器锁定,从第一通信区中读取与第一锁定标记相关联的第一优先级,以及从第二通信区中读取与第二锁定标记相关联的第二优先级;以及基于比较第一优先级和第二优先级来锁定存储区域。[0073]在本发明的一个实施方式中,优先级模块进一步配置用于:响应于第一优先级低于第二优先级,由第一控制器对存储区域解锁;以及将第一锁定标记更新为“未锁定”。[0074]在本发明的一个实施方式中,优先级模块进一步配置用于:响应于第一优先级高于第二优先级,由第二控制器对存储区域解锁;以及将第二锁定标记更新为“未锁定”。[00M]在本发明的一个实施方式中,锁定模块1030进一步配置用于使得由第一控制器锁定存储区域。[0076]在本发明的一个实施方式中,写入模块1010进一步配置用于:基于存储系统中包括的锁定元数据确定与存储区域相关联的锁定标记的地址;以及向地址处写入第一锁定标记以指示存储区域已被第一控制器锁定。[0077]在本发明的一个实施方式中,进一步包括:更新模块,配置用于响应于第一控制器针对存储区域的数据访问请求已经被完成,将第一优先级更新为低于第二优先级。[0078]在本发明的一个实施方式中,存储系统包括多个存储设备,以及第一通信区域跨越多个存储设备而部署。[0079]在本发明的一个实施方式中,存储系统是独立磁盘冗余阵列,以及该装置进一步包括:恢复模块,配置用于响应于多个存储设备中的一个存储设备出现故障,从多个存储设备中的其他存储设备恢复第一通信区中的数据。[0080]在本发明的一个实施方式中,存储区域是存储系统中的一个或者多个条带。[0081]在本发明的一个实施方式中,提供了一种用于锁定存储系统中的存储区域的系统,包括:一个或者多个处理器;耦合至一个或者多个处理器中的至少一个处理器的存储器;在存储器中存储的计算机程序指令,当由至少一个处理器执行计算机程序指令时,使得系统执行一种用于锁定存储系统中的存储区域的方法,方法包括:在包括第一控制器、第二控制器、第一通信区以及第二通信区的存储系统中,响应于在第一控制器处接收到针对存储区域的数据访问请求,向第一通信区写入与存储区域相关联的第一锁定标记,第一通信区对于第一控制器可读写并且对于第二控制器可读;以及从第二通信区读取与存储区域相关联的第二锁定标记,第二通信区对于第一控制器可读并且对于第二控制器可读写;以及响应于第二锁定标记指示存储区域未被第二控制器锁定,由第一控制器锁定存储区域。[0082]在本发明的一个实施方式中,方法进一步包括:响应于第二锁定标记指示存储区域已被第二控制器锁定,从第一通信区中读取与第一锁定标记相关联的第一优先级,以及从第二通信区中读取与第二锁定标记相关联的第二优先级;以及基于比较第一优先级和第二优先级来锁定存储区域。[0083]在本发明的一个实施方式中,基于比较第一优先级和第二优先级来锁定存储区域包括:响应于第一优先级低于第二优先级,由第一控制器对存储区域解锁;以及将第一锁定标记更新为“未锁定”。[0084]在本发明的一个实施方式中,基于比较第一优先级和第二优先级来锁定存储区域包括:响应于第一优先级高于第二优先级,由第二控制器对存储区域解锁;以及将第二锁定标记更新为“未锁定”。[0085]在本发明的一个实施方式中,方法进一步包括:由第一控制器锁定存储区域。[0086]在本发明的一个实施方式中,向第一通信区写入第一锁定标记包括:基于存储系统中包括的锁定元数据确定与存储区域相关联的锁定标记的地址;以及向地址处写入第一锁定标记以指示存储区域已被第一控制器锁定。[0087]在本发明的一个实施方式中,方法进一步包括:响应于第一控制器针对存储区域的数据访问请求已经被完成,将第一优先级更新为低于第二优先级。[0088]在本发明的一个实施方式中,存储系统包括多个存储设备,以及第一通信区域跨越多个存储设备而部署。[0089]在本发明的一个实施方式中,存储系统是独立磁盘冗余阵列,以及方法进一步包括:响应于多个存储设备中的一个存储设备出现故障,从多个存储设备中的其他存储设备恢复第一通信区中的数据。[0090]在本发明的一个实施方式中,存储区域是存储系统中的一个或者多个条带。[0091]附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和或流程图中的每个方框、以及框图和或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。[0092]以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

权利要求:1.一种用于锁定存储系统中的存储区域的方法,所述存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,所述方法包括:响应于在第一控制器处接收到针对所述存储区域的数据访问请求,向所述第一通信区写入与所述存储区域相关联的第一锁定标记,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读;以及从所述第二通信区读取与所述存储区域相关联的第二锁定标记,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写;以及响应于所述第二锁定标记指示所述存储区域未被所述第二控制器锁定,由所述第一控制器锁定所述存储区域。2.根据权利要求1所述的方法,进一步包括:响应于所述第二锁定标记指示所述存储区域已被所述第二控制器锁定,从所述第一通信区中读取与所述第一锁定标记相关联的第一优先级,以及从所述第二通信区中读取与所述第二锁定标记相关联的第二优先级;以及基于比较所述第一优先级和所述第二优先级来锁定所述存储区域。3.根据权利要求2所述的方法,其中基于比较所述第一优先级和所述第二优先级来锁定所述存储区域包括:响应于所述第一优先级低于所述第二优先级,由所述第一控制器对所述存储区域解锁;以及将所述第一锁定标记更新为“未锁定”。4.根据权利要求2所述的方法,其中基于比较所述第一优先级和所述第二优先级来锁定所述存储区域包括:响应于所述第一优先级高于所述第二优先级,由所述第二控制器对所述存储区域解锁;以及将所述第二锁定标记更新为“未锁定”。5.根据权利要求4所述的方法,进一步包括:由所述第一控制器锁定所述存储区域。6.根据权利要求1-5中的任一项所述的方法,其中向所述第一通信区写入第一锁定标记包括:基于所述存储系统中包括的锁定元数据确定与所述存储区域相关联的锁定标记的地址;以及向所述地址处写入所述第一锁定标记以指示所述存储区域已被所述第一控制器锁定。7.根据权利要求2-5中的任一项所述的方法,进一步包括:响应于所述第一控制器针对所述存储区域的数据访问请求已经被完成,将所述第一优先级更新为低于所述第二优先级。8.根据权利要求1-5中的任一项所述的方法,其中所述存储系统包括多个存储设备,以及所述第一通信区域跨越所述多个存储设备而部署。9.根据权利要求8所述的方法,其中所述存储系统是独立磁盘冗余阵列,以及所述方法进一步包括:响应于所述多个存储设备中的一个存储设备出现故障,从所述多个存储设备中的其他存储设备恢复所述第一通信区中的数据。10.根据权利要求1-5中的所述的方法,其中所述存储区域是所述存储系统中的一个或者多个条带。11.一种用于锁定存储系统中的存储区域的系统,包括:一个或者多个处理器;耦合至所述一个或者多个处理器中的至少一个处理器的存储器;在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述系统执行一种用于锁定存储系统中的存储区域的方法,所述方法包括:在包括第一控制器、第二控制器、第一通信区以及第二通信区的存储系统中,响应于在第一控制器处接收到针对所述存储区域的数据访问请求,向所述第一通信区写入与所述存储区域相关联的第一锁定标记,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读;以及从所述第二通信区读取与所述存储区域相关联的第二锁定标记,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写;以及响应于所述第二锁定标记指示所述存储区域未被所述第二控制器锁定,由所述第一控制器锁定所述存储区域。12.根据权利要求11所述的系统,其中所述方法进一步包括:响应于所述第二锁定标记指示所述存储区域已被所述第二控制器锁定,从所述第一通信区中读取与所述第一锁定标记相关联的第一优先级,以及从所述第二通信区中读取与所述第二锁定标记相关联的第二优先级;以及基于比较所述第一优先级和所述第二优先级来锁定所述存储区域。13.根据权利要求12所述的系统,其中基于比较所述第一优先级和所述第二优先级来锁定所述存储区域包括:响应于所述第一优先级低于所述第二优先级,由所述第一控制器对所述存储区域解锁;以及将所述第一锁定标记更新为“未锁定”。14.根据权利要求12所述的系统,其中基于比较所述第一优先级和所述第二优先级来锁定所述存储区域包括:响应于所述第一优先级高于所述第二优先级,由所述第二控制器对所述存储区域解锁;以及将所述第二锁定标记更新为“未锁定”。15.根据权利要求14所述的系统,其中所述方法进一步包括:由所述第一控制器锁定所述存储区域。16.根据权利要求11-15中的任一项所述的系统,其中向所述第一通信区写入第一锁定标记包括:基于所述存储系统中包括的锁定元数据确定与所述存储区域相关联的锁定标记的地址;以及向所述地址处写入所述第一锁定标记以指示所述存储区域已被所述第一控制器锁定。17.根据权利要求12-15中的任一项所述的系统,其中所述方法进一步包括:响应于所述第一控制器针对所述存储区域的数据访问请求已经被完成,将所述第一优先级更新为低于所述第二优先级。18.根据权利要求11-15中的任一项所述的系统,其中所述存储系统包括多个存储设备,以及所述第一通信区域跨越所述多个存储设备而部署。19.根据权利要求18所述的系统,其中所述存储系统是独立磁盘冗余阵列,以及所述方法进一步包括:响应于所述多个存储设备中的一个存储设备出现故障,从所述多个存储设备中的其他存储设备恢复所述第一通信区中的数据。20.根据权利要求11-15中的所述的系统,其中所述存储区域是所述存储系统中的一个或者多个条带。21.—种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至10中的任一项所述的方法的步骤。

百度查询: 伊姆西IP控股有限责任公司 用于锁定存储系统中的存储区域的方法和系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。