CN109725837A - 管理存储系统的方法、系统和计算机程序产品 - Google Patents
管理存储系统的方法、系统和计算机程序产品 Download PDFInfo
- Publication number
- CN109725837A CN109725837A CN201711031272.8A CN201711031272A CN109725837A CN 109725837 A CN109725837 A CN 109725837A CN 201711031272 A CN201711031272 A CN 201711031272A CN 109725837 A CN109725837 A CN 109725837A
- Authority
- CN
- China
- Prior art keywords
- block
- target
- sub
- level
- access
- 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
Links
Classifications
-
- 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/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
- 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
- G06F11/20—Error 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/2053—Error 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/2089—Redundant storage control functionality
- G06F11/2092—Techniques of failing over between control units
-
- 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
- G06F11/20—Error 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/2053—Error 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/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage 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
-
- 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/0653—Monitoring storage devices or 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/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
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7211—Wear leveling
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开内容的实现涉及管理存储系统的方法、系统和计算机程序产品。具体地,在本公开内容的一个实现方式中,提供了一种用于管理存储系统的方法,包括:确定存储系统的条带中包括的目标区块的访问水平,访问水平指示目标区块将被访问的可能性;获取目标区块所在的目标存储设备的使用状态,目标存储设备位于与存储系统相关联的存储设备池中;以及基于访问水平和使用状态,处理目标区块与目标存储设备之间的映射关系。在本公开内容的其他实现中,提供了相应系统和计算机程序产品。
Description
技术领域
本公开内容的各实现方式涉及存储管理,更具体地,涉及用于管理存储系统(例如,独立磁盘冗余阵列(Redundant Array of Independent Disks,RAID)的方法、系统和计算机程序产品。
背景技术
随着数据存储技术的发展,各种数据存储设备已经能够向用户提供越来越高的数据存储能力,并且数据访问速度也有了很大程度的提高。在提高数据存储能力的同时,用户对于数据可靠性和存储系统的响应时间也提出了越来越高的需求。目前,已经开发出了基于冗余磁盘阵列的多种数据存储系统来提高数据的可靠性。当存储系统中的一个或者多个磁盘出现故障时,可以从其他正常操作的磁盘上的数据来恢复出故障磁盘中的数据。
目前已经开发出了映射独立磁盘冗余阵列(Mapped RAID)。在该映射RAID中,磁盘是一个逻辑概念并且可以包括资源池中的多个区块(extent)。一个逻辑磁盘中包括的多个区块可以分布在不同的物理存储设备上。对于映射RAID的一个条带中的多个区块而言,该多个区块可以分布在不同的物理存储设备上,以便当该多个区块中的一个区块所在的物理存储设备出现故障时,可以从其他区块所在的物理存储设备中恢复数据。
在映射RAID的使用期间,不同区块的访问水平是不同的。这将会造成不同区块所在的不同存储设备的使用状态出现差异,并且可能进一步造成某些区块所在的设备更易于被损耗。此时,如何处理存储设备中的区块与存储设备池中的各个存储设备之间的映射关系成为一个难题。
发明内容
因而,期望能够开发并实现一种以更为简单并且可靠的方式来管理存储系统的技术方案。期望该技术方案能够与现有的存储系统相兼容,并且通过改造现有存储系统的各种配置,来以更为可靠的方式来管理存储系统。
根据本公开内容的一个实现方式,提供了一种用于管理存储系统的方法。该方法包括:确定存储系统的条带中包括的目标区块(extent)的访问水平,访问水平指示目标区块将被访问的可能性;获取目标区块所在的目标存储设备的使用状态,目标存储设备位于与存储系统相关联的存储设备池中;以及基于访问水平和使用状态,处理目标区块与目标存储设备之间的映射关系。
根据本公开内容的一个实现方式,提供了一种用于管理存储系统的系统,包括:一个或者多个处理器;耦合至所述一个或者多个处理器中的至少一个处理器的存储器;在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述系统执行用于管理存储系统的方法。该方法包括:确定存储系统的条带中包括的目标区块的访问水平,访问水平指示目标区块将被访问的可能性;获取目标区块所在的目标存储设备的使用状态,目标存储设备位于与存储系统相关联的存储设备池中;以及基于访问水平和使用状态,处理目标区块与目标存储设备之间的映射关系。
根据本公开内容的一个实现方式,提供了一种用于管理存储系统的设备。该设备包括:确定模块,配置用于确定所述存储系统的条带中包括的目标区块的访问水平,所述访问水平指示所述目标区块将被访问的可能性;获取模块,配置用于获取所述目标区块所在的目标存储设备的使用状态,所述目标存储设备位于与所述存储系统相关联的存储设备池中;以及处理模块,配置用于基于所述访问水平和所述使用状态,处理所述目标区块与所述目标存储设备之间的映射关系。
根据本公开内容的一个实现方式,提供了一种计算机程序指令,当由至少一个处理器执行所述计算机程序指令时,使得所述至少一个处理器执行根据上文所述的用于管理存储系统的方法。
采用本公开内容的技术方案,可以以更为可靠的方式来管理存储系统。
附图说明
结合附图并参考以下详细说明,本公开内容各实现方式的特征、优点及其他方面将变得更加明显,在此以示例性而非限制性的方式示出了本公开内容的若干实现方式。在附图中:
图1示意性示出了适于实现本公开内容实现方式的示例性计算系统的框图;
图2A和2B分别示意性示出了其中可以实现根据本公开内容的实现方式的应用环境的示意图;
图3示意性示出了映射RAID存储系统中区块的分布的框图;
图4示意性示出了根据本公开内容的一个实现方式的用于管理存储系统的架构图;
图5示意性示出了根据本公开内容的一个实现方式的用于管理存储系统的方法的流程图;
图6示意性示出了根据本公开内容的一个实现方式的用于处理目标区块与目标存储设备之间的映射关系的框图;
图7示意性示出了根据本公开内容的一个实现方式的以循环方式排列的用于存储数据和校验的子区块的框图;
图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)。
也可以把计算机程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其他可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
独立磁盘冗余阵列可以将多个存储设备组合起来,成为一个磁盘阵列。通过提供冗余的存储设备,可以使得整个磁盘组的可靠性大大超过单一的存储设备。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。
图3示意性示出了映射RAID存储系统中的区块的分布的框图300。图3示意性示出了资源池中的多个存储设备310、320、330、340、…、350、360。每个存储设备可以包括多个区块,其中空白区块360表示空闲的区块,以条纹图例362示出的区块表示用于第一条带的区块,而以阴影图例364示出的区块表示用于第二条带的区块。此时,用于第一条带的区块312、322、332、342、352分别用于存储第一条带的数据块D00、D01、D02、D03和校验P0。用于第二条带的区块324、334、344、366和314分别用于存储第二条带的数据块D10、D11、D12、D13和校验P1。
应当注意,图3仅以4D+1P的RAID-5存储系统为示例,示出了各个条带中的区块如何均匀地分布在资源池的多个存储系统中。当采用其他RAID等级时,本领域技术人员可以基于上文所述的原理来实现具体细节。例如,在4+2的RAID-6存储系统中,存储设备池中应当至少包括6个存储设备。每个条带中的6个区块可以均匀地分布在多个存储设备上,进而保证多个存储设备的负载均衡。
应当注意,在4D+1P的存储系统中,对于一个条带中的5个区块,数据访问水平可以有所不同。例如,对于存储数据的4个区块而言,当针对任何一个存储数据的区块执行写入时,还需要针对存储校验的区块进行写入。因而,存储校验数据的区块将更易于被损耗进而降低存储系统的可靠性并增加存储系统出现故障的风险。此时,如何确保存储系统的可靠性成为一个技术问题。
为了解决上述缺陷,本公开内容的实现方式提供了一种用于管理存储系统的方法、设备和程序产品。具体地,根据本公开内容的一个实现方式,提供了一种用于管理存储系统的技术方案。图4示意性示出了根据本公开内容的一个实现方式的用于管理存储系统的架构图400。如图4所示,示意性示出了存储系统(4D+1P)中的一个条带220中的各个区块312、322、332、342以及352。基于映射RAID的原理,上述各个区块分别来自在存储设备池410中包括多个存储设备310、320、330、340、350和360。
区块312、322、332、342分别用于存储数据D00、D01、D02、D03,以及区块352用于存储校验P0。根据本公开内容的一个实现方式,通过确定针对条带220中的各个区块的访问水平可知,由于区块352用于存储校验P0,因而该区块352的访问水平将远高于其他区块的访问水平。进一步,可以确定区块352所在的存储设备350的使用状态。如果发现存储设备350已经在很大程度上被损耗,当区块352面临大量的访问操作时,则该区块352所在的存储设备350将面临很大的风险。一旦存储设备350崩溃,则将会造成存储系统可靠性的降低。
此时,基于区块352的访问水平和使用状态,可以确定如何处理目标区块与目标存储设备之间的映射关系。由于区块352的访问水平较高并且存储设备350已经在很大程度上被损耗,因而可以从存储设备池410中的其他存储设备(例如,存储设备360)中选择另一区块来替换区块352。
在下文中,将参见图5详细描述根据本公开内容的一个实现方式的方法的具体步骤。图5示意性示出了根据本公开内容的一个实现方式的用于管理存储系统的方法500的流程图。如图5所示,在方框510处,确定存储系统的条带中包括的目标区块的访问水平,在此访问水平指示目标区块将被访问的可能性。将会理解,在此的访问水平是指示访问频率的指示符,并不限制以何种方式来表示访问水平。在本公开内容的上下文中,访问水平可以以不同的单位表示。例如,可以以每秒的访问次数来表示,或者还可以以相对数值的形式来表示。继续上文图4所示的4D+1P的存储系统的示例,假设以数值1来表示数据区块的访问水平,由于针对4个数据区块中的任何一个执行写入时,都要向校验区块写入数据,此时可以以数值4来表示校验区块的访问水平。换言之,校验区块的访问水平是数据区块的4倍。
在方框520处,获取目标区块所在的目标存储设备的使用状态,目标存储设备位于与存储系统相关联的存储设备池中。在此的使用状态可以表示目标区块所在的目标存储设备的损耗水平,例如对于SSD存储设备而言,可以直接从该SSD存储设备中读取该损耗水平。继续上文图4的示例,与区块352相关联的使用状态即存储设备350的损耗水平,与区块312相关联的使用状态即存储设备310的损耗水平。
在方框530处,基于访问水平和使用状态,处理目标区块与目标存储设备之间的映射关系。此时,可以根据访问水平和使用状态来处理映射关系。如果访问水平较高并且使用状态表示存储设备的损耗水平也较高,则可以修改映射关系(例如,选择其他损耗水平较低的存储设备中的区块来替换目标区块,以便更新基于映射的存储系统)。如果访问水平较低并且使用状态表示存储设备的损耗水平也较低,则可以保持现有的映射关系。
图6示意性示出了根据本公开内容的一个实现方式的用于处理目标区块与目标存储设备之间的映射关系的框图600。如图6所示,条带220中包括多个区块,其中区块312、322、332、342分别用于存储数据块D00、D01、D02、D03,而区块352用于存储校验P0。在图6底部示出了各个区块所在的存储设备的使用状态。当以损耗水平来表示时,使用状态可以以百分比或者其他数值(例如,时间、访问次数,等)来表示。
具体地,区块312所在的存储设备的损耗水平为10%。在此10%的含义为目前存储设备的损耗已经达到10%。假设存储设备的访问操作是基本均匀的,当以时间来衡量损耗时,如果存储设备已经使用了1个月,则10%可以表示存储设备的寿命为10个月,未来还可以使用9个月。如图所示,各个区块312、322、332、342以及352所在的存储设备的使用状态分别为10%、15%、12%、20%以及50%。
根据本公开内容的一个实现方式,条带包括具有第一类型(例如,数据)或第二类型(例如,校验)的区块的一组区块(区块312、322、332、342以及352)。可以基于目标区块的类型,确定目标区块的访问水平。继续图6的示例,由于区块312、322、332、342用于存储数据,而区块352用于存储校验,由于校验被访问的频率将远高于数据被访问的频率,因而可以在确定区块352是校验类型的区块,而确定该区块具有较高类型的访问水平。
在图6的示例中,已经确定区块352是校验类型的区块,并且已经确定该区块所在的存储设备的损耗水平为50%。由于50%表示较高的损耗水平,此时可以确定区块352面临潜在风险,并且可以使用其他损耗水平较低(例如,低于50%)的存储设备中的区块来替换区块352。
根据本公开内容的一个实现方式,条带包括多个子条带,多个子条带中的子条带包括一组子块,一组子块包括分别位于一组区块中的各个区块中的子块,一组子块中的子块具有第一类型或第二类型。在基于映射的存储系统中,来自一个存储设备的区块可以是较大的区块,并且一个条带中还可以包括多个子条带。此时可以将子条带理解为具有较小粒度的条带。
图7示意性示出了根据本公开内容的一个实现方式的以循环方式排列的用于存储校验的子区块的框图700。如图7所示,条带710包括跨越多个区块的8个子条带。条带710中的第一行区块表示子条带720(4个数据区块和1个校验区块),并且条带720下的每行区块均表示一个子条带。
将会理解,在每个子条带中各个区块的排列方式可以是任意的。例如,每个子条带都可以在位置0-3处存储数据,并且在位置4处存储校验。备选地或者附加地,还可以在不同位置处存储不同类型的信息。例如,参见条带710中的第二个子条带所示,将校验存储在位置0,并在后续的位置1至4处分别存储数据。进一步,在条带720中的后续条带中,还可以按照如箭头730所示的方向,以循环方式来排列不同类型的各个区块。例如,在第二个子条带中校验可以被存储在位置0,在第三个子条带中校验可以被存储在位置1,在第四个子条带中校验可以被存储在位置2,……,在第7个子条带中校验可以被存储在位置0,在第八个子条带中校验可以被存储在位置1,以此类推。
在一个条带包括多个子条带的情况下,可以基于目标区块中所包括的一个或多个子块的类型,确定访问水平。具体地,在图7所示的示例中,位置0处的各个子区块位于相同的存储设备中,此时可以基于位置0处的各个子区块的类型来确定位置0处的区块的访问水平。
根据本公开内容的一个实现方式,可以确定目标区块中的第二类型的子块在目标区块中所占据的比例;继而,基于该比例确定访问水平。以图7中的位置0处的区块为示例,该区块包括8个子块,其中6个子块用于存储数据,并且2个子块用于存储校验。此时,该区块中的用于存储校验的子块在全部子块中所占的比例为2/8=25%。因而,可以以所确定的比例来指示访问水平。
基于类似方式,可以确定位于其他位置的区块的访问水平。例如,位于1的区块中包括2个子块用于存储校验,因而访问水平为2/8=25%。位于2的区块中包括1个子块用于存储校验,因而访问水平为1/8=12.5%。位于3的区块中包括1个子块用于存储校验,因而访问水平为1/8=12.5%。位于4的区块中包括2个子块用于存储校验,因而访问水平为2/8=25%。根据本公开内容的一个实现方式,响应于访问水平高于条带中的目标区块以外的另一区块的访问水平,将目标区块映射至存储设备池中的条带中的区块所在的存储设备以外的另一存储设备。访问水平越高,则表示该条带被访问越频繁,越容易被损坏。因而可以优先地将访问水平较高的区块重新映射到存储设备池410中的其他更可靠的设备。
可以选择区块中访问水平较高的区块(例如,图7中位于位置0、1和4处的区块),并判断这些区块所在的存储设备的损耗程度是否导致区块面临潜在风险。以位置4处的区块为例,该区块的访问水平较高(达到25%)。假设该区块所在的存储设备的损耗水平已经达到50%,则可以认为针对该区块的较高访问将会导致存储设备的更多损耗,因而可以执行重新映射。
应当注意,由于要求重新映射后的存储系统仍然具有映射RAID的性质,因而需要确保重新映射的区块来自不同于当前条带所涉及的其他区块所在的存储设备。假设位于位置0至3的区块分别来自存储设备0至3,并且位置4处的区块来自存储设备4。在执行重新映射时,可以利用存储设备池中的存储设备0至4以外的其他存储设备中的区块,来替换位置4处的区块。
根据本公开内容的一个实现方式,当条带中的子块按照第一类型和第二类型的顺序循环排列时,第二类型的子块是按规律排列的(例如,将上一子条带中的校验子块所在的位置向后移动一个位置)。此时,可以基于一组子条带的数量、第一类型的子块的数量、第二类型的子块的数量、以及第二类型的子块的起始位置,确定访问水平。
应当注意,尽管在上文中以4D+1P的存储系统为背景,示出了在一个条带中包括8个子条带的情况。根据本公开内容的一个实现方式,存储系统还可以是其他类型的存储系统,例如3D+1P、4D+1P+1Q、或者4D+1P+1Q+1R等类型的存储系统。为了概括地表示一个条带中的数据区块和校验区块的数量,可以以W表示数据区块的数量,以M表示校验区块的数量,并且以width表示整个条带的宽度。
以i(i是0至width-1之间的整数)表示条带中的第i个位置,以n表示存储系统中的第n个条带。此时,基于公式组1可以确定位于存储系统中的第n个条带的第i个位置处的区块的访问水平ParityPercentage(n,i)。
width=(W+M)
公式组1
在公式组1中,floor表示向下取整运算,DE表示区块的大小,P表示子块的大小,p0index(n,i)表示第n个子条带中的校验子块的起始位置,width表示条带的宽度,W表示数据区块的数量,M表示校验区块的数量。
应当注意,公式组1仅以校验子块开始于多个位置中的最后一个位置的情况为示例来描述了如何计算访问水平。根据本公开内容的一个实现方式,当校验子块开始于其他位置时,还可以其他公式来计算访问水平。根据本公开内容的一个实现方式,校验还可以采用不同的步长进行循环。此时,本领域技术人员还可以基于具体的步长来计算各个校验子块在位置上的偏移值,并基于该偏移值来确定相应的访问水平。
利用上文所示的公式,在4D+1P的存储系统中,当第一个子条带中的校验子块开始于最后的位置时,所确定的各个存储系统中的各个区块的百分比如图8所示,其中该图8示意性示出了根据本公开内容的一个实现方式的存储系统中的各个条带中的区块的访问水平的示意图800。
在图8所示的存储系统中,包括8个条带(条带0至条带4)。如图8所示,条带与位置的交叉点处的数值表示相对应的区块中的校验子块所占的比例。具体地,条带0对应于如图7所示的条带710,并且其中位置0处的区块中的校验子块所占比例为25%,位置1处的区块中的校验子块所占比例为25%。又例如,对于条带2而言,其中的位置3处的区块中的校验子块所占比例为12.50%。基于图8中所示的百分比,可以优先地考虑处理访问水平为25%的区块,并且稍后考虑访问水平为12.5%的区块。根据本公开内容的一个实现方式,可以按照百分比从高到底的顺序进行排序,并且优先处理百分比较高的区块。
根据本公开内容的一个实现方式,响应于使用状态满足第一预定条件,将目标区块映射至另一存储设备。换言之,还可以基于使用状态是否满足预定条件来确定是否执行重新映射操作。例如,如果访问水平指示目标区块的访问频率较高,然而该目标区块所在的存储设备的使用状态表示该存储设备几乎是全新的存储设备。则此时不必立刻执行重新映射的操作。又例如,如果访问水平指示目标区块的访问频率较高,并且该目标区块所在的存储设备的使用状态表示该存储设备的损耗水平也较高。在此情况下,可以执行重新映射。
根据本公开内容的一个实现方式,可以利用存储设备池410中的使用状态由于目标设备的使用状态的存储设备中的另一区块来替换空闲区块。换言之,替换后的区块的使用状态优于目标设备的使用状态。以此方式,由于采用使用状态更好的更为可靠的存储设备中的区块来构建存储系统,因而可以确保存储系统具有更高的可靠性。
在上文中已经描述了基于存储系统中的访问水平来处理映射关系的具体细节。将会理解,目前的访问水平是基于存储系统中的条带中的各个区块的类型来确定的“静态的”访问水平。根据本公开内容的一个实现方式,还可以通过考虑存储系统中各个条带的历史访问频率,来预测该条带中的各个区块的未来的可能性。
根据本公开内容的一个实现方式,可以首先确定条带被访问的历史,并且在历史满足第二预定条件时,基于访问水平和使用状态,处理目标区块与目标存储设备之间的映射关系。以此方式,可以基于条带被访问的历史来估计该条带在未来将被访问的可能性。
根据本公开内容的一个实现方式,可以以多种方式来描述历史,例如,可以以在之前的预定时间段内条带被访问的次数来描述。备选地或者附加地,可以以被访问的数据量来描述,或者还可以采用其他的方法来描述。如果历史指示目标区块所在的条带(或者该目标区块本身)在过去被频繁地访问(例如,访问频率高于预定数值),则将优先地考虑处理该目标区块。又例如,如果历史指示目标区块所在的条带(或者该目标区块本身)在过去很长一段并未被访问,则可以稍后考虑该目标区块。
根据本公开内容的一个实现方式,访问水平可以基于上文所述的百分比和历史频率两者来确定。例如,可以基于两者的乘积或者加权求和等其他公式来确定访问水平。假设第一目标区块的百分比为12.5%,并且历史频率为10次/秒;而第二目标区块的百分比为25%,并且历史频率为1次/秒。则此时用于第一目标区块的访问水平可以表示为12.5%×10=1.25,而用于第一目标区块的访问水平可以表示为25%×1=0.25。由于1.25>0.25,因而可以优先地处理第一目标区块。
根据本公开内容的一个实现方式,在各个区块的范围水平相似或者相同的情况下,可以优先处理使用状态较差的存储设备中的区块。例如,还可以将存储系统中的各个条带中的各个区块所在的存储设备的使用状态进行排序。结合图8所示的访问水平的具体数值,可以按照使用状态从差到好的顺序,优先地处理访问水平为25%的区块。
根据本公开内容的一个实现方式,目标存储设备是固态存储设备,以及获取目标存储设备的使用状态包括:读取固态存储设备的损耗水平以作为使用状态。将会理解,在损耗水平是描述固态存储设备的寿命的一个有效指标。当基于固态存储设备来构造存储设备池的情况下,可以直接从固态存储设备中读取损耗水平来作为使用状态。
前面已经参考附图描述了实现本发明的方法的各个实施方式。本领域技术人员可以理解的是,上述方法既可以以软件方式实现,也可以以硬件方式实现,或者通过软件与硬件相结合的方式实现。并且,本领域技术人员可以理解,通过以软件、硬件或者软硬件相结合的方式实现上述方法中的各个步骤,可以提供一种基于相同发明构思的一种设备。即使该设备在硬件结构上与通用处理设备相同,由于其中所包含的软件的作用,使得该设备表现出区别于通用处理设备的特性,从而形成本发明的各个实施方式的设备。本发明中设备包括若干装置或模块,装置或模块被配置为执行相应步骤。本领域的技术人员通过阅读本说明书可以理解如何编写程序实现装置或模块执行的动作。由于设备与方法基于相同的发明构思,因此其中相同或相应的实现细节同样适用于与上述方法对应的装置或模块,由于其在上文中已经进行了详细和完整的描述,因此在下文中可能不再进行赘述。
图9示意性示出了根据本公开内容的一个实现方式的用于管理存储的设备900的设备的框图。在设备900中,包括:确定模块910,配置用于确定存储系统的条带中包括的目标区块的访问水平,访问水平指示目标区块将被访问的可能性;获取模块920,配置用于获取目标区块所在的目标存储设备的使用状态,目标存储设备位于与存储系统相关联的存储设备池中;以及处理模块930,配置用于基于访问水平和使用状态,处理目标区块与目标存储设备之间的映射关系。
根据本公开内容的一个实现方式,条带包括具有第一类型或第二类型的区块的一组区块,以及确定模块910进一步配置用于基于目标区块的类型,确定目标区块的访问水平。
根据本公开内容的一个实现方式,条带包括多个子条带,多个子条带中的子条带包括一组子块,一组子块包括分别位于一组区块中的各个区块中的子块,一组子块中的子块具有第一类型或第二类型。确定模块910进一步配置用于基于目标区块中所包括的一个或多个子块的类型,确定访问水平。
根据本公开内容的一个实现方式,确定模块910进一步配置用于:确定目标区块中的第二类型的子块在目标区块中所占据的比例;以及基于比例确定访问水平。
根据本公开内容的一个实现方式,条带中的子块按照第一类型和第二类型的顺序循环排列。确定模块910进一步配置用于:基于一组子条带的数量、第一类型的子块的数量、第二类型的子块的数量、以及第二类型的子块的起始位置,确定访问水平。
根据本公开内容的一个实现方式,处理模块930进一步配置用于:响应于访问水平高于条带中的目标区块以外的另一区块的访问水平,将目标区块映射至存储设备池中的条带中的区块所在的存储设备以外的另一存储设备。
根据本公开内容的一个实现方式,处理模块930进一步配置用于:响应于使用状态满足第一预定条件,将目标区块映射至另一存储设备。
根据本公开内容的一个实现方式,另一存储设备的使用状态优于目标设备的使用状态。
根据本公开内容的一个实现方式,确定模块910进一步配置用于确定条带被访问的历史;以及处理模块930进一步配置用于响应于历史满足第二预定条件,基于访问水平和使用状态,处理目标区块与目标存储设备之间的映射关系。
根据本公开内容的一个实现方式,目标存储设备是固态存储设备。获取模块920进一步配置用于读取固态存储设备的损耗水平以作为使用状态。
根据本公开内容的一个实现方式,提供了一种用于管理存储系统的系统,包括:一个或者多个处理器;耦合至一个或者多个处理器中的至少一个处理器的存储器;在存储器中存储的计算机程序指令,当由至少一个处理器执行计算机程序指令时,使得系统执行用于管理存储系统的方法,存储系统包括至少一个条带,至少一个条带中的条带包括多个区块,多个区块中的相应区块来自资源池中的相应存储设备。方法包括:确定存储系统的条带中包括的目标区块的访问水平,访问水平指示目标区块将被访问的可能性;获取目标区块所在的目标存储设备的使用状态,目标存储设备位于与存储系统相关联的存储设备池中;以及基于访问水平和使用状态,处理目标区块与目标存储设备之间的映射关系。
根据本公开内容的一个实现方式,条带包括具有第一类型或第二类型的区块的一组区块,以及其中确定访问水平包括:基于目标区块的类型,确定目标区块的访问水平。
根据本公开内容的一个实现方式,条带包括多个子条带,多个子条带中的子条带包括一组子块,一组子块包括分别位于一组区块中的各个区块中的子块,一组子块中的子块具有第一类型或第二类型,以及其中基于目标区块的类型。
根据本公开内容的一个实现方式,确定目标区块的访问水平包括:基于目标区块中所包括的一个或多个子块的类型,确定访问水平。
根据本公开内容的一个实现方式,确定访问水平包括:确定目标区块中的第二类型的子块在目标区块中所占据的比例;以及基于比例确定访问水平。
根据本公开内容的一个实现方式,条带中的子块按照第一类型和第二类型的顺序循环排列。
根据本公开内容的一个实现方式,确定比例包括:基于一组子条带的数量、第一类型的子块的数量、第二类型的子块的数量、以及第二类型的子块的起始位置,确定访问水平。
根据本公开内容的一个实现方式,处理目标区块与目标存储设备之间的映射关系包括:响应于访问水平高于条带中的目标区块以外的另一区块的访问水平,将目标区块映射至存储设备池中的条带中的区块所在的存储设备以外的另一存储设备。
根据本公开内容的一个实现方式,响应于使用状态满足第一预定条件,将目标区块映射至另一存储设备。
根据本公开内容的一个实现方式,另一存储设备的使用状态优于目标设备的使用状态。
根据本公开内容的一个实现方式,确定条带被访问的历史。
根据本公开内容的一个实现方式,处理目标区块与目标存储设备之间的映射关系进一步包括:响应于历史满足第二预定条件,基于访问水平和使用状态,处理目标区块与目标存储设备之间的映射关系。
根据本公开内容的一个实现方式,目标存储设备是固态存储设备。
根据本公开内容的一个实现方式,获取目标存储设备的使用状态包括读取固态存储设备的损耗水平以作为使用状态。
根据本公开内容的一个实现方式,提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行一种用于管理存储系统的方法。该包括:确定存储系统的条带中包括的目标区块的访问水平,访问水平指示目标区块将被访问的可能性;获取目标区块所在的目标存储设备的使用状态,目标存储设备位于与存储系统相关联的存储设备池中;以及基于访问水平和使用状态,处理目标区块与目标存储设备之间的映射关系。
根据本公开内容的一个实现方式,条带包括具有第一类型或第二类型的区块的一组区块,以及其中确定访问水平包括:基于目标区块的类型,确定目标区块的访问水平。
根据本公开内容的一个实现方式,条带包括多个子条带,多个子条带中的子条带包括一组子块,一组子块包括分别位于一组区块中的各个区块中的子块,一组子块中的子块具有第一类型或第二类型,以及其中基于目标区块的类型,确定目标区块的访问水平包括:基于目标区块中所包括的一个或多个子块的类型,确定访问水平。
根据本公开内容的一个实现方式,基于目标区块中所包括的一个或多个子块的类型,确定访问水平包括:确定目标区块中的第二类型的子块在目标区块中所占据的比例;以及基于比例确定访问水平。
根据本公开内容的一个实现方式,条带中的子块按照第一类型和第二类型的顺序循环排列,以及确定比例包括:基于一组子条带的数量、第一类型的子块的数量、第二类型的子块的数量、以及第二类型的子块的起始位置,确定访问水平。
根据本公开内容的一个实现方式,处理目标区块与目标存储设备之间的映射关系包括:响应于访问水平高于条带中的目标区块以外的另一区块的访问水平,将目标区块映射至存储设备池中的条带中的区块所在的存储设备以外的另一存储设备。
根据本公开内容的一个实现方式,响应于使用状态满足第一预定条件,将目标区块映射至另一存储设备。
根据本公开内容的一个实现方式,另一存储设备的使用状态优于目标设备的使用状态。
根据本公开内容的一个实现方式,确定条带被访问的历史;以及其中处理目标区块与目标存储设备之间的映射关系进一步包括:响应于历史满足第二预定条件,基于访问水平和使用状态,处理目标区块与目标存储设备之间的映射关系。
根据本公开内容的一个实现方式,目标存储设备是固态存储设备,以及获取目标存储设备的使用状态包括:读取固态存储设备的损耗水平以作为使用状态。
附图中的流程图和框图显示了根据本公开内容的多个实现方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开内容的各实现方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实现方式。在不偏离所说明的各实现方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实现方式。
Claims (21)
1.一种用于管理存储系统的方法,包括:
确定所述存储系统的条带中包括的目标区块的访问水平,所述访问水平指示所述目标区块将被访问的可能性;
获取所述目标区块所在的目标存储设备的使用状态,所述目标存储设备位于与所述存储系统相关联的存储设备池中;以及
基于所述访问水平和所述使用状态,处理所述目标区块与所述目标存储设备之间的映射关系。
2.根据权利要求1所述的方法,其中所述条带包括具有第一类型或第二类型的区块的一组区块,以及其中确定所述访问水平包括:
基于所述目标区块的类型,确定所述目标区块的所述访问水平。
3.根据权利要求1所述的方法,其中所述条带包括多个子条带,所述多个子条带中的子条带包括一组子块,所述一组子块包括分别位于所述一组区块中的各个区块中的子块,所述一组子块中的子块具有第一类型或第二类型,以及其中基于所述目标区块的类型,确定所述目标区块的所述访问水平包括:
基于所述目标区块中所包括的一个或多个子块的类型,确定所述访问水平。
4.根据权利要求3所述的方法,其中基于所述目标区块中所包括的一个或多个子块的类型,确定所述访问水平包括:
确定所述目标区块中的第二类型的子块在所述目标区块中所占据的比例;以及
基于所述比例确定所述访问水平。
5.根据权利要求4所述的方法,其中所述条带中的子块按照所述第一类型和所述第二类型的顺序循环排列,以及确定所述比例包括:
基于所述一组子条带的数量、所述第一类型的子块的数量、所述第二类型的子块的数量、以及所述第二类型的子块的起始位置,确定所述访问水平。
6.根据权利要求1所述的方法,其中处理所述目标区块与所述目标存储设备之间的映射关系包括:
响应于所述访问水平高于所述条带中的所述目标区块以外的另一区块的访问水平,将所述目标区块映射至所述存储设备池中的所述条带中的区块所在的存储设备以外的另一存储设备。
7.根据权利要求6所述的方法,进一步包括:
响应于所述使用状态满足第一预定条件,将所述目标区块映射至所述另一存储设备。
8.根据权利要求7所述的方法,其中所述另一存储设备的使用状态优于所述目标设备的所述使用状态。
9.根据权利要求1所述的方法,进一步包括:确定所述条带被访问的历史;以及
其中处理所述目标区块与所述目标存储设备之间的映射关系进一步包括:响应于所述历史满足第二预定条件,基于所述访问水平和所述使用状态,处理所述目标区块与所述目标存储设备之间的映射关系。
10.根据权利要求1所述的方法,其中所述目标存储设备是固态存储设备,以及获取所述目标存储设备的使用状态包括:读取所述固态存储设备的损耗水平以作为所述使用状态。
11.一种用于管理存储系统的系统,包括:
一个或者多个处理器;
耦合至所述一个或者多个处理器中的至少一个处理器的存储器;
在所述存储器中存储的计算机程序指令,当由所述至少一个处理器执行所述计算机程序指令时,使得所述系统执行用于管理存储系统的方法,所述存储系统包括至少一个条带,所述至少一个条带中的条带包括多个区块,所述多个区块中的相应区块来自资源池中的相应存储设备,所述方法包括:
确定所述存储系统的条带中包括的目标区块的访问水平,所述访问水平指示所述目标区块将被访问的可能性;
获取所述目标区块所在的目标存储设备的使用状态,所述目标存储设备位于与所述存储系统相关联的存储设备池中;以及
基于所述访问水平和所述使用状态,处理所述目标区块与所述目标存储设备之间的映射关系。
12.根据权利要求11所述的系统,其中所述条带包括具有第一类型或第二类型的区块的一组区块,以及其中确定所述访问水平包括:
基于所述目标区块的类型,确定所述目标区块的所述访问水平。
13.根据权利要求11所述的系统,其中所述条带包括多个子条带,所述多个子条带中的子条带包括一组子块,所述一组子块包括分别位于所述一组区块中的各个区块中的子块,所述一组子块中的子块具有第一类型或第二类型,以及其中基于所述目标区块的类型,确定所述目标区块的所述访问水平包括:
基于所述目标区块中所包括的一个或多个子块的类型,确定所述访问水平。
14.根据权利要求13所述的系统,其中基于所述目标区块中所包括的一个或多个子块的类型,确定所述访问水平包括:
确定所述目标区块中的第二类型的子块在所述目标区块中所占据的比例;以及
基于所述比例确定所述访问水平。
15.根据权利要求14所述的系统,其中所述条带中的子块按照所述第一类型和所述第二类型的顺序循环排列,以及确定所述比例包括:
基于所述一组子条带的数量、所述第一类型的子块的数量、所述第二类型的子块的数量、以及所述第二类型的子块的起始位置,确定所述访问水平。
16.根据权利要求11所述的系统,其中处理所述目标区块与所述目标存储设备之间的映射关系包括:
响应于所述访问水平高于所述条带中的所述目标区块以外的另一区块的访问水平,将所述目标区块映射至所述存储设备池中的所述条带中的区块所在的存储设备以外的另一存储设备。
17.根据权利要求16所述的系统,所述方法进一步包括:
响应于所述使用状态满足第一预定条件,将所述目标区块映射至所述另一存储设备。
18.根据权利要求17所述的系统,其中所述另一存储设备的使用状态优于所述目标设备的所述使用状态。
19.根据权利要求11所述的系统,所述方法进一步包括:确定所述条带被访问的历史;以及
其中处理所述目标区块与所述目标存储设备之间的映射关系进一步包括:响应于所述历史满足第二预定条件,基于所述访问水平和所述使用状态,处理所述目标区块与所述目标存储设备之间的映射关系。
20.根据权利要求11所述的系统,其中所述目标存储设备是固态存储设备,以及获取所述目标存储设备的使用状态包括:读取所述固态存储设备的损耗水平以作为所述使用状态。
21.一种计算机程序产品,所述计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至10中的任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711031272.8A CN109725837B (zh) | 2017-10-27 | 2017-10-27 | 管理存储系统的方法、系统和计算机程序产品 |
US16/171,879 US10789004B2 (en) | 2017-10-27 | 2018-10-26 | Method, system and computer program product for managing storage system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711031272.8A CN109725837B (zh) | 2017-10-27 | 2017-10-27 | 管理存储系统的方法、系统和计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109725837A true CN109725837A (zh) | 2019-05-07 |
CN109725837B CN109725837B (zh) | 2022-06-03 |
Family
ID=66245493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711031272.8A Active CN109725837B (zh) | 2017-10-27 | 2017-10-27 | 管理存储系统的方法、系统和计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10789004B2 (zh) |
CN (1) | CN109725837B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732168A (zh) * | 2019-10-28 | 2021-04-30 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN114063879A (zh) * | 2020-07-31 | 2022-02-18 | 伊姆西Ip控股有限责任公司 | 用于处理操作命令的方法、电子设备和计算机程序产品 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
CN111104055B (zh) | 2018-10-29 | 2023-10-27 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
US11449248B2 (en) | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11507308B2 (en) | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
CN111460050A (zh) * | 2020-04-01 | 2020-07-28 | 北京汽车集团有限公司 | 车辆信息处理方法及装置 |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) * | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
US11354191B1 (en) | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6912635B2 (en) * | 2002-05-08 | 2005-06-28 | Hewlett-Packard Development Company, L.P. | Distributing workload evenly across storage media in a storage array |
CN101482802A (zh) * | 2009-02-18 | 2009-07-15 | 杭州华三通信技术有限公司 | 独立磁盘冗余阵列5扩展方法及装置 |
CN102023819A (zh) * | 2010-12-01 | 2011-04-20 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错水平型分组并行访问磁盘阵列的构建方法 |
CN104142872A (zh) * | 2014-08-13 | 2014-11-12 | 浪潮电子信息产业股份有限公司 | 一种raid磁盘阵列的快速重建方法 |
CN104516471A (zh) * | 2013-09-27 | 2015-04-15 | 国际商业机器公司 | 一种管理存储器系统的电源的方法和装置 |
US9684463B1 (en) * | 2016-01-14 | 2017-06-20 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Predictive block allocation in a flash device |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7873619B1 (en) | 2008-03-31 | 2011-01-18 | Emc Corporation | Managing metadata |
US8799705B2 (en) | 2012-01-04 | 2014-08-05 | Emc Corporation | Data protection in a random access disk array |
US10496482B1 (en) | 2016-09-30 | 2019-12-03 | EMC IP Holding Company LLC | Selective raid repair based on content mapping |
US10365983B1 (en) | 2017-04-27 | 2019-07-30 | EMC IP Holding Company LLC | Repairing raid systems at per-stripe granularity |
US10365845B1 (en) | 2017-07-27 | 2019-07-30 | EMC IP Holding Company LLC | Mapped raid restripe for improved drive utilization |
US10521302B1 (en) | 2017-08-04 | 2019-12-31 | EMC IP Holding Company LLC | Managing mapped raid extents in data storage systems |
US10318169B2 (en) | 2017-10-27 | 2019-06-11 | EMC IP Holding Company LLC | Load balancing of I/O by moving logical unit (LUN) slices between non-volatile storage represented by different rotation groups of RAID (Redundant Array of Independent Disks) extent entries in a RAID extent table of a mapped RAID data storage system |
US10521145B1 (en) | 2017-10-31 | 2019-12-31 | EMC IP Holding Company LLC | Method, apparatus and computer program product for managing data storage |
-
2017
- 2017-10-27 CN CN201711031272.8A patent/CN109725837B/zh active Active
-
2018
- 2018-10-26 US US16/171,879 patent/US10789004B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6912635B2 (en) * | 2002-05-08 | 2005-06-28 | Hewlett-Packard Development Company, L.P. | Distributing workload evenly across storage media in a storage array |
CN101482802A (zh) * | 2009-02-18 | 2009-07-15 | 杭州华三通信技术有限公司 | 独立磁盘冗余阵列5扩展方法及装置 |
CN102023819A (zh) * | 2010-12-01 | 2011-04-20 | 北京同有飞骥科技股份有限公司 | 一种双磁盘容错水平型分组并行访问磁盘阵列的构建方法 |
CN104516471A (zh) * | 2013-09-27 | 2015-04-15 | 国际商业机器公司 | 一种管理存储器系统的电源的方法和装置 |
CN104142872A (zh) * | 2014-08-13 | 2014-11-12 | 浪潮电子信息产业股份有限公司 | 一种raid磁盘阵列的快速重建方法 |
US9684463B1 (en) * | 2016-01-14 | 2017-06-20 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Predictive block allocation in a flash device |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112732168A (zh) * | 2019-10-28 | 2021-04-30 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN112732168B (zh) * | 2019-10-28 | 2023-12-22 | 伊姆西Ip控股有限责任公司 | 用于管理存储系统的方法、设备和计算机程序产品 |
CN114063879A (zh) * | 2020-07-31 | 2022-02-18 | 伊姆西Ip控股有限责任公司 | 用于处理操作命令的方法、电子设备和计算机程序产品 |
CN114063879B (zh) * | 2020-07-31 | 2024-04-09 | 伊姆西Ip控股有限责任公司 | 用于处理操作命令的方法、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109725837B (zh) | 2022-06-03 |
US20190129644A1 (en) | 2019-05-02 |
US10789004B2 (en) | 2020-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109725837A (zh) | 管理存储系统的方法、系统和计算机程序产品 | |
CN105573660B (zh) | 用于改善分簇磁盘阵列的性能的方法和装置 | |
CN110413201A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN109725826B (zh) | 管理存储系统的方法、设备和计算机可读介质 | |
JP4894922B2 (ja) | Raidグループ変換装置、raidグループ変換方法およびraidグループ変換プログラム | |
CN107526531B (zh) | 为映射独立盘冗余阵列(raid)选择raid级别的方法和设备 | |
CN105893188B (zh) | 用于加速磁盘阵列的数据重构的方法和装置 | |
CN109725831A (zh) | 管理存储系统的方法、系统和计算机程序产品 | |
CN104965768B (zh) | 用于存储系统中的服务感知数据放置的方法和系统 | |
JP2013539133A5 (zh) | ||
BR112015020131B1 (pt) | Método e meio de armazenamento legível por computador para recuperação eredistribuição de disco virtual | |
CN107436733A (zh) | 分片管理方法和分片管理装置 | |
JP2006171957A (ja) | ストレージ制御装置および方法 | |
US10860476B2 (en) | Method, apparatus and computer program product for managing storage system | |
CN107430491A (zh) | 存储器健康监视 | |
CN109213428A (zh) | 用于管理存储系统的方法和设备 | |
CN107203442B (zh) | 独立磁盘冗余阵列的重建性能的评估方法和设备 | |
CN109213619A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
US10310752B1 (en) | Extent selection with mapped raid | |
CN110413208A (zh) | 用于管理存储系统的方法、设备和计算机程序产品 | |
CN110058785A (zh) | 用于管理存储系统的方法和设备 | |
CN107122269A (zh) | 用于保证映射独立磁盘冗余阵列的可靠性的方法和装置 | |
CN110058953A (zh) | 用于改变存储系统的类型的方法、设备和计算机程序产品 | |
CN109725823A (zh) | 用于管理混合存储盘阵列的方法和设备 | |
US20200057563A1 (en) | Computer system,control method for physical storage device,and recording medium |
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 |