CN107526538B - 用于在存储系统中传递消息的方法和系统 - Google Patents

用于在存储系统中传递消息的方法和系统 Download PDF

Info

Publication number
CN107526538B
CN107526538B CN201610461042.4A CN201610461042A CN107526538B CN 107526538 B CN107526538 B CN 107526538B CN 201610461042 A CN201610461042 A CN 201610461042A CN 107526538 B CN107526538 B CN 107526538B
Authority
CN
China
Prior art keywords
controller
message
communication
communication area
writing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610461042.4A
Other languages
English (en)
Other versions
CN107526538A (zh
Inventor
刘友生
康剑斌
徐鑫磊
贾瑞勇
高健
杨利锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201610461042.4A priority Critical patent/CN107526538B/zh
Priority to US15/630,891 priority patent/US10552067B2/en
Publication of CN107526538A publication Critical patent/CN107526538A/zh
Priority to US16/779,430 priority patent/US10860224B2/en
Application granted granted Critical
Publication of CN107526538B publication Critical patent/CN107526538B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access

Abstract

本发明的实施方式提供了用于在存储系统中传递消息的方法和系统。在本发明的一个实施方式中,提供了一种用于在存储系统中传递消息的方法,存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,方法包括:响应于接收到将要从第一控制器向第二控制器传递的消息,向第一通信区写入消息,第一通信区对于第一控制器可读写并且对于第二控制器可读;以及向第二通信区中写入地址指示符,地址指示符用于指示由第二控制器从第一通信区中读取消息的地址,第二通信区对于第一控制器可读并且对于第二控制器可读写。在本发明的一个实施方式中,还提供了相应的系统和装置。

Description

用于在存储系统中传递消息的方法和系统
技术领域
本发明的各实施方式涉及存储管理,更具体地,涉及在存储系统(例如,独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)中传递消息的方法和系统。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。在提高数据存储能力的同时,用户对于数据可靠性和存储系统的响应时间也提出了越来越高的需求。目前,已经开发出了基于冗余磁盘阵列的多种数据存储系统来提高数据的可靠性。当存储系统中的一个或者多个磁盘出现故障时,可以从其他正常操作的磁盘上的数据来恢复出故障磁盘中的数据。
存储系统可以经由存储控制节点来被访问。在典型的激活-激活(Active-Active,也称为双激活)类型的存储系统中,两个存储控制控制节点一起工作以便处理针对存储系统执行数据访问操作,进而提供更高的可用性和更好的性能。每个存储控制节点具有自身的存储器(例如,高速缓存),并且两个存储控制器中的存储器以镜像方式操作。两个存储控制节点可以并行地接收来自外界的数据访问指令,此时如何以更为安全可靠的方式在两个控制节点中的控制器之间传递数据,成为一个研究热点。
发明内容
因而,期望能够开发并实现用于在存储系统中传递消息,进而改进存储系统的安全性稳定的技术方案。期望该技术方案能够与现有的存储系统相兼容,并且在无需针对现有存储系统增加额外硬件设备的情况下以更为安全可靠的方式管理存储系统。
在本发明的一个实施方式中,提供了一种用于在存储系统中传递消息的方法,存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,方法包括:响应于接收到将要从第一控制器向第二控制器传递的消息,向第一通信区写入消息,第一通信区对于第一控制器可读写并且对于第二控制器可读;以及向第二通信区中写入地址指示符,地址指示符用于指示由第二控制器从第一通信区中读取消息的地址,第二通信区对于第一控制器可读并且对于第二控制器可读写。
在本发明的一个实施方式中,提供了一种用于在存储系统中传递消息的系统,包括:一个或者多个处理器;耦合至一个或者多个处理器中的至少一个处理器的存储器;在存储器中存储的计算机程序指令,当由至少一个处理器执行计算机程序指令时,使得系统执行一种用于在存储系统中传递消息的方法,方法包括:在包括第一控制器、第二控制器、第一通信区以及第二通信区中,应于接收到将要从第一控制器向第二控制器传递的消息,向第一通信区写入消息,第一通信区对于第一控制器可读写并且对于第二控制器可读;以及向第二通信区中写入地址指示符,地址指示符用于指示由第二控制器从第一通信区中读取消息的地址,第二通信区对于第一控制器可读并且对于第二控制器可读写。
采用本发明的技术方案,可以以更为安全可靠的方式在存储系统中传递消息,进而提高存储系统的访问效率。
附图说明
结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:
图1示意性示出了适于实现本发明实施方式的示例性计算系统的框图;
图2A示意性示出了根据一个技术方案的独立磁盘冗余阵列的结构的示意图,图2B示意性示出了根据一个技术方案的独立磁盘冗余阵列的重建过程的示意图;
图3示意性示出了根据一个技术方案的用于管理存储系统中的存储器的方法的示意图;
图4示意性示出了根据本发明一个实施方式的用于在存储系统中传递消息的技术方案的架构图;
图5示意性示出了根据本发明一个实施方式的用于在存储系统中传递消息的方法的流程图;
图6示意性示出了根据本发明一个实施方式的第一通信区的数据结构的示意图;
图7示意性示出了根据本发明一个实施方式的跨越RAID阵列中的多个存储设备部署的第一通信区的结构的示意图;
图8示意性示出了根据本发明一个实施方式的用于在存储系统中传递消息的技术方案的架构图;以及
图9示意性示出了根据本发明一个实施方式的用于在存储系统中传递消息的装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了适于用来实现本发明实施方式的示例性计算系统100的框图。如图1所示,计算机系统100可以包括:CPU(中央处理单元)101、RAM(随机存取存储器)102、ROM(只读存储器)103、系统总线104、硬盘控制器105、键盘控制器106、串行接口控制器107、并行接口控制器108、显示控制器109、硬盘110、键盘111、串行外部设备112、并行外部设备113和触摸屏显示器114。在这些设备中,与系统总线104耦合的有CPU 101、RAM 102、ROM 103、硬盘控制器105、键盘控制器106、串行控制器107、并行控制器108和显示控制器109。硬盘110与硬盘控制器105耦合,键盘111与键盘控制器106耦合,串行外部设备112与串行接口控制器107耦合,并行外部设备113与并行接口控制器108耦合,以及触摸屏显示器114与显示控制器109耦合。应当理解,图1所示的结构框图仅仅是为了示例的目的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况增加或减少某些设备。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施方式中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供者来通过因特网连接)。
下面将参照本发明实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其他可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其他可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)可以将多个存储设备组合起来,成为一个磁盘阵列。通过提供冗余的存储设备,可以使得整个磁盘组的可靠性大大超过单一的存储设备。RAID可以提供优于单一的存储设备的各种优势,例如,增强数据整合度,增强容错功能,增加吞吐量或容量,等等。RAID存在多个标准,例如RAID-1,RAID-2,RAID-3,RAID-4,RAID-5,RAID-6,RAID-10,RAID-50等等。关于RAID级别的更多细节,本领域技术人员例如可以参见https://en.wikipedia.org/wiki/Standard_RAID_levels、以及https://en.wikipedia.org/wiki/Nested_RAID_levels等。操作系统可以把由多个存储设备构成的磁盘阵列视为单一的逻辑存储单元或磁盘。通过将磁盘阵列划分为多个条带(strip),可以将数据分布到多个存储设备,从而实现低延迟、高带宽,并且其中的部分磁盘毁坏后可以在一定程度上恢复数据。
图2A示意性示出了根据一个技术方案的独立磁盘冗余阵列的结构的示意图220A。在图2A中,以包括五个独立存储设备(210A、212A、214A、216A以及218A)的RAID-5阵列为示例,来说明RAID的工作原理。应当注意,尽管图2A中示意性示出了五个存储设备,在其他的实施方式中,根据RAID的版本不同,还可以包括更多或者更少的存储设备。尽管图2A中示出了条带220A、222A和224A,在其他的示例中,RAID系统还可以包括不同数量的条带。
在RAID中,条带跨越多个物理存储设备(例如,条带220A跨越了存储设备210A、212A、214A、216A以及218A)。可以简单地将条带理解为多个存储设备中的满足一定地址范围的存储区域。在条带220中存储的数据包括多个部分:存储在存储设备210A上的数据块D11、存储在存储设备212A上的数据块D12、存储在存储设备214A上的数据块D13、存储在存储设备216A上的数据块D14、以及存储在存储设备218A上的数据块P1。在此示例中,数据块D11、D12、D13、以及D14是被存储的数据,而数据块P1是被存储数据的校验值。
在其他条带中存储数据的方式也类似于条带220A,不同之处在于,有关其他数据块的校验值可以存储在不同于存储设备218A的存储设备上。以此方式,当多个存储设备210A、212A、214A、216A以及218A中的一个存储设备出现故障时,可以从其他的正常的存储设备中恢复出故障设备中的数据。
图2B示意性示出了根据一个技术方案的独立磁盘冗余阵列的重建过程的示意图220B。如图2B所示,当一个存储设备(例如,以阴影示出的存储设备218A)出现故障时,可以从其余的正常操作的多个存储设备210A、212A、214A、216A中恢复数据。此时,可以向RAID中加入新的后备存储设备218B来替代存储设备218A,以此方式,可以将恢复的数据写入218B并实现系统的重建。
图3示意性示出了根据一个技术方案的用于管理存储系统300中的存储器的方法的示意图。如图3所示,存储系统300可以通过一个或者多个存储控制节点来向外界提供数据访问服务。在此示例中,存储系统300可以包括存储控制节点310和320。在存储系统300的操作期间,两个存储控制节点310和320可以并行地向外界提供服务。如果其中一个节点出现故障,则另一个节点可以继续工作。
存储控制节点310可以包括控制器312和存储器314(例如,高速缓存)。当存储控制节点310接收到来自外界主机的访问请求(例如,读写请求)时,控制器312处理该请求。类似地,另一存储控制节点320包括控制器322和相对应的存储器324,并且以类似于存储控制器310的方式操作。两个存储控制器310、320可以并行地操作,用来处理不同的访问请求。应当注意,图3所示的存储器314和324是镜像存储器,并且两者中包括的相对应的镜像页面中的数据是相对应的。
在存储系统工作期间,为了确保存储系统中的数据的一致性,在存储系统中设置了内部通信通道330,用于在两个存储控制节点310和320之间传输消息。一旦内部通信通道330出现故障,则两个存储控制节点310和320之间不能彼此进行通信。如果两个存储控制节点继续独立地处理来自外界主机的请求,则将会造成存储系统300中出现“脑裂(split-brain)”现象,进而导致存储系统300中的数据冲突。
为了增强存储控制节点之间的通信的可靠性,目前已经提出了多种技术方案。在一个技术方案中,通过额外增加更为独立的可靠通信信道,来支持两个存储控制节点之间的通信。然而,此技术方案将会导致额外通信开销,不利于提高存储系统的数据响应效率。在另一个技术方案中,通过设置第三方实体来检测并且处理“脑裂”问题,当该第三方实体发现“脑裂”现象时,将通过仲裁的方式来管理两个存储控制节点。此方式也会导致额外的硬件和软件开销。因而,如何以使得两个存储控制节点能够以鲁棒并且安全可靠的方式进行通信,成为一个研究热点。
基于上述技术方案中的不足,本发明的一个实施方式提供了一种用于在存储系统中传递消息的方法,所述存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,所述方法包括:响应于接收到将要从所述第一控制器向所述第二控制器传递的消息,向所述第一通信区写入所述消息,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读;以及向所述第二通信区中写入地址指示符,所述地址指示符用于指示由所述第二控制器从所述第一通信区中读取所述消息的地址,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写。
图4示意性示出了根据本发明一个实施方式的用于在存储系统400中传递消息的技术方案的架构图。如图4所示,存储系统包括两个控制器,即,控制器312和控制器322。并且在存储系统中设置了两个通信区:第一通信区410和第二通信区420。这两个通信区对于两个控制器312和322均可访问,区别在于访问权限不同。以实线示出了可读并且可写的访问权限,例如,控制器312对于第一通信区410可读写,控制器322对于第二通信区420可读写。虚线示出了可读的访问权限,例如,控制器312对于第二通信区420可读,控制器322对于第一通信区410可读。
如图4所示,通过在存储系统中设置对于两个控制器具有不同访问权限的第一通信区和第二通信区,通过两个通信区来传递消息,进而避免在两个控制器之间建立额外的通信通道的要求。控制器312可以将期望传送给控制器322的消息412写入第一通信区410,并且将指向该消息412在第一通信区410中的地址的地址指示符422写入第二通信区420。以此方式,控制器322可以获取地址指示符422并且经由该地址指示符422来从第一通信区410中获取消息412。
在下文中,将参见图5详细描述根据本发明的一个实施方式的方法的具体流程。图5示意性示出了根据本发明一个实施方式的用于在存储系统中传递消息的方法的流程图500。在步骤S510中,在包括第一控制器、第二控制器、第一通信区以及第二通信区的存储系统中,响应于接收到将要从所述第一控制器向所述第二控制器传递的消息,向所述第一通信区写入所述消息,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可。在步骤S520中,向所述第二通信区中写入地址指示符,所述地址指示符用于指示由所述第二控制器从所述第一通信区中读取所述消息的地址,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写。
在此示例中,通过向第一通信区写入消息,并且向第二通信区写入该消息的地址指示符,使得第二控制器可以经由该地址指示符来从第一通信区中读取消息。以此方式,不必在第一控制器和第二控制器之间建立专用的通信通道,而是可以基于在存储系统中现有的通信通道来完成消息的传送。
在本发明的一个实施方式中,可以在存储系统中包括的用于存储数据的存储设备(例如,存储盘或者存储盘阵列)中部署上文所述的第一通信区和第二通信区。仅以单一的存储盘作为存储设备的示例,可以在该存储盘中分配专用存储区域来作为第一通信区和第二通信区。在具有两个访问端口(例如,第一控制器和第二控制器)的存储系统中,由于两个控制器均被连接到存储系统中的存储盘,因而可以借助于控制器和存储盘之间的现有数据通道来实现消息的传输。以此方式,不必在两个控制器之间建立专用通信通道,因而也避免了由于专用通信通道的故障而导致的“脑裂”问题。
在本发明的一个实施方式中,响应于已经向第二通信区中写入了地址指示符,可以向第二控制器发送中断消息,以通知第二控制器在第一通信区中的消息已经准备就绪以便被读取。在本发明的一个实施方式中,本领域技术人员还可以基于具体应用环境的需求,以其他方式来触发第二控制器读取消息。
在本发明的一个实施方式中,向所述第一通信区写入所述消息包括:根据所述第一通信区中的元数据,确定所述第一通信区的状态;以及响应于所述状态指示所述第一通信区未满,向所述第一通信区写入所述消息。
本领域技术人员可以自定义第一通信区的位置、大小和内部的组织方式。例如,可以以元数据来描述第一通信区中的用于存储消息的地址。由于第一通信区的大小可以是固定的,因而在写入消息之间可以判断该第一通信区中是否还存在可用的存储空间用于写入新的当习,当第一通信区未满时可以向其中写入消息,并且在第一通信区已满的情况下,可以执行等待。
本领域技术人员可以采用现有技术已知的或者将在未来开发的技术来确定第一通信区是否已满。例如,假设第一通信区中仅有存储一个消息的空间,则此时元数据可以是指向该存储空间的指针。可以在元数据中设置标记来指示该存储空间是否已经存储有消息,进而基于该标记来确定第一通信区是否已满。又例如,假设第一通信区中具有可以存储多个消息的空间,则可以以队列方式来组织该多个空间并且以元数据来表示队列的头指针,并基于有关队列的各种指针运算来确定第一通信区是否已满。
在本发明的一个实施方式中,向所述第一通信区写入所述消息进一步包括:基于所述第一通信区中的所述元数据,确定向所述第一通信区写入所述消息的可用地址;以及向所述可用地址处写入所述消息。在此实施方式中,由于元数据可以描述第一通信区中的可用地址,因而可以首先基于元数据确定可用地址,继而向该可用地址处写入消息。
在本发明的一个实施方式中,所述第一通信区包括消息队列,所述第一通信区中的所述元数据包括所述消息队列的头指针;以及所述方法进一步包括:响应于向所述可用地址处写入所述消息,更新所述头指针以指示用于向所述第一通信区写入消息的另一可用地址。
在此实施方式中示出了第一通信区中包括用于存储多个消息的消息队列的情况。例如,在此的头指针可以指向当前可用的存储地址,并且在需要传输消息时可以直接向该头指针指向的位置处写入消息,并且在写入消息之后将头指针指向下一个可用地址。又例如,头指针还可以指向消息队列中的最近被写入的消息,此时则需要首先基于头指针确定可用地址再向可用地址写入消息,继而将头指针指向当前新写入的消息。
在本发明的一个实施方式中,所述地址指示符包括所述消息队列的尾指针,以及所述方法进一步包括:响应于由所述第二控制器从所述尾指针处读取所述消息,由所述第二控制器更新所述尾指针以指向另一消息。当采用消息队列存储消息时,可以通过头指针和尾指针来定义消息队列。具体地,图6示意性示出了根据本发明一个实施方式的第一通信区600的数据结构的示意图。
第一通信区600可以包括用于存储多个消息的存储空间,其中阴影区域示出了消息队列610的位置,并且空白区域示出了第一通信区600中的其他可用的存储空间。在此示例中,头指针620指示消息队列中的第一个未被第二控制器读取的消息,而尾指针630指向最后一个未被第二控制器读取的消息。当希望从第一控制器向第二控制器传输新的消息时,可以首先基于头指针620来确定当前的消息头的位置,并且选择与消息头相邻的存储空间640来存储新的消息,继而将头指针620向前移动一个位置并指向存储空间640。第二控制器从尾指针630的位置来读取消息,例如当已经读取尾指针630指向的消息之后,尾指针630向前移动一个位置。
在本发明的一个实施方式中,第一通信区600中的各个存储空间可以以环形方式组织。例如,在经过一系列操作后,头指针620可以指向存储空间640,当以环形方式组织第一通信区600时,存储空间650可以是与头指针620相关联的下一存储空间。另外,当以环形方式组织第一通信区600时,还可以通过判断头指针620和尾指针630的位置关系来判断在第一通信区600是否已满。
在本发明的一个实施方式中,所述存储系统包括多个存储设备,所述第一通信区跨越所述多个存储设备中的相应的存储区,所述多个存储设备中的相应的存储区以环形方式连接以构成所述第一通信区。例如,存储系统可以包括多个存储设备,并且该多个存储设备可以是普通的盘设备并且以阵列的方式提供更大的存储空间。具体地,第一通信区可以跨越多个存储设备来提供更大的通信区以便容纳更多的消息。
例如,假设在每个存储设备中的通信区可以容纳4个消息,则当存储系统中包括5个存储设备时,这5个存储设备中的通信区可以以首尾相连环形方式构成第一通信区。此时,第一通信区的大小将变为原先的5倍,即,此时第一通信区中可以容纳20个消息。应当注意,在上文中的每个存储设备中的通信区所容纳消息的数量仅仅是示意性的,在其他的实施方式中,本领域技术人员可以根据具体应用环境的需要进行调整。进一步,本领域技术人员还可以根据具体应用环境的需要而调整为每个消息分配的空间的大小,在此不再赘述。
在本发明的一个实施方式中,所述存储系统是独立磁盘冗余阵列,以及所述方法进一步包括:响应于所述多个存储设备中的一个存储设备出现故障,从所述多个存储设备中的其他存储设备恢复所述消息队列中的数据。
具体地,图7示意性示出了根据本发明一个实施方式的跨越RAID阵列中的多个存储设备部署的第一通信区的结构的示意图700。如图7所示,第一通信区410跨越RAID阵列而部署。例如,以阴影示出的区域为消息队列610。由于存储设备210A、212A、214A、216A以及218A中包括冗余的存储设备,因而当存储系统中的一个存储设备出现故障时,可以通过其他存储设备中的数据来恢复第一通信区410中的消息队列中的数据。以此方式,即使消息队列610中还存在未被第二控制器读取的消息,当一个存储设备例如212A出现故障时,还可以从其他四个存储设备中恢复出消息队列610中的数据,以便第二控制器读取。在此实施方式中,可以以更加安全可靠的方式来在两个控制器之间传递消息。
图8示意性示出了根据本发明一个实施方式的用于在存储系统中传递消息的技术方案的架构图800。图8所示的架构图800类似于图4所示的内容,不同之处在于:第二通信区420还包括消息822,用于存储从第二控制器322向第一控制器312发送的消息,以及第一通信区410还包括地址指示符812,用于指示消息822在第二通信区420中的地址。以此方式,通过第一通信区410和第二通信区420,可以在第一控制器312和第二控制器322之间互相发送消息。
在本发明的一个实施方式中,响应于接收到将要从所述第二控制器向所述第一控制器传递的另一消息,由所述第二控制器向所述第二通信区写入所述另一消息;以及向所述第一通信区中写入另一地址指示符,所述另一地址指示符用于指示由所述第一控制器从所述第二通信区中读取所述另一消息的地址。
参见图8,当控制器322接收到将要向控制器312传输的消息时,向第二通信区420中写入消息822。继而,将指示该消息822在第二通信区420中的地址的地址指示符812写入第一通信区410。以此方式,控制器312即可借助于地址指示符812来读取消息822的内容。
应当注意,在本发明中所描述的第一控制器和第二控制器是存储系统中的两个并列的控制器,两者可以具有等同的地位。因而,在上文中以第一控制器为示例描述的各种技术方案还可以在第二控制器上执行。
在本发明的一个实施方式中,提供了一种用于在存储系统中接收消息的方法,所述存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,所述方法包括:从所述第二通信区中读出地址指示符,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写;以及从所述第一通信区中的由所述地址指示符指示的位置处读取消息,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读。
在上述实施方式中记载了第二控制器读取来自第一控制器的消息的过程。具体地,参见图9的示例,控制器322从第二通信区420中获取地址指示符422,继而基于该地址指示符422来从第一通信区410中读取消息412。在本发明的一个实施方式中,当以消息队列来存储消息时,控制器322已经获取消息后,还可以更新地址指示符422的地址,以使得该地址指示符422指向另一待读取的消息。
在本发明的一个实施方式中,所述第一通信区包括消息队列,所述存储系统包括至少一个存储设备,所述第一通信区跨越所述至少一个存储设备中的相应的存储区,所述至少一个存储设备中的相应的存储区以环形方式连接以构成所述第一通信区。在此实施方式中,第一通信区可以跨越存储系统中的多个存储设备来以环形方式组织。
图9示意性示出了根据本发明一个实施方式的用于在存储系统中传递消息的装置的框图900。如图9所示,提出了一种用于在存储系统中传递消息的装置,存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,装置包括:消息写入模块910,配置用于响应于接收到将要从第一控制器向第二控制器传递的消息,向第一通信区写入消息,第一通信区对于第一控制器可读写并且对于第二控制器可读;以及地址写入模块920,配置用于向第二通信区中写入地址指示符,地址指示符用于指示由第二控制器从第一通信区中读取消息的地址,第二通信区对于第一控制器可读并且对于第二控制器可读写。
在本发明的一个实施方式中,消息写入模块910进一步配置用于:根据第一通信区中的元数据,确定第一通信区的状态;以及响应于状态指示第一通信区未满,向第一通信区写入消息。
在本发明的一个实施方式中,消息写入模块910进一步配置用于:基于第一通信区中的元数据,确定向第一通信区写入消息的可用地址;以及向可用地址处写入消息。
在本发明的一个实施方式中,第一通信区包括消息队列,第一通信区中的元数据包括消息队列的头指针;以及方法进一步包括:更新模块,配置用于响应于向可用地址处写入消息,更新头指针以指示用于向第一通信区写入消息的另一可用地址。
在本发明的一个实施方式中,地址指示符包括消息队列的尾指针,以及更新模块进一步配置用于响应于由第二控制器从尾指针处读取消息,由第二控制器更新尾指针以指向另一消息。
在本发明的一个实施方式中,存储系统包括多个存储设备,第一通信区跨越多个存储设备中的相应的存储区,多个存储设备中的相应的存储区以环形方式连接以构成第一通信区。
在本发明的一个实施方式中,存储系统是独立磁盘冗余阵列,以及装置进一步包括:恢复模块,配置用于响应于多个存储设备中的一个存储设备出现故障,从多个存储设备中的其他存储设备恢复消息队列中的数据。
在本发明的一个实施方式中,消息写入模块910进一步配置用于响应于接收到将要从第二控制器向第一控制器传递的另一消息,由第二控制器向第二通信区写入另一消息;以及地址写入模块920进一步配置用于向第一通信区中写入另一地址指示符,另一地址指示符用于指示由第一控制器从第二通信区中读取另一消息的地址。
在本发明的一个实施方式中,提供了一种用于在存储系统中接收消息的装置,存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,装置包括:地址读取模块,配置用于从第二通信区中读出地址指示符,第二通信区对于第一控制器可读并且对于第二控制器可读写;以及消息读取模块,配置用于从第一通信区中的由地址指示符指示的位置处读取消息,第一通信区对于第一控制器可读写并且对于第二控制器可读。
在本发明的一个实施方式中,第一通信区包括消息队列,存储系统包括至少一个存储设备,第一通信区跨越至少一个存储设备中的相应的存储区,至少一个存储设备中的相应的存储区以环形方式连接以构成第一通信区。
在本发明的一个实施方式中,提出了一种用于在存储系统中传递消息的系统,包括:一个或者多个处理器;耦合至一个或者多个处理器中的至少一个处理器的存储器;在存储器中存储的计算机程序指令,当由至少一个处理器执行计算机程序指令时,使得系统执行一种用于在存储系统中传递消息的方法,方法包括:在包括第一控制器、第二控制器、第一通信区以及第二通信区中,应于接收到将要从第一控制器向第二控制器传递的消息,向第一通信区写入消息,第一通信区对于第一控制器可读写并且对于第二控制器可读;以及向第二通信区中写入地址指示符,地址指示符用于指示由第二控制器从第一通信区中读取消息的地址,第二通信区对于第一控制器可读并且对于第二控制器可读写。
在本发明的一个实施方式中,向第一通信区写入消息包括:根据第一通信区中的元数据,确定第一通信区的状态;以及响应于状态指示第一通信区未满,向第一通信区写入消息。
在本发明的一个实施方式中,其中向第一通信区写入消息进一步包括:基于第一通信区中的元数据,确定向第一通信区写入消息的可用地址;以及向可用地址处写入消息。
在本发明的一个实施方式中,第一通信区包括消息队列,第一通信区中的元数据包括消息队列的头指针;以及方法进一步包括:响应于向可用地址处写入消息,更新头指针以指示用于向第一通信区写入消息的另一可用地址。
在本发明的一个实施方式中,地址指示符包括消息队列的尾指针,以及方法进一步包括:响应于由第二控制器从尾指针处读取消息,由第二控制器更新尾指针以指向另一消息。
在本发明的一个实施方式中,存储系统包括多个存储设备,第一通信区跨越多个存储设备中的相应的存储区,多个存储设备中的相应的存储区以环形方式连接以构成第一通信区。
在本发明的一个实施方式中,存储系统是独立磁盘冗余阵列,以及方法进一步包括:响应于多个存储设备中的一个存储设备出现故障,从多个存储设备中的其他存储设备恢复消息队列中的数据。
在本发明的一个实施方式中,方法进一步包括:响应于接收到将要从第二控制器向第一控制器传递的另一消息,由第二控制器向第二通信区写入另一消息;以及向第一通信区中写入另一地址指示符,另一地址指示符用于指示由第一控制器从第二通信区中读取另一消息的地址。
在本发明的一个实施方式中,提供了一种用于在存储系统中接收消息的系统,包括:一个或者多个处理器;耦合至一个或者多个处理器中的至少一个处理器的存储器;在存储器中存储的计算机程序指令,当由至少一个处理器执行计算机程序指令时,使得系统执行一种用于在存储系统中接受消息的方法,方法包括:在包括第一控制器、第二控制器、第一通信区以及第二通信区的存储系统中,从第二通信区中读出地址指示符,第二通信区对于第一控制器可读并且对于第二控制器可读写;以及从第一通信区中的由地址指示符指示的位置处读取消息,第一通信区对于第一控制器可读写并且对于第二控制器可读。
在本发明的一个实施方式中,第一通信区包括消息队列,存储系统包括至少一个存储设备,第一通信区跨越至少一个存储设备中的相应的存储区,至少一个存储设备中的相应的存储区以环形方式连接以构成第一通信区。
附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

Claims (21)

1.一种用于在存储系统中传递消息的方法,所述存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,所述方法包括:
响应于接收到将要从所述第一控制器向所述第二控制器传递的消息,向所述第一通信区写入所述消息,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读;
向所述第二通信区中写入地址指示符,所述地址指示符用于指示由所述第二控制器从所述第一通信区中读取所述消息的地址,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写;以及
响应于所述地址指示符被写入至所述第二通信区,向所述第二控制器发送通知,所述通知指示所述第一通信区中的所述消息准备就绪以便由所述第二控制器读取。
2.根据权利要求1所述的方法,其中向所述第一通信区写入所述消息包括:
根据所述第一通信区中的元数据,确定所述第一通信区的状态;以及
响应于所述状态指示所述第一通信区未满,向所述第一通信区写入所述消息。
3.根据权利要求2所述的方法,其中向所述第一通信区写入所述消息进一步包括:
基于所述第一通信区中的所述元数据,确定向所述第一通信区写入所述消息的可用地址;以及
向所述可用地址处写入所述消息。
4.根据权利要求3所述的方法,其中所述第一通信区包括消息队列,所述第一通信区中的所述元数据包括所述消息队列的头指针;以及所述方法进一步包括:
响应于向所述可用地址处写入所述消息,更新所述头指针以指示用于向所述第一通信区写入消息的另一可用地址。
5.根据权利要求4所述的方法,其中所述地址指示符包括所述消息队列的尾指针,以及所述方法进一步包括:
响应于由所述第二控制器从所述尾指针处读取所述消息,由所述第二控制器更新所述尾指针以指向另一消息。
6.根据权利要求4所述的方法,其中所述存储系统包括多个存储设备,所述第一通信区跨越所述多个存储设备中的相应的存储区,所述多个存储设备中的相应的存储区以环形方式连接以构成所述第一通信区。
7.根据权利要求6所述的方法,其中所述存储系统是独立磁盘冗余阵列,以及所述方法进一步包括:
响应于所述多个存储设备中的一个存储设备出现故障,从所述多个存储设备中的其他存储设备恢复所述消息队列中的数据。
8.根据权利要求1-7中的任一项所述的方法,其中所述方法进一步包括:
响应于接收到将要从所述第二控制器向所述第一控制器传递的另一消息,由所述第二控制器向所述第二通信区写入所述另一消息;以及
向所述第一通信区中写入另一地址指示符,所述另一地址指示符用于指示由所述第一控制器从所述第二通信区中读取所述另一消息的地址。
9.一种用于在存储系统中接收消息的方法,所述存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,所述方法包括:
从所述第二通信区中读出地址指示符,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写;
响应于在所述第二控制器处接收到通知,所述通知指示所述第一通信区中的消息准备就绪以便由所述第二控制器读取,从所述第一通信区中的由所述地址指示符指示的位置处读取所述消息,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读。
10.根据权利要求9所述的方法,其中所述第一通信区包括消息队列,所述存储系统包括至少一个存储设备,所述第一通信区跨越所述至少一个存储设备中的相应的存储区,所述至少一个存储设备中的相应的存储区以环形方式连接以构成所述第一通信区。
11.一种用于在存储系统中传递消息的系统,包括:
一个或者多个处理器;
耦合至所述一个或者多个处理器中的至少一个处理器的存储器;
在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述系统执行一种用于在存储系统中传递消息的方法,所述方法包括:
在包括第一控制器、第二控制器、第一通信区以及第二通信区中,应于接收到将要从所述第一控制器向所述第二控制器传递的消息,向所述第一通信区写入所述消息,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读;
向所述第二通信区中写入地址指示符,所述地址指示符用于指示由所述第二控制器从所述第一通信区中读取所述消息的地址,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写;以及
响应于所述地址指示符被写入至所述第二通信区,向所述第二控制器发送通知,所述通知指示所述第一通信区中的所述消息准备就绪以便由所述第二控制器读取。
12.根据权利要求11所述的系统,其中向所述第一通信区写入所述消息包括:
根据所述第一通信区中的元数据,确定所述第一通信区的状态;以及
响应于所述状态指示所述第一通信区未满,向所述第一通信区写入所述消息。
13.根据权利要求12所述的系统,其中向所述第一通信区写入所述消息进一步包括:
基于所述第一通信区中的所述元数据,确定向所述第一通信区写入所述消息的可用地址;以及
向所述可用地址处写入所述消息。
14.根据权利要求13所述的系统,其中所述第一通信区包括消息队列,所述第一通信区中的所述元数据包括所述消息队列的头指针;以及所述方法进一步包括:
响应于向所述可用地址处写入所述消息,更新所述头指针以指示用于向所述第一通信区写入消息的另一可用地址。
15.根据权利要求14所述的系统,其中所述地址指示符包括所述消息队列的尾指针,以及所述方法进一步包括:
响应于由所述第二控制器从所述尾指针处读取所述消息,由所述第二控制器更新所述尾指针以指向另一消息。
16.根据权利要求14所述的系统,其中所述存储系统包括多个存储设备,所述第一通信区跨越所述多个存储设备中的相应的存储区,所述多个存储设备中的相应的存储区以环形方式连接以构成所述第一通信区。
17.根据权利要求16所述的系统,其中所述存储系统是独立磁盘冗余阵列,以及所述方法进一步包括:
响应于所述多个存储设备中的一个存储设备出现故障,从所述多个存储设备中的其他存储设备恢复所述消息队列中的数据。
18.根据权利要求11-17中的任一项所述的系统,其中所述方法进一步包括:
响应于接收到将要从所述第二控制器向所述第一控制器传递的另一消息,由所述第二控制器向所述第二通信区写入所述另一消息;以及
向所述第一通信区中写入另一地址指示符,所述另一地址指示符用于指示由所述第一控制器从所述第二通信区中读取所述另一消息的地址。
19.一种用于在存储系统中接收消息的系统,包括:
一个或者多个处理器;
耦合至所述一个或者多个处理器中的至少一个处理器的存储器;
在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述系统执行一种用于在存储系统中接受消息的方法,所述方法包括:
在包括第一控制器、第二控制器、第一通信区以及第二通信区的所述存储系统中,从所述第二通信区中读出地址指示符,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写;
响应于在所述第二控制器处接收到通知,所述通知指示所述第一通信区中的消息准备就绪以便由所述第二控制器读取,从所述第一通信区中的由所述地址指示符指示的位置处读取所述消息,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读。
20.根据权利要求19所述的系统,其中所述第一通信区包括消息队列,所述存储系统包括至少一个存储设备,所述第一通信区跨越所述至少一个存储设备中的相应的存储区,所述至少一个存储设备中的相应的存储区以环形方式连接以构成所述第一通信区。
21.一种包括机器可执行指令的计算机可读介质,所述机器可执行指令在被执行时使机器执行根据权利要求1至10中的任一项所述的方法的步骤。
CN201610461042.4A 2016-06-22 2016-06-22 用于在存储系统中传递消息的方法和系统 Active CN107526538B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201610461042.4A CN107526538B (zh) 2016-06-22 2016-06-22 用于在存储系统中传递消息的方法和系统
US15/630,891 US10552067B2 (en) 2016-06-22 2017-06-22 Method and system for delivering message in storage system
US16/779,430 US10860224B2 (en) 2016-06-22 2020-01-31 Method and system for delivering message in storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610461042.4A CN107526538B (zh) 2016-06-22 2016-06-22 用于在存储系统中传递消息的方法和系统

