CN109725827B - 管理存储系统的方法、系统和计算机程序产品 - Google Patents
管理存储系统的方法、系统和计算机程序产品 Download PDFInfo
- Publication number
- CN109725827B CN109725827B CN201711023287.XA CN201711023287A CN109725827B CN 109725827 B CN109725827 B CN 109725827B CN 201711023287 A CN201711023287 A CN 201711023287A CN 109725827 B CN109725827 B CN 109725827B
- Authority
- CN
- China
- Prior art keywords
- data
- destination device
- block
- blocks
- response
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000004590 computer program Methods 0.000 title claims abstract description 20
- 230000004044 response Effects 0.000 claims description 57
- 206010011906 Death Diseases 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 32
- 238000007726 management method Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 7
- 238000013500 data storage Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
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)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开内容的实现涉及管理存储系统的方法、系统和计算机程序产品。具体地,在本公开内容的一个实现方式中,提供了一种用于管理存储系统的方法。该方法包括:将存储系统中包括的多个存储设备中的源设备划分为多个区块;将多个区块中的数据拷贝至目的地设备;基于多个区块中的区块中的数据是否被拷贝至目的地设备,确定多个区块中的区块的状态;以及基于区块的状态来管理针对区块的访问请求。在本公开内容的其他实现方式中,提供了相应系统和计算机程序产品。
Description
技术领域
本公开内容的各实现方式涉及存储管理,更具体地,涉及用于管理存储系统(例如,独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)的方法、系统和计算机程序产品。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。在提高数据存储能力的同时,用户对于数据可靠性和存储系统的响应时间也提出了越来越高的需求。目前,已经开发出了基于冗余磁盘阵列的多种数据存储系统来提高数据的可靠性。当存储系统中的一个或者多个存储设备(如磁盘)出现故障时,可以从其他正常操作的磁盘上的数据来恢复出故障磁盘中的数据。
由于RAID中的各个存储设备的寿命可能存在限制。例如,对于传统的硬盘驱动器(Hard Disk Drive,HDD)而言,当输入/输出(I/O)较为频繁地出现故障时,可以认为该HDD的使用寿命即将到期。又例如,对于固态硬盘(Solid State Drive,SSD)而言,当该SSD的有效期临近时,可以认为使用寿命即将到期。在此,可以将存储设备即将出现崩溃的不再适合于使用的状态称为寿命终止(End of Life,EOL)。为了避免RAID中的存储设备的EOL造成RAID可靠性的降低,需要在检测到存储设备(例如,称为源设备)可能出现EOL时,针对该源设备进行主动拷贝(Proactive Copy,PACO),以便将该源设备中的数据拷贝到后备存储设备(例如,称为目的地设备)中并利用该目的地设备来替换该源设备。
目前已经开发出了在源设备和目的地设备之间进行主动拷贝的技术方案。然而,现有技术方案的运行效率和安全性并不理想。此时,如何以更为有效并且安全的方式来执行主动拷贝,成为一个难题。
发明内容
因而,期望能够开发并实现一种以更为有效并且可靠的方式来管理存储系统的技术方案。期望该技术方案能够与现有的存储系统相兼容,并且通过改造现有存储系统的各种配置,来以更为可靠的方式来管理存储系统中的数据。
根据本公开内容的一个实现方式,提供了一种用于管理存储系统的方法。该方法包括:将存储系统中包括的多个存储设备中的源设备划分为多个区块(extent);将多个区块中的数据拷贝至目的地设备;基于多个区块中的区块中的数据是否被拷贝至目的地设备,确定多个区块中的区块的状态;以及基于区块的状态来管理针对区块的访问请求。
根据本公开内容的一个实现方式,提供了一种用于管理存储系统的系统,包括:一个或者多个处理器;耦合至一个或者多个处理器中的至少一个处理器的存储器;在存储器中存储的计算机程序指令,当由至少一个处理器执行计算机程序指令时,使得系统执行用于管理存储系统的方法。该方法包括:将存储系统中包括的多个存储设备中的源设备划分为多个区块;将多个区块中的数据拷贝至目的地设备;基于多个区块中的区块中的数据是否被拷贝至目的地设备,确定多个区块中的区块的状态;以及基于区块的状态来管理针对区块的访问请求。
根据本公开内容的一个实现方式,提供了一种用于管理存储系统的设备。该设备包括:划分模块,配置用于将存储系统中包括的多个存储设备中的源设备划分为多个区块;拷贝模块,配置用于将多个区块中的数据拷贝至目的地设备;确定模块,配置用于基于多个区块中的区块中的数据是否被拷贝至目的地设备,确定多个区块中的区块的状态;以及管理模块,配置用于基于区块的状态来管理针对区块的访问请求。
根据本公开内容的一个实现方式,提供了一种计算机程序指令,当由至少一个处理器执行所述计算机程序指令时,使得所述至少一个处理器执行根据上文所述的用于管理存储系统的方法。
采用本公开内容的技术方案,可以在尽量不中断针对存储系统的I/O访问的情况下,以更为有效并且安全的方式来执行主动拷贝。
附图说明
结合附图并参考以下详细说明,本公开内容各实现方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开内容的若干实现方式。在附图中:
图1示意性示出了适于实现本公开内容实现方式的示例性计算系统的框图;
图2A和图2B分别示意性示出了其中可以实现根据本公开内容的实现方式的应用环境的示意图;
图3A示意性示出了根据一个技术方案的用于管理存储系统的技术方案的框图;以及图3B示意性示出了根据本公开内容的一个实现方式的用于管理存储系统的技术方案的框图;
图4示意性示出了根据本公开内容的一个实现方式的用于管理存储系统的方法的流程图;
图5示意性示出了根据本公开内容的一个实现方式的用于针对源设备中的多个区块执行拷贝的方法的流程图;
图6示意性示出了根据本公开内容的一个实现方式的用于根据区块的状态来管理针对区块的访问请求的方法的流程图;
图7A和7B分别示意性示出了根据本公开内容的实现方式的用于基于已经被拷贝的区块的数量来显示拷贝进度的框图;
图8A和8B分别示意性示出了根据本公开内容的实现方式的用于存储状态的数据结构的框图;以及
图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)。
也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
独立磁盘冗余阵列可以将多个存储设备组合起来,成为一个磁盘阵列。通过提供冗余的存储设备,可以使得整个磁盘组的可靠性大大超过单一的存储设备。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等。
图2A示意性示出了根据一个技术方案的独立磁盘冗余阵列的结构的示意图200A。在图2A中,以包括五个独立存储设备(210、212、214、216以及218)的RAID-5(4D+1P,其中4D表示存储系统中包括四个存储设备来用于存储数据,1P表示存储系统中包括一个存储设备来用于存储P校验值(parity)阵列为示例,来说明RAID的工作原理。应当注意,尽管图2A中示意性示出了五个存储设备,在其他的实现方式中,根据RAID的等级不同,还可以包括更多或者更少的存储设备。尽管图2A中示出了条带220、222和224,在其他的示例中,RAID系统还可以包括不同数量的条带。
在RAID中,条带跨越多个物理存储设备(例如,条带220跨越了存储设备210、212、214、216以及218)。可以简单地将条带理解为多个存储设备中的满足一定地址范围的存储区域。在条带220中存储的数据包括多个部分:存储在存储设备210上的数据块D00、存储在存储设备212上的数据块D01、存储在存储设备214上的数据块D02、存储在存储设备216上的数据块D03、以及存储在存储设备218上的数据块P0。在此示例中,数据块D00、D01、D02、以及D03是被存储的数据,而数据块P0是被存储数据的P校验值。
在其他条带222和224中存储数据的方式也类似于条带220,不同之处在于,有关其他数据块的校验值可以存储在不同于存储设备218的存储设备上。以此方式,当多个存储设备210、212、214、216以及218中的一个存储设备出现故障时,可以从其他的正常的存储设备中恢复出故障设备中的数据。
图2B示意性示出了根据一个技术方案的独立磁盘冗余阵列的重建过程的示意图200B。如图2B所示,当一个存储设备(例如,以阴影示出的存储设备218)出现故障时,可以从其余的正常操作的多个存储设备210、212、214、216中恢复数据。此时,可以向RAID中加入新的后备存储设备218B来替代存储设备218,以此方式,可以将恢复的数据写入218B并实现系统的重建。
应当注意,尽管在上文中参见图2A和图2B描述了包括5个存储设备(其中4个存储设备用于存储数据,1个存储设备用于存储校验值)的RAID 5的存储系统,根据其他RAID等级的定义,还可以存在包括其他数量的存储设备的存储系统。例如,基于RAID 6的定义,可以利用两个存储设备来分别存储校验值P和Q。又例如,基于三重校验值(triple-parity)RAID的定义,可以利用三个存储设备来分别存储校验值P、Q和R。
图3A示意性示出了根据一个技术方案的用于管理存储系统的技术方案的框图300A。如图3A所示,假设存储系统中的多个存储设备中的一个存储设备310(在下文中称为源设备310)即将出现寿命终止,则此时需要将该源设备310中的数据拷贝(如箭头330所示)至另一正常的后备存储设备320(在下文中称为目的地设备320)。应当注意,此处的存储设备310可以是附图2中所示的五个存储设备210、212、214、216以及218中的任一项。此时的存储系统仍然处于运行状态,因而在数据拷贝期间仍然需要接收来自用户的用户访问。
由于来自用户的写入访问请求将会导致存储系统中的数据的变化,因而根据现有的技术方案,在拷贝过程中需要分别针对源设备310和目的地设备320两者执行该写入访问请求。应当注意,此时源设备310已经面临寿命终止,数据写入将加速源设备310的损坏速度。一方面,当针对源设备310执行过多的数据写入操作时,该设备可能会立刻崩溃并造成存储系统的潜在风险。另一方面,现有的技术方案以整个源设备310为单位来执行拷贝,如果在拷贝期间出现源设备310的崩溃或者其他故障,并不能快速地确定目前已经将源设备310中的哪些数据拷贝至目的地设备320。因而难以确定后续的补救措施。
鉴于上述技术方案中的诸多缺陷,本公开内容提出了一种用于以更为有效并且可靠的方式来管理存储系统的技术方案。具体地,图3B示意性示出了根据本公开内容的一个实现方式的用于管理存储系统的技术方案的框图300B。代替以整个源设备310作为单位来执行主动拷贝,在如图3B所示的实现方式中,可以将源设备310划分为多个区块,并且以该区块为单位以更精细的粒度来执行主动拷贝(如箭头330所示)。具体地,可以针对每个区块设置状态以指示该区块是否已经从源设备310被拷贝至目的地设备320中的相应的区块。具体地,源设备310中的第一区块可以被拷贝至目的地设备320中的第一区块,源设备310中的第二区块可以被拷贝至目的地设备320中的第二区块,以此类推。
在图3中示意性示出了三种状态的示例,图例342所示的图形表示“已拷贝”状态,即表示该区块已经被拷贝;图例344所示的图形表示“拷贝中”状态,即表示该区块正在被拷贝;而图例346所示的图形表示“未拷贝”状态,即表示该区块尚未被拷贝。具体地,可以按照顺序针对源设备310中的各个区块逐一地执行拷贝。如图3B所示,按照上文描述的图例可知,目的地设备320中的各个区块的状态可以分别表示为:已拷贝、已拷贝、正在被拷贝、未拷贝。
在此实现方式中,由于各个区块的状态并不相同,因而在接收到针对各个区块的访问请求时,可以基于各个区块的状态来确定如何执行相应的访问请求。在下文中,将参见图4至图8来详细描述本公开内容的各个实现方式的具体细节。
图4示意性示出了根据本公开内容的一个实现方式的用于管理存储系统的方法400的流程图。如图4所示,公开了一种用于管理存储系统的方法。如方框410所示,将所述存储系统中包括的多个存储设备中的源设备划分为多个区块。在具有不同配置的存储系统中,可以将区块划分为具有不同的大小。区块的大小将影响针对各个区块执行拷贝时所涉及的资源和时间。区块越大则拷贝一个区块涉及的资源和时间将越多,区块越小则涉及的资源和时间越小。另一方面,如果将区块划分至过小的粒度,尽管拷贝一个区块所涉及的资源和时间较少,然而过多的区块将导致需要大量的资源和时间开销来用于调度拷贝。因而,需要基于存储系统的整体配置来权衡区块的大小。根据本公开内容的一个实现方式,可以将区块大小设置为数个吉比特的数量级。根据本公开内容的一个实现方式,还可以将区块大小设置为其他的数值。
如方框420所示,将所述多个区块中的数据拷贝至目的地设备320。此时,可以以每个区块为单位,来将区块拷贝至目的地设备320。根据本公开内容的一个实现方式,当针对一个区块的拷贝完成时,可以开始执行针对下一区块的拷贝。以此方式,可以逐个地将各个区块从源设备310拷贝至目的地设备320。
如方框430所示,在针对各个区块执行拷贝期间,可以基于所述多个区块中的区块中的数据是否被拷贝至所述目的地设备320,确定所述多个区块中的区块的状态。在此的状态例如可以包括:已拷贝,表示该区块中的数据已经从源设备310被拷贝至目的地设备320;拷贝中,表示该区块中的数据正在从源设备310被拷贝至目的地设备320;以及未拷贝,表示该区块中的数据尚未从源设备310被拷贝至目的地设备320。
如方框440所示,基于所述区块的状态(即,已拷贝、正在被拷贝、未拷贝)来管理针对所述区块的访问请求。将会理解,在针对源设备310的拷贝期间,由于可以以区块为单位来逐一地执行拷贝,因而不必在接收到访问请求时,分别针对整个源设备310和目的地设备320来执行所请求的读写操作。作为替代,可以仅在接收到的访问请求是写请求并且该写请求所涉及的区块正在被拷贝时,才涉及对源设备310和目的地设备320中的相对应的区块执行写操作。
根据本公开内容的一个实现方式,可以以更细的粒度(即,区块的大小)来执行主动拷贝操作。此时,由于仅有写请求涉及正在被拷贝的区块时,才会涉及到针对源设备310和目的地设备320两者中相对应的区块的写入操作。以此方式,可以大大降低对原本已经面临寿命终止的源设备310的访问的负荷,由此可以尽量降低源设备310在主动拷贝期间崩溃的风险。
图5示意性示出了根据本公开内容的一个实现方式的用于针对源设备中的多个区块执行拷贝的方法500的流程图。具体地,在方框510处,可以将存储系统中包括的多个存储设备中的源设备310划分为多个区块并将各个区块的初始状态设置为“未拷贝”。根据本公开内容的一个实现方式,可以根据预定的划分规则来划分区块。例如,一个划分规则可以是将源设备310划分为大小为5G的区块。又例如,另一划分规则可以是将源设备310划分为10个区块。此时,由于拷贝过程尚未开始,因而各个区块的状况可以被设置为“未拷贝”。
在方框520至560处,可以逐一地将划分所得的各个区块从源设备310拷贝至目的地设备320处。具体地,在方框520处,可以首先将多个区块中的第一个区块作为当前区块。在方框530处,可以将当前区块的状态更新为“拷贝中”,并将当前区块中的数据从源设备310拷贝至目的地设备320中的相对应的位置处。当完成拷贝后,可以在方框540处将当前区块的状态更新至“已拷贝”。此时,则完成针对一个区块的拷贝操作,并且在方框550处可以判断是否存在下一区块。如果存在下一区块,则操作前进至方框560,并将下一区块作为当前区块。此时,可以针对当前区块来重复地执行方框530、540、550中的处理,直到完成针对多个区块中的每个区块的处理。
在方框550处,如果不存在下一区块,则表示此时已经完成了针对源设备310中的每个区块的拷贝。在方框570处,主动拷贝已经完成因而可以利用目的地设备320来替换源设备310。将会理解,采用如图5所示的方法中的步骤510至560,面临寿命终止的源设备310中的全部数据已经被拷贝至正常的目的地设备320中,因而此时利用该正常的目的地设备320来替换存储系统中的源设备310,以便维护存储系统的正常运行。
根据本公开内容的一个实现方式,响应于所述状态指示所述区块中的数据已经被拷贝至所述目的地设备320,将所述访问请求引导至所述目的地设备320;响应于所述状态指示所述区块中的数据尚未被拷贝至所述目的地设备320,将所述访问请求引导至所述源设备310;以及响应于所述状态指示所述区块中的数据正在被拷贝至所述目的地设备320,确定所述访问请求的类型;以及基于所述类型来管理所述访问请求。
在上文中,已经参见图5描述了在拷贝期间如何修改各个区块的状态。在下文中,将参见图6描述当针对存储系统的访问请求涉及具有不同状态的区块时的具体操作流程。图6示意性示出了根据本公开内容的一个实现方式的用于根据区块的状态来管理针对区块的访问请求的方法600的流程图。在方框610处,接收针对操作系统的访问请求。该访问请求可以是读请求或者写请求。接着在方框620处,确定访问请求所涉及的区块的状态。为了方便描述起见,在下文中将首先描述访问请求仅涉及一个区块的情况。
在方框630处,判断访问请求所涉及的区块的状态,如果该状态为“已拷贝”,则操作流程前进至方框640。在方框640处,可以将访问请求引导至目的地设备320。此时,由于访问请求的目标数据所在的区块已经从源设备310被拷贝至目的地设备320,此时目的地设备320中的数据已经是最新数据,因而不必再关心位于源设备310处的相应区块中的数据内容。在方框640处仅需要利用访问请求来针对目的地设备320中的相应区块中的数据进行处理即可。此时,如果访问请求是读请求,则针对目的地设备320中的相应区块执行读操作。如果访问请求是写请求,则针对目的地设备320中的相应区块执行写操作。
在方框630处,判断访问请求所涉及的区块的状态,如果该状态为“未拷贝”,则操作流程前进至方框642。在方框642处,可以将访问请求引导至源设备310。此时,由于访问请求的目标数据所在的区块尚未从源设备310被拷贝至目的地设备320,此时源设备310中的数据是最新数据。因而,在方框642处仅需要利用访问请求来针对源设备310中的相应区块中的数据进行处理即可。此时,如果访问请求是读操作,则针对源设备310中的相应区块执行读请求。如果访问请求是写请求,则针对源设备310中的相应区块执行写操作。
在方框630处,判断访问请求所涉及的区块的状态,如果该状态为“拷贝中”,则操作流程前进至方框644。此时,由于访问请求的目标数据所在的区块正在从源设备310被拷贝至目的地设备320,因而此时源设备310中的数据是最新数据。由于访问请求可以是读请求或者写请求,因而此时需要判断访问请求的类型(如方框644所示),继而根据访问请求的类型来执行相应的处理(如方框646所示)。
根据本公开内容的一个实现方式,响应于所述访问请求的所述类型为读请求,将所述读请求引导至所述源设备310;以及响应于所述访问请求的所述类型为写请求,将所述读请求引导至所述源设备310和所述目的地设备320。继续图6所示的方法,在方框646处,如果访问请求是读请求,则针对源设备310中的相应区块执行读操作。如果访问请求是写请求,则需要分别针对源设备310和目的地设备320两者中的相应区块执行写操作。以此方式,在该区块的拷贝完成时,目的地设备320中的数据是最新的数据。
将会理解,在上文中仅参见图6详细描述了访问请求涉及一个区块的情况。在某些情况下,根据访问请求所涉及数据量的大小以及区块的大小,访问请求还可以跨越两个甚至更多的区块。根据本公开内容的一个实现方式,响应于所述访问请求跨越所述多个区块中的至少两个区块,将所述访问请求拆分为至少两个子请求;以及基于与所述至少两个子请求相关联的至少两个区块的状态,来分别管理所述至少两个子请求。
具体地,例如访问请求跨越了两个区块,则此时可以将访问请求拆分为两个子请求,并且分别针对每个子请求来执行上文参见图6描述的方法。如果访问请求跨越了三个区块,则此时可以将访问请求拆分为三个子请求,并且分别针对每个子请求来执行上文参见图6描述的方法。
根据本公开内容的一个实现方式,还可以根据存储系统通常接收到的访问请求所涉及的数据量的大小来确定区块的大小。以此方式,可以避免将区块划分为过小的区块导致一个访问请求跨越过多的区块。
根据本公开内容的一个实现方式,还可以基于所述多个区块中的区块中的数据是否被拷贝至所述目的地设备,设置指示拷贝进度的指示符。在下文中将参见图7A和7B来进行详细描述。图7A示意性示出了根据本公开内容的一个实现方式的用于基于已经被拷贝的区块的数量来显示拷贝进度的框图700A。如图7A所示,假设目的地设备320中包括5个区块,并且其中前两个区块的状态是“已拷贝”,第三个区块的状态是“拷贝中”并且第四和第五区块的状态为“未拷贝”。此时,可以基于已拷贝区块数量与总区块数量的比例来确定拷贝进度。此时,拷贝进度710A可以表示为2/5=40%。
图7B示意性示出了根据本公开内容的一个实现方式的用于基于已经被拷贝的区块的数量来显示拷贝进度的框图和700B。如图7B所示,假设目的地设备320中包括5个区块,并且其中前两个区块的状态是“已拷贝”,第三个区块的状态是“拷贝中”并且第四和第五区块的状态为“未拷贝”。由于第三个区块的拷贝并未完成,并且仅有一部分数据被拷贝至目的地设备320。此时,还可以确定状态为“拷贝中”的区块中的已经被拷贝的部分的比例,以便与已拷贝区块一起用于确定拷贝进度。假设第三个区块中的7/8的数据已经完成了拷贝,则此时拷贝进度710B可以表示为(2+7/8)/5=57.5%。采用如图7B所示的方式,可以以更加精细的粒度表示拷贝进度。
根据本公开内容的一个实现方式,可以采用不同的数位长度来存储拷贝进度。例如,可以采用64位的长度来存储拷贝进度。又例如,还可以采用其他长度例如32位或者128位来存储拷贝进度。
图8A示意性示出了根据本公开内容的一个实现方式的用于存储状态的数据结构的框图800A。如图8A所示,可以利用两位来存储状态。例如,00可以表示“未拷贝”状态,01可以表示“拷贝中”状态,10和11(统称为1X,即,不关心第二位是0还是1)表示“已拷贝”状态。根据本公开内容的一个实现方式,还可以采用其他的定义来表示各个状态,例如00可以表示“拷贝中”状态,01可以表示“未拷贝”状态,1X可以表示“已拷贝”状态。
根据本公开内容的一个实现方式,状态还可以具有其他长度。例如,可以采用16位或者其他长度来存储状态,并且状态中的未使用数位可以用作保留位,以便后续扩展用于其他功能。
在上文中已经描述了基于各个区块的状态来处理访问请求,以便在不中断访问请求的情况下执行主动拷贝的技术方案。将会理解,在主动拷贝期间还有可能出现异常情况。例如,目的地设备可能会出现故障,则此时整个存储系统将处于降级状态(degradedstate),需要对该存储系统执行重建操作以确保存储系统的正常运行。
根据本公开内容的一个实现方式,响应于所述存储系统中的数据被修改,标记所述目的地设备320中的与被修改数据相关联的区块(例如,将该区块标识为“脏”)。继而,在所述目的地设备320出现故障时,可以基于所述存储系统中的正常设备中的数据来恢复所述目的地设备320中的被标记区块中的数据。
这里的标识符“脏”是描述区块的状态的特殊信息,因而可以在状态中设置单独的数位810B(例如1位)来标识该区块中的数据是否被修改。如果数位810B被设置为0,则表示该区块没有被修改;如果数位810B被设置为1,则表示该区块被修改并且此时区块中的数据是“脏”数据。
根据本公开内容的一个实现方式,可以逐一将所述多个区块中的每个区块中的数据拷贝至所述目的地设备。此时,可以按照所述多个区块的顺序来逐个地执行拷贝。备选地或者附加地,还可以将源设备310中的多个区块按照优先级的顺序进行排序,并且首先拷贝具有较高优先级的区块。
根据本公开内容的一个实现方式,响应于所述多个区块中的全部区块中的数据被拷贝至所述目的地设备,利用所述目的地设备替换所述源设备。将会理解,当已经完成了全部区块的拷贝时,面临寿命终止的源设备310中的全部数据已经被拷贝至正常的目的地设备320中。此时,可以利用该正常的目的地设备320来替换存储系统中的面临寿命终止的源设备310,以便维护存储系统的正常运行。
根据本公开内容的一个实现方式,如果存储系统中存在面临寿命终止的多个存储设备时,可以逐一地针对每个存储设备执行上文所述的方法。
前面已经参考附图描述了实现本发明的方法的各个实施方式。本领域技术人员可以理解的是,上述方法既可以以软件方式实现,也可以以硬件方式实现,或者通过软件与硬件相结合的方式实现。并且,本领域技术人员可以理解,通过以软件、硬件或者软硬件相结合的方式实现上述方法中的各个步骤,可以提供一种基于相同发明构思的一种设备。即使该设备在硬件结构上与通用处理设备相同,由于其中所包含的软件的作用,使得该设备表现出区别于通用处理设备的特性,从而形成本发明的各个实施方式的设备。本发明中所述设备包括若干装置或模块,所述装置或模块被配置为执行相应步骤。本领域的所述技术人员通过阅读本说明书可以理解如何编写程序实现所述装置或模块执行的动作。由于所述设备与方法基于相同的发明构思,因此其中相同或相应的实现细节同样适用于与上述方法对应的装置或模块,由于其在上文中已经进行了详细和完整的描述,因此在下文中可能不再进行赘述。
图9示意性示出了根据本公开内容的一个实现方式的用于管理存储系统的设备900的框图。该设备900包括,划分模块910,配置用于将存储系统中包括的多个存储设备中的源设备划分为多个区块;拷贝模块920,配置用于将多个区块中的数据拷贝至目的地设备;确定模块930,配置用于基于多个区块中的区块中的数据是否被拷贝至目的地设备,确定多个区块中的区块的状态;以及管理模块940,配置用于基于区块的状态来管理针对区块的访问请求。
根据本公开内容的一个实现方式,管理模块940进一步配置用于响应于状态指示区块中的数据已经被拷贝至目的地设备,将访问请求引导至目的地设备。
根据本公开内容的一个实现方式,管理模块940进一步配置用于响应于状态指示区块中的数据尚未被拷贝至目的地设备,将访问请求引导至源设备。
根据本公开内容的一个实现方式,管理模块940进一步配置用于响应于状态指示区块中的数据正在被拷贝至目的地设备,确定访问请求的类型;以及基于类型来管理访问请求。
根据本公开内容的一个实现方式,管理模块940进一步配置用于响应于访问请求的类型为读请求,将读请求引导至源设备;以及响应于访问请求的类型为写请求,将读请求引导至源设备和目的地设备两者。
根据本公开内容的一个实现方式,管理模块940进一步配置用于响应于存储系统中的数据被修改,标记目的地设备中的与被修改数据相关联的区块;以及响应于目的地设备故障,基于存储系统中的正常设备中的数据来恢复目的地设备中的被标记区块中的数据。
根据本公开内容的一个实现方式,管理模块940进一步配置用于响应于访问请求跨越多个区块中的至少两个区块,将访问请求拆分为至少两个子请求;以及基于与至少两个子请求相关联的至少两个区块的状态,来分别管理至少两个子请求。
根据本公开内容的一个实现方式,管理模块940进一步配置用于基于多个区块中的区块中的数据是否被拷贝至目的地设备,设置指示拷贝进度的指示符。
根据本公开内容的一个实现方式,管理模块940进一步配置用于逐一将多个区块中的每个区块中的数据拷贝至目的地设备。
根据本公开内容的一个实现方式,管理模块940进一步配置用于响应于多个区块中的全部区块中的数据被拷贝至目的地设备,利用目的地设备替换源设备。
根据本公开内容的一个实现方式,提供了一种用于管理存储系统的系统,包括:一个或者多个处理器;耦合至一个或者多个处理器中的至少一个处理器的存储器;在存储器中存储的计算机程序指令,当由至少一个处理器执行计算机程序指令时,使得系统执行用于管理存储系统的方法。该方法包括:将存储系统中包括的多个存储设备中的源设备划分为多个区块;将多个区块中的数据拷贝至目的地设备;基于多个区块中的区块中的数据是否被拷贝至目的地设备,确定多个区块中的区块的状态;以及基于区块的状态来管理针对区块的访问请求。
根据本公开内容的一个实现方式,基于区块的状态来管理针对区块的访问请求包括:响应于状态指示区块中的数据已经被拷贝至目的地设备,将访问请求引导至目的地设备。
根据本公开内容的一个实现方式,基于区块的状态来管理针对区块的访问请求包括:响应于状态指示区块中的数据尚未被拷贝至目的地设备,将访问请求引导至源设备。
根据本公开内容的一个实现方式,基于区块的状态来管理针对区块的访问请求包括:响应于状态指示区块中的数据正在被拷贝至目的地设备,确定访问请求的类型;以及基于类型来管理访问请求。
根据本公开内容的一个实现方式,基于类型来管理访问请求包括:响应于访问请求的类型为读请求,将读请求引导至源设备;以及响应于访问请求的类型为写请求,将读请求引导至源设备和目的地设备两者。
根据本公开内容的一个实现方式,该方法进一步包括:响应于存储系统中的数据被修改,标记目的地设备中的与被修改数据相关联的区块;以及响应于目的地设备故障,基于存储系统中的正常设备中的数据来恢复目的地设备中的被标记区块中的数据。
根据本公开内容的一个实现方式,该方法进一步包括:响应于访问请求跨越多个区块中的至少两个区块,将访问请求拆分为至少两个子请求;以及基于与至少两个子请求相关联的至少两个区块的状态,来分别管理至少两个子请求。
根据本公开内容的一个实现方式,该方法进一步包括:基于多个区块中的区块中的数据是否被拷贝至目的地设备,设置指示拷贝进度的指示符。
根据本公开内容的一个实现方式,该方法其中将多个区块中的数据拷贝至目的地设备包括:逐一将多个区块中的每个区块中的数据拷贝至目的地设备。
根据本公开内容的一个实现方式,该方法进一步包括:响应于多个区块中的全部区块中的数据被拷贝至目的地设备,利用目的地设备替换源设备。
根据本公开内容的一个实现方式,提供了一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行一种用于管理存储系统的方法。该方法包括:将存储系统中包括的多个存储设备中的源设备划分为多个区块;将多个区块中的数据拷贝至目的地设备;基于多个区块中的区块中的数据是否被拷贝至目的地设备,确定多个区块中的区块的状态;以及基于区块的状态来管理针对区块的访问请求。
根据本公开内容的一个实现方式,基于区块的状态来管理针对区块的访问请求包括:响应于状态指示区块中的数据已经被拷贝至目的地设备,将访问请求引导至目的地设备。
根据本公开内容的一个实现方式,基于区块的状态来管理针对区块的访问请求包括:响应于状态指示区块中的数据尚未被拷贝至目的地设备,将访问请求引导至源设备。
根据本公开内容的一个实现方式,基于区块的状态来管理针对区块的访问请求包括:响应于状态指示区块中的数据正在被拷贝至目的地设备,确定访问请求的类型;以及基于类型来管理访问请求。
根据本公开内容的一个实现方式,基于类型来管理访问请求包括:响应于访问请求的类型为读请求,将读请求引导至源设备;以及响应于访问请求的类型为写请求,将读请求引导至源设备和目的地设备两者。
根据本公开内容的一个实现方式,该方法进一步包括:响应于存储系统中的数据被修改,标记目的地设备中的与被修改数据相关联的区块;以及响应于目的地设备故障,基于存储系统中的正常设备中的数据来恢复目的地设备中的被标记区块中的数据。
根据本公开内容的一个实现方式,该方法进一步包括:响应于访问请求跨越多个区块中的至少两个区块,将访问请求拆分为至少两个子请求;以及基于与至少两个子请求相关联的至少两个区块的状态,来分别管理至少两个子请求。
根据本公开内容的一个实现方式,该方法进一步包括:基于多个区块中的区块中的数据是否被拷贝至目的地设备,设置指示拷贝进度的指示符。
根据本公开内容的一个实现方式,该方法其中将多个区块中的数据拷贝至目的地设备包括:逐一将多个区块中的每个区块中的数据拷贝至目的地设备。
根据本公开内容的一个实现方式,该方法进一步包括:响应于多个区块中的全部区块中的数据被拷贝至目的地设备,利用目的地设备替换源设备。
附图中的流程图和框图显示了根据本公开内容的多个实现方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开内容的各实现方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实现方式。在不偏离所说明的各实现方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实现方式。
Claims (19)
1.一种用于管理存储系统的方法,所述方法包括:
将所述存储系统中包括的多个存储设备中的源设备划分为多个区块,所述多个存储设备包括按照独立磁盘冗余阵列RAID配置布置的存储设备的群组;
响应于所述源设备到达寿命终止条件而所述源设备继续操作,主动地将所述多个区块中的数据拷贝至所述多个存储设备中的目的地设备;
在继续拷贝所述多个区块中的所述数据同时,基于所述多个区块中的区块中的数据是否被拷贝至所述目的地设备,确定所述多个区块中的区块的状态;
基于所述区块的状态,通过使用所述源设备和所述目的地设备中的一个设备,来选择性地实现针对所述区块的访问请求;
响应于全部所述多个区块中的数据已经被拷贝至所述目的地设备:
从所述RAID配置中布置的所述群组中移除所述源设备;以及
向所述RAID配置中布置的所述群组添加所述目的地设备来替换被移除的所述源设备。
2.根据权利要求1所述的方法,其中所述基于所述区块的状态来管理针对所述区块的访问请求包括:
响应于所述状态指示所述区块中的数据已经被拷贝至所述目的地设备,将所述访问请求引导至所述目的地设备。
3.根据权利要求1所述的方法,其中所述基于所述区块的状态来管理针对所述区块的访问请求包括:
响应于所述状态指示所述区块中的数据尚未被拷贝至所述目的地设备,将所述访问请求引导至所述源设备。
4.根据权利要求1所述的方法,其中所述基于所述区块的状态来管理针对所述区块的访问请求包括:响应于所述状态指示所述区块中的数据正在被拷贝至所述目的地设备,
确定所述访问请求的类型;以及
基于所述类型来管理所述访问请求。
5.根据权利要求4所述的方法,其中所述基于所述类型来管理所述访问请求包括:
响应于所述访问请求的所述类型为读请求,将所述读请求引导至所述源设备;以及
响应于所述访问请求的所述类型为写请求,将所述写请求引导至所述源设备和所述目的地设备两者。
6.根据权利要求1所述的方法,进一步包括:
响应于所述存储系统中的数据被修改,标记所述目的地设备中的与被修改数据相关联的区块;以及
响应于所述目的地设备故障,基于所述存储系统中的正常设备中的数据来恢复所述目的地设备中的被标记区块中的数据。
7.根据权利要求1所述的方法,进一步包括:
响应于所述访问请求跨越所述多个区块中的至少两个区块,将所述访问请求拆分为至少两个子请求;以及
基于与所述至少两个子请求相关联的至少两个区块的状态,来分别管理所述至少两个子请求。
8.根据权利要求1所述的方法,进一步包括:
基于所述多个区块中的区块中的数据是否被拷贝至所述目的地设备,设置指示拷贝进度的指示符。
9.根据权利要求1所述的方法,其中所述将所述多个区块中的数据拷贝至目的地设备包括:
逐一将所述多个区块中的每个区块中的数据拷贝至所述目的地设备。
10.一种用于管理存储系统的系统,包括:
一个或者多个处理器;
耦合至所述一个或者多个处理器中的至少一个处理器的存储器;
在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述系统执行用于管理存储系统的方法,所述方法包括:
将所述存储系统中包括的多个存储设备中的源设备划分为多个区块,所述多个存储设备包括按照独立磁盘冗余阵列RAID配置布置的存储设备的群组;
响应于所述源设备到达寿命终止条件而所述源设备继续操作,主动地将所述多个区块中的数据拷贝至所述多个存储设备中的目的地设备;
在继续拷贝所述多个区块中的所述数据同时,基于所述多个区块中的区块中的数据是否被拷贝至所述目的地设备,确定所述多个区块中的区块的状态;
基于所述区块的状态,通过使用所述源设备和所述目的地设备中的一个设备,来选择性地实现针对所述区块的访问请求;
响应于全部所述多个区块中的数据已经被拷贝至所述目的地设备:
从所述RAID配置中布置的所述群组中移除所述源设备;以及
向所述RAID配置中布置的所述群组添加所述目的地设备来替换被移除的所述源设备。
11.根据权利要求10所述的系统,其中所述基于所述区块的状态来管理针对所述区块的访问请求包括:
响应于所述状态指示所述区块中的数据已经被拷贝至所述目的地设备,将所述访问请求引导至所述目的地设备。
12.根据权利要求10所述的系统,其中所述基于所述区块的状态来管理针对所述区块的访问请求包括:
响应于所述状态指示所述区块中的数据尚未被拷贝至所述目的地设备,将所述访问请求引导至所述源设备。
13.根据权利要求10所述的系统,其中所述基于所述区块的状态来管理针对所述区块的访问请求包括:响应于所述状态指示所述区块中的数据正在被拷贝至所述目的地设备,
确定所述访问请求的类型;以及
基于所述类型来管理所述访问请求。
14.根据权利要求13所述的系统,其中所述基于所述类型来管理所述访问请求包括:
响应于所述访问请求的所述类型为读请求,将所述读请求引导至所述源设备;以及
响应于所述访问请求的所述类型为写请求,将所述写请求引导至所述源设备和所述目的地设备两者。
15.根据权利要求10所述的系统,其中所述方法进一步包括:
响应于所述存储系统中的数据被修改,标记所述目的地设备中的与被修改数据相关联的区块;以及
响应于所述目的地设备故障,基于所述存储系统中的正常设备中的数据来恢复所述目的地设备中的被标记区块中的数据。
16.根据权利要求10所述的系统,其中所述方法进一步包括:
响应于所述访问请求跨越所述多个区块中的至少两个区块,将所述访问请求拆分为至少两个子请求;以及
基于与所述至少两个子请求相关联的至少两个区块的状态,来分别管理所述至少两个子请求。
17.根据权利要求10所述的系统,其中所述方法进一步包括:
基于所述多个区块中的区块中的数据是否被拷贝至所述目的地设备,设置指示拷贝进度的指示符。
18.根据权利要求10所述的系统,其中所述将所述多个区块中的数据拷贝至目的地设备包括:
逐一将所述多个区块中的每个区块中的数据拷贝至所述目的地设备。
19.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至9中的任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711023287.XA CN109725827B (zh) | 2017-10-27 | 2017-10-27 | 管理存储系统的方法、系统和计算机程序产品 |
US16/170,236 US10852982B2 (en) | 2017-10-27 | 2018-10-25 | Method, system, and computer program product for managing storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711023287.XA CN109725827B (zh) | 2017-10-27 | 2017-10-27 | 管理存储系统的方法、系统和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109725827A CN109725827A (zh) | 2019-05-07 |
CN109725827B true CN109725827B (zh) | 2022-05-13 |
Family
ID=66243823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711023287.XA Active CN109725827B (zh) | 2017-10-27 | 2017-10-27 | 管理存储系统的方法、系统和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10852982B2 (zh) |
CN (1) | CN109725827B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110187835B (zh) * | 2019-05-24 | 2023-02-03 | 北京百度网讯科技有限公司 | 用于管理访问请求的方法、装置、设备和存储介质 |
US11163459B2 (en) | 2019-10-28 | 2021-11-02 | EMC IP Holding Company LLC | Rekeying information on storage devices using a proactive copy service |
CN113626251A (zh) * | 2020-05-06 | 2021-11-09 | 伊姆西Ip控股有限责任公司 | 用于迁移备份系统的方法、设备和计算机程序产品 |
CN112698787A (zh) * | 2020-12-28 | 2021-04-23 | 杭州海康威视系统技术有限公司 | 写数据方法、装置及计算机存储介质 |
US20230305721A1 (en) * | 2022-03-25 | 2023-09-28 | Electronics And Telecommunications Research Institute | Method and apparatus for memory management in memory disaggregation environment |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1629817A (zh) * | 2003-12-17 | 2005-06-22 | 国际商业机器公司 | 复制设备、复制方法和块标识数据获取方法 |
CN1645335A (zh) * | 2003-06-18 | 2005-07-27 | 国际商业机器公司 | 用于存储卷的一致拷贝的方法、系统和制造品 |
CN1724980A (zh) * | 2004-07-21 | 2006-01-25 | 株式会社日立制作所 | 存储系统 |
CN102073462A (zh) * | 2010-11-29 | 2011-05-25 | 华为技术有限公司 | 虚拟存储迁移方法、系统和虚拟机监控器 |
CN102981778A (zh) * | 2012-11-15 | 2013-03-20 | 浙江宇视科技有限公司 | 一种raid阵列重建方法及装置 |
CN106294387A (zh) * | 2015-05-19 | 2017-01-04 | 深圳市腾讯计算机系统有限公司 | 数据迁移方法和装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7707186B2 (en) * | 2004-06-18 | 2010-04-27 | Emc Corporation | Method and apparatus for data set migration |
US8707090B2 (en) * | 2011-10-19 | 2014-04-22 | Hitachi, Ltd. | Storage system |
CN106325760B (zh) | 2015-06-24 | 2019-05-07 | 伊姆西公司 | 管理存储阵列配置的方法和设备 |
US10146459B1 (en) | 2017-04-28 | 2018-12-04 | EMC IP Holding Company LLC | Disk activity balancing in mapped raid storage arrays by data remapping |
US10152254B1 (en) | 2017-04-28 | 2018-12-11 | EMC IP Holding Company LLC | Distributing mapped raid disk extents when proactively copying from an EOL disk |
CN109726033B (zh) | 2017-10-31 | 2022-05-06 | 伊姆西Ip控股有限责任公司 | 提供raid数据保护的方法、数据存储系统和计算机可读介质 |
CN110058965B (zh) | 2018-01-18 | 2023-07-28 | 伊姆西Ip控股有限责任公司 | 存储系统中的数据重建方法及设备 |
CN110096217B (zh) | 2018-01-31 | 2022-05-27 | 伊姆西Ip控股有限责任公司 | 用于重新定位数据的方法、数据存储系统和介质 |
CN110413197B (zh) | 2018-04-28 | 2023-06-27 | 伊姆西Ip控股有限责任公司 | 管理存储系统的方法、设备和计算机程序产品 |
CN110413216B (zh) | 2018-04-28 | 2023-07-18 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
-
2017
- 2017-10-27 CN CN201711023287.XA patent/CN109725827B/zh active Active
-
2018
- 2018-10-25 US US16/170,236 patent/US10852982B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1645335A (zh) * | 2003-06-18 | 2005-07-27 | 国际商业机器公司 | 用于存储卷的一致拷贝的方法、系统和制造品 |
CN1629817A (zh) * | 2003-12-17 | 2005-06-22 | 国际商业机器公司 | 复制设备、复制方法和块标识数据获取方法 |
CN1724980A (zh) * | 2004-07-21 | 2006-01-25 | 株式会社日立制作所 | 存储系统 |
CN102073462A (zh) * | 2010-11-29 | 2011-05-25 | 华为技术有限公司 | 虚拟存储迁移方法、系统和虚拟机监控器 |
CN102981778A (zh) * | 2012-11-15 | 2013-03-20 | 浙江宇视科技有限公司 | 一种raid阵列重建方法及装置 |
CN106294387A (zh) * | 2015-05-19 | 2017-01-04 | 深圳市腾讯计算机系统有限公司 | 数据迁移方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US20190129646A1 (en) | 2019-05-02 |
CN109725827A (zh) | 2019-05-07 |
US10852982B2 (en) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107870730B (zh) | 用于管理存储系统的方法和系统 | |
CN109725827B (zh) | 管理存储系统的方法、系统和计算机程序产品 | |
US10459814B2 (en) | Drive extent based end of life detection and proactive copying in a mapped RAID (redundant array of independent disks) data storage system | |
CN109725837B (zh) | 管理存储系统的方法、系统和计算机程序产品 | |
CN109725831B (zh) | 管理存储系统的方法、系统和计算机可读介质 | |
US10289336B1 (en) | Relocating data from an end of life storage drive based on storage drive loads in a data storage system using mapped RAID (redundant array of independent disks) technology | |
US20200264785A1 (en) | Method and system for managing storage device | |
CN110413203B (zh) | 用于管理存储系统的方法、设备和计算机可读介质 | |
CN111857541B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN110413208B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN111104051B (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
US9342420B2 (en) | Communication of conditions at a primary storage controller to a host | |
CN110737390A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN109213428B (zh) | 用于管理存储系统的方法和设备 | |
CN112764661A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN113552998B (zh) | 用于管理存储系统中的条带的方法、设备和程序产品 | |
KR20210137922A (ko) | 복구 공간으로 패리티 공간을 사용한 데이터 복구 시스템, 방법 및 장치 | |
CN109213427B (zh) | 用于管理存储系统的方法和设备 | |
US10942826B2 (en) | Method and device for managing storage system | |
CN112925471A (zh) | 在存储系统中选择重建目的地的方法、设备和程序产品 | |
CN111857560A (zh) | 用于管理数据的方法、设备和计算机程序产品 | |
CN114168064A (zh) | 用于重建存储系统的方法、设备和计算机程序产品 | |
US20180335963A1 (en) | Method and system for hardware accelerated copyback | |
US11347407B2 (en) | RAID (redundant array of independent disks) group configuration and storage drive distribution based on storage drive health | |
CN114415979B (zh) | 存储装置的处理方法、计算机设备及存储装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |