CN107526536A - 用于管理存储系统的方法和系统 - Google Patents

用于管理存储系统的方法和系统 Download PDF

Info

Publication number
CN107526536A
CN107526536A CN201610459343.3A CN201610459343A CN107526536A CN 107526536 A CN107526536 A CN 107526536A CN 201610459343 A CN201610459343 A CN 201610459343A CN 107526536 A CN107526536 A CN 107526536A
Authority
CN
China
Prior art keywords
controller
storage
state
storage device
comunication area
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.)
Granted
Application number
CN201610459343.3A
Other languages
English (en)
Other versions
CN107526536B (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 Corp
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 Corp filed Critical EMC Corp
Priority to CN201610459343.3A priority Critical patent/CN107526536B/zh
Priority to US15/630,863 priority patent/US10372384B2/en
Publication of CN107526536A publication Critical patent/CN107526536A/zh
Application granted granted Critical
Publication of CN107526536B publication Critical patent/CN107526536B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
    • 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/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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
    • 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/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明的实施方式提供了用于管理存储系统的方法和系统。在本发明的一个实施方式中,提供了一种用于管理存储系统的方法,存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,方法包括:针对存储系统中的存储设备,响应于第一控制器成功访问存储设备,向第一通信区写入指示第一控制器与存储设备之间的状态关系的第一状态,第一通信区对于第一控制器可读写并且对于第二控制器可读;从第二通信区读取指示第二控制器与存储设备之间的状态关系的第二状态,第二通信区对于第一控制器可读并且对于第二控制器可读写;以及响应于第二状态指示第二控制器成功访问存储设备,初始化存储系统。在本发明的一个实施方式中,还提供了相应的系统和装置。

Description

用于管理存储系统的方法和系统
技术领域
本发明的各实施方式涉及存储管理,更具体地,涉及用于管理存储系统(例如,独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)的方法和系统。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。在提高数据存储能力的同时,用户对于数据可靠性和存储系统的响应时间也提出了越来越高的需求。目前,已经开发出了基于冗余磁盘阵列的多种数据存储系统来提高数据的可靠性。当存储系统中的一个或者多个磁盘出现故障时,可以从其他正常操作的磁盘上的数据来恢复出故障磁盘中的数据。
存储系统可以经由存储控制节点来被访问。在典型的激活-激活(Active-Active,也称为双激活)类型的存储系统中,两个存储控制控制节点一起工作以便处理针对存储系统执行数据访问操作,进而提供更高的可用性和更好的性能。每个存储控制节点具有自身的存储器(例如,高速缓存),并且两个存储控制器中的存储器以镜像方式操作。两个存储控制节点可以并行地接收来自外界的数据访问指令,此时如何以更为安全可靠的方式控制存储系统,成为一个研究热点。
发明内容
因而,期望能够开发并实现用于管理存储系统、并且改进存储系统的安全性稳定和的技术方案。期望该技术方案能够与现有的存储系统相兼容,并且在无需针对现有存储系统增加额外硬件设备的情况下以更为安全可靠的方式管理存储系统。
在本发明的一个实施方式中,提供了一种用于管理存储系统的方法,存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,方法包括:针对存储系统中的存储设备,响应于第一控制器成功访问存储设备,向第一通信区写入指示第一控制器与存储设备之间的状态关系的第一状态,第一通信区对于第一控制器可读写并且对于第二控制器可读;从第二通信区读取指示第二控制器与存储设备之间的状态关系的第二状态,第二通信区对于第一控制器可读并且对于第二控制器可读写;以及响应于第二状态指示第二控制器成功访问存储设备,初始化存储系统。
在本发明的一个实施方式中,提供了一种用于管理存储系统的系统,包括:一个或者多个处理器;耦合至一个或者多个处理器中的至少一个处理器的存储器;在存储器中存储的计算机程序指令,当由至少一个处理器执行计算机程序指令时,使得该系统执行一种用于在存储系统中传递消息的方法,该方法包括:在包括第一控制器、第二控制器、第一通信区以及第二通信区的存储系统中,针对存储系统中的存储设备,响应于第一控制器成功访问存储设备,向第一通信区写入指示第一控制器与存储设备之间的状态关系的第一状态,第一通信区对于第一控制器可读写并且对于第二控制器可读;从第二通信区读取指示第二控制器与存储设备之间的状态关系的第二状态,第二通信区对于第一控制器可读并且对于第二控制器可读写;以及响应于第二状态指示第二控制器成功访问存储设备,初始化存储系统。
采用本发明的技术方案,可以以更为安全可靠的方式管理存储系统,进而提高存储系统的稳定性。
附图说明
结合附图并参考以下详细说明,本发明各实施方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本发明的若干实施方式。在附图中:
图1示意性示出了适于实现本发明实施方式的示例性计算系统的框图;
图2A示意性示出了根据一个技术方案的独立磁盘冗余阵列的结构的示意图,图2B示意性示出了根据一个技术方案的独立磁盘冗余阵列的重建过程的示意图;
图3示意性示出了根据一个技术方案的用于管理存储系统的方法的示意图;
图4示意性示出了根据本发明一个实施方式的用于管理存储系统的技术方案的架构图;
图5示意性示出了根据本发明一个实施方式的用于管理存储系统的方法的流程图;
图6示意性示出了根据本发明一个实施方式的用于管理存储系统技术方案的架构图;
图7示意性示出了根据本发明一个实施方式的用于管理存储系统的方法的流程图;
图8示意性示出了根据本发明一个实施方式的存储系统的状态转换的示意图;
图9示意性示出了根据本发明一个实施方式的第一通信区跨越存储系统中的多个存储设备而部署的示意图;
图10示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的技术方案的架构图;
图11示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的方法的流程图;
图12示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的技术方案的架构图;
图13示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的方法的流程图;
图14示意性示出了根据本发明一个实施方式的锁定元数据与第一通信区之间的关系的示意图;
图15示意性示出了根据本发明一个实施方式的用于在存储系统中传递消息的技术方案的架构图;
图16示意性示出了根据本发明一个实施方式的用于在存储系统中传递消息的方法的流程图;
图17示意性示出了根据本发明一个实施方式的第一通信区的数据结构的示意图;
图18示意性示出了根据本发明一个实施方式的跨越RAID阵列中的多个存储设备部署的第一通信区的结构的示意图;
图19示意性示出了根据本发明一个实施方式的用于在存储系统中传递消息的技术方案的架构图;以及
图20示意性示出了根据本发明一个实施方式的用于管理存储系统的装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整的传达给本领域的技术人员。
图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可以并行地操作,用来处理针对存储设备340的不同的访问请求。
在存储系统工作期间,为了确保存储系统中的数据的一致性,在存储系统中设置了内部通信通道330,用于在两个存储控制节点310和320之间传输消息。一旦内部通信通道330出现故障,则两个存储控制节点310和320之间不能彼此进行通信。在存储系统300的创建、初始化、处理数据访问请求以及重建期间,内部通信通道330的故障将会导致存储系统300的混乱。
为了管理包括两个存储控制节点的存储系统,目前已经提出了多种技术方案。在一个技术方案中,通过额外增加更为独立的可靠通信信道,来支持两个存储控制节点之间的通信。然而,此技术方案将会导致额外通信开销,不利于提高存储系统的数据响应效率。在另一个技术方案中,通过设置第三方实体来管理两个存储控制节点。此方式也会导致额外的硬件和软件开销。因而,如何以更为鲁棒并且安全可靠的方式来管理存储系统,成为一个研究热点。
基于上述技术方案中的不足,本发明的一个实施方式提供了一种用于管理存储系统的方法,所述存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,所述方法包括:针对存储系统中的存储设备,响应于所述第一控制器成功访问所述存储设备,向所述第一通信区写入指示所述第一控制器与所述存储设备之间的状态关系的第一状态,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读;从所述第二通信区读取指示所述第二控制器与所述存储设备之间的状态关系的第二状态,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写;以及响应于所述第二状态指示所述第二控制器成功访问所述存储设备,初始化所述存储系统。
图4示意性示出了根据本发明一个实施方式的用于管理存储系统的技术方案的架构图400。如图4所示,存储系统包括两个控制器,即,控制器312和控制器322。并且在存储系统中设置了两个通信区:第一通信区410和第二通信区420。这两个通信区对于两个控制器312和322均可访问,区别在于访问权限不同。以实线示出了可读并且可写的访问权限,例如,控制器312对于第一通信区410可读写,控制器322对于第二通信区420可读写。虚线示出了可读的访问权限,例如,控制器312对于第二通信区420可读,控制器322对于第一通信区410可读。
如图4所示,通过在存储系统中设置对于两个控制器具有不同访问权限的第一通信区和第二通信区,通过两个通信区来传递消息并管理存储系统,进而避免在两个控制器之间建立额外的通信通道的要求。在存储系统的操作期间,控制器312和控制器322可以分别将自己的状态信息写入第一通信区和第二通信区,以便另一控制器读取并进行相应的操作。例如,控制器312可以将自己的状态(第一状态412)写入对自身可读写的第一通信区410,同时控制器312还可以从对自身可读的第二通信区420中读取有关控制器322的状态(第二状态422),以便确定下一步的操作。
在下文中,将参见图5详细描述根据本发明的一个实施方式的方法的具体流程。图5示意性示出了根据本发明一个实施方式的用于管理存储系统的方法的流程图500。应当注意,图5仅仅示意性示出了在存储系统中的一个存储设备处执行的操作的示例,本领域技术人员应当理解,当存储系统中存在多个存储设备时,图5所示的方法可以在多个设备中的每个设备处操作。在此实施方式中,第一通信区和第二通信区可以部署在该存储设备处。
在步骤S510中,响应于所述第一控制器成功访问所述存储设备,向所述第一通信区写入指示所述第一控制器与所述存储设备之间的状态关系的第一状态,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读。在此实施方式中,响应于所述第一控制器成功访问所述存储设备,第一状态可以被设置为“准备就绪(prepared)”。
在步骤S520中,从所述第二通信区读取指示所述第二控制器与所述存储设备之间的状态关系的第二状态,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写。类似于第一状态的内容,第二状态是由第二控制器写入第二通信区的、指示第二控制器与所述存储设备之间的状态关系的信息。例如,当第二控制器已经与存储设备建立访问连接并且等待后续操作时,则该第二状态可以是“准备就绪”。
在步骤S530中,响应于所述第二状态指示所述第二控制器成功访问所述存储设备,初始化所述存储系统。在此步骤中,当第二状态为“准备就绪”时,则可以发起初始化存储系统的操作流程。应当注意,在此实施方式中,第一控制器和第二控制器可以独立地操作,例如,两个控制器可以同时地或者先后地到达“准备就绪”的状态。响应于两者均“准备就绪”而发起初始化操作,如果其中的任一状态并未就绪,则需要等待。
为了防止存储系统处于长期等待,可以利用定时器来设置等待超时周期。具体地,在本发明的一个实施方式中,进一步包括:响应于所述第一控制器成功初始化所述存储设备,在所述第一通信区中设置第一心跳定时器;在所述第一心跳定时器到期之前,周期性地从所述第二通信区读取所述第二状态。
在此实施方式中,可以为每个控制器设置专用的心跳定时器,图6示意性示出了根据本发明一个实施方式的用于管理存储系统技术方案的架构图600。相比于图4所示的存储系统而言,图6还进一步包括:部署在第一通信区410中的第一心跳定时器612、以及部署在第二通信区420中的第二心跳定时器622。在此的第一心跳定时器312可以在控制器312可访问存储设备的情况下周期性地更新,例如,在每秒的间隔更新时间戳。在第一心跳定时器612超时之前,可以周期性地读取第二通信区420中的第二状态422。当第二状态422变为“准备就绪”时,则可以开始初始化操作。
还可以存在另一种情况,在第一心跳定时器612超时之前,控制器312和存储设备之间的连接可能会出现故障,并造成控制器312布不可访问存储设备。则第一状态412将由于第一心跳定时器612的时间戳不再更新而被修改为(未就绪)。此时,即使第二状态422变为“准备就绪”,由于第一状态412是未就绪,因而不能开始初始化操作。
本领域技术人员可以自定义超时的时间间隔(例如,20秒),当定时器到达20秒时如果控制器322还没有准备就绪,则控制器312不再等待并且执行有关超时的进一步操作。应当注意,在此仅以示例性方式示出的心跳定时器的可行的实现方式,本领域技术人员可以根据具体应用环境的需要来设置心跳定时器更新时间戳或者计数的时间间隔、以及心跳定时器的超时时间等。
在本发明的一个实施方式中,进一步包括:响应于所述第一心跳定时器到期,重置所述第一通信区。图7示意性示出了根据本发明一个实施方式的用于管理存储系统的方法的流程图700。首先,在步骤S710中,响应于所述第一控制器成功访问所述存储设备,将第一通信区中的第一状态设置为“就绪”,继而在步骤S720中在第一通信区中设置第一心跳定时器。本领域技术人员可以根据具体应用环境的要求来设置心跳定时器的参数值。
继而在步骤S730中判断是否超时,如果定时器超时,则操作流程前进至步骤S760并且重置第一通信区,此时存储系统的创建过程失败,并且存储系统可以恢复到最初的状态并且重新进行下一轮的创建工作。当步骤S730的判断结果为“否”时,则可以周期性地检查第二通信区中的第二状态的值,当第二状态变为“准备就绪”时,则操作步骤前进至S750,发起初始化存储系统的操作。应当注意,图7仅仅示意性示出了有关于第一控制器的操作的流程,对于第二控制器也可以执行相应的操作。
在本发明的一个实施方式中,所述存储系统是包括多个存储设备的独立磁盘冗余阵列,以及所述方法进一步包括:针对所述多个存储设备中的每个存储设备,响应于与每个存储设备相关联的第二状态指示所述第二控制器成功访问所述每个存储设备,初始化所述存储系统。
当存储系统是RAID阵列时,则需要针对该RAID阵列中的每个存储设备(例如,存储盘)执行上文所述的方法。应当注意,在本发明的实施方式中,可以从创建配置文件中读取创建RAID所需的各种配置参数,例如,存储系统中包括的存储设备的个数、存储设备的标识符等等。
在一个示例中,假设在创建配置文件中定义了RAID阵列包括5个存储盘,并且每个存储盘的标识符分别为210A、212A、214A、216A以及218A(参见图2A所示),则此时分别需要针对每个盘执行上述操作。例如,假设首先第一控制器已经成功访问了5块存储盘,并且将与5块盘相关联的第一状态分别设置为“准备就绪”,则此时需要等待第二控制器针对5块存储盘写入的第二状态都变为“准备就绪”时,才能发起将RAID阵列初始化的操作。在给定的时间段内,如果5块存储盘中的任一一块没有准备就绪(例如,由任一控制器访问存储盘210A失败),则创建RAID阵列的过程失败。
应当注意,由于在本发明的实施方式中采用设置在存储系统中的存储设备上的共享存储区(例如,第一和第二通信区)来作为在第一和第二控制器之间传输信息的中介,因而,各个控制器对于存储设备的访问状态将会影响在第一和第二控制器之间传输信息的方式。在下文中将首先描述基于控制器与存储设备之间的可能的访问状态而定义的存储系统的状态。
在常规的RAID存储系统中,可以将存储系统的状态划分为:恢复(recovering)、激活(active)、降级(degraded)和失效(failed)。由于依靠共享存储区来管理RAID存储系统,因而在本发明的各个实施方式中存储系统的状态将更为复杂并且包括如下状态。
恢复状态:该状态是指RAID分组中的全部存储设备对于两个控制器而言均为“在线”,并且RAID分组正在初始化或者重建。
激活状态:该状态是指RAID分组状态对于两个控制器都是激活的,并且RAID分组中的全部存储设备对于两个控制器均可访问。
降级状态:该状态是指RAID分组中的同一个存储设备对于两个控制器均为“损坏(broken)”。
失效状态:该状态是指RAID分组对于两个控制器而言均为失效。
激活/降级状态:该状态是指RAID分组对于一个控制器为激活状态、而对于另一控制器为降级状态。
激活/降级状态:该状态是指RAID分组对于一个控制器为激活状态、而对于另一控制器为降级状态。
激活/失效状态:该状态是指RAID分组对于一个控制器为激活状态、而对于另一控制器为失效状态。
降级/失效状态:该状态是指RAID分组对于一个控制器为恢复状态、而对于另一控制器为失效状态。
应当注意,尽管在RAID存储系统存在上述8个内部状态,对于外部设备而言,RAID存储系统仍然呈现出4个状态。例如,当内部状态为激活时、激活/降级、或者激活/失效时,外部状态均为激活;当内部状态为恢复、或者恢复/失效时,外部状态均为恢复;当内部状态为降级、或者降级/失效时,外部状态均为降级;而当内部状态为失效时,外部状态为失效。
为了便于下文的描述,首先定义控制器的状态如下:
SP-A:将RAID分组中处于激活状态的控制器称为SP-A;
SP-D:将RAID分组中处于降级状态的控制器称为SP-D;
SP-R:将RAID分组中处于恢复状态的控制器称为SP-R;
SP-F:将RAID分组中处于失效状态的控制器称为SP-D。
在下文中将参见图8详细描述RAID存储系统的内部状态之间的转换关系。具体地,图8示意性示出了根据本发明一个实施方式的存储系统的状态转换的示意图800。应当注意,在图8中的附图标记810、820、…、880分别表示上文所述的存储系统的8个内部状态,而以附图标记S1、S2、…、S14所示出的箭头则表示在各个状态之间的转换关系。在下文中将参见图8描述各个转换关系,其中以实线示出的箭头表示存储系统的状态“变好”,而以虚线示出的箭头表示存储系统的状态“变坏”:
S1:在创建RAID分组之后,RAID分组将启动初始化过程,并且此时RAID分组进入恢复状态810。
S2:在初始化结束之后,RAID分组的状态从恢复状态810转移至激活状态820。
S3:在激活状态820下,如果一个盘设备对于SP-A而言离线,则状态将转换至激活/降级830。
S4:在激活/降级状态830下,如果相同的盘设备对于SP-A而言离线,则状态将转换至降级状态840。
S5:在激活/降级状态830下,如果另一盘设备对于SP-D而言离线,则状态将转换至激活/失效状态860。
S6:在激活/降级状态830下,如果另一盘设备对于SP-A而言离线,则意味着不同的盘设备对于两个控制器而言离线,此时状态将转换至降级/失效850。
S7:在降级状态840下,如果一个盘对于SP-D而言离线,则状态将转移至降级/失效850。
S8:在激活/失效状态860下,如果一个盘对于SP-A而言离线,则状态将转移至降级/失效850。
S9:在降级/失效状态840下,如果另一盘对于SP-D而言离线,则状态将转移至失效880,并且在此状态下将会丢失数据。
S10:在降级状态840下,如果向RAID分组中加入新的盘,则RAID分组将开始重建,此时状态将转移至恢复810。
S11:在激活/降级状态830下,如果对于SP-D而言离线的盘被恢复,则状态将转移至激活820。
S12:在激活/失效状态860下,如果对于SP-D而言离线的盘全部恢复,则状态将转移至激活820。
S13:在降级/失效状态850下,如果向RAID分组中加入新的盘,则SP-D将开始重建RAID分组,状态将转移至恢复/失效状态870。
S14:在恢复/失效状态870下,在重建结束之后,状态将转移至激活/失效860。
在本发明的一个实施方式中,所述存储系统包括多个存储设备,以及所述第一通信区域跨越所述多个存储设备而部署。在本发明的一个实施方式中,所述存储系统包括多个存储设备,以及所述第二通信区域跨越所述多个存储设备而部署。在此实施方式中,存储系统可以包括多个存储设备。具体地,第一、第二通信区可以跨越多个存储设备以便容纳针对每个存储区域的状态数据和心跳定时器数据。
图9示意性示出了根据本发明一个实施方式的第一通信区跨越存储系统中的多个存储设备而部署的示意图900。如图9所示,第一通信区410跨越RAID阵列而部署。由于存储设备210A、212A、214A、216A以及218A中包括冗余的存储设备,因而当存储系统中的一个存储设备出现故障时,可以通过其他存储设备中的数据来恢复第一通信区410中的有关各个存储区域的状态数据和心跳定时器数据。以此方式,当一个存储设备例如218A出现故障时,还可以从其他四个存储设备中恢复出第一通信区410中的数据(例如参见图2B所示的恢复过程)。在此实施方式中,可以以更加安全可靠的方式来管理存储系统。
应当注意,尽管在上文中参见图9仅示意性示出了第一通信区410跨越RAID阵列中的多个存储设备存储,并且可以从正常运行的存储设备中恢复第一通信区410中的数据的情况。在其他实施方式中,第二通信区也可以以类似于第一通信区类似的方式部署。
在下文中将参见具体示例描述存储系统的初始化、重建以及处理来自外部主机的数据访问操作的具体示例。在本发明的一个实施方式中,初始化所述存储系统包括:将与所述多个存储设备中的一个存储设备的相关联的第一状态设置为“恢复”,以及将与所述多个存储设备中的其他存储设备的第一状态设置为“激活”;基于第一状态为“激活”的所述其他存储设备中的数据,恢复第一状态为“恢复”的所述存储设备中的数据;以及将所述第一状态从“恢复”更新为“激活”。
继续上文的示例,在包括5个存储盘的RAID分组中,当5个存储盘对于第一、第二控制器都为在线状态(即,针对5个存储盘的第一、第二状态都为“准备就绪”)时,则启动初始化操作。此时5个存储盘的状态是相同的,因而可以从中选出任意一个存储盘(例如第1个存储盘)来作为冗余盘。此时,可以将所选择的第1个存储盘的第一状态设置为“恢复”,并将其他存储盘的第一状态设置为“激活”。
在后续的操作步骤中,认为“激活”的盘(即,第2-5个存储盘)中的数据是原始数据,因而可以基于这些原始数据来计算校验值,并且将校验值写入“恢复”状态的存储盘。作为一个例子,在RAID分组的初始化期间,可以向4个“激活”的存储盘中写入“0”,此时4个激活的存储盘中的数据全部为“0”。继而,可以将基于“0”计算校验值写入第1个存储盘。
在本发明的上下文中,在针对RAID阵列的初始化和重建期间执行的操作是相同的,即恢复操作。在下文中将详细描述恢复操作的具体步骤。在恢复操作中,为了避免存储系统中出现数据不一致的情况,需要锁定存储系统中的存储设备。可以将存储系统中的存储设备划分区域,并且针对每个存储区域来逐一执行恢复操作。
在本发明的一个实施方式中,基于所述第一状态为“激活”的所述其他存储设备中的数据,恢复所述第一状态为“恢复”的所述存储设备中的数据包括:针对跨越所述多个存储设备的存储区域,锁定所述存储区域;以及在所述存储区域中,基于所述第一状态为“激活”的所述其他存储设备中的数据,恢复所述第一状态为“恢复”的所述存储设备中的数据。
在本发明的一个实施方式中,进一步包括:响应于所述多个存储设备中的一个存储设备故障,向所述存储系统中加入后备存储设备,将与所述后备存储设备相关联的第一状态更新为“恢复”;基于所述第一状态为“激活”的所述其他存储设备中的数据,恢复所述第一状态为“恢复”的所述存储设备中的数据;以及将与所述后备存储设备相关联的所述第一状态从“恢复”更新为“激活”。
在此实施方式中,恢复过程类似于常规的RAID阵列中的恢复过程,不同之处在于,在此锁定存储区域的操作同样是基于上文所述的第一通信区和第二通信区来实现的。
在此实施方式中,可以以RAID阵列中的条带(stripe)为单位,来逐个条带地执行恢复操作。假设存储系统中包括10个条带,则在恢复期间可以首先锁定第一条带,并且基于上文所述的第2-5个存储设备中的第一条带的数据,来计算校验值并且将该校验值写入第1个存储设备的第一条带的相应位置处。在完成针对第一条带的操作后,对第一条带解锁,继而按照类似于第一条带的方式,处理第二条带直到完成针对全部10个条带的处理为止。
类似于上文参见图4描述的在第一通信区和第二通信区中分别写入第一状态(描述第一控制器与存储设备之间的访问关系)和第二状态(描述第二控制器与存储设备之间的访问关系)的示例,在本发明的一个实施方式中,可以通过在第一、第二通信区中设置第一、第二锁定标记的方式,来在第一、第二控制器之间传递锁定消息。
在本发明的一个实施方式中,针对跨越所述多个存储设备的存储区域,锁定所述存储区域包括:向所述第一通信区写入与所述存储区域相关联的第一锁定标记;从所述第二通信区读取与所述存储区域相关联的第二锁定标记;以及响应于所述第二锁定标记指示所述存储区域未被所述第二控制器锁定,由所述第一控制器锁定所述存储区域。
图10示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的技术方案的架构图1000。如图10所示,存储系统包括两个控制器,即,控制器312和控制器322。并且在存储系统中设置了两个通信区:第一通信区410和第二通信区420。这两个通信区对于两个控制器312和322可访问,区别在于访问权限不同。以实线示出了可读并且可写的访问权限,例如,控制器312对于第一通信区410可读写,控制器322对于第二通信区420可读写。虚线示出了可读的访问权限,例如,控制器312对于第二通信区420可读,控制器322对于第一通信区410可读。
如图10所示,通过在存储系统中设置对于两个控制器具有不同访问权限的第一通信区和第二通信区,通过两个通信区来传递消息,进而避免在两个控制器之间建立额外的通信通道来传递锁定消息的需要。响应于控制器312接收到针对一个存储区域进行访问的访问请求,可以向第一通信区410中写入锁定标记1012,以指示该控制器312期望锁定与数据访问请求相关联的存储区域。在另一控制器322处,响应于接收到针对该存储区域进行访问的访问请求时,可以向第二通信区420中写入锁定标记1022,以指示自己期望锁定与数据访问请求相关联的存储区域。
此时,控制器312可以通过读取第二通信区420中的锁定标记1022,来确定期望访问的存储区域是否已经被控制器322锁定。如果锁定标记1022指示该存储区域未被控制器322锁定,则控制器312可以锁定该存储区域,并且执行相应的数据访问操作。
在下文中将参见图11详细描述本发明的锁定方法的具体步骤。图11示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的方法的流程图1100。首先,在步骤S1110中,响应于在第一控制器处接收到针对所述存储区域的数据访问请求,向所述第一通信区写入与所述存储区域相关联的第一锁定标记,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读。在此实施方式中,通过在存储系统中分配对于第一和第二两个控制器均可访问的共享通信区,来作为消息传递的中介,进而避免了在两个控制器之间设立额外的通信通道来传输锁定消息的开销。
在步骤S1120中,从所述第二通信区读取与所述存储区域相关联的第二锁定标记,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写。在此实施方式中,两个控制器都可以向与自身相关联的通信区中写入锁定标记,以指示自己期望锁定该存储区域。同时,两个控制器可以分别从由另一控制器可读写的通信区中读取描述另一控制器对于存储区域的锁定状态的锁定标记。以此方式,可以确定在两个控制器之间是否出现了需要同时锁定和访问同一存储区域的“冲突”,进而可以确定哪个控制器获得访问权限。
在步骤S1130中,响应于所述第二锁定标记指示所述存储区域未被所述第二控制器锁定,由所述第一控制器锁定所述存储区域。在此步骤中,第一控制器锁定存储区域是通过第一通信区中的第一锁定标记来指示的。例如,第一锁定标记被设置为“锁定”。
在此示例中,通过向第一、第二通信区中写入锁定标记,期望锁定存储区域的控制器可以通过读取对方控制器所写入的锁定标记来确定期望访问的存储区域是否已经被对方锁定。以此方式,不必在第一控制器和第二控制器之间建立专用的通信通道,而是可以基于在存储系统中现有的通信通道(例如,控制器与存储设备如盘设备之间的数据传输通道)来完成锁定消息的传送。
在本发明的一个实施方式中,为了避免存储区域长期被一个控制器锁定导致另一控制器不能访问的情况,在还可以针对存储系统中的存储区域设置优先级,并且规定具有较高优先级的控制器具有优先的访问权限。
图12示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的技术方案的架构图1200。图12所示的架构类似于图10的内容,不同之处在于图12进一步包括优先级。具体地,在第一通信区410中包括优先级1212,以指示控制器312对于存储区域的访问优先级;以及在第二通信区420中包括优先级1222以指示控制器322对于存储区域的访问优先级。
在本发明的一个实施方式中,响应于所述第二锁定标记指示所述存储区域已被所述第二控制器锁定,从所述第一通信区中读取与所述第一锁定标记相关联的第一优先级,以及从所述第二通信区中读取与所述第二锁定标记相关联的第二优先级;以及基于比较所述第一优先级和所述第二优先级来锁定所述存储区域。
在本发明的一个实施方式中,基于比较所述第一优先级和所述第二优先级来锁定所述存储区域包括:响应于所述第一优先级低于所述第二优先级,由所述第一控制器对所述存储区域解锁;以及将所述第一锁定标记更新为“未锁定”。
继续上文的示例,可以在初始时或者响应于其他的条件而触发,来设置优先级的具体数值。例如,在存储系统启动时,可以将第一优先级设置为1000,而将第二优先级设置为1001。在此情况下,由于第一控制器具有较低的优先级(1000<1001),因而此时第一控制器不能访问期望访问的存储区域。换言之,第一控制器抢锁失败,并且需要将在先前步骤中设置的第一锁定标记更新为“未锁定”。
在本发明的一个实施方式中,基于比较所述第一优先级和所述第二优先级来锁定所述存储区域包括:响应于所述第一优先级高于所述第二优先级,由所述第二控制器对所述存储区域解锁;以及将所述第二锁定标记更新为“未锁定”。继续上文示例,例如可以将第一优先级设置为1001,而将第二优先级设置为1000。在此情况下,由于第一控制器具有较高的优先级(1001>1000),因而此时第一控制器可以访问期望访问的存储区域。换言之,第二控制器抢锁失败,并且需要将所述第二锁定标记更新为“未锁定”。
图13示意性示出了根据本发明一个实施方式的用于锁定存储系统中的存储区域的方法的流程图1300。在步骤S1310中,比较第一优先级与第二优先级的大小。响应于第一优先级小于第二优先级,操作流程前进至步骤S1320,并且在此步骤中,由第一控制器对存储区域解锁并将第一锁定标记更新为“未锁定”。继而,在步骤S1322中,由于第二控制器具有优先访问权限,因而可以由第二控制器对存储区域进行访问。
此外,响应于第一优先级大于第二优先级,操作流程前进至步骤S1330,并且在此步骤中,由第二控制器对存储区域解锁并将第二锁定标记更新为“未锁定”。继而,在步骤S1322中,由于第一控制器具有优先访问权限,因而可以由第一控制器对存储区域进行访问。在本发明的上下文中,对于特定存储区域而言,具有较高优先级的控制器可以优先地访问该特定存储区域:并且具有较低优先级的控制器需要等待具有较高优先级的控制器对存储区域解锁后,才能访问该存储区域。
在本发明的一个实施方式中,向所述第一通信区写入第一锁定标记包括:基于所述存储系统中包括的锁定元数据确定与所述存储区域相关联的锁定标记的地址;以及向所述地址处写入所述第一锁定标记以指示所述存储区域已被所述第一控制器锁定。
在此实施方式中,在存储系统中可以设置锁定元数据,以用于描述将与存储区域相关联的锁定标记存储在什么位置。本领域技术人员例如可以采用查找表的方式来实现。可以在第一通信区中分配专用的存储空间,来用于存储与特定存储区域相关联的第一、第二锁定标记和第一、第二优先级。图14示意性示出了根据本发明一个实施方式的锁定元数据与第一通信区之间的关系的示意图1400。
如图14所示,可以基于存储区域的ID来在锁定元数据1410中查找相对应的地址。该地址指向第一通信区410中的存储锁定标记的空间(例如锁定标记1012所在的地址)。具体地,可以采用如下文表1所示的数据结构来表示锁定元数据。
表1锁定元数据的数据结构
序号 存储区域ID 第一锁定标记的地址 第二锁定标记的地址
1 存储区域1 Address-flag-1 Address-flag-2
2 存储区域2
在其他实施方式中,本领域技术人员可以根据具体应用环境的需求来定义以何种方式存储锁定元数据,只要该方式能够定义存储区域的ID和具体地址映射关系即可。例如,可以采用哈希算法的方式来实现。哈希表(Hash table,也叫散列表)是根据关键码值(Keyvalue)而直接进行访问的数据结构,该算法通过把关键码值映射到表中一个位置来访问,以加快查找的速度。本领域技术人员可以基于哈希算法的一般原理来在本发明的上下文中实现描述存储区域ID和地址之间的关系的哈希算法。在此不再赘述。另外,尽管表1中仅示出了两个地址字段,在其他的实施方式中,还可以在表1中包括指向第一优先级和第二优先级的地址的字段。
在本发明的一个实施方式中,进一步包括:响应于所述第一控制器针对所述存储区域的数据访问请求已经被完成,将所述第一优先级更新为低于所述第二优先级。在本发明的一个实施方式中,进一步包括:响应于所述第二控制器针对所述存储区域的数据访问请求已经被完成,将所述第二优先级更新为低于所述第一优先级。
在此更新具有较高优先级的控制器的优先级的目的在于,防止具有较高优先级的控制器长期锁定存储区域。因而,当一个控制器成功锁定并且访问存储区域之后,可以降低优先级的数值并使得对方控制器具有较高的优先级。以此方式,针对存储区域的后续访问中,该对方控制器则具有较高的优先级并且具有优先访问权限。继而,当对方控制器在成功访问存储区域之后,也会将优先级降低。在此实施方式中,通过交替地更新优先级,两个控制器可以交替地获得对于存储区域的访问权限。
继续上文示例,假设第一优先级为1001并且第二优先级为1000。当第一控制器成功执行了锁定、数据存取并且释放了锁定之后,可以将第一优先级从1001降低至999。以此方式,在之后的访问中,第二控制器则具有较高优先级并且将优先地获得访问权限。
在其他实施方式中,还可以设置其他的优先级更新策略,例如,假设第一控制器被配置用于处理多个紧急的优先访问请求,则此时可以在第一控制器已经处理该多个优先访问请求之后,再将第一优先级更新为低于第二优先级。
在本发明的一个实施方式中,所述存储系统包括多个存储设备,以及所述第一通信区域跨越所述多个存储设备而部署。在本发明的一个实施方式中,所述存储系统包括多个存储设备,以及所述第二通信区域跨越所述多个存储设备而部署。在此实施方式中,存储系统可以包括多个存储设备,并且该多个存储设备可以是普通的盘设备并且以阵列的方式提供更大的存储空间。具体地,第一通信区可以跨越多个存储设备来提供更大的通信区以便容纳针对更多存储区域的锁定标记和优先级数据。
在本发明的一个实施方式中,所述存储系统是独立磁盘冗余阵列,以及所述方法进一步包括:响应于所述多个存储设备中的一个存储设备出现故障,从所述多个存储设备中的其他存储设备恢复所述第一通信区中的数据。
继续上文的示例,假设第一通信区跨越包括5个存储设备的RAID阵列而部署。由于存储设备中包括冗余的存储设备,因而当存储系统中的一个存储设备出现故障时,可以通过其他存储设备中的数据来恢复第一通信区中的有关各个存储区域的锁定标记和优先级数据。以此方式,当一个存储设备出现故障时,还可以从其他四个存储设备中恢复出第一通信区中的数据(例如参见图2B所示的恢复过程)。在此实施方式中,可以以更加安全可靠的方式来在两个控制器之间传递锁定信息。
在本发明的一个实施方式中,所述存储区域是所述存储系统中的一个或者多个条带。应当注意,在本发明中并不限定与数据访问操作相关联的存储区域的大小。而是,在不同的实施方式中,存储区域的大小可以是相同的或者不同的。本领域技术人员可以根据具体应用环境的需要,来设置不同粒度的锁定机制。
在下文中将描述RAID分组在8个不同状态下的数据访问(读写)操作的详细处理。
当RAID分组出于激活状态时,如果两个控制器向相同的条带写入数据,则将导致冲突问题。因而类似于常规的RAID分组,在写入前需要锁定条带。另一方面,由于读操作仅读取盘设备中的数据,而并不会读取校验值,因而读操作不会产生数据冲突,并且可以在无需锁定的情况下直接处理。
当RAID分组处于恢复状态和降级状态时,如果从非激活的盘读数据,则需要从其他盘中的数据计算该非激活盘中的数据。此时,如果另一控制器正在针对相同的条带执行写入,则将产生冲突。此时,在恢复状态和降级状态下执行读取操作时,需要锁定被读取的条带。
当RAID处于激活/失效、降级/失效、或者恢复/失效状态时,仅有一个控制器可以访问RAID分组,因而在读写操作之前都不需要锁定。
当RAID分组处于失效状态时,RAID分布不可访问。
当RAID分组处于激活/降级状态时,RAID分组可以由两个控制器访问。并且对于数据访问操作需要执行特殊的操作流程,具体描述如下。
在本发明的一个实施方式中,进一步包括:响应于所述第一状态指示所述第一控制器不能访问所述多个存储设备中的离线存储设备,响应于第一控制器接收到写请求,向所述多个存储设备中的所述第一控制器可访问的在线存储设备写入与所述写请求相关联的数据;以及向所述第一通信区写入通知消息以通知所述第二控制器从所述在线存储设备向所述离线存储设备同步数据。
在此实施方式中,假设RAID分组包括5个存储盘,并且第一控制器仅能访问全部5个存储盘中的四个(例如,可以访问第2-5个存储盘,不能第1个存储盘对于第二控制器为离线),第二控制器可以正常访问全部5个存储盘。此时,第一控制器在接收到写请求时,可以向第2-5个存储盘中写入与请求相关联的数据(即,仅写入数据而并不写入校验值),继而,通过在第一通信区写入通知消息的方式,来通知第二控制器。
在本发明的一个实施方式中,进一步包括:响应于所述第二控制器从所述第一通信区中读取所述通知消息,基于被写入所述在线设备的与所述写请求相关联的数据,计算校验数据;以及向所述离线设备写入所述校验数据。
在此实施方式中,由于第一通信区中的通知消息对于第二控制器是可读的,该第二控制器在读取该通知消息后,即可知晓自己应当基于第2-5个存储盘中的数据计算校验值。进一步,由于全部5个存储盘对于第二控制器均可访问,第二控制器可以将计算所得的校验值写入第1个存储盘。
应当注意,在本发明的上下文中,可以以任何方式来从第一控制器向第二控制器传输上述通知消息。类似于上文参见图4描述的在第一通信区和第二通信区中分别写入第一状态(描述第一控制器与存储设备之间的访问关系)和第二状态(描述第二控制器与存储设备之间的访问关系)的示例,在本发明的一个实施方式中,可以通过在第一、第二通信区中存储消息和地址指示符的方式,来在第一、第二控制器之间传递通知消息。
在本发明的一个实施方式中,响应于接收到将要从所述第一控制器向所述第二控制器传递的消息,向所述第一通信区写入所述消息,;以及向所述第二通信区中写入地址指示符,所述地址指示符用于指示由所述第二控制器从所述第一通信区中读取所述消息的地址。
图15示意性示出了根据本发明一个实施方式的用于在存储系统中传递消息的技术方案的架构图1500。如图15所示,存储系统包括两个控制器,即,控制器312和控制器322。并且在存储系统中设置了两个通信区:第一通信区410和第二通信区420。这两个通信区对于两个控制器312和322均可访问,区别在于访问权限不同。以实线示出了可读并且可写的访问权限,例如,控制器312对于第一通信区410可读写,控制器322对于第二通信区420可读写。虚线示出了可读的访问权限,例如,控制器312对于第二通信区420可读,控制器322对于第一通信区410可读。
如图15所示,通过在存储系统中设置对于两个控制器具有不同访问权限的第一通信区和第二通信区,通过两个通信区来传递消息,进而避免在两个控制器之间建立额外的通信通道的要求。控制器312可以将期望传送给控制器322的消息1512写入第一通信区410,并且将指向该消息1512在第一通信区410中的地址的地址指示符1522写入第二通信区420。以此方式,控制器322可以获取地址指示符1522并且经由该地址指示符1522来从第一通信区410中获取消息1512。
在下文中,将参见图16详细描述根据本发明的一个实施方式的方法的具体流程。图16示意性示出了根据本发明一个实施方式的用于在存储系统中传递消息的方法的流程图1600。在步骤S1610中,在包括第一控制器、第二控制器、第一通信区以及第二通信区的存储系统中,响应于接收到将要从所述第一控制器向所述第二控制器传递的消息,向所述第一通信区写入所述消息,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可。在步骤S1620中,向所述第二通信区中写入地址指示符,所述地址指示符用于指示由所述第二控制器从所述第一通信区中读取所述消息的地址,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写。
在此示例中,通过向第一通信区写入消息,并且向第二通信区写入该消息的地址指示符,使得第二控制器可以经由该地址指示符来从第一通信区中读取消息。以此方式,不必在第一控制器和第二控制器之间建立专用的通信通道,而是可以基于在存储系统中现有的通信通道来完成消息的传送。
在本发明的一个实施方式中,可以在存储系统中包括的用于存储数据的存储设备(例如,存储盘或者存储盘阵列)中部署上文所述的第一通信区和第二通信区。仅以单一的存储盘作为存储设备的示例,可以在该存储盘中分配专用存储区域来作为第一通信区和第二通信区。在具有两个访问端口(例如,第一控制器和第二控制器)的存储系统中,由于两个控制器均被连接到存储系统中的存储盘,因而可以借助于控制器和存储盘之间的现有数据通道来实现消息的传输。以此方式,不必在两个控制器之间建立专用通信通道,因而也避免了由于专用通信通道的故障而导致的“脑裂”问题。
在本发明的一个实施方式中,响应于已经向第二通信区中写入了地址指示符,可以向第二控制器发送中断消息,以通知第二控制器在第一通信区中的消息已经准备就绪以便被读取。在本发明的一个实施方式中,本领域技术人员还可以基于具体应用环境的需求,以其他方式来触发第二控制器读取消息。
在本发明的一个实施方式中,向所述第一通信区写入所述消息包括:根据所述第一通信区中的元数据,确定所述第一通信区的状态;以及响应于所述状态指示所述第一通信区未满,向所述第一通信区写入所述消息。
本领域技术人员可以自定义第一通信区的位置、大小和内部的组织方式。例如,可以以元数据来描述第一通信区中的用于存储消息的地址。由于第一通信区的大小可以是固定的,因而在写入消息之间可以判断该第一通信区中是否还存在可用的存储空间用于写入新的当习,当第一通信区未满时可以向其中写入消息,并且在第一通信区已满的情况下,可以执行等待。
本领域技术人员可以采用现有技术已知的或者将在未来开发的技术来确定第一通信区是否已满。例如,假设第一通信区中仅有存储一个消息的空间,则此时元数据可以是指向该存储空间的指针。可以在元数据中设置标记来指示该存储空间是否已经存储有消息,进而基于该标记来确定第一通信区是否已满。又例如,假设第一通信区中具有可以存储多个消息的空间,则可以以队列方式来组织该多个空间并且以元数据来表示队列的头指针,并基于有关队列的各种指针运算来确定第一通信区是否已满。
在本发明的一个实施方式中,向所述第一通信区写入所述消息进一步包括:基于所述第一通信区中的所述元数据,确定向所述第一通信区写入所述消息的可用地址;以及向所述可用地址处写入所述消息。在此实施方式中,由于元数据可以描述第一通信区中的可用地址,因而可以首先基于元数据确定可用地址,继而向该可用地址处写入消息。
在本发明的一个实施方式中,所述第一通信区包括消息队列,所述第一通信区中的所述元数据包括所述消息队列的头指针;以及所述方法进一步包括:响应于向所述可用地址处写入所述消息,更新所述头指针以指示用于向所述第一通信区写入消息的另一可用地址。
在此实施方式中示出了第一通信区中包括用于存储多个消息的消息队列的情况。例如,在此的头指针可以指向当前可用的存储地址,并且在需要传输消息时可以直接向该头指针指向的位置处写入消息,并且在写入消息之后将头指针指向下一个可用地址。又例如,头指针还可以指向消息队列中的最近被写入的消息,此时则需要首先基于头指针确定可用地址再向可用地址写入消息,继而将头指针指向当前新写入的消息。
在本发明的一个实施方式中,所述地址指示符包括所述消息队列的尾指针,以及所述方法进一步包括:响应于由所述第二控制器从所述尾指针处读取所述消息,由所述第二控制器更新所述尾指针以指向另一消息。当采用消息队列存储消息时,可以通过头指针和尾指针来定义消息队列。具体地,图17示意性示出了根据本发明一个实施方式的第一通信区1700的数据结构的示意图。
第一通信区1700可以包括用于存储多个消息的存储空间,其中阴影区域示出了消息队列1710的位置,并且空白区域示出了第一通信区1700中的其他可用的存储空间。在此示例中,头指针1720指示消息队列中的第一个未被第二控制器读取的消息,而尾指针1730指向最后一个未被第二控制器读取的消息。当希望从第一控制器向第二控制器传输新的消息时,可以首先基于头指针1720来确定当前的消息头的位置,并且选择与消息头相邻的存储空间1740来存储新的消息,继而将头指针1720向前移动一个位置并指向存储空间1740。第二控制器从尾指针1730的位置来读取消息,例如当已经读取尾指针1730指向的消息之后,尾指针1730向前移动一个位置。
在本发明的一个实施方式中,第一通信区1700中的各个存储空间可以以环形方式组织。例如,在经过一系列操作后,头指针1720可以指向存储空间1740,当以环形方式组织第一通信区1700时,存储空间1750可以是与头指针1720相关联的下一存储空间。另外,当以环形方式组织第一通信区1700时,还可以通过判断头指针1720和尾指针1730的位置关系来判断在第一通信区1700是否已满。
在本发明的一个实施方式中,所述存储系统包括多个存储设备,所述第一通信区跨越所述多个存储设备中的相应的存储区,所述多个存储设备中的相应的存储区以环形方式连接以构成所述第一通信区。例如,存储系统可以包括多个存储设备,并且该多个存储设备可以是普通的盘设备并且以阵列的方式提供更大的存储空间。具体地,第一通信区可以跨越多个存储设备来提供更大的通信区以便容纳更多的消息。
例如,假设在每个存储设备中的通信区可以容纳4个消息,则当存储系统中包括5个存储设备时,这5个存储设备中的通信区可以以首尾相连环形方式构成第一通信区。此时,第一通信区的大小将变为原先的5倍,即,此时第一通信区中可以容纳20个消息。应当注意,在上文中的每个存储设备中的通信区所容纳消息的数量仅仅是示意性的,在其他的实施方式中,本领域技术人员可以根据具体应用环境的需要进行调整。进一步,本领域技术人员还可以根据具体应用环境的需要而调整为每个消息分配的空间的大小,在此不再赘述。
在本发明的一个实施方式中,所述存储系统是独立磁盘冗余阵列,以及所述方法进一步包括:响应于所述多个存储设备中的一个存储设备出现故障,从所述多个存储设备中的其他存储设备恢复所述消息队列中的数据。
具体地,图18示意性示出了根据本发明一个实施方式的跨越RAID阵列中的多个存储设备部署的第一通信区的结构的示意图1800。如图18所示,第一通信区410跨越RAID阵列而部署。例如,以阴影示出的区域为消息队列1710。由于存储设备210A、212A、214A、216A以及218A中包括冗余的存储设备,因而当存储系统中的一个存储设备出现故障时,可以通过其他存储设备中的数据来恢复第一通信区410中的消息队列中的数据。以此方式,即使消息队列1710中还存在未被第二控制器读取的消息,当一个存储设备例如212A出现故障时,还可以从其他四个存储设备中恢复出消息队列1710中的数据,以便第二控制器读取。在此实施方式中,可以以更加安全可靠的方式来在两个控制器之间传递消息。
在本发明的一个实施方式中,第二通信区还包括消息,用于存储从第二控制器向第一控制器发送的消息,以及第一通信区还包括地址指示符,用于指示消息在第二通信区中的地址。以此方式,通过第一通信区和第二通信区,可以在第一控制器和第二控制器之间互相发送消息。
在本发明的一个实施方式中,响应于接收到将要从所述第二控制器向所述第一控制器传递的另一消息,由所述第二控制器向所述第二通信区写入所述另一消息;以及向所述第一通信区中写入另一地址指示符,所述另一地址指示符用于指示由所述第一控制器从所述第二通信区中读取所述另一消息的地址。
应当注意,在本发明中所描述的第一控制器和第二控制器是存储系统中的两个并列的控制器,两者可以具有等同的地位。因而,在上文中以第一控制器为示例描述的各种技术方案还可以在第二控制器上执行。
在本发明的一个实施方式中,提供了一种用于在存储系统中接收消息的方法,所述存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,所述方法包括:从所述第二通信区中读出地址指示符,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写;以及从所述第一通信区中的由所述地址指示符指示的位置处读取消息,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读。
在上述实施方式中记载了第二控制器读取来自第一控制器的消息的过程。具体地,第二控制器从第二通信区中获取地址指示符,继而基于该地址指示符来从第一通信区中读取消息。在本发明的一个实施方式中,当以消息队列来存储消息时,第二控制器已经获取消息后,还可以更新地址指示符的地址,以使得该地址指示符指向另一待读取的消息。
在本发明的一个实施方式中,所述第一通信区包括消息队列,所述存储系统包括至少一个存储设备,所述第一通信区跨越所述至少一个存储设备中的相应的存储区,所述至少一个存储设备中的相应的存储区以环形方式连接以构成所述第一通信区。在此实施方式中,第一通信区可以跨越存储系统中的多个存储设备来以环形方式组织。
应当注意,在本发明中提供了一种基于通信区和第二通信区来管理存储系统、用于锁定存储系统中的存储区域以及在存储系统中传递消息的技术方案。上述技术方案可以单独使用,也可以相互结合地使用。因而,当不同的技术方案相结合时,第一、第二通信区中可以包括不同的部分。
图19示意性示出了根据本发明一个实施方式的用于在存储系统中传递消息的技术方案的架构图1900。具体而言,在第一通信区410中,可以包括用于实现存储系统管理功能的第一状态412和第一心跳定时器612(如虚线框1910所示)。进一步,第一通信区410可以包括用于实现锁定技术方案的锁定标记1012和优先级1212(如虚线框1920所示)。进一步,第一通信区410还可以包括用于在控制器之间传递消息的消息1512、以及地址指示符1522(如虚线框1930所示)。
应当注意,尽管在图19中仅示意性示出了第一通信区410的配置信息,本领域技术人员可以根据第一通信区410来相关联地配置第二通信区的内容。例如,当需要实现用于锁定存储系统中的存储区域的技术方案时,在第一通信区410中可以仅包括如虚线框1920所示的部分,并且在第二通信区中可以相对应地包括用于第二控制器的锁定标记和优先级。
应当注意,尽管在图19中示意性示出了可以同时实现上述三个技术方案的第一通信区410的配置,在其他实施方式中,第一通信区410中还可以仅用于实现一个技术方案所需的数据。还应当注意,在其他的实施方式中,本领域技术人员还可以根据具体应用环境的需要,在第一通信区410中加入用于实现其他技术方案所需的数据。
图20示意性示出了根据本发明一个实施方式的用于管理存储系统的装置的框图2000。具体地,提供了一种用于管理存储装置,包括:写入模块2010,配置用于在包括第一控制器、第二控制器、第一通信区以及第二通信区的存储系统中,针对存储系统中的存储设备,响应于第一控制器成功访问存储设备,向第一通信区写入指示第一控制器与存储设备之间的状态关系的第一状态,第一通信区对于第一控制器可读写并且对于第二控制器可读;读取模块2020,配置用于从第二通信区读取指示第二控制器与存储设备之间的状态关系的第二状态,第二通信区对于第一控制器可读并且对于第二控制器可读写;以及初始化模块2030,配置用于响应于第二状态指示第二控制器成功访问存储设备,初始化存储系统。
在本发明的一个实施方式中,进一步包括:定时模块,配置用于响应于第一控制器成功初始化存储设备,在第一通信区中设置第一心跳定时器;在第一心跳定时器到期之前,周期性地从第二通信区读取第二状态。
在本发明的一个实施方式中,进一步包括:重置模块,配置用于响应于第一心跳定时器到期,重置第一通信区。
在本发明的一个实施方式中,存储系统是包括多个存储设备的独立磁盘冗余阵列,以及初始化模块进一步配置用于:针对多个存储设备中的每个存储设备,响应于与每个存储设备相关联的第二状态指示第二控制器成功访问每个存储设备,初始化存储系统。
在本发明的一个实施方式中,第一通信区跨越多个存储设备中的相应的存储区,以及初始化模块进一步配置用于:将与多个存储设备中的一个存储设备的相关联的第一状态设置为“恢复”,以及将与多个存储设备中的其他存储设备的第一状态设置为“激活”;基于第一状态为“激活”的其他存储设备中的数据,恢复第一状态为“恢复”的存储设备中的数据;以及将第一状态从“恢复”更新为“激活”。
在本发明的一个实施方式中,初始化模块进一步配置用于:针对跨越多个存储设备的存储区域,锁定存储区域;以及在存储区域中,基于第一状态为“激活”的其他存储设备中的数据,恢复第一状态为“恢复”的存储设备中的数据。
在本发明的一个实施方式中,初始化模块进一步配置用于:向第一通信区写入与存储区域相关联的第一锁定标记;从第二通信区读取与存储区域相关联的第二锁定标记;以及响应于第二锁定标记指示存储区域未被第二控制器锁定,由第一控制器锁定存储区域。
在本发明的一个实施方式中,进一步包括通知模块,配置用于:响应于第一状态指示第一控制器不能访问多个存储设备中的离线存储设备,响应于第一控制器接收到写请求,向多个存储设备中的第一控制器可访问的在线存储设备写入与写请求相关联的数据;以及向第一通信区写入通知消息以通知第二控制器从在线存储设备向离线存储设备同步数据。
在本发明的一个实施方式中,进一步包括处理模块,配置用于:响应于第二控制器从第一通信区中读取通知消息,基于被写入在线设备的与写请求相关联的数据,计算校验数据;以及向离线设备写入校验数据。
在本发明的一个实施方式中,进一步包括:恢复模块,配置用于响应于多个存储设备中的一个存储设备故障,向存储系统中加入后备存储设备,将与后备存储设备相关联的第一状态更新为“恢复”;基于第一状态为“激活”的其他存储设备中的数据,恢复第一状态为“恢复”的存储设备中的数据;以及将与后备存储设备相关联的第一状态从“恢复”更新为“激活”。
在本发明的一个实施方式中,提供了一种用于管理存储系统的系统,包括:一个或者多个处理器;耦合至一个或者多个处理器中的至少一个处理器的存储器;在存储器中存储的计算机程序指令,当由至少一个处理器执行计算机程序指令时,使得该系统执行一种用于管理存储系统的方法,该方法包括:在包括第一控制器、第二控制器、第一通信区以及第二通信区的存储系统中,针对存储系统中的存储设备,响应于第一控制器成功访问存储设备,向第一通信区写入指示第一控制器与存储设备之间的状态关系的第一状态,第一通信区对于第一控制器可读写并且对于第二控制器可读;从第二通信区读取指示第二控制器与存储设备之间的状态关系的第二状态,第二通信区对于第一控制器可读并且对于第二控制器可读写;以及响应于第二状态指示第二控制器成功访问存储设备,初始化存储系统。
在本发明的一个实施方式中,方法进一步包括:响应于第一控制器成功初始化存储设备,在第一通信区中设置第一心跳定时器;在第一心跳定时器到期之前,周期性地从第二通信区读取第二状态。
在本发明的一个实施方式中,方法进一步包括:响应于第一心跳定时器到期,重置第一通信区。
在本发明的一个实施方式中,存储系统是包括多个存储设备的独立磁盘冗余阵列,以及方法进一步包括:针对多个存储设备中的每个存储设备,响应于与每个存储设备相关联的第二状态指示第二控制器成功访问每个存储设备,初始化存储系统。
在本发明的一个实施方式中,第一通信区跨越多个存储设备中的相应的存储区,以及初始化存储系统包括:将与多个存储设备中的一个存储设备的相关联的第一状态设置为“恢复”,以及将与多个存储设备中的其他存储设备的第一状态设置为“激活”;基于第一状态为“激活”的其他存储设备中的数据,恢复第一状态为“恢复”的存储设备中的数据;以及将第一状态从“恢复”更新为“激活”。
在本发明的一个实施方式中,基于第一状态为“激活”的其他存储设备中的数据,恢复第一状态为“恢复”的存储设备中的数据包括:针对跨越多个存储设备的存储区域,锁定存储区域;以及在存储区域中,基于第一状态为“激活”的其他存储设备中的数据,恢复第一状态为“恢复”的存储设备中的数据。
在本发明的一个实施方式中,针对跨越多个存储设备的存储区域,锁定存储区域包括:向第一通信区写入与存储区域相关联的第一锁定标记;从第二通信区读取与存储区域相关联的第二锁定标记;以及响应于第二锁定标记指示存储区域未被第二控制器锁定,由第一控制器锁定存储区域。
在本发明的一个实施方式中,方法进一步包括:响应于第一状态指示第一控制器不能访问多个存储设备中的离线存储设备,响应于第一控制器接收到写请求,向多个存储设备中的第一控制器可访问的在线存储设备写入与写请求相关联的数据;以及向第一通信区写入通知消息以通知第二控制器从在线存储设备向离线存储设备同步数据。
在本发明的一个实施方式中,方法进一步包括:响应于第二控制器从第一通信区中读取通知消息,基于被写入在线设备的与写请求相关联的数据,计算校验数据;以及向离线设备写入校验数据。
在本发明的一个实施方式中,方法进一步包括:响应于多个存储设备中的一个存储设备故障,向存储系统中加入后备存储设备,将与后备存储设备相关联的第一状态更新为“恢复”;基于第一状态为“激活”的其他存储设备中的数据,恢复第一状态为“恢复”的存储设备中的数据;以及将与后备存储设备相关联的第一状态从“恢复”更新为“激活”。
附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。

Claims (21)

1.一种用于管理存储系统的方法,所述存储系统包括第一控制器、第二控制器、第一通信区以及第二通信区,所述方法包括:针对存储系统中的存储设备,
响应于所述第一控制器成功访问所述存储设备,向所述第一通信区写入指示所述第一控制器与所述存储设备之间的状态关系的第一状态,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读;
从所述第二通信区读取指示所述第二控制器与所述存储设备之间的状态关系的第二状态,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写;以及
响应于所述第二状态指示所述第二控制器成功访问所述存储设备,初始化所述存储系统。
2.根据权利要求1所述的方法,进一步包括:
响应于所述第一控制器成功初始化所述存储设备,在所述第一通信区中设置第一心跳定时器;
在所述第一心跳定时器到期之前,周期性地从所述第二通信区读取所述第二状态。
3.根据权利要求2所述的方法,进一步包括:响应于所述第一心跳定时器到期,重置所述第一通信区。
4.根据权利要求1-3中的任一项所述的方法,其中所述存储系统是包括多个存储设备的独立磁盘冗余阵列,以及所述方法进一步包括:针对所述多个存储设备中的每个存储设备,
响应于与每个存储设备相关联的第二状态指示所述第二控制器成功访问所述每个存储设备,初始化所述存储系统。
5.根据权利要求4所述的方法,其中所述第一通信区跨越所述多个存储设备中的相应的存储区,以及初始化所述存储系统包括:
将与所述多个存储设备中的一个存储设备的相关联的第一状态设置为“恢复”,以及将与所述多个存储设备中的其他存储设备的第一状态设置为“激活”;
基于第一状态为“激活”的所述其他存储设备中的数据,恢复第一状态为“恢复”的所述存储设备中的数据;以及
将所述第一状态从“恢复”更新为“激活”。
6.根据权利要求5所述的方法,其中基于所述第一状态为“激活”的所述其他存储设备中的数据,恢复所述第一状态为“恢复”的所述存储设备中的数据包括:
针对跨越所述多个存储设备的存储区域,锁定所述存储区域;以及
在所述存储区域中,基于所述第一状态为“激活”的所述其他存储设备中的数据,恢复所述第一状态为“恢复”的所述存储设备中的数据。
7.根据权利要求6所述的方法,其中针对跨越所述多个存储设备的存储区域,锁定所述存储区域包括:
向所述第一通信区写入与所述存储区域相关联的第一锁定标记;
从所述第二通信区读取与所述存储区域相关联的第二锁定标记;以及
响应于所述第二锁定标记指示所述存储区域未被所述第二控制器锁定,由所述第一控制器锁定所述存储区域。
8.根据权利要求5所述的方法,进一步包括:响应于所述第一状态指示所述第一控制器不能访问所述多个存储设备中的离线存储设备,
响应于第一控制器接收到写请求,向所述多个存储设备中的所述第一控制器可访问的在线存储设备写入与所述写请求相关联的数据;以及
向所述第一通信区写入通知消息以通知所述第二控制器从所述在线存储设备向所述离线存储设备同步数据。
9.根据权利要求8所述的方法,进一步包括:响应于所述第二控制器从所述第一通信区中读取所述通知消息,
基于被写入所述在线设备的与所述写请求相关联的数据,计算校验数据;以及
向所述离线设备写入所述校验数据。
10.根据权利要求5所述的方法,进一步包括:
响应于所述多个存储设备中的一个存储设备故障,向所述存储系统中加入后备存储设备,将与所述后备存储设备相关联的第一状态更新为“恢复”;
基于所述第一状态为“激活”的所述其他存储设备中的数据,恢复所述第一状态为“恢复”的所述存储设备中的数据;以及
将与所述后备存储设备相关联的所述第一状态从“恢复”更新为“激活”。
11.一种用于管理存储系统的系统,包括:
一个或者多个处理器;
耦合至所述一个或者多个处理器中的至少一个处理器的存储器;
在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述系统执行一种用于管理存储系统的方法,所述方法包括:在包括第一控制器、第二控制器、第一通信区以及第二通信区的存储系统中,针对存储系统中的存储设备,
响应于所述第一控制器成功访问所述存储设备,向所述第一通信区写入指示所述第一控制器与所述存储设备之间的状态关系的第一状态,所述第一通信区对于所述第一控制器可读写并且对于所述第二控制器可读;
从所述第二通信区读取指示所述第二控制器与所述存储设备之间的状态关系的第二状态,所述第二通信区对于所述第一控制器可读并且对于所述第二控制器可读写;以及
响应于所述第二状态指示所述第二控制器成功访问所述存储设备,初始化所述存储系统。
12.根据权利要求11所述的系统,所述方法进一步包括:
响应于所述第一控制器成功初始化所述存储设备,在所述第一通信区中设置第一心跳定时器;
在所述第一心跳定时器到期之前,周期性地从所述第二通信区读取所述第二状态。
13.根据权利要求12所述的系统,所述方法进一步包括:响应于所述第一心跳定时器到期,重置所述第一通信区。
14.根据权利要求11-13中的任一项所述的系统,其中所述存储系统是包括多个存储设备的独立磁盘冗余阵列,以及所述方法进一步包括:针对所述多个存储设备中的每个存储设备,
响应于与每个存储设备相关联的第二状态指示所述第二控制器成功访问所述每个存储设备,初始化所述存储系统。
15.根据权利要求14所述的系统,其中所述第一通信区跨越所述多个存储设备中的相应的存储区,以及初始化所述存储系统包括:
将与所述多个存储设备中的一个存储设备的相关联的第一状态设置为“恢复”,以及将与所述多个存储设备中的其他存储设备的第一状态设置为“激活”;
基于第一状态为“激活”的所述其他存储设备中的数据,恢复第一状态为“恢复”的所述存储设备中的数据;以及
将所述第一状态从“恢复”更新为“激活”。
16.根据权利要求15所述的系统,其中基于所述第一状态为“激活”的所述其他存储设备中的数据,恢复所述第一状态为“恢复”的所述存储设备中的数据包括:
针对跨越所述多个存储设备的存储区域,锁定所述存储区域;以及
在所述存储区域中,基于所述第一状态为“激活”的所述其他存储设备中的数据,恢复所述第一状态为“恢复”的所述存储设备中的数据。
17.根据权利要求16所述的系统,其中针对跨越所述多个存储设备的存储区域,锁定所述存储区域包括:
向所述第一通信区写入与所述存储区域相关联的第一锁定标记;
从所述第二通信区读取与所述存储区域相关联的第二锁定标记;以及
响应于所述第二锁定标记指示所述存储区域未被所述第二控制器锁定,由所述第一控制器锁定所述存储区域。
18.根据权利要求15所述的系统,所述方法进一步包括:响应于所述第一状态指示所述第一控制器不能访问所述多个存储设备中的离线存储设备,
响应于第一控制器接收到写请求,向所述多个存储设备中的所述第一控制器可访问的在线存储设备写入与所述写请求相关联的数据;以及
向所述第一通信区写入通知消息以通知所述第二控制器从所述在线存储设备向所述离线存储设备同步数据。
19.根据权利要求18所述的系统,所述方法进一步包括:响应于所述第二控制器从所述第一通信区中读取所述通知消息,
基于被写入所述在线设备的与所述写请求相关联的数据,计算校验数据;以及
向所述离线设备写入所述校验数据。
20.根据权利要求15所述的系统,所述方法进一步包括:
响应于所述多个存储设备中的一个存储设备故障,向所述存储系统中加入后备存储设备,将与所述后备存储设备相关联的第一状态更新为“恢复”;
基于所述第一状态为“激活”的所述其他存储设备中的数据,恢复所述第一状态为“恢复”的所述存储设备中的数据;以及
将与所述后备存储设备相关联的所述第一状态从“恢复”更新为“激活”。
21.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至10中的任一项所述的方法的步骤。
CN201610459343.3A 2016-06-22 2016-06-22 用于管理存储系统的方法和系统 Active CN107526536B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610459343.3A CN107526536B (zh) 2016-06-22 2016-06-22 用于管理存储系统的方法和系统
US15/630,863 US10372384B2 (en) 2016-06-22 2017-06-22 Method and system for managing storage system using first and second communication areas

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610459343.3A CN107526536B (zh) 2016-06-22 2016-06-22 用于管理存储系统的方法和系统

Publications (2)

Publication Number Publication Date
CN107526536A true CN107526536A (zh) 2017-12-29
CN107526536B CN107526536B (zh) 2020-11-27

Family

ID=60677570

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610459343.3A Active CN107526536B (zh) 2016-06-22 2016-06-22 用于管理存储系统的方法和系统

Country Status (2)

Country Link
US (1) US10372384B2 (zh)
CN (1) CN107526536B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062515A (zh) * 2018-08-16 2018-12-21 郑州云海信息技术有限公司 一种磁盘管理方法、系统及相关组件
CN109981741A (zh) * 2019-02-26 2019-07-05 启迪云计算有限公司 一种分布式存储系统的维护方法
CN110308865A (zh) * 2018-03-27 2019-10-08 爱思开海力士有限公司 存储器系统、计算系统及其操作方法
CN110413217A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机程序产品
CN110413218A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 用于存储系统中的故障恢复的方法、装置和计算机程序产品
CN113706738A (zh) * 2021-09-01 2021-11-26 陕西航空电气有限责任公司 一种航空交流起动控制器数据记录方法及系统

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109725831B (zh) 2017-10-27 2022-06-10 伊姆西Ip控股有限责任公司 管理存储系统的方法、系统和计算机可读介质
CN110413205B (zh) 2018-04-28 2023-07-07 伊姆西Ip控股有限责任公司 用于向磁盘阵列进行写入的方法、设备和计算机可读存储介质
US11003369B1 (en) * 2019-01-14 2021-05-11 Pure Storage, Inc. Performing a tune-up procedure on a storage device during a boot process
CN111858130A (zh) 2019-04-29 2020-10-30 伊姆西Ip控股有限责任公司 用于拆分盘集的方法、设备和计算机程序产品
WO2020259942A1 (de) * 2019-06-28 2020-12-30 Siemens Mobility GmbH Betriebsverfahren für eine computeranordnung und computeranordnung
CN113590016A (zh) 2020-04-30 2021-11-02 伊姆西Ip控股有限责任公司 用于管理存储盘的方法、电子设备和计算机程序产品

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020188711A1 (en) * 2001-02-13 2002-12-12 Confluence Networks, Inc. Failover processing in a storage system
US20030200398A1 (en) * 2002-04-17 2003-10-23 International Business Machines Corporation Method and apparatus for emulating shared memory in a storage controller
US20040117580A1 (en) * 2002-12-13 2004-06-17 Wu Chia Y. System and method for efficiently and reliably performing write cache mirroring
CN101276302A (zh) * 2007-03-29 2008-10-01 中国科学院计算技术研究所 一种磁盘阵列系统中磁盘故障处理和数据重构方法
CN101387975A (zh) * 2008-10-20 2009-03-18 中科院成都信息技术有限公司 一种磁盘阵列系统
CN101980137A (zh) * 2010-10-19 2011-02-23 成都市华为赛门铁克科技有限公司 廉价磁盘冗余阵列重构方法、装置及系统
CN104965768A (zh) * 2014-01-23 2015-10-07 Dssd股份有限公司 用于存储系统中的服务感知数据放置的方法和系统
US9268625B1 (en) * 2013-09-30 2016-02-23 Emc Corporation System and method for storage management

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790775A (en) * 1995-10-23 1998-08-04 Digital Equipment Corporation Host transparent storage controller failover/failback of SCSI targets and associated units
US5761705A (en) * 1996-04-04 1998-06-02 Symbios, Inc. Methods and structure for maintaining cache consistency in a RAID controller having redundant caches
US6085333A (en) * 1997-12-19 2000-07-04 Lsi Logic Corporation Method and apparatus for synchronization of code in redundant controllers in a swappable environment
US6725331B1 (en) * 1998-01-07 2004-04-20 Emc Corporation Method and apparatus for managing the dynamic assignment resources in a data storage system
US6754750B2 (en) * 2001-05-17 2004-06-22 Chaparral Network Storage Inc. Method for automatically detecting and correcting duplicate controller SCSI ids
GB2395810B (en) * 2002-11-29 2005-09-28 Ibm Multi-requester detection of potential logical unit thrashing and preemptive application of preventive or ameliorative measures
US7228456B2 (en) * 2003-12-01 2007-06-05 Emc Corporation Data recovery for virtual ordered writes for multiple storage devices
US7552291B2 (en) * 2004-01-08 2009-06-23 Dell Products L.P. System and method for subdividing a storage enclosure into separate storage domains
US20070088917A1 (en) * 2005-10-14 2007-04-19 Ranaweera Samantha L System and method for creating and maintaining a logical serial attached SCSI communication channel among a plurality of storage systems
US7536508B2 (en) * 2006-06-30 2009-05-19 Dot Hill Systems Corporation System and method for sharing SATA drives in active-active RAID controller system
JP5738471B2 (ja) * 2011-12-14 2015-06-24 株式会社日立製作所 ストレージ装置とそのメモリ制御方法
US9405488B1 (en) * 2013-06-21 2016-08-02 Emc Corporation System and method for storage management

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020188711A1 (en) * 2001-02-13 2002-12-12 Confluence Networks, Inc. Failover processing in a storage system
US20030200398A1 (en) * 2002-04-17 2003-10-23 International Business Machines Corporation Method and apparatus for emulating shared memory in a storage controller
US20040117580A1 (en) * 2002-12-13 2004-06-17 Wu Chia Y. System and method for efficiently and reliably performing write cache mirroring
CN101276302A (zh) * 2007-03-29 2008-10-01 中国科学院计算技术研究所 一种磁盘阵列系统中磁盘故障处理和数据重构方法
CN101387975A (zh) * 2008-10-20 2009-03-18 中科院成都信息技术有限公司 一种磁盘阵列系统
CN101980137A (zh) * 2010-10-19 2011-02-23 成都市华为赛门铁克科技有限公司 廉价磁盘冗余阵列重构方法、装置及系统
US9268625B1 (en) * 2013-09-30 2016-02-23 Emc Corporation System and method for storage management
CN104965768A (zh) * 2014-01-23 2015-10-07 Dssd股份有限公司 用于存储系统中的服务感知数据放置的方法和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DAVID A. PATTERSON. ET AL: "A case for redundant arrays of inexpensive disks (RAID)", 《JUNE 1988 SIGMOD "88: PROCEEDINGS OF THE 1988 ACM SIGMOD INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110308865A (zh) * 2018-03-27 2019-10-08 爱思开海力士有限公司 存储器系统、计算系统及其操作方法
CN110413217A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机程序产品
CN110413218A (zh) * 2018-04-28 2019-11-05 伊姆西Ip控股有限责任公司 用于存储系统中的故障恢复的方法、装置和计算机程序产品
CN110413218B (zh) * 2018-04-28 2023-06-23 伊姆西Ip控股有限责任公司 用于存储系统中的故障恢复的方法、装置和计算机程序产品
CN110413217B (zh) * 2018-04-28 2023-08-11 伊姆西Ip控股有限责任公司 管理存储系统的方法、设备和计算机程序产品
CN109062515A (zh) * 2018-08-16 2018-12-21 郑州云海信息技术有限公司 一种磁盘管理方法、系统及相关组件
CN109062515B (zh) * 2018-08-16 2021-10-15 郑州云海信息技术有限公司 一种磁盘管理方法、系统及相关组件
CN109981741A (zh) * 2019-02-26 2019-07-05 启迪云计算有限公司 一种分布式存储系统的维护方法
CN113706738A (zh) * 2021-09-01 2021-11-26 陕西航空电气有限责任公司 一种航空交流起动控制器数据记录方法及系统
CN113706738B (zh) * 2021-09-01 2023-06-06 陕西航空电气有限责任公司 一种航空交流起动控制器数据记录方法及系统

Also Published As

Publication number Publication date
US20170371596A1 (en) 2017-12-28
CN107526536B (zh) 2020-11-27
US10372384B2 (en) 2019-08-06

Similar Documents

Publication Publication Date Title
CN107526536A (zh) 用于管理存储系统的方法和系统
CN107870730A (zh) 用于管理存储系统的方法和系统
US20200241613A1 (en) Persistent reservations for virtual disk using multiple targets
US8756345B2 (en) Methods and structure for managing protection information with a serial attached SCSI expander
CN107526537A (zh) 用于锁定存储系统中的存储区域的方法和系统
US8621603B2 (en) Methods and structure for managing visibility of devices in a clustered storage system
US9384065B2 (en) Memory array with atomic test and set
CN101449275B (zh) 用于存储装置的安全访问控制的系统和方法
CN108140009A (zh) 分布式自主式基于rdma的b树键值管理器
US8370416B2 (en) Compatibility enforcement in clustered computing systems
US8793432B2 (en) Consistent distributed storage communication protocol semantics in a clustered storage system
CN103793271A (zh) 用于在镜像卷之间进行切换的方法和系统
CN113485636B (zh) 一种数据访问方法、装置和系统
CN106843749A (zh) 写入请求处理方法、装置及设备
CN107515726A (zh) 用于管理存储设备的方法和系统
US8234447B2 (en) Storage control device for storage system provided with storage device coupled to switch network
CN108733311A (zh) 用于管理存储系统的方法和设备
US20140122744A1 (en) Methods and structure for performing a rebuild of a logical volume with a serial attached scsi expander
CN107526538A (zh) 用于在存储系统中传递消息的方法和系统
US20100107000A1 (en) Active Link Verification For Failover Operations In A Storage Network
US9037772B2 (en) Host based zone configuration
US8898514B2 (en) SAS storage device drive system with failure information table
CN109213427A (zh) 用于管理存储系统的方法和设备
WO2015107650A1 (ja) 複数のサーバを有するサーバシステムの管理システム
CN109561063A (zh) 更新存储域网络中的iSCSI客户端的登录凭证

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
TA01 Transfer of patent application right

Effective date of registration: 20200416

Address after: Massachusetts, USA

Applicant after: EMC IP Holding Company LLC

Address before: Ma Sazhusaizhou

Applicant before: EMC Corp.

GR01 Patent grant
GR01 Patent grant