Publications (2)

Publication Number Publication Date
CN107526538A CN107526538A (zh) 2017-12-29
CN107526538B true CN107526538B (zh) 2020-03-20

Family

ID=60677336

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610461042.4A Active CN107526538B (zh) 2016-06-22 2016-06-22 用于在存储系统中传递消息的方法和系统

Country Status (2)

Country Link
US (2) US10552067B2 (zh)
CN (1) CN107526538B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107526538B (zh) 2016-06-22 2020-03-20 伊姆西Ip控股有限责任公司 用于在存储系统中传递消息的方法和系统
US10608951B2 (en) * 2017-09-30 2020-03-31 Oracle International Corporation Live resegmenting of partitions in distributed stream-processing platforms
CN113220243B (zh) * 2021-07-08 2021-09-07 苏州浪潮智能科技有限公司 一种多控制器数据传输的方法、装置、设备及可读介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101147118A (zh) * 2006-01-03 2008-03-19 伊姆西公司 用于重新配置存储系统的方法和装置
CN103828332A (zh) * 2013-12-04 2014-05-28 华为技术有限公司 数据处理方法、装置、存储控制器和机柜

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004080008A1 (ja) * 2003-03-04 2004-09-16 Fujitsu Limited 連携情報管理システム
US7305520B2 (en) * 2004-01-30 2007-12-04 Hewlett-Packard Development Company, L.P. Storage system with capability to allocate virtual storage segments among a plurality of controllers
US20060193159A1 (en) * 2005-02-17 2006-08-31 Sensory Networks, Inc. Fast pattern matching using large compressed databases
US7600055B2 (en) * 2006-01-03 2009-10-06 International Business Machines Corporation Apparatus, system, and method for firmware update of redundant controllers
JP4893781B2 (ja) * 2009-05-28 2012-03-07 富士通株式会社 記憶制御システムおよび記憶制御装置
US20140136581A1 (en) * 2012-11-15 2014-05-15 Hitachi, Ltd. Storage system and control method for storage system
US8966137B1 (en) * 2013-08-04 2015-02-24 Transcend Information, Inc. Storage device and memory accessing method for a storage device
US9959072B2 (en) * 2013-12-20 2018-05-01 Sandisk Technologies Llc Systems and methods of compressing data
US9197622B2 (en) * 2014-03-12 2015-11-24 Ca, Inc. Securely tracking electronic messages
CN107526538B (zh) 2016-06-22 2020-03-20 伊姆西Ip控股有限责任公司 用于在存储系统中传递消息的方法和系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101147118A (zh) * 2006-01-03 2008-03-19 伊姆西公司 用于重新配置存储系统的方法和装置
CN103828332A (zh) * 2013-12-04 2014-05-28 华为技术有限公司 数据处理方法、装置、存储控制器和机柜

Also Published As

Publication number Publication date
US20200174683A1 (en) 2020-06-04
CN107526538A (zh) 2017-12-29
US20170371576A1 (en) 2017-12-28
US10552067B2 (en) 2020-02-04
US10860224B2 (en) 2020-12-08

Similar Documents

Publication Publication Date Title
US11163472B2 (en) Method and system for managing storage system
CN107526536B (zh) 用于管理存储系统的方法和系统
US10467246B2 (en) Content-based replication of data in scale out system
EP2638469B1 (en) Detection and handling of alua preferences and state transitions by host
US9524107B2 (en) Host-based device drivers for enhancing operations in redundant array of independent disks systems
US9098466B2 (en) Switching between mirrored volumes
US9830088B2 (en) Optimized read access to shared data via monitoring of mirroring operations
CN109725831B (zh) 管理存储系统的方法、系统和计算机可读介质
CN107526537B (zh) 用于锁定存储系统中的存储区域的方法和系统
US10423332B2 (en) Fibre channel storage array having standby controller with ALUA standby mode for forwarding SCSI commands
US10852966B1 (en) System and method for creating mapped RAID group during expansion of extent pool
US8281071B1 (en) Systems and methods for managing cluster node connectivity information
US20130007504A1 (en) High availability data storage systems and methods
US9582383B2 (en) Efficient handling of semi-asynchronous raid write failures
US10860224B2 (en) Method and system for delivering message in storage system
US10713129B1 (en) System and method for identifying and configuring disaster recovery targets for network appliances
US9891992B2 (en) Information processing apparatus, information processing method, storage system and non-transitory computer readable storage media
CN109213427B (zh) 用于管理存储系统的方法和设备
US10437471B2 (en) Method and system for allocating and managing storage in a raid storage system
US10101940B1 (en) Data retrieval system and method
US11467930B2 (en) Distributed failover of a back-end storage director
CN113973138B (zh) 用于使用数据访问网关优化对数据集群的数据节点的访问的方法和系统
JP2019159416A (ja) データ管理装置、ファイルシステム、データ管理方法、及びプログラム
CN113973112B (zh) 用于使用数据访问网关和基于元数据映射的投标优化对数据集群的数据节点的访问的方法和系统
US10324880B1 (en) Fabric management system and method

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20200122

Address after: Massachusetts, USA

Applicant after: EMC IP Holding Company LLC

Address before: Massachusetts, USA

Applicant before: EMC Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant